‎2018 Dec 16 1:17 AM
Hello All,
I need to create sales order using BAPI_SALESORDER_CREATEFROMDAT2 i am posting my code when i run this bapi it was updating vbak(Header Info) but i am passing material,plant info also but it is not updating vbap table.
Do we need to pass item number also or any data i need to pass to BAPI_SALESORDER_CREATEFROMDAT2?
Please help me out ...
* Order Type
IF <l_fs_marc>-dispo = 'BS'.
<l_fs_order_header_in>-doc_type = 'ZOR'.
<l_fs_order_header_inx>-doc_type = 'X'.
ELSE.
<l_fs_order_header_in>-doc_type = 'ZTPO'.
<l_fs_order_header_inx>-doc_type = 'X'.
ENDIF.
*Sales Organization
<l_fs_order_header_in>-sales_org = '9001'.
<l_fs_order_header_inx>-sales_org = 'X'.
*Distribution Channel
<l_fs_order_header_in>-distr_chan = '02'.
<l_fs_order_header_inx>-distr_chan = 'X'.
*Division
<l_fs_order_header_in>-division = <l_fs_mara>-spart.
<l_fs_order_header_inx>-division = 'X'.
*Customer sold to
<l_fs_order_partners>-partn_role = 'AG'.
<l_fs_order_partners>-partn_numb = <l_fs_kna1>-kunnr.
APPEND <l_fs_order_partners> TO li_order_partners.
*Customer ship to
<l_fs_order_partners>-partn_role = 'WE'.
<l_fs_order_partners>-partn_numb = <l_fs_kna1>-kunnr.
APPEND <l_fs_order_partners> TO li_order_partners.
*Purchase Order Number
<l_fs_order_header_in>-purch_no_c = <l_fs_eban>-banfn.
<l_fs_order_header_inx>-purch_no_c = 'X'.
*Item
<l_fs_order_items_in>-itm_number = 10.
<l_fs_order_items_inx>-itm_number = 'X'.
*Material
<l_fs_order_items_in>-material = <l_fs_eban>-matnr.
<l_fs_order_items_inx>-material = 'X'.
*Plant
<l_fs_order_items_in>-plant = <l_fs_eban>-werks.
<l_fs_order_items_inx>-plant = 'X'.
*Quantity
<l_fs_order_items_in>-target_qty = <l_fs_eban>-menge.
<l_fs_order_items_inx>-target_qty = 'X'.
APPEND <l_fs_order_items_in> TO li_order_items_in.
CLEAR : <l_fs_order_items_in>.
APPEND <l_fs_order_items_inx> TO li_order_items_ix.
CLEAR <l_fs_order_items_inx>.
*Requested delivery date
<l_fs_order_header_in>-req_date_h = <l_fs_eban>-lfdat.
<l_fs_order_header_inx>-req_date_h = 'X'.
ENDIF.
** call BAPI_SALESORDER_CREATEFROMDAT2 to create sales order
CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2'
EXPORTING
order_header_in = <l_fs_order_header_in>
order_header_inx = <l_fs_order_header_inx>
IMPORTING
salesdocument = lv_vbeln
TABLES
return = li_return
order_items_in = li_order_items_in
order_items_inx = li_order_items_inx
order_partners = li_order_partners.
LOOP AT li_return ASSIGNING <l_fs_return> WHERE type = 'E' OR type = 'A'.
EXIT.
ENDLOOP.
IF sy-subrc EQ 0.
WRITE: / 'Error in creating document'.
ELSE.
*Commit the work.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
ENDIF.
‎2018 Dec 17 7:36 AM
Can you please provide what error details does it return in LI_RETURN table?
Nabheet