‎2011 Jun 02 12:35 PM
hi experts,
i have written a bapi_salesorder_createfromdat2 in my abap code to create a sales order .
it is running fine but its nt displaying salesdocument no. (vbeln)
output:
Sales dcoument:
S SALES_HEADER_IN has been processed successfully
S SALES_ITEM_IN has been processed successfully
S SALES_CONDITIONS_IN has been processed successfull
i dont knw y it is not displaying sales document.
plz can any one help me with this.
‎2011 Jun 02 12:42 PM
hI,
You can get the sales document number in the import paramter.
importing
SALESDOCUMENT = lv_vbeln.
lv_vbeln will sales document number.
Regards,
Nagaraj
‎2011 Jun 02 12:53 PM
i have used
IMPORTING
SALESDOCUMENT = L_VBELN
while debugging the variable is blank.
‎2011 Jun 02 12:56 PM
My abap code is as follows...........
&----
*& Report ZBAPI_PRO
*&
&----
*&
*&
&----
REPORT ZBAPI_PRO.
DATA: LI_ORDER_PARTNERS TYPE STANDARD TABLE OF BAPIPARNR,
L_ORDER_PARTNERS LIKE BAPIPARNR, " ORDER PARTNERS
L_ORDER_HEADER_IN LIKE BAPISDHD1,
LI_ORDER_HEADER_IN TYPE STANDARD TABLE OF BAPISDHD1,
L_ORDER_HEADER_INX LIKE BAPISDHD1X, " ORDER HEADERS
LI_ORDER_HEADER_INX TYPE STANDARD TABLE OF BAPISDHD1X, " ORDER HEADERS
LI_ORDER_ITEM_IN TYPE STANDARD TABLE OF BAPISDITM,
L_ORDER_ITEM_IN LIKE BAPISDITM,
LI_ORDER_ITEM_INX TYPE STANDARD TABLE OF BAPISDITMX,
L_ORDER_ITEM_INX LIKE BAPISDITMX,
LI_RETURN TYPE STANDARD TABLE OF BAPIRET2,
L_RETURN TYPE BAPIRET2,
LI_ORDER_CONDITION_IN TYPE STANDARD TABLE OF BAPICOND,
L_ORDER_CONDITION_IN LIKE BAPICOND,
LI_ORDER_CONDITION_INX TYPE STANDARD TABLE OF BAPICONDX,
L_ORDER_CONDITION_INX LIKE BAPICONDX,
LI_ORDER_SCHEDULES_IN TYPE STANDARD TABLE OF BAPISCHDL,
L_ORDER_SCHEDULES_IN LIKE BAPISCHDL,
LI_ORDER_SCHEDULES_INX TYPE STANDARD TABLE OF BAPISCHDLX,
L_ORDER_SCHEDULES_INX LIKE BAPISCHDLX,
Sales document number
L_VBELN LIKE BAPIVBELN-VBELN,
L_VBELN1 LIKE BAPIVBELN-VBELN,
Error flag
L_ERRFLAG(1) TYPE C.
START-OF-SELECTION.
"----
"BUILD PARTNR INFORMATION
"----
CLEAR L_ORDER_PARTNERS.
L_ORDER_PARTNERS-PARTN_ROLE = 'AG'.
L_ORDER_PARTNERS-PARTN_NUMB = '0038000011'.
APPEND L_ORDER_PARTNERS TO LI_ORDER_PARTNERS.
L_ORDER_PARTNERS-PARTN_ROLE = 'WE'.
L_ORDER_PARTNERS-PARTN_NUMB = '0038000011'.
APPEND L_ORDER_PARTNERS TO LI_ORDER_PARTNERS.
"----
"BUILD HEADER INFORMATION
"----
L_ORDER_HEADER_INX-UPDATEFLAG = 'I'. " UPDATING FLAG
L_ORDER_HEADER_IN-DOC_TYPE = 'ZDOM'. " DOCUMENT TYPE
L_ORDER_HEADER_INX-DOC_TYPE = 'X'.
L_ORDER_HEADER_IN-SALES_ORG = 'TTS1'. " SALES ORGANIZATION
L_ORDER_HEADER_INX-SALES_ORG = 'X'.
L_ORDER_HEADER_IN-DISTR_CHAN = 'S1'. " DISTRIBUTION CHANNAL
L_ORDER_HEADER_INX-DISTR_CHAN = 'X'.
L_ORDER_HEADER_IN-DIVISION = 'D1'. " DIVISION
L_ORDER_HEADER_INX-DIVISION = 'X'.
L_ORDER_HEADER_IN-PURCH_DATE = '20110602'. " PO DATE
L_ORDER_HEADER_INX-PURCH_DATE = 'X'.
L_ORDER_HEADER_IN-PURCH_NO_C = 'FAX222'. " PO NUMBER
L_ORDER_HEADER_INX-PURCH_NO_C = 'X'.
APPEND L_ORDER_HEADER_IN TO LI_ORDER_HEADER_IN.
APPEND L_ORDER_HEADER_INX TO LI_ORDER_HEADER_INX.
"----
"BUILD ITEM INFORMATION
"----
L_ORDER_ITEM_INX-UPDATEFLAG = 'I'.
L_ORDER_ITEM_IN-ITM_NUMBER = '10'.
L_ORDER_ITEM_INX-ITM_NUMBER = '10'.
L_ORDER_ITEM_IN-MATERIAL = 'SD0000000000000001'.
L_ORDER_ITEM_INX-MATERIAL = 'X'.
APPEND L_ORDER_ITEM_IN TO LI_ORDER_ITEM_IN.
APPEND L_ORDER_ITEM_INX TO LI_ORDER_ITEM_INX.
"----
"BUILD CONDITION INFORMATION
"----
L_ORDER_CONDITION_IN-ITM_NUMBER = '10'.
L_ORDER_CONDITION_INX-ITM_NUMBER = '10'.
L_ORDER_CONDITION_IN-COND_TYPE ='PR00'.
L_ORDER_CONDITION_INX-COND_TYPE = 'X'.
APPEND L_ORDER_CONDITION_IN TO LI_ORDER_CONDITION_IN.
APPEND L_ORDER_CONDITION_INX TO LI_ORDER_CONDITION_INX.
"----
"BUILD SCHEDULED INFORMATION
"----
L_ORDER_SCHEDULES_IN-ITM_NUMBER = '10'.
L_ORDER_SCHEDULES_INX-ITM_NUMBER = '10'.
L_ORDER_SCHEDULES_IN-REQ_QTY = '100.000'.
L_ORDER_SCHEDULES_INX-REQ_QTY = 'X'.
APPEND L_ORDER_SCHEDULES_IN TO LI_ORDER_SCHEDULES_IN.
APPEND L_ORDER_SCHEDULES_INX TO LI_ORDER_SCHEDULES_INX.
CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2'
EXPORTING
"SALESDOCUMENTIN = L_VBELN1
ORDER_HEADER_IN = L_ORDER_HEADER_IN
ORDER_HEADER_INX = L_ORDER_HEADER_INX
SENDER =
BINARY_RELATIONSHIPTYPE =
INT_NUMBER_ASSIGNMENT =
BEHAVE_WHEN_ERROR =
LOGIC_SWITCH =
TESTRUN = 'X'
CONVERT = ' '
IMPORTING
SALESDOCUMENT = L_VBELN
TABLES
RETURN = LI_RETURN
ORDER_ITEMS_IN = LI_ORDER_ITEM_IN
ORDER_ITEMS_INX = LI_ORDER_ITEM_INX
ORDER_PARTNERS = LI_ORDER_PARTNERS
ORDER_SCHEDULES_IN = LI_ORDER_SCHEDULES_IN
ORDER_SCHEDULES_INX = LI_ORDER_SCHEDULES_INX
ORDER_CONDITIONS_IN = LI_ORDER_CONDITION_IN
ORDER_CONDITIONS_INX = LI_ORDER_CONDITION_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 =
.
END-OF-SELECTION.
CLEAR L_ERRFLAG.
WRITE: / 'Sales dcoument: ', L_VBELN.
LOOP AT LI_RETURN INTO L_RETURN.
WRITE: / L_RETURN-TYPE, L_RETURN-MESSAGE(50).
IF L_RETURN-TYPE = 'E'.
L_ERRFLAG = 'X'.
ENDIF.
ENDLOOP.
*----
No errors - Commit
*----
IF L_ERRFLAG IS INITIAL.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
WRITE:/1 'COMMITED'.
ENDIF.
‎2011 Jun 02 1:36 PM
Hi Dakshaini,
Did you check all the Return TABLES have been succesfully processed or not.
and also ensure that you have analysed the RETURN TABLE.
RETURN = LI_RETURN
ORDER_ITEMS_IN = LI_ORDER_ITEM_IN
ORDER_ITEMS_INX = LI_ORDER_ITEM_INX
ORDER_PARTNERS = LI_ORDER_PARTNERS
ORDER_SCHEDULES_IN = LI_ORDER_SCHEDULES_IN
ORDER_SCHEDULES_INX = LI_ORDER_SCHEDULES_INX
ORDER_CONDITIONS_IN = LI_ORDER_CONDITION_IN
ORDER_CONDITIONS_INX = LI_ORDER_CONDITION_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 = .If the BAPI Transaction is Committed then go out of the Sub Routine and then WRITE: The L_VBELN,
Try and revert,
Thanks
Sri.
‎2011 Jun 03 4:58 AM
hello shrikant,
my li_return table contains following values
Line id Number Message
1 V4 233 SALES_HEADER_IN has been processed successfully
2 V4 233 SALES_ITEM_IN has been processed successfully
3 V4 233 SALES_CONDITIONS_IN has been processed successfully
log_meg_no message_v1 message_v2 Parameters Row
000000 VBAKKOM SALES_HEADER_IN 0
000000 VBAPKOM 000010 SALES_ITEM_IN 1
000000 KONVKOM TTL SALES_CONDITIONS_IN 1
‎2011 Jun 03 5:30 AM
Hi to all,
thanx a lot for ur support it helped me ,
finally i got the point where i was going wrong.
actually i was passing values in all the related (order_...._ inx )tables also which was creating problem ,
i put those in comment n tried n it got executed succesfully n got commited also the output is as follows..
Sales dcoument: 9300234
S SALES_HEADER_IN has been processed successfully
S SALES_ITEM_IN has been processed successfully
S SALES_CONDITIONS_IN has been processed successfull
S TTL Domestic Order 9300234 has been saved
Thanks a million to all.
‎2011 Jun 02 12:43 PM
Hi,
In the Debugging Screen in the BAPI Return Table you will be able to see the Sales order and ensure that you have used BAPI_TRANSACTION_COMMIT after the SALESORDER_CREATE.
Thanks
Sri
‎2011 Jun 02 12:50 PM
IF L_ERRFLAG IS INITIAL.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
WRITE:/1 'COMMITED'.
ENDIF.
i have used the bapi_transaction_commit at the end, the syntax was as above
‎2011 Jun 02 12:53 PM
Hi,
Put a break-point at the statement IF L_ERRFLAG IS INITIAL and see what is the value.. also as i suggested before declare a variable and then pass to impoering paramter you will get the sales order number if it has successfully executed.
Regards,
Nagaraj
‎2011 Jun 02 1:01 PM
what should b type of lv_vbeln
i have taken L_VBELN LIKE BAPIVBELN-VBELN,
‎2011 Jun 02 1:04 PM
‎2011 Jun 02 1:07 PM
Hi,
What values you are getting L_return internal table.. This is the bapi return table...
Regards,
Nagaraj
‎2011 Jun 02 1:34 PM
Hi,
In your code you are passing SALESDOCUMENTIN as blank.
and the variable name is initial.
Please do not pass anythin in this parameter if the order number should create automatically
or pass the appropriate number to this field.
I hope this will resolve your problem.
Thanks and regards,
Anmol.
‎2011 Jun 03 4:52 AM
hi anmol,
my sales document number should get automatically generated ,
if i dont pass anything to SALESDOCUMENT field in both importing and exporting areas then how will i get the sales order number.
i want to capture the auto generated sales order number.