交货单修改 分批拣配

*&---------------------------------------------------------------------*
*& REPORT YBO_NOTE06
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT YBO_NOTE06.

DATA:
  LS_LIPS           TYPE LIPS,
  LS_VBKOK          TYPE VBKOK,
  LS_HEADER_DATA    TYPE BAPIOBDLVHDRCHG,
  LS_HEADER_CONTROL TYPE BAPIOBDLVHDRCTRLCHG,
  LV_DELIVERY       TYPE BAPIOBDLVHDRCHG-DELIV_NUMB,
  LS_TECHN_CONTROL  TYPE BAPIDLVCONTROL.

DATA:
  LT_VBPOK           TYPE TABLE OF VBPOK WITH HEADER LINE,
  LT_ITEM_DATA       TYPE TABLE OF BAPIOBDLVITEMCHG WITH HEADER LINE,
  LT_ITEM_CONTROL    TYPE TABLE OF BAPIOBDLVITEMCTRLCHG WITH HEADER LINE,
  LT_ITEM_DATA_BATCH TYPE TABLE OF /SPE/DOCUBATCH_DLV_ITEM_STY WITH HEADER LINE,
  LT_RETURN          TYPE TABLE OF BAPIRET2 WITH HEADER LINE,
  LT_ITEM_DATA_SPL   TYPE TABLE OF /SPE/BAPIOBDLVITEMCHG WITH HEADER LINE.


LV_DELIVERY = '8000000647' .

LS_HEADER_DATA-DELIV_NUMB = LV_DELIVERY.
LS_HEADER_CONTROL-DELIV_NUMB = LV_DELIVERY.

SELECT SINGLE *
 INTO LS_LIPS
 FROM LIPS
 WHERE VBELN = LV_DELIVERY
 .

CLEAR LT_ITEM_DATA.
LT_ITEM_DATA-DELIV_NUMB      = LV_DELIVERY.  "交货
LT_ITEM_DATA-DELIV_ITEM      = '000010'    .  "交货项目
APPEND LT_ITEM_DATA.
*
CLEAR LT_ITEM_CONTROL.
LT_ITEM_CONTROL-DELIV_NUMB   = LV_DELIVERY.  "交货
LT_ITEM_CONTROL-DELIV_ITEM   = '000010'    . "交货项目
LT_ITEM_CONTROL-CHG_DELQTY   = 'X'.
APPEND LT_ITEM_CONTROL.

CLEAR LT_ITEM_DATA_SPL.
LT_ITEM_DATA_SPL-DELIV_NUMB = LV_DELIVERY.  "交货
LT_ITEM_DATA_SPL-DELIV_ITEM = '000010'.            "交货项目
LT_ITEM_DATA_SPL-STGE_LOC = '3010'.
APPEND LT_ITEM_DATA_SPL.

CLEAR LT_ITEM_DATA.
LT_ITEM_DATA-DELIV_NUMB      = LV_DELIVERY.  "交货
LT_ITEM_DATA-DELIV_ITEM      = '900010'.            "交货项目
LT_ITEM_DATA-DLV_QTY         = '1'.       "数量
LT_ITEM_DATA-SALES_UNIT      = 'KG'.
LT_ITEM_DATA-BATCH           = '-1-2'.
LT_ITEM_DATA-FACT_UNIT_NOM   = LS_LIPS-UMVKZ.
LT_ITEM_DATA-FACT_UNIT_DENOM = LS_LIPS-UMVKN.
LT_ITEM_DATA-HIERARITEM      = '000010'.  "项目层次中的高级项目
LT_ITEM_DATA-USEHIERITM      = '1'.                 "使用层次项目(1:批次拆分)
APPEND LT_ITEM_DATA.
CLEAR LT_ITEM_CONTROL.
LT_ITEM_CONTROL-DELIV_NUMB   = LV_DELIVERY. "交货
LT_ITEM_CONTROL-DELIV_ITEM   = '900010'.           "交货项目
LT_ITEM_CONTROL-CHG_DELQTY   = 'X'.
APPEND LT_ITEM_CONTROL.
CLEAR LT_ITEM_DATA_SPL.
LT_ITEM_DATA_SPL-DELIV_NUMB = LV_DELIVERY.  "交货
LT_ITEM_DATA_SPL-DELIV_ITEM = '900010'.            "交货项目
LT_ITEM_DATA_SPL-STGE_LOC = '3010'.
APPEND LT_ITEM_DATA_SPL.


CALL FUNCTION 'BAPI_OUTB_DELIVERY_CHANGE'
  EXPORTING
    HEADER_DATA    = LS_HEADER_DATA
    HEADER_CONTROL = LS_HEADER_CONTROL
    DELIVERY       = LV_DELIVERY
    TECHN_CONTROL  = LS_TECHN_CONTROL
  TABLES
    ITEM_DATA      = LT_ITEM_DATA
    ITEM_CONTROL   = LT_ITEM_CONTROL
    RETURN         = LT_RETURN
    ITEM_DATA_SPL  = LT_ITEM_DATA_SPL.

LOOP AT LT_RETURN .
  WRITE: /,LT_RETURN-TYPE, LT_RETURN-ID, LT_RETURN-NUMBER, LT_RETURN-MESSAGE .
ENDLOOP.

COMMIT WORK AND WAIT .

LS_VBKOK-VBELN_VL = LV_DELIVERY .


CLEAR: LT_VBPOK.
LT_VBPOK-VBELN_VL   = LV_DELIVERY.
LT_VBPOK-POSNR_VL  = '900010'.
LT_VBPOK-VBELN   = LV_DELIVERY.
LT_VBPOK-POSNN  = '900010'.


LT_VBPOK-LFIMG       = '1'.       "数量
APPEND LT_VBPOK. CALL FUNCTION 'SD_DELIVERY_UPDATE_PICKING' EXPORTING VBKOK_WA = LS_VBKOK SYNCHRON = 'X' * NO_MESSAGES_UPDATE = ' ' * NICHT_SPERREN = ' ' * AUFRUFER_T = ' ' * IF_ERROR_MESSAGES_SEND = 'X' TABLES VBPOK_TAB = LT_VBPOK * PROT = . COMMIT WORK AND WAIT .

 

posted @ 2024-05-16 19:22  BoyBo  阅读(23)  评论(0)    收藏  举报