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
2,211

Hi,

I am trying to create a sales order using the bapi "BAPI_SALESORDER_CREATEFROMDAT2". I have passed the parameters as follows. But I am getting the error "Specify either address number or address handle" "The Sales document is not yet complete. Edit data" . Im not sure which paramater this is reffering to. Can someone help?

l_order_header-doc_type = 'ZOR'.

l_order_header-distr_chan = '30'.

l_order_header-division = '32'.

l_order_header-sales_org = 'NL10'.

l_order_header-purch_no_c = g_qals-prueflos.

  • Partner data

l_order_partners-partn_role = 'AG'.

l_order_partners-partn_numb = g_qals-kunnr.

l_order_partners-address = 'test'.

l_order_partners-name = 'test name'.

append l_order_partners to it_order_partners.

  • Order items

l_order_items-itm_number = 10.

l_order_items-material = g_qals-matnr.

l_order_items-target_qty = 1.

append l_order_items to it_order_items.

  • Schedules for quantity

l_order_schdl-itm_number = 10.

l_order_schdl-req_qty = 1.

append l_order_schdl to it_order_schdl.

  • Conditions for value

it_order_conditions-itm_number = 10.

it_order_conditions-cond_type = 'PR00'.

append it_order_conditions to it_order_conditions.

  • BAPI to create sales order

CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2'

EXPORTING

  • SALESDOCUMENTIN =

ORDER_HEADER_IN = l_order_header

  • ORDER_HEADER_INX =

  • SENDER =

  • BINARY_RELATIONSHIPTYPE =

  • INT_NUMBER_ASSIGNMENT =

  • BEHAVE_WHEN_ERROR =

  • LOGIC_SWITCH =

  • TESTRUN =

  • CONVERT = ' '

IMPORTING

SALESDOCUMENT = l_salesdocument

TABLES

RETURN = it_return

ORDER_ITEMS_IN = it_order_items

  • ORDER_ITEMS_INX =

ORDER_PARTNERS = it_order_partners

ORDER_SCHEDULES_IN = it_order_schdl

  • ORDER_SCHEDULES_INX =

ORDER_CONDITIONS_IN = it_order_conditions

  • ORDER_CONDITIONS_INX =

  • 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 =

.

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'.

ENDIF.

Thanks and Regards,

Reena

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
1,673

Hi,

l_order_partners-partn_role = 'AG'.

l_order_partners-partn_numb = g_qals-kunnr.

<b>l_order_partners-address = 'test'.</b>

l_order_partners-name = 'test name'.

append l_order_partners to it_order_partners.

above the bold one, you need to write the Address No not the value 'Test'.

Regards

Sudheer

7 REPLIES 7
Read only

Former Member
0 Likes
1,674

Hi,

l_order_partners-partn_role = 'AG'.

l_order_partners-partn_numb = g_qals-kunnr.

<b>l_order_partners-address = 'test'.</b>

l_order_partners-name = 'test name'.

append l_order_partners to it_order_partners.

above the bold one, you need to write the Address No not the value 'Test'.

Regards

Sudheer

Read only

Former Member
0 Likes
1,673

<b>l_order_partners-address = 'TEST'.</b> this is ADRNR number of the Customer(KUNNR) u have to get ADRNR of customer from KNA1.

Regards

prabhu

Read only

0 Likes
1,673

Hi all,

Thanks for your replies. I passed the ADRNR value from the KNA1 table for my customer number. That error has been resolved.

But now, I get another error "Requirements are not fulfilled for condition PR00".

I know this should be simple, but Im new to this. Any pointers?

Thanks and Regards,

Reena

Read only

Former Member
0 Likes
1,673

it refers to this field ADDR_NO from structure BAPIADDR1.

Pass this value in tables PARTNERADDRESSES parameter

Give a number not text

Read only

Former Member
0 Likes
1,673

Hi Reena,

I guess u need to fill in the fields: COND_VALUE and CURRENCY fields also in ORDER_CONDITIONS_IN parameter.You can still find additional documentation regarding this in the Function Module documentation.

Please reward points if solution found useful..

Read only

0 Likes
1,673

Hi,

I was able to create a sales order using the bapi. My final code looked like this:

clear: l_order_header,

l_salesdocument,

l_order_partners,

l_order_items,

l_order_schdl.

refresh: it_order_items,

it_order_partners,

it_order_schdl,

it_return.

  • Order header

l_order_header-doc_type = 'ZOR'.

l_order_header-distr_chan = '30'.

l_order_header-division = '32'.

l_order_header-sales_org = 'NL10'.

l_order_header-purch_no_c = '12345'.

  • Partner data

l_order_partners-partn_role = 'AG'.

l_order_partners-partn_numb = '0000100254'.

append l_order_partners to it_order_partners.

  • Order items => only one

l_order_items-itm_number = 10.

l_order_items-material = '000000000000040013'.

l_order_items-target_qty = 1.

append l_order_items to it_order_items.

  • Schedules for quantity

l_order_schdl-itm_number = 10.

l_order_schdl-req_qty = 1.

append l_order_schdl to it_order_schdl.

  • Conditions for value

it_order_conditions-itm_number = 10.

it_order_conditions-cond_type = 'ZPR0'.

it_order_conditions-cond_value = '17.007'.

append it_order_conditions to it_order_conditions.

  • BAPI to create sales order

CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2'

EXPORTING

ORDER_HEADER_IN = l_order_header

IMPORTING

SALESDOCUMENT = l_salesdocument

TABLES

RETURN = it_return

ORDER_ITEMS_IN = it_order_items

ORDER_PARTNERS = it_order_partners

ORDER_SCHEDULES_IN = it_order_schdl

ORDER_CONDITIONS_IN = it_order_conditions

.

if not l_salesdocument is initial.

  • order successfully created

message i001(00) with text-001 l_salesdocument.

else.

  • not successfull

message i001(00) with text-002 l_salesdocument.

endif.

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'.

ENDIF.

ENDFUNCTION.

Thanks everyone for the inputs.

Regards,

Reena

Read only

0 Likes
1,673

Hi Reena,

Thanks a lot for posting your final code,It helped me kill one of the bug revolving around in my code for sometime .

Thanks,

Mithun H.Salgar