2025 Feb 03 3:56 PM - edited 2025 Feb 03 3:58 PM
Hello,
I will share the mapping of a BAPI_OUTB_DELIVERY_CHANGE to perform Batch Split of Delivery (TCode VL03N).
REPORT ztest.
DATA:
ls_header_data TYPE bapiobdlvhdrchg,
ls_header_control TYPE bapiobdlvhdrctrlchg,
lv_delivery TYPE bapiobdlvhdrchg-deliv_numb,
ls_techn_control TYPE bapidlvcontrol,
lt_item_data TYPE TABLE OF bapiobdlvitemchg,
ls_item_data TYPE bapiobdlvitemchg,
lt_item_control TYPE TABLE OF bapiobdlvitemctrlchg,
ls_item_control TYPE bapiobdlvitemctrlchg,
lt_return TYPE TABLE OF bapiret2.
" Input Data
lv_delivery = '0123456789'. "number of delivery
DATA(lv_material) = '0123456789'. "number of material (matnr)
DATA(lv_item_000010) = '000010'. "number of item (posnr)
DATA(lv_qty_000010) = '0'.
DATA(lv_item_900001) = '900001'. "Number of item in the batch split
DATA(lv_qty_900001) = '6'. "quantity you want to use from this batch
DATA(lv_batch_900001) = 'BATCH202501'. "(charg / batch)
DATA(lv_item_900002) = '900002'. "Number of item in the batch split
DATA(lv_qty_900002) = '4'. "quantity you want to use from this batch
DATA(lv_batch_900002) = 'BATCH202502'. "(charg / batch)
"START - HEADER DATA
ls_header_data-deliv_numb = lv_delivery.
"START - HEADER CONTROL
ls_header_control-deliv_numb = lv_delivery.
"START - TECHN_CONTROL
ls_techn_control-upd_ind = 'U'.
"START - ITEM_DATA - 000010
ls_item_data-deliv_numb = lv_delivery.
ls_item_data-deliv_item = lv_item_000010.
ls_item_data-material = |{ lv_material ALPHA = IN }|.
ls_item_data-dlv_qty = lv_qty_000010.
ls_item_data-dlv_qty_imunit = lv_qty_000010.
ls_item_data-fact_unit_nom = '1'.
ls_item_data-fact_unit_denom = '1'.
ls_item_data-conv_fact = '1'.
ls_item_data-dlv_qty_st_flo = lv_qty_000010.
APPEND ls_item_data TO lt_item_data.
"START - ITEM_CONTROL - 000010
ls_item_control-deliv_numb = lv_delivery.
ls_item_control-deliv_item = lv_item_000010.
ls_item_control-chg_delqty = abap_true.
APPEND ls_item_control TO lt_item_control.
"START - ITEM_DATA - 900001
ls_item_data-deliv_numb = lv_delivery.
ls_item_data-deliv_item = lv_item_900001.
ls_item_data-material = |{ lv_material ALPHA = IN }|.
ls_item_data-batch = lv_batch_900001.
ls_item_data-hieraritem = lv_item_000010.
ls_item_data-usehieritm = '1'.
ls_item_data-dlv_qty = lv_qty_900001.
ls_item_data-dlv_qty_imunit = lv_qty_900001.
ls_item_data-fact_unit_nom = '1'.
ls_item_data-fact_unit_denom = '1'.
ls_item_data-conv_fact = '1'.
ls_item_data-dlv_qty_st_flo = lv_qty_900001.
APPEND ls_item_data TO lt_item_data.
"START - ITEM_CONTROL - 900001
ls_item_control-deliv_numb = lv_delivery.
ls_item_control-deliv_item = lv_item_900001.
ls_item_control-chg_delqty = abap_true.
APPEND ls_item_control TO lt_item_control.
"START - ITEM_DATA - 900002
ls_item_data-deliv_numb = lv_delivery.
ls_item_data-deliv_item = lv_item_900002.
ls_item_data-material = |{ lv_material ALPHA = IN }|.
ls_item_data-batch = lv_batch_900002.
ls_item_data-hieraritem = lv_item_000010.
ls_item_data-usehieritm = '1'.
ls_item_data-dlv_qty = lv_qty_900002.
ls_item_data-dlv_qty_imunit = lv_qty_900002.
ls_item_data-fact_unit_nom = '1'.
ls_item_data-fact_unit_denom = '1'.
ls_item_data-conv_fact = '1'.
ls_item_data-dlv_qty_st_flo = lv_qty_900002.
APPEND ls_item_data TO lt_item_data.
"START - ITEM_CONTROL - 900002
ls_item_control-deliv_numb = lv_delivery.
ls_item_control-deliv_item = lv_item_900002.
ls_item_control-chg_delqty = abap_true.
APPEND ls_item_control TO lt_item_control.
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.
IF lt_return[] IS INITIAL.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = abap_true.
ENDIF.
Request clarification before answering.
| User | Count |
|---|---|
| 7 | |
| 6 | |
| 6 | |
| 4 | |
| 4 | |
| 4 | |
| 3 | |
| 3 | |
| 3 | |
| 3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.