2007 Mar 21 3:50 PM
Hi,
Object: Create a sales order and link it with a quotation.
I have created first a quotation VA21 for a customer and a material.
I am using function BAPI_SALESORDER_CREATEFROMDAT2 in a Sap 5.0 to create a TA order in a program with a BAPI_TRANSACTION_COMMIT.
The creation is well working
but I do not obtain a link between the new orders and the quotation
.What I have forgotten?
Is it well this function to use to create an order and link with a quotation?
Thank for your help.
Regards
Henri
____________________________________________________________________
To do this I fill in for
SALESDOCUMENTIN = P_new new order number
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_PARTNERS = order_partners1
ORDER_SCHEDULES_IN = ORDER_SCHEDULES_IN1
* ORDER_SCHEDU
And in ORDER_HEADER_I
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. Number of quotation
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.
ORDER_HEADER_INX is just filled in with order_header_intX-REF_DOC = 'U'.
In return I get
233 |SALES_HEADER_IN has been processed successfully
233 |SALES_ITEM_IN has been processed successfully
233 |SALES_SCHEDULES_IN has been processed successfully
311 |Standard Order 5000027 has been saved
Hi,
Object: Create a sales order and link it with a quotation.
I have created first a quotation VA21 for a customer and a material.
I am using function BAPI_SALESORDER_CREATEFROMDAT2 in a Sap 5.0 to create a TA order in a program with a BAPI_TRANSACTION_COMMIT.
The creation is well working
but I do not obtain a link between the new orders and the quotation
.What I have forgotten?
Is it well this function to use to create an order and link with a quotation?
Thank for your help.
Regards
Henri
____________________________________________________________________
To do this I fill in for
SALESDOCUMENTIN = P_new new order number
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_PARTNERS = order_partners1
ORDER_SCHEDULES_IN = ORDER_SCHEDULES_IN1
* ORDER_SCHEDU
And in ORDER_HEADER_I
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. Number of quotation
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.
ORDER_HEADER_INX is just filled in with order_header_intX-REF_DOC = 'U'.
In return I get
233 |SALES_HEADER_IN has been processed successfully
233 |SALES_ITEM_IN has been processed successfully
233 |SALES_SCHEDULES_IN has been processed successfully
311 |Standard Order 5000027 has been saved
2007 Mar 23 7:10 AM
Hi All,
I have found wy it was nor working. When you want to create a sales order linked to a quotation (VA21 - 22 - 23), you need to fill in the fill related to the quotation in
the header and the item lines.
*&---------------------------------------------------------------------*
*& Report Z_ORDER_CREATE_SPA_HBR
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT Z_ORDER_CREATE_SPA_HBR.
*----------------------------------------------------------------------*
* 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
<b></b>
2014 Oct 29 4:15 PM
| User | Count |
|---|---|
| 3 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |