‎2008 Jun 16 11:38 AM
hi
i want to code for uploading a salesorder data BAPI and eeror
HANDLING THROUGH BAPI
‎2008 Jun 16 11:51 AM
Hi,
VA01 is the transaction for create the sales order.
Refer the below links about sales order creation using BAPI.
[http://abaplovers.blogspot.com/2008/02/bapi-sales-order-create-code.html|http://abaplovers.blogspot.com/2008/02/bapi-sales-order-create-code.html]
[http://abap.wikiprog.com/wiki/BAPI_SALESORDER_CREATEFROMDAT2|http://abap.wikiprog.com/wiki/BAPI_SALESORDER_CREATEFROMDAT2]
Reward if found helpful.
Regards,
Boobalan Suburaj
‎2008 Jun 16 2:09 PM
Hi,
BAPI_SALESORDER_CREATEFROMDAT2
Use this BAPI for sales order Upload.
Sample code.
REPORT Z_DURAI_TEST.
----
Parameters
----
Parameters: P_order like vbak-vbeln.
Parameters: P_quote like BAPIVBELN-VBELN.
Parameters: P_new like BAPIVBELN-VBELN.
*
We need to create a new order number P_New from an existing order P_order
linked to an existing quotation P_quote
----
Tables
----
Tables: VBAK,
VBAP,
VBKD. "Sales Document: Business Data
----
Data and internal table
----
DATA: order_header_in1 LIKE BAPISDHD1.
DATA: order_header_intX like BAPISDHD1X.
DATA : SALESDOCUMENT1 TYPE BAPIVBELN-VBELN.
DATA : RETURN2 TYPE BAPIRET2.
DATA: order_partners1 type BAPIPARNR occurs 0 with header line.
DATA: ORDER_ITEMS_IN1 type BAPISDITM occurs 0 with header line.
DATA: ORDER_ITEMS_IN1X type BAPISDITMX occurs 0 with header line.
DATA: ORDER_SCHEDULES_IN1 type BAPISCHDL occurs 0 with header line.
DATA: ORDER_SCHEDULES_IN1X type BAPISCHDLX occurs 0 with header line.
DATA : RETURN1 TYPE BAPIRET2 OCCURS 0 with header line.
Start-of-selection.
Select single * from vbak where vbeln = p_quote.
if not sy-subrc = 0.
write:/ text-e02.
exit.
endif.
Select single * from vbak where vbeln = p_order.
if not sy-subrc = 0.
write:/ text-e01.
exit.
endif.
Select single * from vbkd where vbeln = p_order.
if not sy-subrc = 0.
write:/ text-e03.
exit.
endif.
order_header_in1-doc_type = 'TA'.
order_header_in1-sales_org = vbak-vkorg.
order_header_in1-distr_chan = vbak-vtweg.
order_header_in1-division = vbak-spart.
order_header_in1-REQ_DATE_H = sy-datum + 20.
order_header_in1-PURCH_NO_C = 'HBR_Commande'.
order_header_in1-REF_1 = 'E-DISTR'.
order_header_in1-SD_DOC_CAT = 'C'.
order_header_in1-REF_DOC = P_quote.
order_header_in1-REF_DOC_L = P_quote.
order_header_in1-REFDOC_CAT = 'B'.
order_header_in1-INCOTERMS1 = vbkd-inco1.
order_header_in1-INCOTERMS2 = vbkd-inco2.
order_header_in1-PMNTTRMS = vbkd-zterm.
order_header_in1-SALES_OFF = vbak-vkbur.
select * from vbap where vbeln = vbak-vbeln.
clear ORDER_ITEMS_IN1.
ORDER_ITEMS_IN1-PO_ITM_NO = vbap-posnr.
ORDER_ITEMS_IN1-material = vbap-MATNR.
ORDER_ITEMS_IN1-TARGET_QU = vbap-zieme.
ORDER_ITEMS_IN1-REF_DOC = P_quote.
ORDER_ITEMS_IN1-REF_DOC_IT = vbap-posnr.
ORDER_ITEMS_IN1-REF_DOC_CA = 'B'.
append ORDER_ITEMS_IN1.
*
clear ORDER_SCHEDULES_IN1.
ORDER_SCHEDULES_IN1-ITM_NUMBER = vbap-posnr.
ORDER_SCHEDULES_IN1-REQ_DATE = sy-datum + 20.
ORDER_SCHEDULES_IN1-REQ_QTY = vbap-KWMENG.
append ORDER_SCHEDULES_IN1.
*
endselect.
order_partners1-PARTN_ROLE = 'WE'.
order_partners1-PARTN_NUMB = vbak-KUNNR.
APPEND order_partners1.
order_partners1-PARTN_ROLE = 'AG'.
APPEND order_partners1.
Perform call_function.
&----
*& Form call_function
&----
text
----
--> p1 text
<-- p2 text
----
form call_function .
CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2'
EXPORTING
SALESDOCUMENTIN = P_new
ORDER_HEADER_IN = order_header_in1
ORDER_HEADER_INX = order_header_intX
SENDER =
BINARY_RELATIONSHIPTYPE =
INT_NUMBER_ASSIGNMENT =
BEHAVE_WHEN_ERROR =
LOGIC_SWITCH =
TESTRUN =
CONVERT = ' '
IMPORTING
SALESDOCUMENT = SALESDOCUMENT1
TABLES
RETURN = RETURN1
ORDER_ITEMS_IN = ORDER_ITEMS_IN1
ORDER_ITEMS_INX = ORDER_ITEMS_IN1X
ORDER_PARTNERS = order_partners1
ORDER_SCHEDULES_IN = ORDER_SCHEDULES_IN1
ORDER_SCHEDULES_INX = ORDER_SCHEDULES_IN1X
ORDER_CONDITIONS_IN =
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 =
.
*
IF NOT SALESDOCUMENT1 IS INITIAL.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'
IMPORTING
RETURN = RETURN2.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
ENDIF.
endform. "call_function
Thanks,
Durai.V