‎2007 May 28 4:34 PM
Hello all.
I created a function wich creates 2 documents, a sales document and a billing document referenced to the sales document.
It works fine almost allways. the problem is sometimes the sales document its not created and the bapi does not return any error messages.
Does anyone have any idea why?
Thank you
Nuno Silva
‎2007 May 28 5:17 PM
Nuno Silva,
Did you check the return structure?, some times it takes more than usual time to create a sales order (it depends on the system resource, validations etc). wait for couple of seconds before calling 'BAPI_TRANSACTION_COMMIT'.
If you would like to know whether this SO BAPI is success, before checking for billing document; check for Salesorder number returned from BAPI, if its blank assume that BAPI has failed.
Check out a sample code..
Call SAP standard BAPI to create order
CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2'
EXPORTING
salesdocumentin = salesdocumentin
order_header_in = order_header_in
order_header_inx = order_header_inx
sender = sender
binary_relationshiptype = binary_relationshiptype
int_number_assignment = int_number_assignment
behave_when_error = behave_when_error
logic_switch = logic_switch
testrun = testrun
convert = convert
IMPORTING
salesdocument = salesdocument
TABLES
return = return
order_items_in = order_items_in
order_items_inx = order_items_inx
order_partners = order_partners
order_schedules_in = order_schedules_in
order_schedules_inx = order_schedules_inx
order_conditions_in = order_conditions_in
order_cfgs_ref = order_cfgs_ref
order_cfgs_inst = order_cfgs_inst
order_cfgs_part_of = order_cfgs_part_of
order_cfgs_value = order_cfgs_value
order_cfgs_blob = order_cfgs_blob
order_cfgs_vk = order_cfgs_vk
order_cfgs_refinst = order_cfgs_refinst
order_ccard = order_ccard
order_text = order_text
order_keys = order_keys
extensionin = extensionin
partneraddresses = partneraddresses.
IF sy-subrc = 0 AND
salesdocument <> 0.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'
IMPORTING
return = d_int_return.
IF d_int_return-type EQ 'E'.
MOVE-CORRESPONDING d_int_return TO return.
APPEND return.
ENDIF
ENDIF.
Reward if its of any use to you
‎2007 May 28 5:17 PM
Nuno Silva,
Did you check the return structure?, some times it takes more than usual time to create a sales order (it depends on the system resource, validations etc). wait for couple of seconds before calling 'BAPI_TRANSACTION_COMMIT'.
If you would like to know whether this SO BAPI is success, before checking for billing document; check for Salesorder number returned from BAPI, if its blank assume that BAPI has failed.
Check out a sample code..
Call SAP standard BAPI to create order
CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2'
EXPORTING
salesdocumentin = salesdocumentin
order_header_in = order_header_in
order_header_inx = order_header_inx
sender = sender
binary_relationshiptype = binary_relationshiptype
int_number_assignment = int_number_assignment
behave_when_error = behave_when_error
logic_switch = logic_switch
testrun = testrun
convert = convert
IMPORTING
salesdocument = salesdocument
TABLES
return = return
order_items_in = order_items_in
order_items_inx = order_items_inx
order_partners = order_partners
order_schedules_in = order_schedules_in
order_schedules_inx = order_schedules_inx
order_conditions_in = order_conditions_in
order_cfgs_ref = order_cfgs_ref
order_cfgs_inst = order_cfgs_inst
order_cfgs_part_of = order_cfgs_part_of
order_cfgs_value = order_cfgs_value
order_cfgs_blob = order_cfgs_blob
order_cfgs_vk = order_cfgs_vk
order_cfgs_refinst = order_cfgs_refinst
order_ccard = order_ccard
order_text = order_text
order_keys = order_keys
extensionin = extensionin
partneraddresses = partneraddresses.
IF sy-subrc = 0 AND
salesdocument <> 0.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'
IMPORTING
return = d_int_return.
IF d_int_return-type EQ 'E'.
MOVE-CORRESPONDING d_int_return TO return.
APPEND return.
ENDIF
ENDIF.
Reward if its of any use to you
‎2007 May 28 5:42 PM
Hello.
I am checking for both the exitence of an error message in the message structure of the bapi and the existence of a document number.
Is it possible that it returns an error message and still generates a document?
‎2007 May 28 5:54 PM
As far as my experience goes, NO. If you get error message then there won't be any document generated , hence no document number