讀取主要資料資訊函數

來源:互聯網
上載者:User

如有轉載請註明出處:http://blog.csdn.net/donkey2004112103/archive/2009/05/03/4145450.aspx

程式中經常會要根據客戶或者供應商編號得到他們的描述資訊,或者公司代碼,分銷渠道等等,都是要根據代碼得到描述資訊,如果在select語句中做內串連是可以做到,只是比較麻煩,不是很靈活。SAP中提供了很多讀取這些資訊的函數。總結下。

1.function group APAR_MASTER

這個函數組下面有四個函數,功能名稱分別如下。

KNA1_READ_SINGLE :根據客戶編碼得到客戶的資訊

KNB1_READ_SINGLE:得到客戶主要資料 (公司代碼)資訊

LFA1_READ_SINGLE:根據供應商編碼得到供應商資訊

LFB1_READ_SINGLE:得到供應商主要資料(公司代碼)資訊

函數賞析:

這個function group下的函數寫的思路都一樣,比較巧妙的地方是用了statics變數用來儲存之前讀過的5次記錄,而且是隊列的形式插入,保證最近查詢記錄會儲存下來,從而提高命中率。這部分寫的非常不錯,摘錄下來:

INSERT ES_KNA1 INTO ST_KNA1 INDEX 1.
      DESCRIBE TABLE ST_KNA1 LINES LD_BUFFER_LINES.
      IF LD_BUFFER_LINES GT GC_KNA1_MAX_LINES.
           DELETE ST_KNA1 INDEX LD_BUFFER_LINES.
      ENDIF.

以上這部分代碼保證查詢的結果先入先出,後入後出,提高查詢命中率。

2.function group MG05

此函數組裡包含很多function module,不過目前我用到的就是T001_SINGLE_READ。和上面的命名規則有點不同,不知道是sap故意還是不小心犯的錯誤,READ和SIGNLE單詞順序發生了變化。

T001_SINGLE_READ:根據公司代碼得到公司資訊

函數賞析:

同樣用到了STATICS變數來儲存查詢結果,但是值儲存了一條記錄。不知道為什麼SAP這個時候只儲存一條記錄,從哪方面考慮的。用了FEHLER(1)這樣一個變數去記錄是否有查詢的結果存在。

3.function group MG46

此函數組下的幾乎所有function都已SINGLE_READ結束,目前用過的函數如下。

TVKOT_SINGLE_READ:根據銷售組織和語言代碼得到銷售組織的文本資訊。

TVTWT_SINGLE_READ: 根據分銷渠道代碼和語言得到分銷渠道的文本資訊。

4. 總結

為了得到文本描述資訊,可以在SE37中通過關鍵字搜尋這些函數。還有一個更通用的方法以VKORG為例,在表VBRK中點擊entry help/check,再雙擊進入VKORG的check table:TVKO。進入後選擇Goto->文本表可以找到對應的主記錄存在那張表裡。

再根據文本表去SE37中搜尋就能很快找到你要的函數了。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.