Dec 17, 2020

Batch Split in IBD via BAPI_INB_DELIVERY_CHANGE

 Stolen from answers.sap.com

REPORT z_delivery_batch_split.

DATA:header_data LIKE bapiibdlvhdrchg,
     header_control LIKE bapiibdlvhdrctrlchg,
     delivery LIKE bapiibdlvhdrchg-deliv_numb,
     ls_return LIKE bapiret2,
     item_data TYPE TABLE OF bapiibdlvitemchg,
     item_control TYPE TABLE OF bapiibdlvitemctrlchg,
     ls_item_data LIKE bapiibdlvitemchg,
     ls_item_control LIKE bapiibdlvitemctrlchg,
     return TYPE TABLE OF bapiret2 WITH NON-UNIQUE KEY type.

header_data-deliv_numb = '1800005005'.
header_control-deliv_numb = '1800005005'.
delivery = '1800005005'.
ls_item_data-deliv_numb = '1800005005'.
ls_item_data-deliv_item = '900001'.
ls_item_data-material = '000000000020067722'.
ls_item_data-batch = <NEW_BATCH_NUMBER>.
ls_item_data-hieraritem = '000010'.
ls_item_data-usehieritm = '1'.
ls_item_data-dlv_qty = 80.
ls_item_data-dlv_qty_imunit = 80.
ls_item_data-fact_unit_nom = '1'.
ls_item_data-fact_unit_denom = '1'.
ls_item_data-sales_unit = 'EA'.
ls_item_data-base_uom = 'EA'.

APPEND ls_item_data TO item_data.
ls_item_data-deliv_numb = '1800005005'.
ls_item_data-deliv_item = '900002'.
ls_item_data-material = '000000000020067722'.
ls_item_data-batch = <NEW_BATCH_NUMBER>.
ls_item_data-hieraritem = '000010'.
ls_item_data-usehieritm = '1'.
ls_item_data-dlv_qty = 60.
ls_item_data-dlv_qty_imunit = 60.
ls_item_data-fact_unit_nom = '1'.
ls_item_data-fact_unit_denom = '1'.
ls_item_data-sales_unit = 'EA'.
ls_item_data-base_uom = 'EA'.

APPEND ls_item_data TO item_data.
ls_item_control-deliv_numb = '1800005005'.
ls_item_control-deliv_item = '900001'.
ls_item_control-chg_delqty = 'X'.

APPEND ls_item_control TO item_control.
ls_item_control-deliv_numb = '1800005005'.
ls_item_control-deliv_item = '900002'.
ls_item_control-chg_delqty = 'X'.
APPEND ls_item_control TO item_control.

CALL FUNCTION 'BAPI_INB_DELIVERY_CHANGE'
EXPORTING
    header_data = header_data
    header_control = header_control
    delivery = delivery
   * TECHN_CONTROL = TECHN_CONTROL
TABLES
* HEADER_PARTNER = HEADER_PARTNER
* HEADER_PARTNER_ADDR = HEADER_PARTNER_ADDR
* HEADER_DEADLINES = HEADER_DEADLINES
    item_data = item_data
    item_control = item_control
* ITEM_SERIAL_NO = ITEM_SERIAL_NO
* EXTENSION1 = EXTENSION1
* EXTENSION2 = EXTENSION2
    return = return
* TOKENREFERENCE = TOKENREFERENCE
* HANDLING_UNIT_HEADER = HANDLING_UNIT_HEADER
* HANDLING_UNIT_ITEM = HANDLING_UNIT_ITEM
* PARTIAL_GR_OBJECTS = PARTIAL_GR_OBJECTS
.

READ TABLE return
INTO ls_return
WITH TABLE KEY type = 'E'.
IF sy-subrc = 0.
MESSAGE ID ls_return-id TYPE ls_return-type NUMBER ls_return-number WITH s_return-message_v1 ls_return-message_v2
ls_return-message_v3 s_return-message_v4.
ENDIF.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.

No comments:

Post a Comment

Batch Split in IBD via BAPI_INB_DELIVERY_CHANGE

 Stolen from answers.sap.com REPORT z_delivery_batch_split. DATA :header_data LIKE bapiibdlvhdrchg,      header_control LIKE bapiibdlvhdr...