Required Copy Sales Order using API
Hello Everyone,
I got a requirement to copy a sales order using API. Did anyone tried this?
If possible give me API name or the script.
Thanks in advance.
Thanx and Regards,
Akil
These might be helpful to you.
1. OEOIMP: Script To Populate Order Import Interface Tables From Existing Sales Order [ID 436215.1]
2.http://sriniik.blogspot.in/2010/05/copy-sales-order-book-order-sales-order.html
Similar Messages
-
Hi ,
I am using Oe_Order_Pub.Process_Order api to create the Sales Orders. I am setting flow_status_code = 'BOOKED then also , sales order is created in Entered status only.
How to book the sales order to Booked status.
Regards/Prasanthi am assigning the following fields also
open_flag = 'Y'
booked_flag = 'Y'
booked_date = SYSDATE
Then also System creating Sales Order in Entered status only.
Regards/Prasanth -
Updating quantity in sales order using api
Hi all,
SET SERVEROUTPUT ON;
DECLARE
v_api_version_number NUMBER := 1;
v_return_status VARCHAR2 (2000);
v_msg_count NUMBER;
v_msg_data VARCHAR2 (2000);
-- IN Variables --
v_header_rec oe_order_pub.header_rec_type;
v_line_tbl oe_order_pub.line_tbl_type;
v_action_request_tbl oe_order_pub.request_tbl_type;
v_line_adj_tbl oe_order_pub.line_adj_tbl_type;
-- OUT Variables --
v_header_rec_out oe_order_pub.header_rec_type;
v_header_val_rec_out oe_order_pub.header_val_rec_type;
v_header_adj_tbl_out oe_order_pub.header_adj_tbl_type;
v_header_adj_val_tbl_out oe_order_pub.header_adj_val_tbl_type;
v_header_price_att_tbl_out oe_order_pub.header_price_att_tbl_type;
v_header_adj_att_tbl_out oe_order_pub.header_adj_att_tbl_type;
v_header_adj_assoc_tbl_out oe_order_pub.header_adj_assoc_tbl_type;
v_header_scredit_tbl_out oe_order_pub.header_scredit_tbl_type;
v_header_scredit_val_tbl_out oe_order_pub.header_scredit_val_tbl_type;
v_line_tbl_out oe_order_pub.line_tbl_type;
v_line_val_tbl_out oe_order_pub.line_val_tbl_type;
v_line_adj_tbl_out oe_order_pub.line_adj_tbl_type;
v_line_adj_val_tbl_out oe_order_pub.line_adj_val_tbl_type;
v_line_price_att_tbl_out oe_order_pub.line_price_att_tbl_type;
v_line_adj_att_tbl_out oe_order_pub.line_adj_att_tbl_type;
v_line_adj_assoc_tbl_out oe_order_pub.line_adj_assoc_tbl_type;
v_line_scredit_tbl_out oe_order_pub.line_scredit_tbl_type;
v_line_scredit_val_tbl_out oe_order_pub.line_scredit_val_tbl_type;
v_lot_serial_tbl_out oe_order_pub.lot_serial_tbl_type;
v_lot_serial_val_tbl_out oe_order_pub.lot_serial_val_tbl_type;
v_action_request_tbl_out oe_order_pub.request_tbl_type;
v_msg_index NUMBER;
v_data VARCHAR2 (2000);
v_loop_count NUMBER;
v_debug_file VARCHAR2 (200);
b_return_status VARCHAR2 (200);
b_msg_count NUMBER;
b_msg_data VARCHAR2 (2000);
BEGIN
DBMS_OUTPUT.PUT_LINE('Starting of script');
-- Setting the Enviroment --
mo_global.init('ONT');
fnd_global.apps_initialize ( user_id => 1153,resp_id => 50602,resp_appl_id => 7000);
mo_global.set_policy_context('S',85);
-- Header Record --
--v_header_rec := oe_order_pub.g_miss_header_rec;
--v_header_rec.operation := OE_GLOBALS.G_OPR_UPDATE;
v_header_rec.request_date := SYSDATE + 1; Updating the Request Date
v_header_rec.header_id := 6006; Existing order header id
v_action_request_tbl (1) := oe_order_pub.g_miss_request_rec;
-- Line Record --
v_line_tbl (1) := oe_order_pub.g_miss_line_rec;
--v_line_tbl (1).operation := oe_globals.g_opr_create;
v_line_tbl (1).header_id := 1087; -- Existing order header id
--v_line_tbl (1).inventory_item_id := 9;
v_line_tbl (1).ordered_quantity := 1;
v_line_tbl(1).invoice_to_org_id := 1060;
v_line_tbl(1).line_id := 1046;
v_line_tbl(1).change_reason := 'Not provided';
--v_line_tbl (1).unit_selling_price := 10;
--v_line_tbl (1).unit_list_price := 10;
--v_line_tbl (1).calculate_price_flag := 'Y';
v_line_tbl(1).operation := OE_GLOBALS.G_OPR_UPDATE;
DBMS_OUTPUT.PUT_LINE('Starting of API');
-- Calling the API to update the header details of an existing Order --
OE_ORDER_PUB.PROCESS_ORDER (
p_api_version_number => v_api_version_number,
p_header_rec => v_header_rec,
p_line_tbl => v_line_tbl,
p_action_request_tbl => v_action_request_tbl,
p_line_adj_tbl => v_line_adj_tbl, -- OUT variables,
x_header_rec => v_header_rec_out,
x_header_val_rec => v_header_val_rec_out,
x_header_adj_tbl => v_header_adj_tbl_out,
x_header_adj_val_tbl => v_header_adj_val_tbl_out,
x_header_price_att_tbl => v_header_price_att_tbl_out,
x_header_adj_att_tbl => v_header_adj_att_tbl_out,
x_header_adj_assoc_tbl => v_header_adj_assoc_tbl_out,
x_header_scredit_tbl => v_header_scredit_tbl_out,
x_header_scredit_val_tbl => v_header_scredit_val_tbl_out,
x_line_tbl => v_line_tbl_out,
x_line_val_tbl => v_line_val_tbl_out,
x_line_adj_tbl => v_line_adj_tbl_out,
x_line_adj_val_tbl => v_line_adj_val_tbl_out,
x_line_price_att_tbl => v_line_price_att_tbl_out,
x_line_adj_att_tbl => v_line_adj_att_tbl_out,
x_line_adj_assoc_tbl => v_line_adj_assoc_tbl_out,
x_line_scredit_tbl => v_line_scredit_tbl_out,
x_line_scredit_val_tbl => v_line_scredit_val_tbl_out,
x_lot_serial_tbl => v_lot_serial_tbl_out,
x_lot_serial_val_tbl => v_lot_serial_val_tbl_out,
x_action_request_tbl => v_action_request_tbl_out,
x_return_status => v_return_status,
x_msg_count => v_msg_count,
x_msg_data => v_msg_data);
DBMS_OUTPUT.PUT_LINE('Completion of API');
IF v_return_status = fnd_api.g_ret_sts_success THEN
COMMIT;
DBMS_OUTPUT.put_line ('Order Header Updation Success : '||v_header_rec_out.header_id);
ELSE DBMS_OUTPUT.put_line ('Order Header Updation failed:'||v_msg_data);
ROLLBACK;
FOR i IN 1 .. v_msg_count
LOOP v_msg_data := oe_msg_pub.get( p_msg_index => i, p_encoded => 'F');
dbms_output.put_line( i|| ') '|| v_msg_data);
END LOOP;
END IF;
END;
im getting errors pls send me a solution
rgds,
sandyif you just want to change qty , then comment v_line_tbl(1).invoice_to_org_id := 1060; and try to run again
Regards
eoracleapps.blogspot.com -
When copying sales order, its coming as booked (Using custom workflow)
Hi,
While copying sales order using custom workflow, if the source sales order is booked, the new sales order is also coming as booked only.
But in standard workflow, its coming as Entered. Any idea which parameter I need to check?Hi Asit Garg,
Correct me if i am "X".
You want to trigger the workflow for two different scenario that is 1. when the sales order is changed 2. when the sales order is created with delivery block.
For the 1. As you said it is working fine.
For the 2. sales order created with delivery block.
Make your workflow to work like this, Whenever the sales order is created trigger the workflow and at first step check for the condition weather the sales order have the delivery block or not if not terminate the workflow through terminating event if not proceed as you wish.
Hope it will helps you,
Regards
Balaji E. -
Issue in creating sales order using process_header API
Hi all,
We have a requirement to create sales order using apps adapter in ebiz from SOA suite composite.I used OE_ORDER_PUB.Process_header API to create order header.
When I pass the inputs and test the service,I get output with return_status='S'. But no record falls at the OE_ORDER_HEADER_ALL table.
I cant identify where the problem is.Pls suggest me with the things to resolve this issue.
Thanks,
gouthamHi all,
We have a requirement to create sales order using apps adapter in ebiz from SOA suite composite.I used OE_ORDER_PUB.Process_header API to create order header.
When I pass the inputs and test the service,I get output with return_status='S'. But no record falls at the OE_ORDER_HEADER_ALL table.
I cant identify where the problem is.Pls suggest me with the things to resolve this issue.
Thanks,
goutham -
What are required feilds values for creating a sales order using va01?
What are required feilds values for creating a sales order using va01?
Please give examples if possible.Hi,
go through this URL:
<a href="http://web.mit.edu/cao/www/SB2002/CR/VA01.htm">http://web.mit.edu/cao/www/SB2002/CR/VA01.htm</a>
Hope this will help you.
Thanks
Shiva -
How to Create RMA Based on Sales order using OE_ORDER_PUB api
Hi,
Can any one pls help me how to create a RMA based on the sales order using oe_order_pub.process_order APi.
Thanks.Creating RMA is very similar to creating an Order. You need to make sure you're passing the correct order_type, line_type which'll be setup as 'RETURN' (or 'MIXED') category in transaction type definition.
For the API to automatically create a reference on your RMA lines to the original Order lines, you need to pass the following
l_line_tbl (l_line_tbl.COUNT).return_reason_code := 'RETURN'; -- Mandatory for RMA
l_line_tbl (l_line_tbl.COUNT).reference_line_id := v_ref_line_id; -- Original order line_id
l_line_tbl (l_line_tbl.COUNT).reference_header_id := v_ref_header_id; -- Original order header_id
l_line_tbl (l_line_tbl.COUNT).return_context := 'ORDER';
l_line_tbl (l_line_tbl.COUNT).return_attribute1 := v_ref_header_id; -- Original order header_id
l_line_tbl (l_line_tbl.COUNT).return_attribute2 := v_ref_line_id; -- Original order line_id
Once the RMA gets created, query the order and navigate to Lines>Returns tab. You can see the original order number and line number.
Thanks
Gopal -
Form Personalization is not working for copied Sales Orders
Hi All,
We have a requirement in Sales Order form, if the order type is "Standard" then Ship method field should be mandatory.
We were able to do this using below form personalization, it is working for new order creation.
When we did the below testing it is not working
Inactivated the ship method and try to copy the order with Standard type the field remains mandatory and null but still it is allowing to book the Sales Order.
Please help to sort out this issue, let me know if it is not clear
Condition
Trigger Event : WHEN-NEW-ITEM-INSTANCE
Trigger Object: ORDER.SOLD_TO
Condition:
(:ORDER.ORDER_TYPE not like '%STANDARD%')
Action
Type : Property
Object Type : Item
Target Object : ORDER.SHIPPING_METHOD
Property Name: REQUIRED
Value: True
Thanks,
CSKHi CSK,
try it in well validate item trigger.
If that order type is list then you may disable the field in WHEN LIST CHANGED trigger itself.
Hope it will work,
Regards,
Soofi -
Copy Sales Order delivery date to Delivery Order delivery date
Hi,
Is there a way to create a FMS to copy the sales order delivery date to delivery order delivery date?
Thanks
FabianHi Fabian,
I am not sure whether I have understood your requirement correctly.
CopyTo also works for creating a delivery document from more than one sales order as base documents and base ref is available in line table than in parent table.
The work around could be to create a UDF in marketing documents & update this UDF in sales order using FMS or using SBO stored procedure.
Now, once after sales order is copied to delivery the UDF value is available in delivery and u can create one another FMS to get the UDF value into Delivery's Delivery Date.
Hope this helps.
Best Regards
Satish -
Create sales order using IBE_Quote_W1_PVT.SUBMITQUOTEWRAPPER
Hi,
I am trying to create an sales order using following api. which creates cart from shopping cart.
SET serveroutput ON
DECLARE
P_API_VERSION_NUMBER NUMBER;
P_INIT_MSG_LIST VARCHAR2(200);
P_COMMIT VARCHAR2(200);
X_RETURN_STATUS VARCHAR2(200);
X_MSG_COUNT NUMBER;
X_MSG_DATA VARCHAR2(200);
P_QUOTE_HEADERID NUMBER;
P_LAST_UPDATE_DATE DATE;
P_SHAREE_NUMBER NUMBER;
P_SHAREE_PARTY_ID NUMBER;
P_SHAREE_ACCOUNT_ID NUMBER;
P_SC_BOOK_FLAG VARCHAR2(200);
P_SC_RESERVE_FLAG VARCHAR2(200);
P_SC_CALCULATE_PRICE VARCHAR2(200);
P_SC_SERVER_ID NUMBER;
P_SC_CC_BY_FAX VARCHAR2(200);
P_CUSTOMER_COMMENTS VARCHAR2(200);
P_REASON_CODE VARCHAR2(200);
P_SALESREP_EMAIL_ID VARCHAR2(200);
P_MINISITE_ID NUMBER;
X_LAST_UPDATE_DATE DATE;
X_ORDER_NUMBER NUMBER;
X_ORDER_HEADER_ID NUMBER;
X_ORDER_REQUEST_ID NUMBER;
X_CONTRACT_ID NUMBER;
X_STATUS VARCHAR2(200);
X_HOLD_FLAG VARCHAR2(200);
BEGIN
P_API_VERSION_NUMBER := 1;
P_INIT_MSG_LIST := FND_API.G_TRUE;
P_COMMIT := FND_API.G_FALSE;
P_QUOTE_HEADERID := 18534;
P_LAST_UPDATE_DATE := to_date('2012-10-01 04:33:45','YYYY-MM-DD HH24:MI:SS');
P_SHAREE_NUMBER := FND_API.G_MISS_NUM ;
P_SHAREE_PARTY_ID := FND_API.G_MISS_NUM ;
P_SHAREE_ACCOUNT_ID := FND_API.G_MISS_NUM ;
P_SC_BOOK_FLAG := FND_API.G_MISS_CHAR;
P_SC_RESERVE_FLAG := FND_API.G_FALSE;
P_SC_CALCULATE_PRICE := FND_API.G_FALSE;
P_SC_SERVER_ID := -1;
P_SC_CC_BY_FAX := FND_API.G_FALSE;
P_CUSTOMER_COMMENTS := FND_API.G_MISS_CHAR;
P_REASON_CODE := FND_API.G_MISS_CHAR;
P_SALESREP_EMAIL_ID := FND_API.G_MISS_CHAR;
P_MINISITE_ID := 10660;
IBE_Quote_W1_PVT.SUBMITQUOTEWRAPPER(
P_API_VERSION_NUMBER => P_API_VERSION_NUMBER,
P_INIT_MSG_LIST => P_INIT_MSG_LIST,
P_COMMIT => P_COMMIT,
X_RETURN_STATUS => X_RETURN_STATUS,
X_MSG_COUNT => X_MSG_COUNT,
X_MSG_DATA => X_MSG_DATA,
P_QUOTE_HEADERID => P_QUOTE_HEADERID,
P_LAST_UPDATE_DATE => P_LAST_UPDATE_DATE,
P_SHAREE_NUMBER => P_SHAREE_NUMBER,
P_SHAREE_PARTY_ID => P_SHAREE_PARTY_ID,
P_SHAREE_ACCOUNT_ID => P_SHAREE_ACCOUNT_ID,
P_SC_BOOK_FLAG => P_SC_BOOK_FLAG,
P_SC_RESERVE_FLAG => P_SC_RESERVE_FLAG,
P_SC_CALCULATE_PRICE => P_SC_CALCULATE_PRICE,
P_SC_SERVER_ID => P_SC_SERVER_ID,
P_SC_CC_BY_FAX => P_SC_CC_BY_FAX,
P_CUSTOMER_COMMENTS => P_CUSTOMER_COMMENTS,
P_REASON_CODE => P_REASON_CODE,
P_SALESREP_EMAIL_ID => P_SALESREP_EMAIL_ID,
P_MINISITE_ID => P_MINISITE_ID,
X_LAST_UPDATE_DATE => X_LAST_UPDATE_DATE,
X_ORDER_NUMBER => X_ORDER_NUMBER,
X_ORDER_HEADER_ID => X_ORDER_HEADER_ID,
X_ORDER_REQUEST_ID => X_ORDER_REQUEST_ID,
X_CONTRACT_ID => X_CONTRACT_ID,
X_STATUS => X_STATUS,
X_HOLD_FLAG => X_HOLD_FLAG
DBMS_OUTPUT.PUT_LINE('X_RETURN_STATUS = ' || X_RETURN_STATUS);
DBMS_OUTPUT.PUT_LINE('X_MSG_COUNT = ' || X_MSG_COUNT);
DBMS_OUTPUT.PUT_LINE('X_MSG_DATA = ' || X_MSG_DATA);
DBMS_OUTPUT.PUT_LINE('X_LAST_UPDATE_DATE = ' || X_LAST_UPDATE_DATE);
DBMS_OUTPUT.PUT_LINE('X_ORDER_NUMBER = ' || X_ORDER_NUMBER);
DBMS_OUTPUT.PUT_LINE('X_ORDER_HEADER_ID = ' || X_ORDER_HEADER_ID);
DBMS_OUTPUT.PUT_LINE('X_ORDER_REQUEST_ID = ' || X_ORDER_REQUEST_ID);
DBMS_OUTPUT.PUT_LINE('X_CONTRACT_ID = ' || X_CONTRACT_ID);
DBMS_OUTPUT.PUT_LINE('X_STATUS = ' || X_STATUS);
DBMS_OUTPUT.PUT_LINE('X_HOLD_FLAG = ' || X_HOLD_FLAG);
END;
When i use this from a OA_HTML jsp the sales order is created . But when i use it from the sql developer
i got following error
X_RETURN_STATUS = E
X_MSG_COUNT = 1
X_MSG_DATA = You do not have access to this cart.
X_LAST_UPDATE_DATE =
X_ORDER_NUMBER = 9.990000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000E+125
X_ORDER_HEADER_ID = 9.990000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000E+125
X_ORDER_REQUEST_ID = 9.990000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000E+125
X_CONTRACT_ID = 9.990000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000E+125
X_STATUS =
I checked logs for both .
For working one log is ie. using jsp
01-OCT-2012:01:24:46 IBE IBE_UTIL.enable_debug_new p_check_profile is N
01-OCT-2012:01:24:46 IBE IBE_UTIL.enable_debug_new p_check_profile is N
01-OCT-2012:01:24:46 IBE Begin validate_user_update10/01/2012:01:24:46
01-OCT-2012:01:24:46 IBE Incoming party_id is 423832
01-OCT-2012:01:24:46 IBE Incoming cust_account_id is 140757
01-OCT-2012:01:24:46 IBE Incoming quote_header_id is 18529
01-OCT-2012:01:24:46 IBE User id obtained from environment is: -1
01-OCT-2012:01:24:46 IBE p_save_type is :6
01-OCT-2012:01:24:46 IBE Entered Validation...T
01-OCT-2012:01:24:46 IBE no sharee number
01-OCT-2012:01:24:46 IBE quote_source_code of cart passed in=IStore Account
01-OCT-2012:01:24:46 IBE In validating Owner flow: 423832,140757 10/01/2012:01:24:46
01-OCT-2012:01:24:46 IBE Validate_user_update: Before Last update date validation,p_last_update_date= 01-10-12
01-OCT-2012:01:24:46 IBE Validate_user_update: Last update date validation START
01-OCT-2012:01:24:46 IBE Validate_user_update: l_last_update_date=
01-OCT-2012:01:24:46 IBE Validate_user_update: p_last_update_date=10/01/2012:00:22:07
01-OCT-2012:01:24:46 IBE Validate_user_update: Last update date validation END
01-OCT-2012:01:24:46 IBE Before calling validate_quote10/01/2012:01:24:46
01-OCT-2012:01:24:46 IBE Begin Validate_quote10/01/2012:01:24:46
01-OCT-2012:01:24:46 IBE Validate_quote: Validation for one-click start
01-OCT-2012:01:24:46 IBE End validate_quote10/01/2012:01:24:46
01-OCT-2012:01:24:46 IBE End validate_user_update10/01/2012:01:24:46
but for the failure it is.
01-OCT-2012:01:20:53 IBE IBE_UTIL.enable_debug_new p_check_profile is N
01-OCT-2012:01:20:53 IBE IBE_UTIL.enable_debug_new p_check_profile is N
01-OCT-2012:01:20:53 IBE Begin validate_user_update10/01/2012:01:20:53
01-OCT-2012:01:20:53 IBE Incoming party_id is 9.990000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000E+125
01-OCT-2012:01:20:53 IBE Incoming cust_account_id is 9.990000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000E+125
01-OCT-2012:01:20:53 IBE Incoming quote_header_id is 18529
01-OCT-2012:01:20:53 IBE User id obtained from environment is: -1
01-OCT-2012:01:20:53 IBE p_save_type is :6
01-OCT-2012:01:20:53 IBE Entered Validation...T
01-OCT-2012:01:20:53 IBE no sharee number
01-OCT-2012:01:20:53 IBE quote_source_code of cart passed in=IStore Account
01-OCT-2012:01:20:53 IBE Owner flow with env. userid: 10/01/2012:01:20:53
01-OCT-2012:01:20:53 IBE partyId::quotehdrId(9.990000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000E+125,18529)
01-OCT-2012:01:20:53 IBE End:Expected exception:IBE_Quote_Misc_pvt.validate_user_update
From this u can see that party id and account is fetched when using jsp. but direct running of procedure not getting these values.
is there sql api running when accessing through jsp . so that these values are got from session.
Thanks
MarkHi,
I have passed that too . still getting same error.
IBE_Quote_W1_PVT.SUBMITQUOTEWRAPPER calls IBE_Quote_Checkout_Pvt.submitQuote
which calls another package
PROCEDURE Validate_User_Update(
p_api_version_number IN NUMBER := 1.0
,p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
,p_quote_header_id IN NUMBER
,p_party_id IN NUMBER := FND_API.G_MISS_NUM
,p_cust_account_id IN NUMBER := FND_API.G_MISS_NUM
,p_quote_retrieval_number IN NUMBER := FND_API.G_MISS_NUM
,p_validate_user IN VARCHAR2 := FND_API.G_FALSE
,p_privilege_type_code IN VARCHAR2 := 'F'
,p_save_type IN NUMBER := FND_API.G_MISS_NUM
,p_last_update_date IN DATE := FND_API.G_MISS_DATE
,x_return_status OUT NOCOPY VARCHAR2
,x_msg_count OUT NOCOPY NUMBER
,x_msg_data OUT NOCOPY VARCHAR2)
in it like this
IBE_Quote_Misc_pvt.Validate_User_Update(
p_init_msg_list => FND_API.G_TRUE
,p_quote_header_id => p_quote_Header_Id
,p_quote_retrieval_number => p_sharee_number
,p_validate_user => FND_API.G_TRUE
,p_privilege_type_code => 'A'
,p_save_type => PLACE_ORDER
,p_last_update_date => p_last_update_date
,x_return_status => x_return_status
,x_msg_count => x_msg_count
,x_msg_data => x_msg_data
from this u can see that there no value passed for party id and account id .
Thanks
Mark -
Problem regarding the creation of sales order using bapi.
Hai all,
I am creating sales order using bapi but i am, get following error messages :
TYPE ID NUMBER MESSAGE
E VP 112 Please enter sold-to party or ship-to party
E V4 219 Sales document was not changed
I have entered all the parameters.
my program is as follows :
*& Report ZSD_SALES_ORDER
REPORT ZSD_SALES_ORDER.
Tables
*table definitions
TABLES:vbak, "Sales Document: Header Data
knvv, "Customer Master Sales Data
mara, "General Material Data
t001l, "Plants/Branches
mvke, "Sales Data for Material
vbap, "Sales Document: Item Data
konv. "Conditions (Transaction Data)
Types
*type for upload data
TYPES :BEGIN OF ty_upload,
matnr(20) TYPE c, " Old material number
quantity(20) TYPE c, " Cumulative order quantity in sales units
VALUE TYPE BAPIKWERT1,
value(20) TYPE c, " Condition value
value TYPE konv-kwert, " Condition value
END OF ty_upload.
*type for final output table
TYPES :BEGIN OF ty_main,
bismt TYPE mara-bismt, "Old material number
matnr TYPE vbap-matnr, "Material Number
kunnr TYPE vbak-kunnr, "customer number
auart TYPE vbak-auart, "Sales Document Type
vkorg TYPE vbak-vkorg, "Sales Organization
vtweg TYPE vbak-vtweg, "Distribution Channel
spart TYPE vbak-spart, "Division
vbeln TYPE vbak-vbeln, "Sales document
werks TYPE marc-werks, " Plant
lgort TYPE mard-lgort, "Storage Location
posnr TYPE vbap-posnr, "Sales Document Item
parvw TYPE vbpa-parvw, "Partner function
kwmeng TYPE vbap-kwmeng, "Cumulative order quantity in sales units
kschl TYPE konv-kschl, "Condition type
kwert TYPE konv-kwert, "Condition value
KWERT TYPE BAPIKWERT1,
kwert(20) TYPE c, "Condition value
waers TYPE konv-waers, "Currency
END OF ty_main.
*type for old material number
TYPES: BEGIN OF ty_matnr,
matnr TYPE mara-matnr,
bismt TYPE mara-bismt,
END OF ty_matnr.
*type for order number
TYPES :BEGIN OF ty_output,
vbeln TYPE vbak-vbeln, "Sales Document
END OF ty_output.
Constants Begin with C_ *
CONSTANTS:
c_zpmu(4) TYPE c VALUE 'ZPMU',
c_zpmm(4) TYPE c VALUE 'ZPMM'.
DATA: c_ch(1) TYPE c VALUE 'X'.
Data Begin with W_ *
*global data for validations
DATA: w_count TYPE i,
w_vkorg TYPE vbak-vkorg,
w_vtweg TYPE vbak-vtweg,
w_spart TYPE vbak-spart,
w_werks TYPE t001l-werks,
w_check TYPE c,
w_itemno TYPE posnr_va,
W_COND TYPE C.
w_cond(3) TYPE c.
Internal tables Begin with IT_ *
*internal table definitions
DATA : it_upload TYPE STANDARD TABLE OF ty_upload ,
wa_upload TYPE ty_upload.
DATA : it_main TYPE STANDARD TABLE OF ty_main,
wa_main TYPE ty_main.
DATA: it_matnr TYPE STANDARD TABLE OF ty_matnr,
wa_matnr TYPE ty_matnr.
DATA : it_output TYPE STANDARD TABLE OF ty_output.
Internal table for BAPI.
DATA: it_bapisdhd1 TYPE STANDARD TABLE OF bapisdhd1, "Sales and Distribution Document Header
wa_bapisdhd1 TYPE bapisdhd1.
DATA: it_bapisditm TYPE STANDARD TABLE OF bapisditm , "Sales and Distribution Document Item
wa_bapisditm TYPE bapisditm.
DATA: it_bapiparnr TYPE STANDARD TABLE OF bapiparnr, "SD Document Partner: WWW
wa_bapiparnr TYPE bapiparnr.
DATA: it_bapischdl TYPE STANDARD TABLE OF bapischdl, "Schedule Lines
wa_bapischdl TYPE bapischdl.
DATA: it_bapicond TYPE STANDARD TABLE OF bapicond, "Communication Fields for Maintaining Conditions in the Order
wa_bapicond TYPE bapicond.
DATA: it_bapiret2 TYPE STANDARD TABLE OF bapiret2, "Return Parameter
wa_bapiret2 TYPE bapiret2.
Parameters Begin with PR_ *
*selection screen definition
SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME .
PARAMETERS: pr_vkorg TYPE vbak-vkorg OBLIGATORY,
pr_vtweg TYPE vbak-vtweg OBLIGATORY,
pr_spart TYPE vbak-spart OBLIGATORY,
pr_kunnr TYPE kna1-kunnr OBLIGATORY,
pr_werks TYPE marc-werks OBLIGATORY,
pr_lgort TYPE mard-lgort OBLIGATORY.
PARAMETERS: pr_auart TYPE vbak-auart OBLIGATORY,
PR_AUGRU TYPE VBAK-AUGRU OBLIGATORY.
pr_augru TYPE vbak-augru.
SELECTION-SCREEN END OF BLOCK blk1.
SELECTION-SCREEN BEGIN OF BLOCK blk2 WITH FRAME.
PARAMETERS : pr_file TYPE ibipparms-path OBLIGATORY.
SELECTION-SCREEN END OF BLOCK blk2.
At selection-screen *
AT SELECTION-SCREEN.
PERFORM f006_validate_vkorg.
PERFORM f007_validate_vtweg.
PERFORM f008_validate_spart.
PERFORM f009_validate_kunnr.
PERFORM f010_validate_werks.
PERFORM f011_validate_lgort.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR pr_file.
*for f4 help----
PERFORM f003_f4_help.
S T A R T O F S E L E C T I O N *
START-OF-SELECTION.
*for material ,quantity and value upload
PERFORM f001_upload_file.
*get data
PERFORM f003_get_data.
*for check the data
PERFORM f002_check_data .
PERFORM f004_process.
*for posting
PERFORM f005_posting.
END-OF-SELECTION.
E N D O F S E L E C T I O N *
*& Form f001_upload_file
upload file
FORM f001_upload_file .
DATA : lw_fname TYPE string.
CLEAR lw_fname.
lw_fname = pr_file.
REFRESH it_upload.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = lw_fname
filetype = 'ASC'
has_field_separator = c_ch
TABLES
data_tab = it_upload
EXCEPTIONS
file_open_error = 1
file_read_error = 2
no_batch = 3
gui_refuse_filetransfer = 4
invalid_type = 5
no_authority = 6
unknown_error = 7
bad_data_format = 8
header_not_allowed = 9
separator_not_allowed = 10
header_too_long = 11
unknown_dp_error = 12
access_denied = 13
dp_out_of_memory = 14
disk_full = 15
dp_timeout = 16
OTHERS = 17.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
LOOP AT it_upload INTO wa_upload.
wa_upload-value = ( wa_upload-value ) / 10.
MODIFY it_upload FROM wa_upload.
ENDLOOP.
ENDFORM. "F001_UPLOAD_FILE
*& Form f003_f4_help
f4 help
FORM f003_f4_help .
CALL FUNCTION 'F4_FILENAME'
EXPORTING
program_name = syst-cprog
dynpro_number = syst-dynnr
field_name = ' '
IMPORTING
file_name = pr_file.
ENDFORM. " f003_f4_help
*& Form check_data
text
FORM f002_check_data .
DATA: lw_lines TYPE i.
DESCRIBE TABLE it_main LINES lw_lines.
IF lw_lines LE 0.
RETURN.
ENDIF.
SELECT a~matnr
a~bismt FROM mara AS a INNER JOIN mvke AS b
ON amatnr = bmatnr
INTO CORRESPONDING FIELDS OF TABLE it_matnr
FOR ALL ENTRIES IN it_main
WHERE a~bismt = it_main-bismt.
IF sy-subrc = 0.
LOOP AT it_main INTO wa_main.
CLEAR : wa_matnr.
READ TABLE it_matnr INTO wa_matnr WITH KEY bismt = wa_main-bismt.
IF sy-subrc = 0.
MOVE: wa_matnr-matnr TO wa_main-matnr.
ENDIF.
MODIFY it_main FROM wa_main TRANSPORTING matnr WHERE bismt = wa_main-bismt.
ENDLOOP.
ELSE.
MESSAGE e000(zmsd) WITH text-001.
ENDIF.
ENDFORM. "CHECK_DATA
*& Form F009_validate_vkorg
text
FORM f006_validate_vkorg .
CLEAR w_vkorg.
SELECT SINGLE vkorg
INTO w_vkorg FROM tvko
WHERE vkorg EQ pr_vkorg.
IF sy-subrc <> 0.
MESSAGE e000(zmsd) WITH text-012 pr_vkorg.
ENDIF.
ENDFORM. " F009_validate_vkorg
*& Form f007_validate_vtweg
text
FORM f007_validate_vtweg .
CLEAR:w_vtweg.
SELECT SINGLE vtweg
INTO w_vtweg FROM tvtw
WHERE vtweg EQ pr_vtweg.
IF sy-subrc <> 0.
MESSAGE e089(zmsd).
ENDIF.
ENDFORM. " f007_validate_vtweg
*& Form f008_validate_spart
text
FORM f008_validate_spart .
CLEAR:w_spart.
SELECT SINGLE spart
INTO w_spart FROM tspa
WHERE spart EQ pr_spart.
IF sy-subrc <> 0.
MESSAGE e087(zmsd).
ENDIF.
ENDFORM. " f008_validate_spart
*& Form F010_validate_kunnr
text
FORM f009_validate_kunnr .
DATA: l_kunnr TYPE kunnr.
CLEAR: w_vkorg, w_vtweg,w_spart.
SELECT SINGLE kunnr FROM knvv
INTO l_kunnr
WHERE kunnr = pr_kunnr
AND vkorg = pr_vkorg
AND vtweg = pr_vtweg
AND spart = pr_spart.
IF sy-subrc <> 0.
MESSAGE e000(zmsd) WITH text-010 pr_kunnr text-011 pr_vkorg .
ENDIF.
ENDFORM. " F010_validate_kunnr
*& Form f010_validate_werks
text
FORM f010_validate_werks .
CLEAR:w_werks.
SELECT SINGLE werks
INTO w_werks FROM t001w
WHERE werks EQ pr_werks.
IF sy-subrc <> 0.
MESSAGE e088(zmsd).
ENDIF.
ENDFORM. " f010_validate_werks
*& Form F011_validate_lgort
text
FORM f011_validate_lgort .
CLEAR:w_werks .
SELECT SINGLE werks FROM t001l
INTO w_werks
WHERE werks = pr_werks
AND lgort = pr_lgort.
IF sy-subrc <> 0.
MESSAGE e000(zmsd) WITH text-007 pr_lgort text-008 pr_werks .
ENDIF.
ENDFORM. " F011_validate_lgort
*& Form f003_get_data
text
FORM f003_get_data .
CLEAR wa_main.
REFRESH it_main.
LOOP AT it_upload INTO wa_upload.
CLEAR : wa_main.
MOVE: wa_upload-matnr TO wa_main-bismt,
wa_upload-quantity TO wa_main-kwmeng,
wa_upload-value TO wa_main-kwert,
pr_vkorg TO wa_main-vkorg,
pr_vtweg TO wa_main-vtweg,
pr_spart TO wa_main-spart,
pr_kunnr TO wa_main-kunnr,
pr_werks TO wa_main-werks,
pr_lgort TO wa_main-lgort.
APPEND wa_main TO it_main.
ENDLOOP.
ENDFORM. " f003_get_data
*& Form f004_process
text
FORM f004_process .
CLEAR w_check.
LOOP AT it_main INTO wa_main.
IF wa_main-matnr = ''.
WRITE:/ text-006,
wa_main-bismt.
w_check = 1.
ENDIF.
IF wa_main-kwmeng = 0.
WRITE:/ text-005,
wa_main-bismt.
w_check = 1.
ENDIF.
IF pr_auart <> 'ZM01'.
IF wa_main-kwert IS INITIAL.
WRITE:/ text-004,
wa_main-bismt.
w_check = 1.
ENDIF.
ENDIF.
ENDLOOP.
ENDFORM. " f004_process
*& Form f005_posting
text
FORM f005_posting .
CLEAR: w_itemno,
w_cond.
w_itemno = 10.
w_cond = 1.
IF w_check = '' OR w_check = 1.
wa_bapisdhd1-doc_type = pr_auart.
wa_bapisdhd1-ord_reason = pr_augru.
LOOP AT it_main INTO wa_main.
IF w_cond = 1.
CLEAR: it_bapiret2,
it_bapisditm,
it_bapiparnr,
it_bapischdl,
it_bapicond.
REFRESH:it_bapiret2,
it_bapisditm,
it_bapiparnr,
it_bapischdl,
it_bapicond.
MOVE: wa_main-vkorg TO wa_bapisdhd1-sales_org,
wa_main-vtweg TO wa_bapisdhd1-distr_chan,
wa_main-spart TO wa_bapisdhd1-division.
wa_bapisdhd1-wbs_eleM = 'Y561.1'.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = pr_kunnr
IMPORTING
OUTPUT = pr_kunnr.
wa_bapisdhd1-PURCH_NO_S = pr_kunnr.
wa_bapisdhd1-PURCH_NO_C = pr_kunnr.
ENDIF.
MOVE: w_itemno TO wa_bapisditm-itm_number,
wa_main-matnr TO wa_bapisditm-material,
wa_main-BISMT TO wa_bapisditm-material,
wa_main-werks TO wa_bapisditm-plant,
wa_main-lgort TO wa_bapisditm-store_loc.
wa_bapisditm-target_qty = '10'.
wa_bapisditm-PURCH_NO_S = pr_kunnr.
wa_bapisditm-PURCH_NO_C = pr_kunnr.
APPEND wa_bapisditm TO it_bapisditm.
IF w_cond = 1.
wa_bapiparnr-partn_numb = pr_kunnr.
wa_bapiparnr-itm_number = 10.
wa_bapiparnr-partn_role = 'SP'.
APPEND wa_bapiparnr TO it_bapiparnr.
wa_bapiparnr-partn_role = 'AG'.
APPEND wa_bapiparnr TO it_bapiparnr.
CLEAR wa_bapiparnr-partn_role.
wa_bapiparnr-partn_numb = pr_kunnr.
wa_bapiparnr-partn_role = 'RE'.
APPEND wa_bapiparnr TO it_bapiparnr.
CLEAR wa_bapiparnr-partn_role.
wa_bapiparnr-partn_numb = pr_kunnr.
wa_bapiparnr-partn_role = 'RG'.
APPEND wa_bapiparnr TO it_bapiparnr.
CLEAR wa_bapiparnr-partn_role.
wa_bapiparnr-partn_numb = pr_kunnr.
wa_bapiparnr-partn_role = 'WE'.
APPEND wa_bapiparnr TO it_bapiparnr.
ENDIF.
wa_bapischdl-itm_number = w_itemno.
wa_bapischdl-req_qty = wa_main-kwmeng.
wa_bapischdl-PURCH_NO_S = pr_kunnr.
APPEND wa_bapischdl TO it_bapischdl.
wa_bapicond-itm_number = w_itemno.
wa_bapicond-cond_type = 'ZECL'.
IF ( wa_bapisdhd1-doc_type = 'ZPMU' ) OR ( wa_bapisdhd1-doc_type = 'ZPMM' ).
wa_bapicond-cond_type = 'ZVAL'.
ELSE.
wa_bapicond-cond_type = 'ZMRP'. "+PK12122006
ENDIF.
wa_bapicond-cond_value = wa_main-kwert.
APPEND wa_bapicond TO it_bapicond.
w_itemno = w_itemno + 10.
w_cond = w_cond + 1.
ENDLOOP.
data : SALESDOCUMENTIN like BAPIVBELN-VBELN.
CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2'
EXPORTING
order_header_in = wa_bapisdhd1
IMPORTING
salesdocument = SALESDOCUMENTIN
TABLES
return = it_bapiret2
order_items_in = it_bapisditm
order_partners = it_bapiparnr
order_schedules_in = it_bapischdl
order_conditions_in = it_bapicond.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = c_ch.
ENDIF.
LOOP AT it_bapiret2 INTO wa_bapiret2.
DATA : w_err(100) TYPE c,
w_matnr TYPE matnr.
IF wa_bapiret2-type = 'E' AND wa_bapiret2-id = 'V1' AND wa_bapiret2-number = 392.
UNPACK wa_bapiret2-message_v1 TO w_matnr.
READ TABLE it_matnr INTO wa_matnr WITH KEY matnr = w_matnr.
IF sy-subrc EQ 0.
CONCATENATE text-013 wa_matnr-bismt INTO w_err SEPARATED BY space.
MESSAGE w_err TYPE 'S'.
ENDIF.
ENDIF.
IF WA_BAPIRET2-TYPE = 'S'. " Comment
WRITE: 40 TEXT-009, WA_BAPIRET2-MESSAGE_V2+0(10).
ENDIF.
ENDLOOP.
ENDFORM. " f005_posting
I have given all the necessary parameters. it is telling that error is in parameter
sales_header_in.
I have checked it.
i have assigned purch_no_s and purch_no_c of the structure BAPISDHD1(ORDER_HEADER_IN)
in the bapi with customer number.
and also i have assigned the partnumber of the structure BAPIPARNR ORDER_PARTNERS
in the bapi with customer number.
but still , it is diplaying the error message, please enter the sold to or ship to party number.
how to resolve this error.
this is urgent requirement.
points will be awarded.
thanking u in advance,
a.srinivas.Hi,
Did u have a look at the standard programs which make use of BAPI_SALESORDER_CREATEFROMDAT1
Heres a list...
LWSSOU08
MV45WF0S
MWWMJF21_BAPI_SALESORDER_CREAT
RBUS2032
Regards,
Tanveer.
<b>Please mark helpful answers</b> -
Problem while creating sales order using BAPI
Hi all,
i am creating a sales order from the purchase order data.
when my client will send a PO in EDI format, my 3rd party edi tool will convert that edi formatted PO to text format. then i will upload that text formatted PO to my program then i will create a SO from those uploaded PO data using BAPI BAPI_SALESORDER_CREATEFROMDAT2.
but,no sales order is being created.& also i am not getting any return message.by debugging also, i am not getting the error.plz suggest where i am doing mistake.below is the coding.
DATA:
gfilename LIKE rlgrap-filename.
*--Internal tables
DATA: BEGIN OF i_item OCCURS 50. "Create Material Document Item
INCLUDE STRUCTURE BAPISDITM .
DATA: END OF i_item .
DATA: BEGIN OF i_partner OCCURS 20. "Return parameter
INCLUDE STRUCTURE BAPIPARNR.
DATA: END OF i_partner.
DATA: BEGIN OF i_schedule OCCURS 20. "Return parameter
INCLUDE STRUCTURE BAPISCHDL .
DATA: END OF i_schedule.
DATA: BEGIN OF i_cond OCCURS 20. "Return parameter
INCLUDE STRUCTURE BAPICOND .
DATA: END OF i_cond.
DATA: BEGIN OF i_part OCCURS 0, " Internal table for split data
part(20),
END OF i_part.
DATA: BEGIN OF i_return OCCURS 20. "Return parameter
INCLUDE STRUCTURE bapiret2.
DATA: END OF i_return.
*-- Work areas
DATA: BEGIN OF wa_header . "sales Document Header Data
INCLUDE STRUCTURE BAPISDHD1.
DATA: END OF wa_header .
*DATA: BEGIN OF wa_return . "Output Structure
INCLUDE STRUCTURE BAPIRET2.
*DATA: END OF wa_return .
DATA: begin of sorder.
INCLUDE STRUCTURE BAPIVBELN.
DATA: end of sorder.
data:begin of t_upload,
ebeln(10), "PO no(seagate)
aedat like sy-datum , "PO date
bsart(4) , "PO type
vdatu like sy-datum , "requested delivery date
kunnr(10) , "customer no-sold-to-party
kunak like vbak-kunnr, "bill-to-party
name1_s(20), "name1 of sold-to-party
name2_s(15), "name2 of sold-to-party
land1_s(3), "country
ort01_s(10), "city
regio_s(3), "region(state/province)
pstlz_s(10), "postal code
adrnr_s(10), "address
bstkd_e(10), "end customer purchase order
posex(6), "end customer PO line no(item no)
kdmat(18), "end customer material no(part no)
kunag(10), "ship-to-party
name1_c(20), "name1 of ship-to-party
name2_c(15), "name2 of ship-to-party
land1_c(3), "country
ort01_c(10), "city
regio_c(3), "region(state/province)
pstlz_c(10), "postal code
adrnr_c(10), "address
posnr(6), "item no(seagate PO line no)
pstyv(4), "item category
matnr(18), "material no(seagate 9 digit part no)
zmeng(13), "Target quantity in sales unit
vrkme like vbap-vrkme, "sales unit
meins(3), "UOM
posnr_tot like vbap-posnr,"Total no. of line items
werks(4), "plant
vstel like vbap-vstel, "shipping point
empst(10), "receiving point
shtyp(4), "shipment type
route(6), "route
vsbed(2), "shipping conds
rkfkf like vbap-rkfkf, "method of billing for co/ppc orders
zterm(4), "terms of payment key
inco1(3), "F.O.B inco term1
inco2(3), "F.O.B inco term2
end of t_upload.
Data: wa_upload like t_upload,
i_upload like standard table of t_upload.
Data:v_kunnr like kna1-kunnr,
v_posnr like vbap-posnr,
v_matnr like vbap-matnr,
v_zmeng like vbap-zmeng,
v_kunag like kna1-kunnr.
*---Constants
CONSTANTS: c_comma TYPE c VALUE ',', " For splitting data at commas
c_01(2) TYPE c VALUE '01', " For movement code in Bapi
c_b TYPE c VALUE 'B', " For mvt. Indicator in Bapi
c_creat(5) TYPE c VALUE 'CREAT', " For button text
c_clear(5) TYPE c VALUE 'CLEAR', " For clear button
c_mvmt(4) TYPE c VALUE 'MVMT',
c_ok(2) TYPE c VALUE 'OK',
c_error(5) TYPE c VALUE 'Error'.
*--SELECTION SCREEN DESIGN--
SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME.
PARAMETERS:
p_auart LIKE vbak-auart, " order type
p_vkorg LIKE vbak-vkorg, " sales org
p_vtweg LIKE vbak-vtweg, " dist channel
p_spart LIKE vbak-spart, " division
p_vkgrp LIKE vbak-vkgrp, " sales group
p_vkbur LIKE vbak-vkbur, "sales office
p_file(256) default 'c:/saleorder.txt'. "File name
SELECTION-SCREEN END OF BLOCK blk1.
SELECTION-SCREEN PUSHBUTTON 15(10) v_create USER-COMMAND creat.
SELECTION-SCREEN PUSHBUTTON 40(10) v_clear USER-COMMAND clear.
INITIALIZATION -
INITIALIZATION.
v_create = c_creat .
v_clear = c_clear.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
PERFORM selectfile USING p_file.
*--AT SELECTION_SCREEN--
AT SELECTION-SCREEN .
IF sy-ucomm = c_clear.
PERFORM f_clear.
ELSE.
IF sy-ucomm <> c_mvmt.
**--- Validating the input data.
PERFORM f_check_inputs.
ELSEif sy-ucomm = c_creat.
*--- Validating the input data.
PERFORM f_check_inputs.
*-- Uploading the PO data.
PERFORM f_PO_upload.
*---checking the PO data
PERFORM f_check_upload_data.
*---create sales order from PO data
PERFORM f_Sales_order_create.
ENDIF.
FORM f_PO_upload.
gfilename = p_file.
CALL FUNCTION 'WS_UPLOAD'
EXPORTING
filename = gfilename
filetype = 'DAT'
TABLES
data_tab = i_upload
EXCEPTIONS
conversion_error = 1
file_open_error = 2
file_read_error = 3
invalid_type = 4
no_batch = 5
unknown_error = 6
invalid_table_width = 7
gui_refuse_filetransfer = 8
customer_error = 9
OTHERS = 10.
IF sy-subrc <> 0.
MESSAGE i398(00) WITH '(WS_UPLOAD)'
' Errors occured with exception '
sy-subrc.
ENDIF.
ENDFORM. " f_PO_upload
*& Form selectfile
text
-->P_P_FILE text
FORM selectfile CHANGING value(filename) TYPE c.
CALL FUNCTION 'WS_FILENAME_GET'
EXPORTING
def_filename = gfilename
def_path = 'C:\'
mask = ',*.txt.'
mode = 'O'
title = 'Select File Name'
IMPORTING
filename = filename
EXCEPTIONS
inv_winsys = 1
no_batch = 2
selection_cancel = 3
selection_error = 4
OTHERS = 5.
ENDFORM. " selectfile
FORM f_Sales_order_create.
PERFORM f_fill_header.
PERFORM f_fill_partner.
PERFORM f_fill_item.
PERFORM f_call_BAPI.
ENDFORM. " f_Sales_order_create
*& Form f_fill_header
text
--> p1 text
<-- p2 text
FORM f_fill_header.
move p_auart to wa_header-doc_type.
move p_vkorg to wa_header-sales_org.
move p_vtweg to wa_header-distr_chan.
move p_spart to wa_header-division.
move p_vkgrp to wa_header-sales_grp.
move p_vkbur to wa_header-sales_off.
Read table i_upload into wa_upload index 1.
move wa_upload-ebeln to wa_header-purch_no_c.
move wa_upload-aedat to wa_header-purch_date.
move wa_upload-bsart to wa_header-po_method.
move wa_upload-vdatu to wa_header-req_date_h.
move wa_upload-bstkd_e to wa_header-purch_no_s.
*move wa_upload-route to wa_header-route.
move wa_upload-vsbed to wa_header-ship_cond.
move wa_upload-empst to wa_header-rec_point.
move wa_upload-shtyp to wa_header-ship_type.
move wa_upload-zterm to wa_header-pmnttrms.
move wa_upload-inco1 to wa_header-incoterms1.
move wa_upload-inco2 to wa_header-incoterms2.
ENDFORM. " f_fill_header
*& Form f_fill_partner
text
--> p1 text
<-- p2 text
FORM f_fill_partner.
if not wa_upload-kunnr is initial.
select single kunnr from kna1 into v_kunnr
where kunnr = wa_upload-kunnr.
if sy-subrc <> 0.
Message E014 with 'customer does not exist'.
else.
move 'AG' to i_partner-partn_role.
move wa_upload-kunnr to i_partner-partn_numb.
move wa_upload-land1_s to i_partner-country.
move wa_upload-name1_s to i_partner-name.
move wa_upload-name2_s to i_partner-name_2.
move wa_upload-ort01_s to i_partner-city.
move wa_upload-regio_s to i_partner-region.
move wa_upload-pstlz_s to i_partner-postl_code.
move wa_upload-adrnr_s to i_partner-address.
append i_partner.
endif.
endif.
if not wa_upload-kunag is initial.
select single kunnr from kna1 into v_kunag
where kunnr = wa_upload-kunag.
if sy-subrc <> 0.
Message E015 with 'end customer does not exist'.
else.
move 'WE' to i_partner-partn_role.
move wa_upload-kunag to i_partner-partn_numb.
move wa_upload-land1_c to i_partner-country.
move wa_upload-name1_c to i_partner-name.
move wa_upload-name2_c to i_partner-name_2.
move wa_upload-ort01_c to i_partner-city.
move wa_upload-regio_c to i_partner-region.
move wa_upload-pstlz_c to i_partner-postl_code.
move wa_upload-adrnr_c to i_partner-address.
append i_partner.
endif.
endif.
ENDFORM. " f_fill_partner
*& Form f_fill_item
text
--> p1 text
<-- p2 text
FORM f_fill_item.
loop at i_upload into wa_upload.
if not wa_upload-matnr is initial.
select single maramatnr msegmenge into (v_matnr, v_zmeng) from
mara inner join mseg on maramatnr = msegmatnr
where mara~matnr = wa_upload-matnr.
if sy-subrc <> 0.
Message E016 with 'material no does not exist'.
elseif v_zmeng LT wa_upload-zmeng.
Message E017 with 'order quantity is greater than the quantity present'.
endif.
endif.
move wa_upload-posnr to i_item-itm_number.
move wa_upload-pstyv to i_item-item_categ.
move wa_upload-matnr to i_item-material.
move wa_upload-zmeng to i_item-target_qty.
move wa_upload-meins to i_item-target_qu.
move wa_upload-werks to i_item-plant.
*move wa_upload-meins to wa_vbap-meins.
*move wa_upload-posnr_tot to wa_vbap-posnr_tot.
move wa_upload-posex to i_item-po_itm_no.
move wa_upload-kdmat to i_item-cust_mat22.
move wa_upload-inco1 to i_item-incoterms1.
move wa_upload-inco2 to i_item-incoterms2.
move wa_upload-zterm to i_item-pmnttrms.
move wa_upload-empst to i_item-rec_point.
move wa_upload-shtyp to i_item-ship_type.
move wa_upload-route to i_item-route.
append i_item.
PERFORM f_fill_schedule_line.
PERFORM f_fill_conditions.
ENDLOOP.
ENDFORM. " f_fill_item
*& Form f_fill_schedule_line
text
--> p1 text
<-- p2 text
FORM f_fill_schedule_line.
move wa_upload-matnr to i_schedule-itm_number.
move sy-datum to i_schedule-req_date.
move wa_upload-zmeng to i_schedule-req_qty.
append i_schedule.
ENDFORM. " f_fill_schedule_line
*& Form f_fill_conditions
text
--> p1 text
<-- p2 text
FORM f_fill_conditions.
move wa_upload-matnr to i_cond-itm_number.
move sy-datum to i_cond-conpricdat.
append i_cond.
ENDFORM. " f_fill_conditions
*& Form f_clear
text
--> p1 text
<-- p2 text
FORM f_clear.
clear:p_auart,
p_vkorg,
p_vtweg,
p_spart,
p_vkgrp,
p_vkbur.
ENDFORM. " f_clear
*& Form f_call_BAPI
text
--> p1 text
<-- p2 text
FORM f_call_BAPI.
clear:i_item,i_partner,i_schedule.
CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2'
EXPORTING
SALESDOCUMENTIN =
ORDER_HEADER_IN = wa_header
ORDER_HEADER_INX =
SENDER =
BINARY_RELATIONSHIPTYPE =
INT_NUMBER_ASSIGNMENT =
BEHAVE_WHEN_ERROR =
LOGIC_SWITCH =
TESTRUN =
CONVERT = ' '
IMPORTING
SALESDOCUMENT = sorder
TABLES
RETURN =
ORDER_ITEMS_IN = i_item
ORDER_ITEMS_INX =
ORDER_PARTNERS = i_partner
ORDER_SCHEDULES_IN = i_schedule
ORDER_SCHEDULES_INX =
ORDER_CONDITIONS_IN = i_cond.
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 ( sorder-vbeln is initial ).
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
write: /'Order number:', sorder.
else.
loop at i_return.
write: / i_return-id, i_return-number, i_return-message(80).
endloop.
*write: /'Error'.
endif.
*loop at i_return.
*write: / i_return-id, i_return-number, i_return-message(80).
*endloop.
ENDFORM. " f_call_BAPIHI
Pricing will be carried basing on the pricing
procedure.
Case1: Prices will be carried out automatically if
necessary condition records are maintained for the
condition type.
For this you can go to Sales Order-> Item Conditions
In the screen you can click on command button Analysis,
which gives you the list of condition types associated
to the pricing procedure. By clicking on the condition
type you can know the action that has taken place.
Case2: Manually forcing prices for Items.
To do this, you have to populate ORDER_CONDITIONS_IN &
ORDER_CONDITIONS_INX. Also note to identify the item
numbers, you manually pass the item number for each item
in the sales order, use the same item number for
populating conditions.
Parameters required:
ORDER_CONDITIONS_IN:
ITM_NUMBER, COND_TYPE, COND_VALUE, CURRENCY
ORDER_CONDITIONS_INX:
ITM_NUMBER, COND_TYPE, UPDATEFLAG, COND_VALUE,CURRENCY.
Hope the above info helps you. Do revert back if you
need more info.
Kind Regards
Eswar -
Line item data is not saving while creating a Sales order using Interactive
Hi all,
I am creating a sales order Using Interactive forms. In the form i am having Header data and line item data.I had created two structures one for Header data and one for Line item data. For entering the LINE ITEM DATA i had created a Dynamic table with Buttons ADD ROW and DELETE ROW.
User will Add the Row or Delete the Row based on the requirement.
My issue is When ever the user clicks the SUBMIT button after entering the header data and 3 line items data , Sales order has been created with only first line item and the remaining two line items are not created.
My Interactive form is like below
HEADER DATA
DOC_TYPE
SALES_ORG
DIST_CHN
DIVISION
PURCH_NO
PARTN_ROLE
PART_NO
LINE ITEM DATA
ITEM_NO MATERIAL PLANT QTY COND_TYPE COND_VALUE
ADD ROW
DELETE ROW
SUBMIT
My code for the method ONACTIONCLICK is like below
method ONACTIONCLICK .
data:
Node_Adobe type ref to If_Wd_Context_Node,
Node_Zsaleheader type ref to If_Wd_Context_Node,
Elem_Zsaleheader type ref to If_Wd_Context_Element,
Stru_Zsaleheader type If_Main=>Element_Zsaleheader,
Node_Zsaleitem type ref to If_Wd_Context_Node,
Elem_Zsaleitem type ref to If_Wd_Context_Element,
Stru_Zsaleitem type If_Main=>Element_Zsaleitem.
data: header_data type BAPISDHEAD.
data: item_wa type BAPIITEMIN.
data: item_data type table of BAPIITEMIN.
data: partner_wa type BAPIPARTNR.
data: partner_data type table of BAPIPARTNR.
data: sales_order type BAPIVBELN-VBELN.
data: Errorlog type BAPIRETURN1.
navigate from <CONTEXT> to <ADOBE> via lead selection
Node_Adobe = wd_Context->get_Child_Node( Name = IF_MAIN=>wdctx_Adobe ).
navigate from <ADOBE> to <Zsaleheader> via lead selection
Node_Zsaleheader = Node_Adobe->get_Child_Node( Name = IF_MAIN=>wdctx_Zsaleheader ).
Node_Zsaleitem = Node_Adobe->get_Child_Node( Name = IF_MAIN=>wdctx_Zsaleitem ).
get element via lead selection
Elem_Zsaleheader = Node_Zsaleheader->get_Element( ).
Elem_Zsaleitem = Node_Zsaleitem->get_Element( ).
get all declared attributes
Elem_Zsaleheader->get_Static_Attributes(
importing
Static_Attributes = Stru_Zsaleheader ).
header_data-DOC_TYPE = Stru_Zsaleheader-DOC_TYPE.
header_data-SALES_ORG = Stru_Zsaleheader-SALES_ORG.
header_data-DISTR_CHAN = Stru_Zsaleheader-DISTR_CHAN.
header_data-DIVISION = Stru_Zsaleheader-DIVISION.
header_data-PURCH_NO = Stru_Zsaleheader-PURCH_NO.
partner_wa-PARTN_ROLE = Stru_Zsaleheader-PARTN_ROLE.
partner_wa-PARTN_NUMB = Stru_Zsaleheader-PARTN_NUMB.
append partner_wa to partner_data.
Elem_Zsaleitem->get_Static_Attributes(
importing
Static_Attributes = Stru_Zsaleitem ).
item_wa-ITM_NUMBER = Stru_Zsaleitem-ITM_NUMBER.
item_wa-MATERIAL = Stru_Zsaleitem-MATERIAL.
item_wa-PLANT = Stru_Zsaleitem-PLANT.
item_wa-REQ_QTY = Stru_Zsaleitem-REQ_QTY.
item_wa-COND_TYPE = Stru_Zsaleitem-COND_TYPE.
item_wa-COND_VALUE = Stru_Zsaleitem-COND_VALUE.
append item_wa to item_data.
CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT1'
EXPORTING
ORDER_HEADER_IN = header_data
WITHOUT_COMMIT = ' '
CONVERT_PARVW_AUART = ' '
IMPORTING
SALESDOCUMENT = sales_order
SOLD_TO_PARTY =
SHIP_TO_PARTY =
BILLING_PARTY =
RETURN = errorlog
TABLES
ORDER_ITEMS_IN = item_data
ORDER_PARTNERS = partner_data
ORDER_ITEMS_OUT =
ORDER_CFGS_REF =
ORDER_CFGS_INST =
ORDER_CFGS_PART_OF =
ORDER_CFGS_VALUE =
ORDER_CCARD =
ORDER_CFGS_BLOB =
ORDER_SCHEDULE_EX =
endmethod.
PLEASE SUGGEST ME IF ANY CODE CHANGE IS REQUIRED
Thanks in advance
AjayHi,
The item data is not read because, the dynamically added rows should also reflect back to the Web Dynpro context. When the user clicks on Add Row, use the Onsubmit event to add a empty line to internal table and then bind it to the context. And if the user removes a row, remove a row from internal table and bind it back to the context.
You may refer this article.
http://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/802f0ed1-a17a-2c10-7db4-d515a5b047ed
Regards,
Runal -
Error While Creating Sales Order Using OE_ORDER_PUB.PROCESS_ORDER
Hi All,
I am trying to create a sales order using oe_order_pub.process_order api..
The Procedure i had written is as follows.
CREATE OR REPLACE PROCEDURE TEST_PROC
AS
x_return_status VARCHAR2(250);
x_msg_count NUMBER;
x_msg_data VARCHAR2(250);
F varchar2(2000);
--out parameters
x_header_rec OE_Order_PUB.Header_Rec_Type;
x_header_val_rec OE_Order_PUB.Header_Val_Rec_Type;
x_Header_Adj_tbl OE_Order_PUB.Header_Adj_Tbl_Type;
x_Header_Adj_val_tbl OE_Order_PUB.Header_Adj_Val_Tbl_Type;
x_Header_price_Att_tbl OE_Order_PUB.Header_Price_Att_Tbl_Type;
x_Header_Adj_Att_tbl OE_Order_PUB.Header_Adj_Att_Tbl_Type;
x_Header_Adj_Assoc_tbl OE_Order_PUB.Header_Adj_Assoc_Tbl_Type;
x_Header_Scredit_tbl OE_Order_PUB.Header_Scredit_Tbl_Type;
x_Header_Scredit_val_tbl OE_Order_PUB.Header_Scredit_Val_Tbl_Type;
x_line_tbl OE_Order_PUB.Line_Tbl_Type;
x_line_val_tbl OE_Order_PUB.Line_Val_Tbl_Type;
x_Line_Adj_tbl OE_Order_PUB.Line_Adj_Tbl_Type;
x_Line_Adj_val_tbl OE_Order_PUB.Line_Adj_Val_Tbl_Type;
x_Line_price_Att_tbl OE_Order_PUB.Line_Price_Att_Tbl_Type;
x_Line_Adj_Att_tbl OE_Order_PUB.Line_Adj_Att_Tbl_Type;
x_Line_Adj_Assoc_tbl OE_Order_PUB.Line_Adj_Assoc_Tbl_Type;
x_Line_Scredit_tbl OE_Order_PUB.Line_Scredit_Tbl_Type;
x_Line_Scredit_val_tbl OE_Order_PUB.Line_Scredit_Val_Tbl_Type;
x_Lot_Serial_tbl OE_Order_PUB.Lot_Serial_Tbl_Type;
x_Lot_Serial_val_tbl OE_Order_PUB.Lot_Serial_Val_Tbl_Type;
x_action_request_tbl OE_Order_PUB.Request_Tbl_Type;
--in parameters
l_header_rec OE_Order_PUB.Header_Rec_Type;
t_line_tbl OE_ORDER_PUB.Line_Tbl_Type;
BEGIN
apps.mo_global.set_org_context(204,null,'ONT');
l_header_rec := OE_ORDER_PUB.G_MISS_HEADER_REC;
l_header_rec.ORG_ID := 204;
l_header_rec.ORDER_TYPE_ID := 1437;
l_header_rec.SOLD_TO_ORG_ID := 1290;
l_header_rec.SHIP_TO_ORG_ID:=1425;
l_header_rec.INVOICE_TO_ORG_ID:=1424;
l_header_rec.PRICE_LIST_ID := 1000;
l_header_rec.salesrep_id := 1006;
l_header_rec.ORDER_CATEGORY_CODE := 'MIXED';
l_header_rec.VERSION_NUMBER := 0;
l_header_rec.OPEN_FLAG := 'Y';
l_header_rec.BOOKED_FLAG := 'Y';
l_header_rec.PRICING_DATE := sysdate;
l_header_rec.TRANSACTIONAL_CURR_CODE := 'USD';
l_header_rec.created_by := FND_GLOBAL.USER_ID;
l_header_rec.creation_date := sysdate;
l_header_rec.LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
l_header_rec.LAST_UPDATE_DATE := sysdate;
l_header_rec.attribute1 := '250';
l_header_rec.operation := 'CREATE';
t_line_tbl(1) := OE_ORDER_PUB.G_MISS_LINE_REC; ---check
t_line_tbl(1).inventory_item_id := 193742;
t_line_tbl(1).ordered_quantity := 1;
t_line_tbl(1).operation := 'CREATE';
oe_debug_pub.initialize;
--oe_debug_pub.SetDebugLevel(1);
OE_MSG_PUB.INITIALIZE();
OE_Order_PUB.Process_Order
( -- p_org_id => 204,
--p_operating_unit => 'ONT',
p_api_version_number => 1.0,
p_init_msg_list => FND_API.G_TRUE,
p_return_values => FND_API.G_TRUE,
p_action_commit => FND_API.G_TRUE,
x_return_status => x_return_status,
x_msg_count => x_msg_count,
x_msg_data => x_msg_data,
p_header_rec => l_header_rec,
p_old_header_rec => OE_Order_PUB.G_MISS_HEADER_REC,
p_header_val_rec => OE_Order_PUB.G_MISS_HEADER_VAL_REC,
p_old_header_val_rec => OE_Order_PUB.G_MISS_HEADER_VAL_REC,
p_Header_Adj_tbl => OE_Order_PUB.G_MISS_HEADER_ADJ_TBL,
p_old_Header_Adj_tbl => OE_Order_PUB.G_MISS_HEADER_ADJ_TBL,
p_Header_Adj_val_tbl => OE_Order_PUB.G_MISS_HEADER_ADJ_VAL_TBL,
p_old_Header_Adj_val_tbl => OE_Order_PUB.G_MISS_HEADER_ADJ_VAL_TBL,
p_Header_price_Att_tbl => OE_Order_PUB.G_MISS_HEADER_PRICE_ATT_TBL,
p_old_Header_Price_Att_tbl => OE_Order_PUB.G_MISS_HEADER_PRICE_ATT_TBL,
p_Header_Adj_Att_tbl => OE_Order_PUB.G_MISS_HEADER_ADJ_ATT_TBL,
p_old_Header_Adj_Att_tbl => OE_Order_PUB.G_MISS_HEADER_ADJ_ATT_TBL,
p_Header_Adj_Assoc_tbl => OE_Order_PUB.G_MISS_HEADER_ADJ_ASSOC_TBL,
p_old_Header_Adj_Assoc_tbl => OE_Order_PUB.G_MISS_HEADER_ADJ_ASSOC_TBL,
p_Header_Scredit_tbl => OE_Order_PUB.G_MISS_HEADER_SCREDIT_TBL,
p_old_Header_Scredit_tbl => OE_Order_PUB.G_MISS_HEADER_SCREDIT_TBL,
p_Header_Scredit_val_tbl => OE_Order_PUB.G_MISS_HEADER_SCREDIT_VAL_TBL,
p_old_Header_Scredit_val_tbl => OE_Order_PUB.G_MISS_HEADER_SCREDIT_VAL_TBL,
p_line_tbl => t_line_tbl,
p_old_line_tbl => OE_Order_PUB.G_MISS_LINE_TBL,
p_line_val_tbl => OE_Order_PUB.G_MISS_LINE_VAL_TBL,
p_old_line_val_tbl => OE_Order_PUB.G_MISS_LINE_VAL_TBL,
p_Line_Adj_tbl => OE_Order_PUB.G_MISS_LINE_ADJ_TBL,
p_old_Line_Adj_tbl => OE_Order_PUB.G_MISS_LINE_ADJ_TBL,
p_Line_Adj_val_tbl => OE_Order_PUB.G_MISS_LINE_ADJ_VAL_TBL,
p_old_Line_Adj_val_tbl => OE_Order_PUB.G_MISS_LINE_ADJ_VAL_TBL,
p_Line_price_Att_tbl => OE_Order_PUB.G_MISS_LINE_PRICE_ATT_TBL,
p_old_Line_Price_Att_tbl => OE_Order_PUB.G_MISS_LINE_PRICE_ATT_TBL,
p_Line_Adj_Att_tbl => OE_Order_PUB.G_MISS_LINE_ADJ_ATT_TBL,
p_old_Line_Adj_Att_tbl => OE_Order_PUB.G_MISS_LINE_ADJ_ATT_TBL,
p_Line_Adj_Assoc_tbl => OE_Order_PUB.G_MISS_LINE_ADJ_ASSOC_TBL,
p_old_Line_Adj_Assoc_tbl => OE_Order_PUB.G_MISS_LINE_ADJ_ASSOC_TBL,
p_Line_Scredit_tbl => OE_Order_PUB.G_MISS_LINE_SCREDIT_TBL,
p_old_Line_Scredit_tbl => OE_Order_PUB.G_MISS_LINE_SCREDIT_TBL,
p_Line_Scredit_val_tbl => OE_Order_PUB.G_MISS_LINE_SCREDIT_VAL_TBL,
p_old_Line_Scredit_val_tbl => OE_Order_PUB.G_MISS_LINE_SCREDIT_VAL_TBL,
p_Lot_Serial_tbl => OE_Order_PUB.G_MISS_LOT_SERIAL_TBL,
p_old_Lot_Serial_tbl => OE_Order_PUB.G_MISS_LOT_SERIAL_TBL,
p_Lot_Serial_val_tbl => OE_Order_PUB.G_MISS_LOT_SERIAL_VAL_TBL,
p_old_Lot_Serial_val_tbl => OE_Order_PUB.G_MISS_LOT_SERIAL_VAL_TBL,
p_action_request_tbl => OE_Order_PUB.G_MISS_REQUEST_TBL,
x_header_rec => x_header_rec,
x_header_val_rec => x_header_val_rec,
x_Header_Adj_tbl => x_Header_Adj_tbl,
x_Header_Adj_val_tbl => x_Header_Adj_val_tbl,
x_Header_price_Att_tbl => x_Header_price_Att_tbl,
x_Header_Adj_Att_tbl => x_Header_Adj_Att_tbl,
x_Header_Adj_Assoc_tbl => x_Header_Adj_Assoc_tbl,
x_Header_Scredit_tbl => x_Header_Scredit_tbl,
x_Header_Scredit_val_tbl => x_Header_Scredit_val_tbl,
x_line_tbl => x_line_tbl,
x_line_val_tbl => x_line_val_tbl,
x_Line_Adj_tbl => x_Line_Adj_tbl,
x_Line_Adj_val_tbl => x_Line_Adj_val_tbl,
x_Line_price_Att_tbl => x_Line_price_Att_tbl,
x_Line_Adj_Att_tbl => x_Line_Adj_Att_tbl,
x_Line_Adj_Assoc_tbl => x_Line_Adj_Assoc_tbl,
x_Line_Scredit_tbl => x_Line_Scredit_tbl,
x_Line_Scredit_val_tbl => x_Line_Scredit_val_tbl,
x_Lot_Serial_tbl => x_Lot_Serial_tbl,
x_Lot_Serial_val_tbl => x_Lot_Serial_val_tbl,
x_action_request_tbl => x_action_request_tbl,
--For bug 3390458
p_rtrim_data => 'N',
p_validate_desc_flex => 'Y' -- bug4343612
COMMIT;
if x_msg_count > 0 then
for l_index in 1..x_msg_count loop
x_msg_data := oe_msg_pub.get(p_msg_index => l_index, p_encoded => F);
PRINT('x_msg_data: '||x_msg_data);
end loop;
end if;
-- Check the return status
if x_return_status = FND_API.G_RET_STS_SUCCESS then
PRINT('success');
else
PRINT('failure');
end if;
PRINT('x_return_status: '||x_return_status);
PRINT('x_msg_count: '||x_msg_count);
PRINT('x_msg_data: '||x_msg_data);
PRINT('x_header_val_rec: '||x_header_val_rec.accounting_rule);
PRINT('x_header_rec header_id: ' ||x_header_rec.header_id);
PRINT('x_header_rec order_number: ' ||x_header_rec.order_number);
PRINT('x_header_rec ship_to_org_id: ' ||x_header_rec.ship_to_org_id);
PRINT('x_header_rec payment_term_id: ' ||x_header_rec.payment_term_id);
PRINT('x_header_rec order_source_id: ' ||x_header_rec.order_source_id);
PRINT('x_header_rec order_type_id: ' ||x_header_rec.order_type_id);
PRINT('x_header_rec price_list_id: ' ||x_header_rec.price_list_id);
PRINT('x_header_rec invoicing_rule_id: ' ||x_header_rec.invoicing_rule_id);
PRINT('x_header_rec accounting_rule_id: ' ||x_header_rec.accounting_rule_id);
PRINT('x_header_rec org_id: ' ||x_header_rec.org_id);
PRINT('x_header_rec sold_to_org_id: ' ||x_header_rec.sold_to_org_id);
PRINT('x_header_rec invoice_to_org_id: ' ||x_header_rec.invoice_to_org_id);
PRINT('x_header_rec salesrep_id: ' ||x_header_rec.salesrep_id);
PRINT('x_header_rec invoice_to_org_id: ' ||x_header_rec.invoice_to_org_id);
PRINT('x_header_rec operation: ' ||x_header_rec.operation);
PRINT('x_header_rec transactional_curr_code: ' ||x_header_rec.transactional_curr_code);
PRINT('x_header_rec orig_sys_document_ref: ' ||x_header_rec.orig_sys_document_ref);
PRINT('x_header_rec request_date: ' ||x_header_rec.request_date);
PRINT('x_header_rec conversion_rate_date: ' ||x_header_rec.conversion_rate_date);
PRINT('x_header_rec last_update_date: ' ||x_header_rec.last_update_date);
PRINT('x_header_rec ordered_date: ' ||x_header_rec.ordered_date);
PRINT('x_header_rec creation_date: ' ||x_header_rec.creation_date);
PRINT('x_header_rec created_by: ' ||x_header_rec.created_by);
END;
It is throwing the following Error.
SQL> exec TEST_PROC;
x_msg_data: ORA-01403: no data found in Package OE_ORDER_WF_UTIL Procedure
Create_HdrWorkItem
x_msg_data: User-Defined Exception in Package OE_ORDER_WF_UTIL Procedure
Start_HdrProcess
failure
x_return_status: U
x_msg_count: 2
x_msg_data: User-Defined Exception in Package OE_ORDER_WF_UTIL Procedure
Start_HdrProcess
x_header_val_rec: Immediate
x_header_rec header_id: 156408
x_header_rec order_number: 64097
x_header_rec ship_to_org_id: 1425
x_header_rec payment_term_id: 4
x_header_rec order_source_id: 0
x_header_rec order_type_id: 1437
x_header_rec price_list_id: 1000
x_header_rec invoicing_rule_id: -2
x_header_rec accounting_rule_id: 1
x_header_rec org_id: 204
x_header_rec sold_to_org_id: 1290
x_header_rec invoice_to_org_id: 1424
x_header_rec salesrep_id: 1006
x_header_rec invoice_to_org_id: 1424
x_header_rec operation: CREATE
x_header_rec transactional_curr_code: USD
x_header_rec orig_sys_document_ref: OE_ORDER_HEADERS_ALL156408
x_header_rec request_date: 02-APR-09
x_header_rec conversion_rate_date:
x_header_rec last_update_date: 02-APR-09
x_header_rec ordered_date: 02-APR-09
x_header_rec creation_date: 02-APR-09
x_header_rec created_by: 13615
Any help on this would be appreciated.
I am using R12..Pl see if MOS Doc 117313.1 (Booking Order from Order Capture Errors at OE_ORDER_WF_UTIL) can help
HTH
Srini -
Hi All,
I am trying to create a sales order using oe_order_pub.process_order api..
The Procedure i had written is as follows.
CREATE OR REPLACE PROCEDURE TEST_PROC
AS
x_return_status VARCHAR2(250);
x_msg_count NUMBER;
x_msg_data VARCHAR2(250);
F varchar2(2000);
--out parameters
x_header_rec OE_Order_PUB.Header_Rec_Type;
x_header_val_rec OE_Order_PUB.Header_Val_Rec_Type;
x_Header_Adj_tbl OE_Order_PUB.Header_Adj_Tbl_Type;
x_Header_Adj_val_tbl OE_Order_PUB.Header_Adj_Val_Tbl_Type;
x_Header_price_Att_tbl OE_Order_PUB.Header_Price_Att_Tbl_Type;
x_Header_Adj_Att_tbl OE_Order_PUB.Header_Adj_Att_Tbl_Type;
x_Header_Adj_Assoc_tbl OE_Order_PUB.Header_Adj_Assoc_Tbl_Type;
x_Header_Scredit_tbl OE_Order_PUB.Header_Scredit_Tbl_Type;
x_Header_Scredit_val_tbl OE_Order_PUB.Header_Scredit_Val_Tbl_Type;
x_line_tbl OE_Order_PUB.Line_Tbl_Type;
x_line_val_tbl OE_Order_PUB.Line_Val_Tbl_Type;
x_Line_Adj_tbl OE_Order_PUB.Line_Adj_Tbl_Type;
x_Line_Adj_val_tbl OE_Order_PUB.Line_Adj_Val_Tbl_Type;
x_Line_price_Att_tbl OE_Order_PUB.Line_Price_Att_Tbl_Type;
x_Line_Adj_Att_tbl OE_Order_PUB.Line_Adj_Att_Tbl_Type;
x_Line_Adj_Assoc_tbl OE_Order_PUB.Line_Adj_Assoc_Tbl_Type;
x_Line_Scredit_tbl OE_Order_PUB.Line_Scredit_Tbl_Type;
x_Line_Scredit_val_tbl OE_Order_PUB.Line_Scredit_Val_Tbl_Type;
x_Lot_Serial_tbl OE_Order_PUB.Lot_Serial_Tbl_Type;
x_Lot_Serial_val_tbl OE_Order_PUB.Lot_Serial_Val_Tbl_Type;
x_action_request_tbl OE_Order_PUB.Request_Tbl_Type;
--in parameters
l_header_rec OE_Order_PUB.Header_Rec_Type;
t_line_tbl OE_ORDER_PUB.Line_Tbl_Type;
BEGIN
apps.mo_global.set_org_context(204,null,'ONT');
l_header_rec := OE_ORDER_PUB.G_MISS_HEADER_REC;
l_header_rec.ORG_ID := 204;
l_header_rec.ORDER_TYPE_ID := 1437;
l_header_rec.SOLD_TO_ORG_ID := 1290;
l_header_rec.SHIP_TO_ORG_ID:=1425;
l_header_rec.INVOICE_TO_ORG_ID:=1424;
l_header_rec.PRICE_LIST_ID := 1000;
l_header_rec.salesrep_id := 1006;
l_header_rec.ORDER_CATEGORY_CODE := 'MIXED';
l_header_rec.VERSION_NUMBER := 0;
l_header_rec.OPEN_FLAG := 'Y';
l_header_rec.BOOKED_FLAG := 'Y';
l_header_rec.PRICING_DATE := sysdate;
l_header_rec.TRANSACTIONAL_CURR_CODE := 'USD';
l_header_rec.created_by := FND_GLOBAL.USER_ID;
l_header_rec.creation_date := sysdate;
l_header_rec.LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
l_header_rec.LAST_UPDATE_DATE := sysdate;
l_header_rec.attribute1 := '250';
l_header_rec.operation := 'CREATE';
t_line_tbl(1) := OE_ORDER_PUB.G_MISS_LINE_REC; ---check
t_line_tbl(1).inventory_item_id := 193742;
t_line_tbl(1).ordered_quantity := 1;
t_line_tbl(1).operation := 'CREATE';
oe_debug_pub.initialize;
--oe_debug_pub.SetDebugLevel(1);
OE_MSG_PUB.INITIALIZE();
OE_Order_PUB.Process_Order
( -- p_org_id => 204,
--p_operating_unit => 'ONT',
p_api_version_number => 1.0,
p_init_msg_list => FND_API.G_TRUE,
p_return_values => FND_API.G_TRUE,
p_action_commit => FND_API.G_TRUE,
x_return_status => x_return_status,
x_msg_count => x_msg_count,
x_msg_data => x_msg_data,
p_header_rec => l_header_rec,
p_old_header_rec => OE_Order_PUB.G_MISS_HEADER_REC,
p_header_val_rec => OE_Order_PUB.G_MISS_HEADER_VAL_REC,
p_old_header_val_rec => OE_Order_PUB.G_MISS_HEADER_VAL_REC,
p_Header_Adj_tbl => OE_Order_PUB.G_MISS_HEADER_ADJ_TBL,
p_old_Header_Adj_tbl => OE_Order_PUB.G_MISS_HEADER_ADJ_TBL,
p_Header_Adj_val_tbl => OE_Order_PUB.G_MISS_HEADER_ADJ_VAL_TBL,
p_old_Header_Adj_val_tbl => OE_Order_PUB.G_MISS_HEADER_ADJ_VAL_TBL,
p_Header_price_Att_tbl => OE_Order_PUB.G_MISS_HEADER_PRICE_ATT_TBL,
p_old_Header_Price_Att_tbl => OE_Order_PUB.G_MISS_HEADER_PRICE_ATT_TBL,
p_Header_Adj_Att_tbl => OE_Order_PUB.G_MISS_HEADER_ADJ_ATT_TBL,
p_old_Header_Adj_Att_tbl => OE_Order_PUB.G_MISS_HEADER_ADJ_ATT_TBL,
p_Header_Adj_Assoc_tbl => OE_Order_PUB.G_MISS_HEADER_ADJ_ASSOC_TBL,
p_old_Header_Adj_Assoc_tbl => OE_Order_PUB.G_MISS_HEADER_ADJ_ASSOC_TBL,
p_Header_Scredit_tbl => OE_Order_PUB.G_MISS_HEADER_SCREDIT_TBL,
p_old_Header_Scredit_tbl => OE_Order_PUB.G_MISS_HEADER_SCREDIT_TBL,
p_Header_Scredit_val_tbl => OE_Order_PUB.G_MISS_HEADER_SCREDIT_VAL_TBL,
p_old_Header_Scredit_val_tbl => OE_Order_PUB.G_MISS_HEADER_SCREDIT_VAL_TBL,
p_line_tbl => t_line_tbl,
p_old_line_tbl => OE_Order_PUB.G_MISS_LINE_TBL,
p_line_val_tbl => OE_Order_PUB.G_MISS_LINE_VAL_TBL,
p_old_line_val_tbl => OE_Order_PUB.G_MISS_LINE_VAL_TBL,
p_Line_Adj_tbl => OE_Order_PUB.G_MISS_LINE_ADJ_TBL,
p_old_Line_Adj_tbl => OE_Order_PUB.G_MISS_LINE_ADJ_TBL,
p_Line_Adj_val_tbl => OE_Order_PUB.G_MISS_LINE_ADJ_VAL_TBL,
p_old_Line_Adj_val_tbl => OE_Order_PUB.G_MISS_LINE_ADJ_VAL_TBL,
p_Line_price_Att_tbl => OE_Order_PUB.G_MISS_LINE_PRICE_ATT_TBL,
p_old_Line_Price_Att_tbl => OE_Order_PUB.G_MISS_LINE_PRICE_ATT_TBL,
p_Line_Adj_Att_tbl => OE_Order_PUB.G_MISS_LINE_ADJ_ATT_TBL,
p_old_Line_Adj_Att_tbl => OE_Order_PUB.G_MISS_LINE_ADJ_ATT_TBL,
p_Line_Adj_Assoc_tbl => OE_Order_PUB.G_MISS_LINE_ADJ_ASSOC_TBL,
p_old_Line_Adj_Assoc_tbl => OE_Order_PUB.G_MISS_LINE_ADJ_ASSOC_TBL,
p_Line_Scredit_tbl => OE_Order_PUB.G_MISS_LINE_SCREDIT_TBL,
p_old_Line_Scredit_tbl => OE_Order_PUB.G_MISS_LINE_SCREDIT_TBL,
p_Line_Scredit_val_tbl => OE_Order_PUB.G_MISS_LINE_SCREDIT_VAL_TBL,
p_old_Line_Scredit_val_tbl => OE_Order_PUB.G_MISS_LINE_SCREDIT_VAL_TBL,
p_Lot_Serial_tbl => OE_Order_PUB.G_MISS_LOT_SERIAL_TBL,
p_old_Lot_Serial_tbl => OE_Order_PUB.G_MISS_LOT_SERIAL_TBL,
p_Lot_Serial_val_tbl => OE_Order_PUB.G_MISS_LOT_SERIAL_VAL_TBL,
p_old_Lot_Serial_val_tbl => OE_Order_PUB.G_MISS_LOT_SERIAL_VAL_TBL,
p_action_request_tbl => OE_Order_PUB.G_MISS_REQUEST_TBL,
x_header_rec => x_header_rec,
x_header_val_rec => x_header_val_rec,
x_Header_Adj_tbl => x_Header_Adj_tbl,
x_Header_Adj_val_tbl => x_Header_Adj_val_tbl,
x_Header_price_Att_tbl => x_Header_price_Att_tbl,
x_Header_Adj_Att_tbl => x_Header_Adj_Att_tbl,
x_Header_Adj_Assoc_tbl => x_Header_Adj_Assoc_tbl,
x_Header_Scredit_tbl => x_Header_Scredit_tbl,
x_Header_Scredit_val_tbl => x_Header_Scredit_val_tbl,
x_line_tbl => x_line_tbl,
x_line_val_tbl => x_line_val_tbl,
x_Line_Adj_tbl => x_Line_Adj_tbl,
x_Line_Adj_val_tbl => x_Line_Adj_val_tbl,
x_Line_price_Att_tbl => x_Line_price_Att_tbl,
x_Line_Adj_Att_tbl => x_Line_Adj_Att_tbl,
x_Line_Adj_Assoc_tbl => x_Line_Adj_Assoc_tbl,
x_Line_Scredit_tbl => x_Line_Scredit_tbl,
x_Line_Scredit_val_tbl => x_Line_Scredit_val_tbl,
x_Lot_Serial_tbl => x_Lot_Serial_tbl,
x_Lot_Serial_val_tbl => x_Lot_Serial_val_tbl,
x_action_request_tbl => x_action_request_tbl,
--For bug 3390458
p_rtrim_data => 'N',
p_validate_desc_flex => 'Y' -- bug4343612
COMMIT;
if x_msg_count > 0 then
for l_index in 1..x_msg_count loop
x_msg_data := oe_msg_pub.get(p_msg_index => l_index, p_encoded => F);
PRINT('x_msg_data: '||x_msg_data);
end loop;
end if;
-- Check the return status
if x_return_status = FND_API.G_RET_STS_SUCCESS then
PRINT('success');
else
PRINT('failure');
end if;
PRINT('x_return_status: '||x_return_status);
PRINT('x_msg_count: '||x_msg_count);
PRINT('x_msg_data: '||x_msg_data);
PRINT('x_header_val_rec: '||x_header_val_rec.accounting_rule);
PRINT('x_header_rec header_id: ' ||x_header_rec.header_id);
PRINT('x_header_rec order_number: ' ||x_header_rec.order_number);
PRINT('x_header_rec ship_to_org_id: ' ||x_header_rec.ship_to_org_id);
PRINT('x_header_rec payment_term_id: ' ||x_header_rec.payment_term_id);
PRINT('x_header_rec order_source_id: ' ||x_header_rec.order_source_id);
PRINT('x_header_rec order_type_id: ' ||x_header_rec.order_type_id);
PRINT('x_header_rec price_list_id: ' ||x_header_rec.price_list_id);
PRINT('x_header_rec invoicing_rule_id: ' ||x_header_rec.invoicing_rule_id);
PRINT('x_header_rec accounting_rule_id: ' ||x_header_rec.accounting_rule_id);
PRINT('x_header_rec org_id: ' ||x_header_rec.org_id);
PRINT('x_header_rec sold_to_org_id: ' ||x_header_rec.sold_to_org_id);
PRINT('x_header_rec invoice_to_org_id: ' ||x_header_rec.invoice_to_org_id);
PRINT('x_header_rec salesrep_id: ' ||x_header_rec.salesrep_id);
PRINT('x_header_rec invoice_to_org_id: ' ||x_header_rec.invoice_to_org_id);
PRINT('x_header_rec operation: ' ||x_header_rec.operation);
PRINT('x_header_rec transactional_curr_code: ' ||x_header_rec.transactional_curr_code);
PRINT('x_header_rec orig_sys_document_ref: ' ||x_header_rec.orig_sys_document_ref);
PRINT('x_header_rec request_date: ' ||x_header_rec.request_date);
PRINT('x_header_rec conversion_rate_date: ' ||x_header_rec.conversion_rate_date);
PRINT('x_header_rec last_update_date: ' ||x_header_rec.last_update_date);
PRINT('x_header_rec ordered_date: ' ||x_header_rec.ordered_date);
PRINT('x_header_rec creation_date: ' ||x_header_rec.creation_date);
PRINT('x_header_rec created_by: ' ||x_header_rec.created_by);
END;
It is throwing the following Error.
SQL> exec TEST_PROC;
x_msg_data: ORA-01403: no data found in Package OE_ORDER_WF_UTIL Procedure
Create_HdrWorkItem
x_msg_data: User-Defined Exception in Package OE_ORDER_WF_UTIL Procedure
Start_HdrProcess
failure
x_return_status: U
x_msg_count: 2
x_msg_data: User-Defined Exception in Package OE_ORDER_WF_UTIL Procedure
Start_HdrProcess
x_header_val_rec: Immediate
x_header_rec header_id: 156408
x_header_rec order_number: 64097
x_header_rec ship_to_org_id: 1425
x_header_rec payment_term_id: 4
x_header_rec order_source_id: 0
x_header_rec order_type_id: 1437
x_header_rec price_list_id: 1000
x_header_rec invoicing_rule_id: -2
x_header_rec accounting_rule_id: 1
x_header_rec org_id: 204
x_header_rec sold_to_org_id: 1290
x_header_rec invoice_to_org_id: 1424
x_header_rec salesrep_id: 1006
x_header_rec invoice_to_org_id: 1424
x_header_rec operation: CREATE
x_header_rec transactional_curr_code: USD
x_header_rec orig_sys_document_ref: OE_ORDER_HEADERS_ALL156408
x_header_rec request_date: 02-APR-09
x_header_rec conversion_rate_date:
x_header_rec last_update_date: 02-APR-09
x_header_rec ordered_date: 02-APR-09
x_header_rec creation_date: 02-APR-09
x_header_rec created_by: 13615
Any help on this would be appreciated.
I am using R12..Hi Nagamohan,
Thanks for the reply..It was Vision Instance that i was working on..
There was some problem in setups. I had run the same script on other instance and it is working.
Before signing off i have one more doubt...
The script which i used is creating a sales order with booked_flag='Y' but flow_status_code is still 'ENTERED'
how can i change it to 'BOOKED' using API...
Thanks for the help...
Maybe you are looking for
-
Sims 2 not working with QT 7.6. Will there be a fix?
The Sims 2 is not working with QT 7.6. The Sims 2 (Aspyr) web site acknowledges this problem and state they are working with Apple to fix this. This game is not cheap so rather disappointed at the moment. Anybody know if this fix will really happen?
-
Duplication of records after trasport to BI PRD
Hi all, I am facing problem of duplication of the records after transporting to production environment. The same is running fine in Dev. This development is based on function module. Please suggest if anyone has an idea. I have attached FM code for r
-
Thunderbolt to Gigabit Ethernet Adaptor and iPad 4
Is there a way to connect the Thunderbolt to Gigabit Ethernet Adaptor to an iPad 4?
-
Payment voucher to be transporter
Hi.. I am preparing things for some taxtile Industry. My scenerio is as follows : Whenever we get Gray to our General Warehouse from where we send it to client's Dying Factory. When we issue challan for it, we are supposed to gererate Payment Vouche
-
Why does Firefox show my website as an untrusted connection?
I recently switched my website to https and now Firefox show my site at www.bizniznet.co.za as an untrusted connection. This can have an unwanted impact on my website and cost me clients. This does not happen every time I open my site as Firefox is m