Quick_guide_BAPI_Doc_1731900995
Quick_guide_BAPI_Doc_1731900995
CONSTANTS:
lc_ag TYPE parvw VALUE 'AG',
lc_we TYPE parvw VALUE 'WE',
lc_key TYPE sdsalesdoc_key VALUE '0000000000000000’.
*&---------------------Sales Header--------------------------------
*&---------------------Sales Items--------------------------------
CLEAR lr_item_bapi_ext.
lo_bapi_mapping = cl_cfd_bapi_mapping=>get_instance( ).
lo_bapi_mapping->map_to_bapiparex_multi(
EXPORTING ir_source_table = lr_item_bapi_ext
CHANGING ct_bapiparex = lt_extension ).
*&-------------------------------------------
*&-Remove Delivery Block from Sales Order
*&-------------------------------------------
DATA(ls_header) = VALUE bapisdh1( dlv_block = space ).
DATA(ls_header_x) = VALUE bapisdh1x( updateflag = lc_upd_flg
dlv_block = abap_true
).
*&----------------------BAPI CALL ------------------------------------
*&-----------------------------------
*&-Changing delivery quantity to be 0
*&-----------------------------------
lt_vbpok = VALUE #( BASE lt_vbpok
(
vbeln_vl = LIKP-VBELN
posnr_vl = LIPS-POSNR
matnr = LIPS-MATNR
lfimg = 0
lianp = abap_true
umvkz = 1
umvkn = 1
z_cfl_field1 = lv_custom_field1
)
).
------------OR--------------
DATA: ls_header_Data TYPE bapiobdlvhdrchg,
ls_header_Control TYPE bapiobdlvhdrctrlchg,
lt_item_control TYPE STANDARD TABLE OF bapiobdlvitemctrlchg,
lt_item_data TYPE STANDARD TABLE OF bapiobdlvitemchg,
lt_return TYPE STANDARD TABLE OF bapiret2.
) ).
lt_item_control = VALUE #( (
deliv_numb = p_delv
deliv_item = LIPS-POSNR
chg_delqty = abap_true ) ).
*&-----------------------BAPI_CALL ----------------------------------
ls_vbkok-vbeln_vl = LIKP-VBELN.
ls_vbkok-wabuc = abap_true.
------------OR--------------
CALL FUNCTION 'WS_DELIVERY_UPDATE_2'
EXPORTING
vbkok_wa = ls_vbkok
synchron = abap_true
delivery = p_delv
update_picking = abap_true
if_database_update_1 = '1'
nicht_sperren_1 = '1'
TABLES
vbpok_tab = lt_vbpok
prot = lt_prot.
IF NOT line_exists( lt_prot[ msgty = if_xo_const_message=>error ] ).
CALL FUNCTION ‘BAPI_TRANSACTION_COMMIT’.
ENDIF.
Guide for Important BAPI’s to be executed in Business Processes
7. PO create >>
8. PO change>>
*&-----------------------Extension --------------------------------
CLEAR lo_bapi_mapping.
lo_bapi_mapping = cl_cfd_bapi_mapping=>get_instance( ).
TRY.
lo_bapi_mapping->map_to_bapiparex_single(
EXPORTING ir_source_structure = lr_hd_bapi_ext_po
CHANGING ct_bapiparex = lt_bapiextension ).
CATCH cx_cfd_bapi_mapping.
ENDTRY.
Guide for Important BAPI’s to be executed in Business Processes
*&---------------------------
** Remove the delivery block
*&--------------------------
CALL FUNCTION 'BAPI_PO_CHANGE' "#EC CI_USAGE_OK[2438131]
EXPORTING
purchaseorder = lv_doc_num
poheader = ls_po_header
poheaderx = ls_po_headerx
TABLES
return = lt_return
poitem = lt_poitem
poitemx = lt_poitemx
extensionin = lt_bapiextension.
) ).
*&-------------------------------------------------------------
* Item Details-Fill only which are applicable as per scenario
*&----------------------------------------------------------
itemno_acc = '0000000001',
gl_account = SKA1-SAKNR
bus_area = BSEG-GSBER
profit_ctr = BSEG-PRCTR
businessplace = BSEG-BUPLA
item_text = BSEG-SGTXT
) ).
itemno_acc = '0000000002',
customer = BSEG-KUNNR
bus_area = BSEG-GSBER
businessplace = BSEG-BUPLA
profit_ctr = BSEG-PRCTR
item_text = BSEG-SGTXT ) ).
Guide for Important BAPI’s to be executed in Business Processes
itemno_acc = '0000000001'
currency = BSEG-DMBTR
amt_doccur = BSEG-WRBTR
amt_base = BSEG-HWBAS )
( itemno_acc = '0000000002'
currency = BSEG-DMBTR
amt_doccur = BSEG-WRBTR
amt_base = BSEG-HWBAS )).
itemno_acc = '0000000001'
vendor_no = BSEG-LIFNR
bus_area = BSEG-GSBER
businessplace = BSEG-BUPLA
sectioncode = BSEG-SECCO
profit_ctr = BSEG-PRCTR
item_text = BSEG-SGTXT ) ).
"above tables.
IF line_exists( lt_bapiret2_rt[
type = if_xo_const_message=>error ] ).
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
ENDIF.
Guide for Important BAPI’s to be executed in Business Processes
ls_bapibus1006_address = VALUE #(
c_o_name = VALUE1
city = VALUE2
street = VALUE3
country = VALUE4
district = VALUE5
postl_cod1 = VALUE6
region = VALUE7 ).
ls_bapibus1006_address_x = VALUE #(
district = abap_true
street = abap_true
country = abap_true
region = abap_true
city = abap_true
c_o_name = abap_true
postl_cod1 = abap_true ).
lt_bapiadtel = VALUE #( (
telephone = VALUE8
extension = VALUE9
tel_no = VALUE10 ) ).
lt_bapiadsmtp = VALUE #( (
e_mail = VALUE11) ).
IF line_exists( lt_bapiret2[
type = if_xo_const_message=>error ] ).
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
ENDIF.