‎2009 Feb 11 9:03 AM
Hello,
I am trying to use BAPI_SALESORDER_CREATEFROMDAT2 in SAP Version 4.0B system to create sales orders.
I have attached my sample code below but for some reason no sales order is being created and nothing is returned in the return parameter so I cannot tell what I am doing wrong.
Does anyone have any ideas?
I did notice that there were two other similarly named BAPIs in this system but I assumed this was the latest version (on this system).
Thanks,
Ruby
REPORT ZSD_SALES_ORDER_LOAD.
DATA: LS_ORDER_HEADER_IN LIKE BAPISDHD1,
LS_ORDER_HEADER_INX LIKE BAPISDHD1X.
DATA: LT_ORDER_ITEMS_IN LIKE BAPISDITM OCCURS 0 WITH HEADER LINE,
LT_ORDER_ITEMS_INX LIKE BAPISDITMX OCCURS 0 WITH HEADER LINE,
LT_RETURN LIKE BAPIRET2 OCCURS 0 WITH HEADER LINE,
LT_ORDER_PARTNERS LIKE BAPIPARNR OCCURS 0 WITH HEADER LINE.
Set default header data
LS_ORDER_HEADER_IN-SALES_ORG = 'SA01'.
LS_ORDER_HEADER_IN-DISTR_CHAN = 'C1'.
LS_ORDER_HEADER_IN-DIVISION = '01'.
LS_ORDER_HEADER_IN-SALES_GRP = '203'.
LS_ORDER_HEADER_IN-SALES_OFF = '0500'.
req date will need to come from file
LS_ORDER_HEADER_IN-REQ_DATE_H = SY-DATUM + 5.
LS_ORDER_HEADER_INX-UPDATEFLAG = 'U'.
LS_ORDER_HEADER_INX-SALES_ORG = 'X'.
LS_ORDER_HEADER_INX-DISTR_CHAN = 'X'.
LS_ORDER_HEADER_INX-DIVISION = 'X'.
LS_ORDER_HEADER_INX-SALES_GRP = 'X'.
LS_ORDER_HEADER_INX-SALES_OFF = 'X'.
LS_ORDER_HEADER_INX-REQ_DATE_H = 'X'.
lt_order_items_in-itm_number = '3397'.
LT_ORDER_ITEMS_IN-MATERIAL = '3397'.
LT_ORDER_ITEMS_IN-CUST_MAT22 = '1111111111111111111111'.
LT_ORDER_ITEMS_IN-TARGET_QTY = '1'.
LT_ORDER_ITEMS_IN-TARGET_QU = 'PC'.
APPEND LT_ORDER_ITEMS_IN.
LT_ORDER_ITEMS_INX-CUST_MAT22 = 'X'.
LT_ORDER_ITEMS_INX-TARGET_QTY = 'X'.
LT_ORDER_ITEMS_INX-TARGET_QU = 'X'.
APPEND LT_ORDER_ITEMS_INX.
LT_ORDER_PARTNERS-PARTN_ROLE = 'SH'.
LT_ORDER_PARTNERS-PARTN_NUMB = '327'.
APPEND LT_ORDER_PARTNERS.
LT_ORDER_PARTNERS-PARTN_ROLE = 'SP'.
LT_ORDER_PARTNERS-PARTN_NUMB = '327'.
APPEND LT_ORDER_PARTNERS.
CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2'
EXPORTING
SALESDOCUMENT =
ORDER_HEADER_IN = LS_ORDER_HEADER_IN
ORDER_HEADER_INX = LS_ORDER_HEADER_INX
SENDER =
BINARY_RELATIONSHIPTYPE = ' '
INT_NUMBER_ASSIGNMENT = ' '
BEHAVE_WHEN_ERROR = ' '
LOGIC_SWITCH = ' '
TESTRUN = ' '
CONVERT = ' '
IMPORTING
SALESDOCUMENT_EX =
TABLES
RETURN = LT_RETURN
ORDER_ITEMS_IN = LT_ORDER_ITEMS_IN
ORDER_ITEMS_INX = LT_ORDER_ITEMS_IN
ORDER_PARTNERS = LT_ORDER_PARTNERS
ORDER_SCHEDULES_IN =
ORDER_SCHEDULES_INX =
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 =
EXCEPTIONS
OTHERS = 1.
IF SY-SUBRC = 0.
ENDIF.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'
IMPORTING
RETURN =
EXCEPTIONS
OTHERS = 1.
‎2009 Feb 11 9:17 AM
‎2009 Feb 11 9:21 AM
Hi,,,
CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2'
EXPORTING
SALESDOCUMENT = v_salesdocument "declare the variable.
BINARY_RELATIONSHIPTYPE = ' '
INT_NUMBER_ASSIGNMENT = ' '
BEHAVE_WHEN_ERROR = ' '
LOGIC_SWITCH = ' '
TESTRUN = ' '
CONVERT = ' '
IMPORTING
SALESDOCUMENT_EX =
TABLES
RETURN = LT_RETURN
ORDER_ITEMS_IN = LT_ORDER_ITEMS_IN
ORDER_ITEMS_INX = LT_ORDER_ITEMS_IN
ORDER_PARTNERS = LT_ORDER_PARTNERS
ORDER_SCHEDULES_IN =
ORDER_SCHEDULES_INX =
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 =
EXCEPTIONS
OTHERS = 1.
IF SY-SUBRC = 0.
ENDIF.
Declare the variable V_Salesdoc and check whether the sales order number is population are not....
If the sales oreder Number is not populating the we nned to check for where the issue comes
‎2009 Feb 11 9:23 AM
Hi,
Check this link
http://www.sap-img.com/abap/bapi-salesorder-createfromdat2.htm
might be useful.
Regards,
Nagaraj
‎2009 Feb 11 9:23 AM
if u have sales order created after BAPI_TRAS_COMIT.
Use waoit up to 5 seconds command in ur program....
Some time it may not store when system is fast.
‎2009 Feb 20 9:32 AM
Hello,
I think you have to fill ORDER_SCHEDULES_IN and ORDER_SCHEDULES_INX, too. Than it will work.
Regards,
Timo
‎2009 Apr 03 8:49 AM
in this FM u assing like that
data : begin of it_success occurs 0,
SALESDOCUMENT LIKE BAPIVBELN-VBELN, "PROJECT
end of it_success.
DATA : SALESDOCUMENT LIKE BAPIVBELN-VBELN.
*****************
CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2'
EXPORTING
ORDER_HEADER_IN = ORDER_HEADER_IN
ORDER_HEADER_INX = headerx
IMPORTING
SALESDOCUMENT = SALESDOCUMENT
TABLES
RETURN = RETURN
ORDER_ITEMS_IN = ORDER_ITEMS_IN
ORDER_PARTNERS = ORDER_PARTNERS
ORDER_SCHEDULES_IN = ORDER_SCHEDULES_IN
ORDER_SCHEDULES_INX = ORDER_SCHEDULES_INX
ORDER_KEYS = ORDER_KEYS.
‎2009 Apr 03 9:03 AM
Hi please find code below
CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2'
EXPORTING
SALESDOCUMENTIN =
order_header_in = wa_bapihead
order_header_inx = wa_bapiheadx
SENDER =
BINARY_RELATIONSHIPTYPE =
int_number_assignment = 'X'
BEHAVE_WHEN_ERROR =
LOGIC_SWITCH =
testrun = testrun
CONVERT = ' '
IMPORTING
SALESDOCUMENT =
TABLES
return = it_return
order_items_in = it_bapiitem
order_items_inx = it_bapiitemx
order_partners = it_bapipartner
order_schedules_in = it_bapischdl
order_schedules_inx = it_bapischdlx
order_conditions_in = it_bapicond
order_conditions_inx = it_bapicondx
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 = it_bapitext
ORDER_KEYS =
EXTENSIONIN =
PARTNERADDRESSES =
.
Edited by: yogesh Kothavade on Apr 3, 2009 10:06 AM
‎2009 Apr 03 9:11 AM
Hi Ruby,
Put your BAPI_TRANSACTION_COMMIT inside the sy-subrc = 0 if condition.
Put an else condition and write an error message, to check if the call was succesful at all.
Also, are you able to create a sales order with the same data using VA01 transaction manually?
Regards,
Ravi Kanth Talagana
REPORT ZSD_SALES_ORDER_LOAD.
DATA: LS_ORDER_HEADER_IN LIKE BAPISDHD1,
LS_ORDER_HEADER_INX LIKE BAPISDHD1X.
DATA: LT_ORDER_ITEMS_IN LIKE BAPISDITM OCCURS 0 WITH HEADER LINE,
LT_ORDER_ITEMS_INX LIKE BAPISDITMX OCCURS 0 WITH HEADER LINE,
LT_RETURN LIKE BAPIRET2 OCCURS 0 WITH HEADER LINE,
LT_ORDER_PARTNERS LIKE BAPIPARNR OCCURS 0 WITH HEADER LINE.
* Set default header data
LS_ORDER_HEADER_IN-SALES_ORG = 'SA01'.
LS_ORDER_HEADER_IN-DISTR_CHAN = 'C1'.
LS_ORDER_HEADER_IN-DIVISION = '01'.
LS_ORDER_HEADER_IN-SALES_GRP = '203'.
LS_ORDER_HEADER_IN-SALES_OFF = '0500'.
* req date will need to come from file
LS_ORDER_HEADER_IN-REQ_DATE_H = SY-DATUM + 5.
LS_ORDER_HEADER_INX-UPDATEFLAG = 'U'.
LS_ORDER_HEADER_INX-SALES_ORG = 'X'.
LS_ORDER_HEADER_INX-DISTR_CHAN = 'X'.
LS_ORDER_HEADER_INX-DIVISION = 'X'.
LS_ORDER_HEADER_INX-SALES_GRP = 'X'.
LS_ORDER_HEADER_INX-SALES_OFF = 'X'.
LS_ORDER_HEADER_INX-REQ_DATE_H = 'X'.
* lt_order_items_in-itm_number = '3397'.
LT_ORDER_ITEMS_IN-MATERIAL = '3397'.
LT_ORDER_ITEMS_IN-CUST_MAT22 = '1111111111111111111111'.
LT_ORDER_ITEMS_IN-TARGET_QTY = '1'.
LT_ORDER_ITEMS_IN-TARGET_QU = 'PC'.
APPEND LT_ORDER_ITEMS_IN.
LT_ORDER_ITEMS_INX-CUST_MAT22 = 'X'.
LT_ORDER_ITEMS_INX-TARGET_QTY = 'X'.
LT_ORDER_ITEMS_INX-TARGET_QU = 'X'.
APPEND LT_ORDER_ITEMS_INX.
LT_ORDER_PARTNERS-PARTN_ROLE = 'SH'.
LT_ORDER_PARTNERS-PARTN_NUMB = '327'.
APPEND LT_ORDER_PARTNERS.
LT_ORDER_PARTNERS-PARTN_ROLE = 'SP'.
LT_ORDER_PARTNERS-PARTN_NUMB = '327'.
APPEND LT_ORDER_PARTNERS.
CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2'
EXPORTING
* SALESDOCUMENT =
ORDER_HEADER_IN = LS_ORDER_HEADER_IN
ORDER_HEADER_INX = LS_ORDER_HEADER_INX
* SENDER =
* BINARY_RELATIONSHIPTYPE = ' '
* INT_NUMBER_ASSIGNMENT = ' '
* BEHAVE_WHEN_ERROR = ' '
* LOGIC_SWITCH = ' '
* TESTRUN = ' '
* CONVERT = ' '
* IMPORTING
* SALESDOCUMENT_EX =
TABLES
RETURN = LT_RETURN
ORDER_ITEMS_IN = LT_ORDER_ITEMS_IN
ORDER_ITEMS_INX = LT_ORDER_ITEMS_IN
ORDER_PARTNERS = LT_ORDER_PARTNERS
* ORDER_SCHEDULES_IN =
* ORDER_SCHEDULES_INX =
* 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 =
EXCEPTIONS
OTHERS = 1.
IF SY-SUBRC = 0.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'
* IMPORTING
* RETURN =
EXCEPTIONS
OTHERS = 1.
ELSE.
WRITE:/ 'ERROR'.
ENDIF.
‎2010 May 10 2:36 PM