cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Create Batch Split in Delivery with BAPI_OUTB_DELIVERY_CHANGE

klsl
Discoverer
0 Likes
831

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.

Accepted Solutions (0)

Answers (0)