‎2007 Feb 01 8:17 AM
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
‎2007 Feb 01 8:26 AM
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
‎2007 Feb 01 8:26 AM
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
‎2007 Feb 01 8:26 AM
<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
‎2007 Feb 01 8:56 AM
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
‎2007 Feb 01 8:26 AM
it refers to this field ADDR_NO from structure BAPIADDR1.
Pass this value in tables PARTNERADDRESSES parameter
Give a number not text
‎2007 Feb 01 10:18 AM
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..
‎2007 Feb 01 10:31 AM
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
‎2007 Apr 13 1:10 PM
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