DATA: ls_header TYPE bapiobdlvhdrchg,
ls_ctl TYPE bapiobdlvhdrctrlchg.
DATA: ls_tech TYPE bapidlvcontrol.
DATA: lt_item TYPE STANDARD TABLE OF bapiobdlvitemchg,
lt_ctl TYPE STANDARD TABLE OF bapiobdlvitemctrlchg.
DATA: lt_spl TYPE STANDARD TABLE OF /spe/bapiobdlvitemchg.
DATA: lt_ret TYPE bapiret2_t.
IF ct_item[] IS INITIAL.
RETURN.
ENDIF.
SELECT * INTO TABLE @DATA(lt_lips) FROM lips
FOR ALL ENTRIES IN @ct_item
WHERE vbeln = @ct_item-vbeln_vl
AND posnr = @ct_item-posnr_vl.
ls_tech = VALUE #( upd_ind = 'X' ).
ls_header = VALUE #( deliv_numb = VALUE #( ct_item[ 1 ]-vbeln_vl OPTIONAL ) ).
ls_ctl = VALUE #( deliv_numb = VALUE #( ct_item[ 1 ]-vbeln_vl OPTIONAL ) ).
lt_spl = VALUE #( FOR wa IN ct_item ( deliv_numb = wa-vbeln_vl deliv_item = wa-posnr_vl stge_loc = wa-lgort_vl ) ).
lt_item = VALUE #( FOR ls_lips IN lt_lips (
deliv_numb = ls_lips-vbeln
deliv_item = ls_lips-posnr
material = ls_lips-matnr
hieraritem = ls_lips-posnr
dlv_qty = ls_lips-lfimg
dlv_qty_imunit = ls_lips-lgmng
sales_unit = ls_lips-vrkme
sales_unit_iso = ls_lips-vrkme
base_uom = ls_lips-meins
base_uom_iso = ls_lips-meins
fact_unit_nom = ls_lips-umvkz
fact_unit_denom = ls_lips-umvkn
) ).
lt_ctl = VALUE #( FOR ls_lips IN lt_lips ( deliv_numb = ls_lips-vbeln deliv_item = ls_lips-posnr chg_delqty = abap_true ) ).
CALL FUNCTION 'BAPI_OUTB_DELIVERY_CHANGE'
EXPORTING
header_data = ls_header
header_control = ls_ctl
delivery = ls_header-deliv_numb
techn_control = ls_tech
TABLES
item_data = lt_item
item_control = lt_ctl
item_data_spl = lt_spl
return = lt_ret.
LOOP AT lt_ret TRANSPORTING NO FIELDS WHERE type = 'E' OR type = 'A'.
EXIT.
ENDLOOP.
IF sy-subrc <> 0.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
APPEND LINES OF lt_ret TO mt_ret.
ENDIF.
修改交单-BAPI_OUTB_DELIVERY_CHANGE DATA: ls_header TYPE bapiobdlvhdrchg, ls_ctl TYPE bapiobd
最新推荐文章于 2023-11-10 14:54:22 发布