Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

BAPI_SALESORDER_CREATEFROMDAT2

Former Member
0 Likes
4,913

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.

9 REPLIES 9
Read only

Former Member
0 Likes
1,909

hi Ruby

check this thread

hope this helps

regards

Aakash Banga

Read only

naveen_kumar116
Active Participant
0 Likes
1,909

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

Read only

former_member404244
Active Contributor
0 Likes
1,909

Hi,

Check this link

http://www.sap-img.com/abap/bapi-salesorder-createfromdat2.htm

might be useful.

Regards,

Nagaraj

Read only

naveen_kumar116
Active Participant
0 Likes
1,909

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.

Read only

Former Member
0 Likes
1,909

Hello,

I think you have to fill ORDER_SCHEDULES_IN and ORDER_SCHEDULES_INX, too. Than it will work.

Regards,

Timo

Read only

Former Member
0 Likes
1,909

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.

Read only

Former Member
0 Likes
1,909

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

Read only

Former Member
0 Likes
1,909

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.

Read only

Former Member
0 Likes
1,909

.