<rp id="i8pu5"></rp>
<label id="i8pu5"><track id="i8pu5"></track></label>
<rp id="i8pu5"></rp>

<dd id="i8pu5"><pre id="i8pu5"></pre></dd>
  • <dd id="i8pu5"></dd>

    <em id="i8pu5"></em><s id="i8pu5"><object id="i8pu5"></object></s>

      <button id="i8pu5"><object id="i8pu5"></object></button>
      || 您當前的位置:首頁 > SAP HR資源網

      bseg 問題解決

      來源:  作者:  (查看評論)
      具體說明
      BSAD:應收明細(已清帳)
      BSID:應收明細(未清帳)
      BSAS:總帳明細(已清帳)
      BSIS:總帳明細(未清帳)
      BSAK:應付明細(已清帳)
      BSIK:應付明細(未清帳)
      BSEG主要通過“憑證號”“會計年度”“行號”和這六張表關聯,BKPF 是財務憑證抬頭,BSEG 是財務憑證行項目。在財務憑證記賬的時候,數據被插入 BKPF 和 BSEG,如果有必要,數據同時插入以上六張表中的一個未清表。
      一般情況下一筆業務產生的憑證都是未清的,那么:
         如果該業務行是客戶相關的,則被記錄到BSID;
         如果該業務行是供應商相關的,則被記錄到BSIK;
         無論和客戶相關還是和供應商相關,都是和總帳相關,所以也會有記錄到BSIS;
         但是如果這筆業務被清帳了,則相應的記錄會從BSI*轉移到BSA*

      一般情況下:
         應收賬款、預收賬款、其他應收款、應收匯票等科目既和客戶相關,又和未清項管理的總帳科目相關;
         應付賬款、預付賬款、其他應付款、應付匯票等科目既和供應商相關,又和未清項管理的總帳科目相關;
         其他總帳科目一般不啟用未清項管理,所以記錄一般都放在BSIS中。

      5)未清項和已清項的概念
      清項(Open Item),表示財務憑證行項目的一種掛賬的狀態,這種狀態,提示該行項目需要被清帳(Clearing)。在 FS00 設置科目的時候,有一個選項是 'Open Item Mngment',該選項選中后,表示財務憑證行項目中記賬科目為此科目時,該行項目有未清或者已清的狀態。
      已清項(Close Item),表示該行項目已經被清帳。
      具體應用中,'Open Item Mngment' 用得比較普遍的是應收(客戶)和應付(供應商)的科目。
      此外,在總帳中,也有一些應用,比如對于銀行的對賬單,也一般使用,這樣可以再對帳無誤后再做清帳。

      為什么需要使用到未清項管理?目的是為了記錄完整的業務交易。比如對客戶A有兩筆應收款 A1 與 A2,A1 因為有些商務糾紛,可能需要進一步交涉,所以客戶先針對 A2付款。如果沒有未清項管理,這一筆收款可能只能針對時間順序靠前的交易 A1 了,顯然,這樣是一種比較混亂的狀態。實際上,幾乎大部分科目理論上都可以進行未清項管理,但是,有可能這樣做不能帶來顯著的效益反而帶來管理成本的增加。

      6)未清項和已清項sap提供的TCODE
      在 SAP R/3 中,使用 FBL1N , FBL3N, FBL5N 分別可以查看供應商,總賬,客戶類型科目的未清已清項。

      BSEG于一般的透明表不同,它是一個簇表。對于一個簇表來說,除了主鍵項目外,其他項目都被編輯到一個長文本項目中,一起存儲在表簇RFBLG中的vardata項目中,這就決定了作為簇表的BSEG無法再建立鍵值以外的索引(INDEX),所以一般我們對于透明表來說當主鍵項目不全或完全沒有時,追加索引的作法對于BSEG表來說就不好用了。而BSEG簇表又是SAP系統中FI 會計模塊中最常被使用的數據表,所以運用好對BSEG表的訪問技術對于FI會計模塊的擴展開發(ADDON)至關重要。

      這篇文章我們就來談談如何高效地對BSEG進行訪問處理。

      對於簇表來說,在數據庫中沒有與之同名的實體物理表相對應,所以雖然其可在ABAP中使用,但還是有一些限制的:
      1. 不能使用Select distinct語法
      BSEG中的字段存儲在VARDATA中,所以不能使用distinct語句對單個項目去除重復。
      2. 不能使用Native SQL
      在數據庫中沒有與之同名的實體物理表相對應,所以不能使用Native SQL 對BSEG操作。
      3. 不能使用Order by 語法
      BSEG中的字段存儲在VARDATA中,所以不能使用Order by語句對單個項目排序。
      4. 不能再追加創建索引
      BSEG中的字段存儲在VARDATA中,所以不能再追加創建索引。

      除此之外,對BSEG的訪問要使用主鍵項目,如果沒有主鍵項目雖然語法調試能夠通過,但是程序執行起來,耗時長,效率低,而且隨著業務量的增加執行時間問題會越發嚴重,甚至導致程序不能正常執行結束。

      那么如果當鍵值不足時怎么辦呢?回答,使用二次索引透明表,具體方法如下描述。

      比如和銷售憑證有關的業務,根據銷售憑證編號和明細編號,選取相關會計憑證明細信息。
      SELECT *
      FROM BSEG
      WHERE VBEL2 = 'XXXXXXXXXX'     “ 銷售憑證編號
      AND POSN2 = 'YYYYYY'.      “ 銷售憑證明細編號
      在這個例子中,對BSEG的檢索條件中因為沒有主鍵項目,所以執行起來,程序很慢。

      變通的方法:
      1)首先根據銷售憑證編號和明細編號,從BSID中檢索出未清帳明細行項目。
      SELECT BURKS “ 公司代碼
      BELNR “ 財務憑證編號
      GJAHR “ 會計年度
      BUZEL “ 會計憑證中的行項目
      FROM BSID
      INTO TABLE TAB_KEY “ 存放主鍵項目的內部表
      WHERE VBEL2 = 'XXXXXXXXXX' “ 銷售憑證編號
      AND POSN2 = 'YYYYYY'. “ 銷售憑證明細編號

      2)再根據銷售憑證編號和明細編號,從BSAD中檢索出已清帳明細行項目。
      SELECT BURKS “ 公司代碼
      BELNR “ 財務憑證編號
      GJAHR “ 會計年度
      BUZEL “ 會計憑證中的行項目
      FROM BSAD
      APPEND TABLE TAB_KEY “ 存放主鍵項目的內部表
      WHERE VBEL2 = 'XXXXXXXXXX' “ 銷售憑證編號
      AND POSN2 = 'YYYYYY'. “ 銷售憑證明細編號

      3)然后再根據上面檢索出的主鍵列表,從BSEG中檢索出相應的明細行項目。
      SELECT BSCHL "転記キー
      KOART "勘定タイプ
      UMSKZ "特殊仕訳コ
      SHKZG "借方/貸方
      HKONT "総勘定元帳
      GSBER "事業領域
      DMBTR "國內通貨額
      WRBTR "伝票通貨額
      ZUONR "ソートキー
      SGTXT "明細テキス
      ZFBDT "期日計算の
      ZTERM "支払條件キ
      ZLSCH "支払方法
      ZLSPR "支払保留キ
      HBKID "取引銀行の
      BVTYP "取引先銀行
      FROM BSEG
      INTO TABLE TAB_BSEG “ 存放檢索結果的內部表
      FOR ALL ENTRIES IN TAB_KEY “ 存放主鍵項目的內部表
      WHERE BUKRS = TAB_KEY-BUKRS. “ 公司代碼
      AND GJAHR = TAB_KEY-GJAHR “ 財務憑證編號
      AND BELNR = TAB_KEY-BELNR “ 會計年度
      AND BUZEI = TAB_KEY-BUZEI. “ 會計憑證中的行項目

      4)這么處理之所以能夠提高效率,關鍵還得對透明表BSID和BSAD追加以VBEL2(銷售憑證編號)和POSN2(銷售憑證明細編號)為鍵值的索引(對于透明表可追加索引)。

      這樣一來,1)和2)步驟地操作有索引,3)步驟的操作有全主鍵項目,檢索速度應該有保證。

      采購方面的業務、物料方面的業務等都可如法炮制。

      最后需要說明一點,不是所有的SAP體統都可以使用這種方法,能否使用取決于R/3系統的設計和配置。所以在試圖使用該方法時應充分調查相關透明表與BSEG中的紀錄是否相符,別速度提高了,結果處理對象范圍減小了或增大了,那就與初衷背道而馳了,效率的提升一定要在確保業務數據正確的基礎上再加以考慮。

      SAP R/3系統中也有幾個專門用來讀取BSEG表信息的函數,可適當參考使用,它們是:
      READ_BSEG
      GET_ALL_BSEG

      另外最有效率的方法是改善你的應用和需求,要使需求合理規范,這才能使效率達到最高化。

      考試輔導
      最近更新內容
      Google廣告
      18禁黄网站禁片无遮挡图片
      <rp id="i8pu5"></rp>
      <label id="i8pu5"><track id="i8pu5"></track></label>
      <rp id="i8pu5"></rp>

      <dd id="i8pu5"><pre id="i8pu5"></pre></dd>
    1. <dd id="i8pu5"></dd>

      <em id="i8pu5"></em><s id="i8pu5"><object id="i8pu5"></object></s>

        <button id="i8pu5"><object id="i8pu5"></object></button>