外向交貨單批次拆分api
目錄ide
外向交貨單批次拆分測試
1、前臺操做blog
2、BAPI處理圖片
3、庫表字段it
4、備註:table
1、前臺操做class
VL02N配置
選中行,點批次拆分方法
填寫批次後,回車,會將項目號和庫位自動帶出(視具體配置而定)
點保存後,原來航項目10數量自動變動
刪除拆分:
選中拆分項目,點刪除
10主行項目數量會自動更新
2、BAPI處
REPORT YLM_TEST045.
PARAMETERS P_VBELN TYPE VBELN_VL DEFAULT '8000003765'.
"測試批次拆分
DATA:
IT_HEADER_PARTNER LIKE TABLE OF BAPIDLVPARTNERCHG ,"交貨:合做夥伴更改
IT_HEADER_DEADLINES LIKE TABLE OF BAPIDLVDEADLN ,"交貨截止日期
IT_ITEM_DATA LIKE TABLE OF BAPIOBDLVITEMCHG ,"更改外向交貨揀配數據項目等級
IT_ITEM_CONTROL LIKE TABLE OF BAPIOBDLVITEMCTRLCHG ,"外向交貨項目級別控制數據
ET_RETURN LIKE TABLE OF BAPIRET2 WITH HEADER LINE ,"返回參數
IT_ITEM_DATA_SPL LIKE TABLE OF /SPE/BAPIOBDLVITEMCHG ,"更改向外交貨揀配數據項目等級(SPE)
IS_HEADER_DATA LIKE BAPIOBDLVHDRCHG ,"更改外向交貨揀配數據表頭等級
IS_HEADER_CONTROL LIKE BAPIOBDLVHDRCTRLCHG ,"外向交貨標題級別控制數據
IV_DELIVERY LIKE BAPIOBDLVHDRCHG-DELIV_NUMB ."交貨
DATA:
LW_HEADER_PARTNER LIKE BAPIDLVPARTNERCHG ,"交貨:合做夥伴更改
LW_HEADER_DEADLINES LIKE BAPIDLVDEADLN ,"交貨截止日期
LW_ITEM_DATA LIKE BAPIOBDLVITEMCHG ,"更改外向交貨揀配數據項目等級
LW_ITEM_CONTROL LIKE BAPIOBDLVITEMCTRLCHG ,"外向交貨項目級別控制數據
LW_RETURN LIKE BAPIRET2 ."返回參數
DATA: L_TECHN_CONTROL TYPE BAPIDLVCONTROL.
DATA:
LS_ITEM TYPE BAPIOBDLVITEMCHG,
LS_ITEM_T TYPE BAPIOBDLVITEMCHG,
LS_ITEM_CONTROL TYPE BAPIOBDLVITEMCTRLCHG,
LS_DEADLINES TYPE BAPIDLVDEADLN.
IV_DELIVERY = P_VBELN. "交貨單號
"頭信息
IS_HEADER_DATA-DELIV_NUMB = P_VBELN. "交貨單號
IS_HEADER_CONTROL-DELIV_NUMB = P_VBELN.
"修改原10行項目數量
CLEAR LW_ITEM_DATA.
LW_ITEM_DATA-DELIV_NUMB = P_VBELN.
LW_ITEM_DATA-DELIV_ITEM = 10. "原行項目
LW_ITEM_DATA-DLV_QTY = 1.
LW_ITEM_DATA-DLV_QTY_IMUNIT = 1.
LW_ITEM_DATA-BASE_UOM = 'TO'. "基本單位
LW_ITEM_DATA-SALES_UNIT = 'TO'. "銷售單位
LW_ITEM_DATA-FACT_UNIT_NOM = 1. "銷售數量轉換成SKU的分子(因子)
LW_ITEM_DATA-FACT_UNIT_DENOM = 1. "銷售數量轉換爲 SKU 的值(除數)
APPEND LW_ITEM_DATA TO IT_ITEM_DATA .
CLEAR LW_ITEM_CONTROL.
LW_ITEM_CONTROL-DELIV_NUMB = P_VBELN.
LW_ITEM_CONTROL-DELIV_ITEM = 10. "原行項目
LW_ITEM_CONTROL-CHG_DELQTY = 'X'. "數量修改標誌
APPEND LW_ITEM_CONTROL TO IT_ITEM_CONTROL.
"新拆分的批次
CLEAR LW_ITEM_DATA.
LW_ITEM_DATA-DELIV_NUMB = P_VBELN.
LW_ITEM_DATA-DELIV_ITEM = '900001'. "拆分後的新行項目
LW_ITEM_DATA-HIERARITEM = 10. "上級行項目
LW_ITEM_DATA-BATCH = 'YS91480001'. "新批次
LW_ITEM_DATA-DLV_QTY = 1. "本身從新計算拆分後的數量,
LW_ITEM_DATA-DLV_QTY_IMUNIT = 1.
LW_ITEM_DATA-FACT_UNIT_NOM = 1. "銷售數量轉換成SKU的分子(因子)
LW_ITEM_DATA-FACT_UNIT_DENOM = 1. "銷售數量轉換爲 SKU 的值(除數)
LW_ITEM_DATA-BASE_UOM = 'TO'. "基本單位
LW_ITEM_DATA-SALES_UNIT = 'TO'. "銷售單位
LW_ITEM_DATA-USEHIERITM = '1'.
APPEND LW_ITEM_DATA TO IT_ITEM_DATA.
CLEAR LW_ITEM_DATA.
LW_ITEM_DATA-DELIV_NUMB = P_VBELN.
LW_ITEM_DATA-DELIV_ITEM = '900002'. "拆分後的新行項目
LW_ITEM_DATA-HIERARITEM = 10. "上級行項目
LW_ITEM_DATA-BATCH = 'YS91480002'."新批次
LW_ITEM_DATA-DLV_QTY = 1.
LW_ITEM_DATA-DLV_QTY_IMUNIT = 1.
LW_ITEM_DATA-FACT_UNIT_NOM = 1. "銷售數量轉換成SKU的分子(因子)
LW_ITEM_DATA-FACT_UNIT_DENOM = 1. "銷售數量轉換爲 SKU 的值(除數)
LW_ITEM_DATA-BASE_UOM = 'TO'. "基本單位
LW_ITEM_DATA-SALES_UNIT = 'TO'. "銷售單位
LW_ITEM_DATA-USEHIERITM = '1'.
APPEND LW_ITEM_DATA TO IT_ITEM_DATA.
CLEAR LW_ITEM_CONTROL.
LW_ITEM_CONTROL-DELIV_NUMB = P_VBELN.
LW_ITEM_CONTROL-DELIV_ITEM = '900001'. "拆分後的新行項目
LW_ITEM_CONTROL-CHG_DELQTY = 'X'. "數量修改標誌
APPEND LW_ITEM_CONTROL TO IT_ITEM_CONTROL .
CLEAR LW_ITEM_CONTROL.
LW_ITEM_CONTROL-DELIV_NUMB = P_VBELN.
LW_ITEM_CONTROL-DELIV_ITEM = '900002'."拆分後的新行項目
LW_ITEM_CONTROL-CHG_DELQTY = 'X'. "數量修改標誌
APPEND LW_ITEM_CONTROL TO IT_ITEM_CONTROL .
CALL FUNCTION 'BAPI_OUTB_DELIVERY_CHANGE'
EXPORTING
HEADER_DATA = IS_HEADER_DATA
HEADER_CONTROL = IS_HEADER_CONTROL
DELIVERY = IV_DELIVERY
TABLES
HEADER_PARTNER = IT_HEADER_PARTNER
HEADER_DEADLINES = IT_HEADER_DEADLINES
ITEM_DATA = IT_ITEM_DATA
ITEM_CONTROL = IT_ITEM_CONTROL
RETURN = ET_RETURN
* ITEM_DATA_SPL = IT_ITEM_DATA_SPL
.
DATA: L_MSG TYPE STRING.
IF ET_RETURN[] IS INITIAL.
COMMIT WORK AND WAIT.
WRITE:/ '批次拆分紅功'.
RETURN.
ENDIF.
LOOP AT ET_RETURN WHERE TYPE = 'E'.
CLEAR L_MSG.
MESSAGE ID ET_RETURN-ID
TYPE 'E'
NUMBER ET_RETURN-NUMBER
WITH ET_RETURN-MESSAGE_V1
ET_RETURN-MESSAGE_V2
ET_RETURN-MESSAGE_V3
ET_RETURN-MESSAGE_V4
INTO L_MSG.
WRITE:/ L_MSG.
ENDLOOP.
3、庫表字段
主要字段:LIPS~ UECHA:批次拆分項目的上層項目
LIKP
LIPS
VBFA: 銷售憑證流
4、備註:
BAPI中table參數:ITEM_DATA_SPL
這個結構
主要是給庫存地點賦值的。
具體可能跟配置有關,好比我這裏,及時bapi裏寫入了值,也不能進行修改
最後在加強裏處理的:
BADI:LE_SHP_DELIVERY_PROC
方法:CHANGE_DELIVERY_ITEM
修改的參數:CS_LIPS
直接把庫存地點賦值到這裏便可
至於
LW_ITEM_DATA-USEHIERITM = '1'. 爲啥賦值爲1
請點進去自行查看!