關於SAP 資訊記錄失效的排除

2021-07-13 15:59:09 字數 2181 閱讀 5241

今天接到乙個需求,mm模組對物料進行處理的時候,需要考慮物料的資訊記錄是否有效。

業務顧問給我提了個需求:

問題:zppr0001_new寄售**有時存在多**商庫存時,先消耗庫存少的**商庫存。當該**商物料寄售資訊記錄失效時,系統仍對其進行寄售**有。

現更改邏輯為:抓取寄售庫存時,排除資訊記錄失效的**商庫存。

滿足以下任一條件則判斷資訊記錄為失效,需排除:

1. 通過**商、物料關聯eina-lifnr、eina-matnr,eina-loekz為「x」。

2. 通過eina-infnr關聯eine-infnr且eine-werks為「1000」、eine-esokz為「2」,eine-loekz為「x」。

3. 通過**商、物料、工廠、資訊類別2關聯a017-lifnr、a017-matnr、a017-werks、a017-esokz,當前日期不在有效期間(有效從a017-datab,有效到a017-datbi)內。

4. 通過a017-knumh關聯konp-knumh,konp-loevm_ko為「x」或者konp-kbetr為「0」。

這個關關係圖和網上資料的一副關係圖有出入,原圖應該搞錯了。

然後我使用abap實現需求裡的東東,當我把**寫完後,突然想到,好像有bapi可以檢查資訊記錄,於是趕緊找了一下。

bapi_inforecord_getlist

這個bapi經我和mm業務顧問測試,可以用來檢查資訊記錄是否完整:

1.  如果沒有資訊記錄,bapi返回0條記錄.

2.  如果資訊記錄中的**有效期失效,bapi返回的記錄裡面,**是0.

那麼,還是用bapi優先吧

"---------------資訊記錄過期排除----------------------

data gt_purchorg like table of bapieine with header line.

data gs_purchorg like bapieine .

loop at t_mkol.

"物料號補零

call function 'conversion_exit_matn1_input'

exporting

input = t_mkol-matnr

importing

output = t_mkol-matnr.

"**商補0

call function 'conversion_exit_alpha_input'

exporting

input = t_mkol-lifnr

importing

output = t_mkol-lifnr.

call function 'bapi_inforecord_getlist'

exporting

vendor = t_mkol-lifnr

material = t_mkol-matnr

purch_org = '1000'

info_type = '2'

plant = t_mkol-werks

purchorg_data = 'x'

tables

inforecord_purchorg = gt_purchorg.

if gt_purchorg is initial.

delete t_mkol from t_mkol.

else.

read table gt_purchorg index 0 into gs_purchorg .

if gs_purchorg-net_price = 0.

delete t_mkol from t_mkol.

endif.

endif.

endloop.

"---------------資訊記錄過期排除----------------------



關於日誌的資訊記錄

private integer id id名稱 private string visittime 訪問的時間 訪問的時間會在插入資料庫的時候進行新增 private string executetime 執行方法的時間 private string url 訪問的路徑 private string ...

關於sap的字段和物件修改記錄的查詢

sap的字段和物件的修改都會儲存舊值,資料儲存在cdhdr和cdpos表中,對於提取舊值你可以採用兩種方法 1 使用sap的標準函式changedocument read headers 和changedocument read positions 2 使用select語句直接從表中讀取。直接使用s...

關於SAP的編碼範圍

1.numberrange的通用tcode snro 2.number range的通用讀取函式 number get next 3.如有跳號現象,可以禁用物件的buffer試試 4.幾個關於number range的函式組 snr0 online maint.of number ranges gr...