‎2007 Apr 07 12:59 AM
Hi all,
i am trying to create sales order using BAPI_SALESORDER_CREATEFROMDAT2 bapi
i got the following error.
219Sales document was not changed
loop at it_salesorder.
clear: it_order_items,
it_order_itemsx,
it_order_partners,
it_order_schdl,
it_order_schdlx,
it_return.
refresh: it_order_items,
it_order_itemsx,
it_order_partners,
it_order_schdl,
it_order_schdlx,
it_return.
Order header
BAPISDHD-doc_type = it_salesorder-auart.
BAPISDHD-distr_chan = it_salesorder-vtweg .
BAPISDHD-division = it_salesorder-spart.
BAPISDHD-sales_org = it_salesorder-vkorg.
BAPISDHD-purch_no_c = it_salesorder-bstnk.
BAPISDHD-purch_date = it_salesorder-bstdk.
BAPISDHD-REQ_DATE_H = it_salesorder-J_3ARQDA.
BAPISDHD-CANCEL_DATE = it_salesorder-J_3ACADA.
BAPISDHD-doc_DATE = it_salesorder-Audat.
BAPISDHD-name = it_salesorder-BNAME.
BAPISDHD-ORD_REASON = it_salesorder-augru.
BAPISDHD-PMNTTRMS = it_salesorder-zterm.
BAPISDHD-DLVSCHDUSE = it_salesorder-ABRVW.
BAPISDHD-PMNTTRMS = it_salesorder-zterm.
BAPISDHDX-doc_type = 'x'.
BAPISDHDX-distr_chan = 'x' .
BAPISDHDX-division = 'x'.
BAPISDHDX-sales_org = 'x'.
BAPISDHDX-purch_no_c = 'x'.
BAPISDHDX-purch_date = 'x'.
BAPISDHDX-REQ_DATE_H = 'x'.
BAPISDHDX-CANCEL_DATE = 'x'.
BAPISDHDX-doc_DATE = 'x'.
BAPISDHDX-name = 'x'.
BAPISDHDX-ORD_REASON = 'x'.
BAPISDHDX-PMNTTRMS = 'x'.
Partner data
it_order_partners-partn_role = 'WE'.
it_order_partners-partn_numb = it_salesorder-kunnr.
append it_order_partners.
CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2'
EXPORTING
SALESDOCUMENTIN =
ORDER_HEADER_IN = BAPISDHD
ORDER_HEADER_INX = BAPISDHDX
SENDER =
BINARY_RELATIONSHIPTYPE =
INT_NUMBER_ASSIGNMENT =
BEHAVE_WHEN_ERROR =
LOGIC_SWITCH =
TESTRUN =
CONVERT = ' '
IMPORTING
SALESDOCUMENT =
TABLES
RETURN = it_return
ORDER_ITEMS_IN =
ORDER_ITEMS_INX =
ORDER_SCHEDULES_IN =
ORDER_SCHEDULES_INX =
ORDER_PARTNERS = it_order_partners
ORDER_CONDITIONS_IN =
ORDER_CFGS_REF =
ORDER_CFGS_INST =
ORDER_CFGS_PART_OF =
ORDER_CFGS_VALUE =
ORDER_CFGS_BLOB =
ORDER_CFGS_VK =
ORDER_CFGS_REFINST =
ORDER_CCARD =
ORDER_TEXT =
ORDER_KEYS =
EXTENSIONIN =
PARTNERADDRESSES =
.
WRITE:/ IT_RETURN-TYPE,
2 IT_RETURN-ID,
22 IT_RETURN-NUMBER,
25 IT_RETURN-MESSAGE,
/ IT_RETURN-LOG_NO,
/ IT_RETURN-LOG_MSG_NO,
/ IT_RETURN-MESSAGE_V1,
/ IT_RETURN-MESSAGE_V2,
/ IT_RETURN-MESSAGE_V3,
/ IT_RETURN-MESSAGE_V4,
/ IT_RETURN-PARAMETER,
/ IT_RETURN-ROW,
/ IT_RETURN-FIELD,
/ IT_RETURN-SYSTEM.
READ TABLE it_return WITH KEY type = 'E'.
IF sy-subrc = 0.
*-- error occured
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
ELSE.
*-- no error
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = ' '.
IMPORTING
RETURN =
ENDIF.
ENDLOOP.
‎2007 Apr 07 3:13 AM
Hi,
<b>Whe you are CREATING a sales order you do not have to send data in BAPISDHDX structure</b>. Do not pass any data in structure BAPISDHDX and check again.
Also, whenever you use BAPI_TRANSACTION_COMMIT, always use WAIT = 'X'. So the system will wait until the commit work is done.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = ' X'.
IMPORTING
RETURN = it_return.Let me know if you still have a problem.
Regards,
RS