交貨單批次拆分

外向交貨單批次拆分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

請點進去自行查看!

相關文章
相關標籤/搜索