Advance validation during order or billing
Hi,
If customer have given Advance ,i want to get validation i.e indication during doing sales order or billing for that Customer.
thr should be some Pop during order or billing
what is the process for such scenario
Thanks
Hi Prasad
If you create a Down payment sales order and then if you create the billing in between then you will get the warning message . But if you need a Popup message means then you should go with the User exit
Check the following link for you information
[http://help.sap.com/saphelp_46c/helpdata/en/59/ac922bcb0411d2acbe0000e8a5bd28/frameset.htm]
Source : SAP library
Regards
Srinath
Similar Messages
-
Profit Center was not maintained during order n billing creation.
Dear, Gurus
I'm facing a problem of Profit Center. User created a service material, maintenance contract. They created a Billing Document as it is order related billing. Accounting document was not generated when saving invoice. When I got to the bottom of this I realized no costing tabs were ever maintained for material type services. (Henceforth no Profit Center in Sales Order n Invoice).
I have done the necessary config n assignments but question now is what should I do as in billing doc the field is greyed out it will not allow me to assign Pr Center now. I am thinking that this may work if I cancel the billing document and then go back to sales order and try and changing the field, then re-create the invoice. I'm trying to avoid canceling. Is there any program, bapi, user exit I may use to re assign or make system re check the MM while saving invoice to allow accounting document to be created? This is one scenario.
2nd scenario is similar but in the case of this contract everything was made. Accounting document was cleared even but with some dummy weird Profit Center. (No proft center in Order nor invoice.) Whole problem at first in this scenario is User saying everything is complete so status in doc flow should show maintenance contract as complete but wasn't. it showed being processed. I discovered no completion rule was maintained. I maintained E Full target value referenced but status still has not changed any idea guys? (New config not showing on old existing data only show on new document, concept?) Is there a program or anything to make system update status doc flow? aside from this Profit center incompletion log is coming in Contract. Not maintained in order or invoice.In one of my earlier projects, a similar requirement was putforth by users and we had developed a zee tcode to change the profit center in billing document via SM30 which can be done only by FI authorised users.
I am reproducing the said program as under:-
REPORT "ZPROFIT_CHG"
TABLES : VBRP.
SELECTION-SCREEN : BEGIN OF BLOCK B1 WITH FRAME.
SELECT-OPTIONS : SO_VBELN FOR VBRP-VBELN OBLIGATORY.
PARAMETERS: P_PRO LIKE VBRP-PRCTR OBLIGATORY.
SELECTION-SCREEN END OF BLOCK B1.
DATA : BEGIN OF IT_VBRP OCCURS 0,
VBELN LIKE VBRP-VBELN,
POSNR LIKE VBRP-POSNR,
PRCTR LIKE VBRP-PRCTR,
END OF IT_VBRP.
DATA COUNT(3).
DATA W_MESSAGE(30).
START-OF-SELECTION.
LOOP AT SO_VBELN.
IF SO_VBELN-LOW CA '~`!@#$%^&*()_+|\=-><,.;":' OR SO_VBELN-HIGH CA '~`!@#$%^&*()_+|\=-><,.;":'.
MESSAGE 'Special character not allowed' type 'S'.
LEAVE LIST-PROCESSING.
STOP.
ENDIF.
ENDLOOP.
IF P_PRO CA '~`!@#$%^&*()_+|\=-><,.;":'.
MESSAGE 'Special character not allowed' type 'S'.
LEAVE LIST-PROCESSING.
STOP.
ENDIF.
SELECT B~VBELN B~POSNR B~PRCTR FROM VBRK AS A INNER JOIN VBRP AS B ON A~VBELN EQ B~VBELN INTO CORRESPONDING FIELDS OF TABLE IT_VBRP
WHERE A~VBELN IN SO_VBELN
AND A~FKART EQ 'ZFF2'
AND A~FKSTO NE 'X'.
IF SY-DBCNT EQ 0.
MESSAGE 'NO DATA FOUND' TYPE 'S'.
LEAVE LIST-PROCESSING.
ENDIF.
SORT IT_VBRP BY VBELN.
DELETE ADJACENT DUPLICATES FROM IT_VBRP COMPARING VBELN.
CLEAR COUNT.
IF IT_VBRP[] IS NOT INITIAL AND P_PRO IS NOT INITIAL..
LOOP AT IT_VBRP.
UPDATE VBRP SET PRCTR = P_PRO WHERE VBELN = IT_VBRP-VBELN AND POSNR = IT_VBRP-POSNR.
IF SY-SUBRC = 0.
COUNT = COUNT + 1.
ENDIF.
COMMIT WORK.
CLEAR IT_VBRP.
ENDLOOP.
ENDIF.
IF COUNT IS NOT INITIAL.
CONCATENATE 'No Of Records Updated Is - ' COUNT INTO W_MESSAGE.
MESSAGE I000(ZSFL) WITH W_MESSAGE.
ELSE.
MESSAGE 'No Records Updated' TYPE 'S'.
ENDIF.
Since I am so weak in ABAP coding, not sure whether the above coding is correct. You need to check with your ABAPers and develop this logic. This should work.
thanks
G. Lakshmipathi -
Pricing order/del/bill
Hi,
Few questions on pricing:
1) Pricing is carried out in order , delivery and invoice based on fields in KOMG structure, is this true? For eg: i am using an access sequence where I use order reason from sales order, will the same condition type trigger in delivery and invoice too, since it is maintained in KOMG structure (but invoice does not have order reason in header(VBRK))???
2) In delivery only freight & surcharge related pricing is calculated? How does system understand not to calculate freight during order and invoice and only in delivery? Freight condition type can be percentage or weight basis, what kind of trigger we set in condition type, to make the system understand to only trigger these condition types during delivery pricing? Also if i chose pricing type 'B", carry out new pricing, still system will not calculate all pricing (PR00...etc) in delivery? if 'Yes' how?
3) What is the difference between pricing in sales order and invoice? Is pricing calculated all over again in invoice? does it also recalculate freight, if choose pricing type 'B'?
In general, my question is are we controlling the pricing based on pricing type during order/ship/bill or is the system controlling it??? Thanks.solved!
-
Change VPRS during billing -( order related Billing )
Hi Guru's,
There is a requirement for changing the VPRS value during Billing - ( Order Related billing ). There is a particular requirement for which this scenario is needed. I did manage to change the value or XKOMV via a custom requirement but it is not getting reflected in the Invoice.
Can someone advice on how to achieve the same.
The following is the data i get during Analysis.
Condition type VPRS
Message 216
Description Condition value has been taken from preceding document
Further Analysis
"Condition types (e.g. VPRS), which have been provided with the condition category 'G', determine your condition amount either from the material evaluation segment or the amount is calculated from the condition value.
Therefore the condition value - possibly a billing document - can be determined from the goods issue or in third-party order processing of a preceding document, for example, from the vendor billing document.
Der Konditionsbetrag wurde hier aus dem übergebenen Konditionswert berechnet."
Regards
GHi Guru's,
There is a requirement for changing the VPRS value during Billing - ( Order Related billing ). There is a particular requirement for which this scenario is needed. I did manage to change the value or XKOMV via a custom requirement but it is not getting reflected in the Invoice.
Can someone advice on how to achieve the same.
The following is the data i get during Analysis.
Condition type VPRS
Message 216
Description Condition value has been taken from preceding document
Further Analysis
"Condition types (e.g. VPRS), which have been provided with the condition category 'G', determine your condition amount either from the material evaluation segment or the amount is calculated from the condition value.
Therefore the condition value - possibly a billing document - can be determined from the goods issue or in third-party order processing of a preceding document, for example, from the vendor billing document.
Der Konditionsbetrag wurde hier aus dem übergebenen Konditionswert berechnet."
Regards
G -
Excluding order-related billing from credit check
We have service contracts with billing plan that is order related. We found that during the dynamic credit checks, the system will include the full amount of these contracts and therefore, every time we create a new ordersfor these customers, the orders are put on hold.
I believe that it is standard SAP to include the contracts full amount in credit checks, but does anybody know of a workaround? The main issue is we already have more than 1200 contracts in the system which are valid for another 4-5 years, so we are looking for a solution that will be 'retroactive'.
thank you.Hello,
The value of the open invoices will be always taken in account during the
standard dynamic credit check in R/3. Althrough you can swith off the
dynamic credit check for the order-related billing- you need to develop
your routine, which will be put in the field no_check in the
transaction OVA8. Please review the note 895630.
The another posssibility could be to develop your own credit check
(user1 user2 or user3 in the transaction OVA8) for the CRM sales
orders.
Kind regards,
Zsuzsanna -
Process_order api - Validation Failed for Field Bill To
I am relatively new to the EBS world and I'm having some issues with calling the OE_Order_Pub.Process_order API. When I call this API I am getting a return error of "Validation failed for field - Bill To".
For a background...I have an APEX application where users can choose parts from a small part master list to add to an existing order. The existing order will not have a status of Closed or Cancelled and there will be atleast 1 line in the order before the new parts are added. The parts will be added as new lines to the order with some of the new line data defaulting to the same information as the first line. I am using EBS version 12.1.3 with a multi-org setup. It seems that the orders under one org (id=3) are working fine, but another org(id=569) they never work and keep getting the error. I am setting the context to the org of the order and initializing the apps user information with the responsibility "Order Management Super User".
Do you have any idea what could be wrong or how I can debug the error to get a little more detail?
Here is the procedure I have.
PROCEDURE TEK_ORD_PROCESS_ORDER(p_order_id IN NUMBER, p_return_code OUT NOCOPY VARCHAR2, p_status OUT NOCOPY VARCHAR2) IS
CURSOR c_order_parts IS
SELECT *
FROM TEK_APEX.TEK_ORD_ORDER_PARTS
WHERE ORDER_ID = p_order_id;
TYPE t_parts IS TABLE OF TEK_APEX.TEK_ORD_ORDER_PARTS%ROWTYPE;
v_order_parts t_parts;
--Setup variables
H_Op_Code VARCHAR2(25) DEFAULT OE_GLOBALS.G_OPR_UPDATE;
L_Op_Code VARCHAR2(25) DEFAULT OE_GLOBALS.G_OPR_CREATE;
v_install_type VARCHAR2(25) := 'PTO';
v_source_id NUMBER;
v_user_id NUMBER;
v_resp_id NUMBER;
v_app_id NUMBER;
v_debug VARCHAR2(32767);
v_oracle_order OE_ORDER_HEADERS_ALL%ROWTYPE;
v_apex_order TEK_APEX.TEK_ORD_SALES_ORDERS%ROWTYPE;
p_header_rec OE_Order_Pub.Header_Rec_Type;
p_header_val_rec OE_Order_Pub.Header_Val_Rec_Type;
p_Header_Adj_tab OE_Order_Pub.Header_Adj_Tbl_Type;
p_Header_Adj_val_tab OE_Order_Pub.Header_Adj_Val_Tbl_Type;
p_Header_price_Att_tab OE_Order_Pub.Header_Price_Att_Tbl_Type;
p_Header_Adj_Att_tab OE_Order_Pub.Header_Adj_Att_Tbl_Type;
p_Header_Adj_Assoc_tab OE_Order_Pub.Header_Adj_Assoc_Tbl_Type;
p_Header_Scredit_tab OE_Order_Pub.Header_Scredit_Tbl_Type;
p_Header_Scredit_val_tab OE_Order_Pub.Header_Scredit_Val_Tbl_Type;
p_line_tab OE_Order_Pub.Line_Tbl_Type;
p_line_val_tab OE_Order_Pub.Line_Val_Tbl_Type;
p_Line_Adj_tab OE_Order_Pub.Line_Adj_Tbl_Type;
p_Line_Adj_val_tab OE_Order_Pub.Line_Adj_Val_Tbl_Type;
p_Line_price_Att_tab OE_Order_Pub.Line_Price_Att_Tbl_Type;
p_Line_Adj_Att_tab OE_Order_Pub.Line_Adj_Att_Tbl_Type;
p_Line_Adj_Assoc_tab OE_Order_Pub.Line_Adj_Assoc_Tbl_Type;
p_Line_Scredit_tab OE_Order_Pub.Line_Scredit_Tbl_Type;
p_Line_Scredit_val_tab OE_Order_Pub.Line_Scredit_Val_Tbl_Type;
p_Lot_Serial_tab OE_Order_Pub.Lot_Serial_Tbl_Type;
p_Lot_Serial_val_tab OE_Order_Pub.Lot_Serial_Val_Tbl_Type;
p_action_request_tab OE_Order_pub.Request_Tbl_Type;
l_header_rec OE_Order_Pub.Header_Rec_Type;
l_header_val_rec OE_Order_Pub.Header_Val_Rec_Type;
l_Header_Adj_tab OE_Order_Pub.Header_Adj_Tbl_Type;
l_Header_Adj_val_tab OE_Order_Pub.Header_Adj_Val_Tbl_Type;
l_Header_price_Att_tab OE_Order_Pub.Header_Price_Att_Tbl_Type;
l_Header_Adj_Att_tab OE_Order_Pub.Header_Adj_Att_Tbl_Type;
l_Header_Adj_Assoc_tab OE_Order_Pub.Header_Adj_Assoc_Tbl_Type;
l_Header_Scredit_tab OE_Order_Pub.Header_Scredit_Tbl_Type;
l_Header_Scredit_val_tab OE_Order_Pub.Header_Scredit_Val_Tbl_Type;
l_line_tab OE_Order_Pub.Line_Tbl_Type;
l_line_val_tab OE_Order_Pub.Line_Val_Tbl_Type;
l_Line_Adj_tab OE_Order_Pub.Line_Adj_Tbl_Type;
l_Line_Adj_val_tab OE_Order_Pub.Line_Adj_Val_Tbl_Type;
l_Line_price_Att_tab OE_Order_Pub.Line_Price_Att_Tbl_Type;
l_Line_Adj_Att_tab OE_Order_Pub.Line_Adj_Att_Tbl_Type;
l_Line_Adj_Assoc_tab OE_Order_Pub.Line_Adj_Assoc_Tbl_Type;
l_Line_Scredit_tab OE_Order_Pub.Line_Scredit_Tbl_Type;
l_Line_Scredit_val_tab OE_Order_Pub.Line_Scredit_Val_Tbl_Type;
l_Lot_Serial_tab OE_Order_Pub.Lot_Serial_Tbl_Type;
l_Lot_Serial_val_tab OE_Order_Pub.Lot_Serial_Val_Tbl_Type;
l_ret_status VARCHAR2(200);
l_msg_count NUMBER;
l_msg_data VARCHAR2(200);
--Email information
v_email_address varchar2(100);
v_msg_text varchar(1000);
v_subject_text varchar(1000);
--Default line information
v_item_id NUMBER;
v_contact_id NUMBER;
v_invoice_to_org_id oe_order_lines_all.INVOICE_TO_ORG_ID%TYPE;
v_ship_to_org_id oe_order_lines_all.SHIP_TO_ORG_ID%TYPE;
v_sold_to_org_id oe_order_lines_all.SOLD_TO_ORG_ID%TYPE;
v_flow_status_code oe_order_lines_all.FLOW_STATUS_CODE%TYPE;
FUNCTION GET_ORACLE_ORDER(p_order_number IN OE_ORDER_HEADERS_ALL.ORDER_NUMBER%TYPE)
RETURN OE_ORDER_HEADERS_ALL%ROWTYPE IS
v_order OE_ORDER_HEADERS_ALL%ROWTYPE;
BEGIN
SELECT *
INTO v_order
FROM APPS.OE_ORDER_HEADERS_ALL
WHERE ORDER_NUMBER = p_order_number;
RETURN v_order;
EXCEPTION
WHEN OTHERS THEN
RETURN NULL;
END GET_ORACLE_ORDER;
FUNCTION GET_APEX_ORDER(p_order_id IN TEK_APEX.TEK_ORD_SALES_ORDERS.ORDER_ID%TYPE)
RETURN TEK_APEX.TEK_ORD_SALES_ORDERS%ROWTYPE IS
v_order TEK_APEX.TEK_ORD_SALES_ORDERS%ROWTYPE;
BEGIN
SELECT *
INTO v_order
FROM TEK_APEX.TEK_ORD_SALES_ORDERS
WHERE ORDER_ID = p_order_id;
RETURN v_order;
EXCEPTION
WHEN OTHERS THEN
RETURN NULL;
END GET_APEX_ORDER;
FUNCTION GET_SOURCE_ID(p_source_name IN VARCHAR2)
RETURN OE_ORDER_SOURCES.ORDER_SOURCE_ID%TYPE IS
v_source_id OE_ORDER_SOURCES.ORDER_SOURCE_ID%TYPE;
BEGIN
SELECT ORDER_SOURCE_ID
INTO v_source_id
FROM APPS.OE_ORDER_SOURCES
WHERE NAME = p_source_name;
RETURN v_source_id;
EXCEPTION
WHEN OTHERS THEN
RETURN NULL;
END GET_SOURCE_ID;
FUNCTION GET_ITEM_ID(p_part_number IN VARCHAR2, p_org_id IN NUMBER)
RETURN MTL_SYSTEM_ITEMS.INVENTORY_ITEM_ID%TYPE IS
v_item_id MTL_SYSTEM_ITEMS.INVENTORY_ITEM_ID%TYPE;
BEGIN
SELECT INVENTORY_ITEM_ID
INTO v_item_id
FROM APPS.MTL_SYSTEM_ITEMS
WHERE SEGMENT1 = p_part_number
AND ORGANIZATION_ID = p_org_id;
RETURN v_item_id;
EXCEPTION
WHEN OTHERS THEN
RETURN NULL;
END GET_ITEM_ID;
BEGIN
apps.mo_global.set_policy_context('S',3);
apps.mo_global.init('XXTEK');
BEGIN
SELECT USER_ID
INTO v_user_id
FROM APPS.FND_USER
WHERE USER_NAME = 'SYSADMIN';
EXCEPTION
WHEN OTHERS THEN
RAISE_APPLICATION_ERROR(-20001, 'Error selecting user');
END;
BEGIN
SELECT RESPONSIBILITY_ID, APPLICATION_ID
INTO v_resp_id, v_app_id
FROM TEK_APEX.TEK_RR_ACTIVE_RESP_VW
WHERE UPPER(RESPONSIBILITY_NAME) = 'ORDER MANAGEMENT SUPER USER';
--Set current user information
fnd_global.apps_initialize (user_id => v_user_id
,resp_id => v_resp_id
,resp_appl_id => v_app_id);
EXCEPTION
WHEN OTHERS THEN
RAISE_APPLICATION_ERROR(-20001, 'Error selecting responsibility');
END;
--Get the order information from Oracle and APEX
v_apex_order := GET_APEX_ORDER(p_order_id);
IF v_apex_order.ORDER_ID IS NULL THEN
RAISE_APPLICATION_ERROR(-20001, 'APEX Order ID is invalid: ' || p_order_id);
END IF;
v_oracle_order := GET_ORACLE_ORDER(TO_NUMBER(v_apex_order.ORDER_NUMBER));
IF v_oracle_order.ORDER_NUMBER IS NULL THEN
RAISE_APPLICATION_ERROR(-20001, 'Order Number not found in Oracle: ' || v_apex_order.ORDER_NUMBER);
END IF;
apps.mo_global.set_policy_context('S', v_oracle_order.ORG_ID);
v_source_id := GET_SOURCE_ID('IMPORT');
IF v_source_id IS NULL THEN
RAISE_APPLICATION_ERROR(-20001, 'Source ID not found for IMPORT');
END IF;
/* ********** Gather Order Header********** */
/* ********** Info. ********** */
OE_Order_Pub.Get_Order(p_api_version_number => 1.0,
p_init_msg_list => FND_API.G_TRUE,
p_return_values => FND_API.G_TRUE,
x_return_status => l_ret_status,
x_msg_count => l_msg_count,
x_msg_data => l_msg_data,
p_header_id => v_oracle_order.HEADER_ID,
p_header => NULL,
x_header_rec => l_header_rec,
x_header_val_rec => l_header_val_rec,
x_Header_Adj_tbl => l_Header_Adj_tab,
x_Header_Adj_val_tbl => l_Header_Adj_val_tab,
x_Header_price_Att_tbl => l_Header_price_Att_tab,
x_Header_Adj_Att_tbl => l_Header_Adj_Att_tab,
x_Header_Adj_Assoc_tbl => l_Header_Adj_Assoc_tab,
x_Header_Scredit_tbl => l_Header_Scredit_tab,
x_Header_Scredit_val_tbl=> l_Header_Scredit_val_tab,
x_line_tbl => l_line_tab,
x_line_val_tbl => l_line_val_tab,
x_Line_Adj_tbl => l_Line_Adj_tab,
x_Line_Adj_val_tbl => l_Line_Adj_val_tab,
x_Line_price_Att_tbl => l_Line_price_Att_tab,
x_Line_Adj_Att_tbl => l_Line_Adj_Att_tab,
x_Line_Adj_Assoc_tbl => l_Line_Adj_Assoc_tab,
x_Line_Scredit_tbl => l_Line_Scredit_tab,
x_Line_Scredit_val_tbl => l_Line_Scredit_val_tab,
x_Lot_Serial_tbl => l_Lot_Serial_tab,
x_Lot_Serial_val_tbl => l_Lot_Serial_val_tab);
--Save defaults from first line
IF l_line_tab.EXISTS(1) THEN
v_contact_id := l_line_tab(1).SHIP_TO_CONTACT_ID;
v_invoice_to_org_id := l_line_tab(1).INVOICE_TO_ORG_ID;
v_ship_to_org_id := l_line_tab(1).SHIP_TO_ORG_ID;
v_sold_to_org_id := l_line_tab(1).SOLD_TO_ORG_ID;
v_flow_status_code := l_line_tab(1).FLOW_STATUS_CODE;
END IF;
--Clear out the line array before adding any new parts
FOR i IN l_line_tab.FIRST..l_line_tab.LAST LOOP
l_line_tab.DELETE(i);
l_line_val_tab.DELETE(i);
l_line_adj_tab.DELETE(i);
l_line_adj_val_tab.DELETE(i);
l_line_price_att_tab.DELETE(i);
l_line_adj_att_tab.DELETE(i);
l_line_adj_assoc_tab.DELETE(i);
l_line_scredit_tab.DELETE(i);
l_line_scredit_val_tab.DELETE(i);
l_lot_serial_tab.DELETE(i);
l_lot_serial_val_tab.DELETE(i);
END LOOP;
/* ********** Gather Order Lines ********** */
OPEN c_order_parts;
FETCH c_order_parts BULK COLLECT INTO v_order_parts;
CLOSE c_order_parts;
FOR i IN v_order_parts.FIRST..v_order_parts.LAST LOOP
v_item_id := GET_ITEM_ID(v_order_parts(i).PART_NUMBER, v_oracle_order.SHIP_FROM_ORG_ID);
IF v_item_id IS NULL THEN
RAISE_APPLICATION_ERROR(-20001, 'Error selecting part number ' || v_order_parts(i).PART_NUMBER);
END IF;
--Clear line first
l_line_tab(i) := OE_Order_Pub.G_Miss_Line_Rec;
l_line_val_tab(i) := OE_ORDER_PUB.G_MISS_LINE_VAL_REC;
l_line_adj_tab(i) := OE_ORDER_PUB.G_MISS_LINE_ADJ_REC;
l_line_adj_val_tab(i) := OE_ORDER_PUB.G_MISS_LINE_ADJ_VAL_REC;
l_line_price_att_tab(i) := OE_ORDER_PUB.G_MISS_LINE_PRICE_ATT_REC ;
l_line_adj_att_tab(i) := OE_ORDER_PUB.G_MISS_LINE_ADJ_ATT_REC;
l_line_adj_assoc_tab(i) := OE_ORDER_PUB.G_MISS_LINE_ADJ_ASSOC_REC;
l_line_scredit_tab(i) := OE_ORDER_PUB.G_MISS_LINE_SCREDIT_REC;
l_line_scredit_val_tab(i) := OE_ORDER_PUB.G_MISS_LINE_SCREDIT_VAL_REC;
l_lot_serial_tab(i) := OE_ORDER_PUB.G_MISS_LOT_SERIAL_REC;
l_lot_serial_val_tab(i) := OE_ORDER_PUB.G_MISS_LOT_SERIAL_VAL_REC;
--Set line information
l_line_tab(i).PRICE_LIST_ID := v_oracle_order.PRICE_LIST_ID;
l_line_tab(i).header_id := v_oracle_order.header_id;
l_line_tab(i).inventory_item_id := v_item_id;
l_line_tab(i).ordered_quantity := v_order_parts(i).QUANTITY;
l_line_tab(i).operation := l_op_code;
l_line_tab(i).unit_list_price := 0;
l_line_tab(i).ship_from_org_id := v_oracle_order.ship_from_org_id;
l_line_tab(i).program_id := fnd_global.conc_program_id ;
l_line_tab(i).program_application_id := fnd_global.PROG_APPL_ID;
l_line_tab(i).order_source_id := v_source_id;
l_line_tab(i).calculate_price_flag := 'N' ;
l_line_tab(i).unit_selling_price := 0.00 ;
l_line_tab(i).request_date := v_apex_order.onsite_date;
l_line_tab(i).Schedule_ship_date := v_apex_order.onsite_date;
l_line_tab(i).promise_date := null;
l_line_tab(i).invoice_to_org_id := v_invoice_to_org_id;
l_line_tab(i).ship_to_org_id := v_ship_to_org_id;
l_line_tab(i).sold_to_org_id := v_sold_to_org_id;
l_line_tab(i).ship_to_contact_id := v_contact_id;
END LOOP;
--OE_DEBUG_PUB.DEBUG_ON;
--OE_DEBUG_PUB.Initialize;
--OE_DEBUG_PUB.SetDebugLevel(5);
--Add lines to order
OE_Order_Pub.Process_order(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_FALSE,
x_return_status => l_ret_status,
x_msg_count => l_msg_count,
x_msg_data => l_msg_data,
p_header_rec => l_header_rec,
p_old_header_rec => l_header_rec,
p_header_val_rec => l_header_val_rec,
p_old_header_val_rec => l_header_val_rec,
p_Header_Adj_tbl => l_Header_Adj_tab,
p_old_Header_Adj_tbl => l_Header_Adj_tab,
p_Header_Adj_val_tbl => l_Header_Adj_val_tab,
p_old_Header_Adj_val_tbl => l_Header_Adj_val_tab,
p_Header_price_Att_tbl => l_Header_price_Att_tab,
p_old_Header_Price_Att_tbl => l_Header_price_Att_tab,
p_Header_Adj_Att_tbl => l_Header_Adj_Att_tab,
p_old_Header_Adj_Att_tbl => l_Header_Adj_Att_tab,
p_Header_Adj_Assoc_tbl => l_Header_Adj_Assoc_tab,
p_old_Header_Adj_Assoc_tbl => l_Header_Adj_Assoc_tab,
p_Header_Scredit_tbl => l_Header_Scredit_tab,
p_old_Header_Scredit_tbl => l_Header_Scredit_tab,
p_Header_Scredit_val_tbl => l_Header_Scredit_val_tab,
p_old_Header_Scredit_val_tbl => l_Header_Scredit_val_tab,
p_line_tbl => l_line_tab,
p_line_val_tbl => l_line_val_tab,
p_Line_Adj_tbl => l_line_adj_tab,
p_Line_Adj_val_tbl => l_line_adj_val_tab,
p_Line_price_Att_tbl => l_line_price_att_tab,
p_Line_Adj_Att_tbl => l_line_adj_att_tab,
p_Line_Adj_Assoc_tbl => l_line_adj_assoc_tab,
p_Line_Scredit_tbl => l_line_scredit_tab,
p_Line_Scredit_val_tbl => l_line_scredit_val_tab,
p_Lot_Serial_tbl => l_lot_serial_tab,
p_Lot_Serial_val_tbl => l_lot_serial_val_tab,
p_action_request_tbl => OE_ORDER_PUB.G_MISS_REQUEST_TBL,
x_header_rec => p_header_rec,
x_header_val_rec => p_header_val_rec,
x_Header_Adj_tbl => p_Header_Adj_tab,
x_Header_Adj_val_tbl => p_Header_Adj_val_tab,
x_Header_price_Att_tbl => p_Header_price_Att_tab,
x_Header_Adj_Att_tbl => p_Header_Adj_Att_tab,
x_Header_Adj_Assoc_tbl => p_Header_Adj_Assoc_tab,
x_Header_Scredit_tbl => p_Header_Scredit_tab,
x_Header_Scredit_val_tbl => p_Header_Scredit_val_tab,
x_line_tbl => p_line_tab,
x_line_val_tbl => p_line_val_tab,
x_line_adj_tbl => p_line_adj_tab,
x_line_adj_val_tbl => p_line_adj_val_tab,
x_line_price_att_tbl => p_line_price_att_tab,
x_line_adj_att_tbl => p_line_adj_att_tab,
x_line_adj_assoc_tbl => p_line_adj_assoc_tab,
x_line_scredit_tbl => p_line_scredit_tab,
x_line_scredit_val_tbl => p_line_scredit_val_tab,
x_lot_serial_tbl => p_lot_serial_tab,
x_lot_serial_val_tbl => p_lot_serial_val_tab,
x_action_request_tbl => p_action_request_tab);
-- OE_DEBUG_PUB.DEBUG_OFF;
p_return_code := l_ret_status;
IF l_ret_status != 'S' THEN
DBMS_OUTPUT.PUT_LINE(l_msg_data);
IF l_msg_count = 1 THEN
p_status := OE_Msg_Pub.Get(1,'F');
ELSE
FOR i IN 1..l_msg_count LOOP
p_status := OE_Msg_Pub.Get(i,'F') || '<br />';
END LOOP;
END IF;
p_status := 'Error loading lines<br>' || p_status;
ELSE
p_status := 'Order Processed Successfully<br>' || v_order_parts.COUNT || ' Line(s) Loaded';
END IF;
-- WHILE OE_DEBUG_PUB.G_DEBUG_INDEX < OE_DEBUG_PUB.CountDebug LOOP
-- OE_DEBUG_PUB.GetNext(v_debug);
-- DBMS_OUTPUT.PUT_LINE(v_debug);
-- END LOOP;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
RAISE;
END TEK_ORD_PROCESS_ORDER;Thanks!
Jonathan HartHello,
Try the following
1) Check if any processing constraints are applied to customer/location
2) Try to create a new customer and associate internal location.
Create a new order to reproduce the issue
Thanks
-Arif -
Difference amount in sales order and billing document (For one line item)
Hi Experts,
User created sales order with 3 line items and billing document. but problem is that there is difference in value of sale order and billing only for line item 10. The remaining items values are same in sales order & billing doc.if I check in sales order condition I found that VPRS condition is used and the value is 692.13and the amount is 3245.26in sales order. But if suppose I check the same value in billing doc the value is 0.69 and the amount is 3245.28. Can u suggest me which configuration I have to check for this.
I also checked change lock but there is no change in sales and billing document & Material
Regards
Sunina agarwalMorning Sunina
Now consider this scenario
Item a - 10
Item b - 20
Item c - 30
and the validity of condition rec for item C is 31st of Jan
after 31st JAN the record changes or there isn't any.
In Copy control the pricing type is 'B' i.e., carry out new pricing.
Now if the document is created in January it will take all the above prices. and this document is then billed in Feb. Now the copycontrol, whilst copying the prices, will predetermine the same.
Now your task is to check if there was user intervention, check the pricing in order and check what condition types got affected in order and in billing.
If your scenario is still not amongst the above cases...
I don't know what to do, if you figure out please let us also know, god know when we would face the same scenario....
Take care -
Serial Number validation during Delivery Creation itself(PGI-system checks)
Process:
Sales Order PR(Purchase Order) GR( New Serial Numbers are created automatically or manually keyed in)
Once the Goods Receipt is received, we do the (SO) DELIVERYu2014SERIAL NUMBER ASSIGNMENT Post Goods Issue
Issue:
Current Serial Number Profile Management does not do a valid serial number check during DELIVERY CREATION where we do a SERIAL NUMBER ASSIGNMENT.
Only during POST GOODS ISSUE, the check happens for valid serial numbers; this is too late in the game for business as there is a time lag of 3 days from the DELIVERY CREATION and PGI.
Reason being--- We donu2019t check the following u201C Existing Stock Checku201D( which does a serial number validation during delivery creation as well)
SPRO>Plant Maintenance and Customer Service>Master Data in Plant Maintenance and Customer Service>Technical Objects>Serial Number Management>Define Serial Number Profiles
If we check this option, the business requirement to do a valid serial number check does happen during delivery creation, however we cannot create new serial numbers during Purchase Order- GOODS RECEIPT.
QUESTION:
Can we have the system check the valid serial numbers from stock during delivery creation and serial number assignment.
And Also create new serial numbers during Purchase Order- Goods Receipt.Hi
1.In std SAP its not possible to check the serail number during Delivery creation, through enhancement it can be done.
2.During GR for PO serial numbers can be created.
Rgds
Ramesh -
Order related billing for third party. Third party order..
Hi
While we are running batch job for billing system is throwing below error.
Order related billing for third party. Third party order..Dear Nortel,
Can you Please check whether, during the item category configuration for TAS (T. Code: VOV7); you have marked relevant for billing indicator as F?
Also, maintained the copy control (T. Code: VTFA) between OR => IVA (for TAS) as follows:
Copying requirement = '013',
Invoiced quantity = 'F', (*)
Quantity/value = '+',
Pricing type = 'G'.
Best Regards,
Amit
Note: I would recommend you to Please go-through following document in full, atleast fo once. This will definitely help you to review your settings for Third Party Order Process Customization.
[Third Party Process|http://yasosap.wordpress.com/2008/10/22/third-party-scenario/] -
Standard COGS cannot be Transferred from Sales Order to Billing Document
I did a test in current client with the following steps:
Create Sales Order for Configurable Material -> Execute Sales Order Costing Run, marked and Saved the result via CK51 -> Create Prodcution Order for such Sales Order -> Confirm Prod Order -> Conduct GR per the Prod Order -> Conduct Goods Delivery for the Sales Order-> Create Billing.
(There is not any costing value during the whole process)
There are many Value Fields in the CO-PA document regarding to this billing, the value of standard COGS items(including Material Cost, Period Machine, Variable Labor etc) are also included and their value are expected to be transferred from Sales Order. However, in my testing, those COGS value failed to be transferred to Billing document. I am not sure whether there is any config related. (KEPC hs already been done in such case). Would any expert can help on that?en, It is solved now. Untick "Transfer aux. CC Split" in KE40, then the value can transported to billing.
Edited by: Ying Zhu on Nov 18, 2008 1:10 PM -
How to Avoid Duplicate Pricing Condition Types In Sales Order and Billing
Hi SAP Gurus
I have a requirement in Pricing (Sales and Distribution). We have issue duplicated condition types in Sales order and it causes wrong posting in to accounts.
I want make them inactive duplicated Condition type in Sales order and Billing Documents.
Please advice me how to make inactive status to duplicated Condition types
Thanks in Advance.
RavikanthHi
You can use Exclusion Group
You can define 2 Groups and include 1 condition type in each
and define exlusion procedure
A Best condition between condition types
B Best condition within the condition type
C Best condition between the two exclusion groups
D Exclusive
E Least favorable within the condition type
F Least favorable betweent the two exclusion groups
you can use Exclusive to set your condition type or as per your requirement
Regards
Jitesh -
AIA PIPs for BRM(Order to bill and agent assited billing care)
Hi,
I have installed AIA11g FP and SOA11g on Weblogic 10. Now I would like to install PIPs for oracle billing and revenue management(Order to bill).
I can only find AIA 2.5 release which is not compatible with weblogic 10.
Could any one please let me know where can I get PIPs for SOA 11g and if not any work around to install the 2.5 PIPs on SOA11g.
Thanks in advance.
-Raj
Edited by: user8722115 on 28.12.2010 6:16Hello there,
My questions are similar to this one, so I post here too.
I would like to know if AIA 2.5 could be installed on a "Oracle SOA Suite 10g
(10.1.3.5.1) for WebLogic Server (10.3.1)" or if the only certified environment
is the one described into the E2103301.pdf doc "AIA 2.5 Installation & Upgrade
Guide" of January 2011, i.e. Oracle SOA suite 10.1.3.4 MLR#8 (+ patches ) with
WebLogic 9.2 MP3.
Also, what about AIA 2.5 with Oracle Fusion Middleware 11g?
Regards,
- KaRiNe -
Motto : "Unsubmissive attitude! -
ERP - SD Sales orders with billing plan (material number change appear)
Sales and Distribution.
Regarding sales orders with billing plan.
We create the sales order and create billing plan at header or item level.
We issue down payment request(s) upon receipt of sales order.
Often during the life time of the sales order one or more of the material numbers are changed after the down payment request(s) has been issued and paid by the client.
Our issue is that prior to changing the material number in the sales order we have to reverse the payment(s), reverse the down payment request(s) and after the material number change re-issue the down payment request(s) and register the payment again.
We wish to find a solution avoiding all the reversals.
If you have a similar situation please inform how to handle material number change in the sales orders with billing plan.
Best regards
LiseDear Consultor SD ,
There is no setting to create the invoice based on schedule line.
What you can possibly do is create multiple deliveries based on the schedule line and
then invoice the individual deliveries.
If you want system to split the deliveries based on schedule line, then you will have to include Schedule line also
in the COMBINATION REQUIREMENT in VTLA.
Thanks & Regards,
Hegal K Charles -
Cash sales Order Related Billing
Dear Forum Members
Hi
I need clarification on the following. Both in cash sales and regular sales orders , delivery , PGI and then billing is involved. So why we call cash sales process as order related billing. I find that unless goods are posted in cash sales delivery , invoice can not be created like in normal sales order. Request your inputs
Thanks in advance
regards
narasimhaI need clarification on the following. Both in cash sales and regular sales orders , delivery , PGI and then billing is involved. So why we call cash sales process as order related billing. I find that unless goods are posted in cash sales delivery , invoice can not be created like in normal sales order. Request your inputs
Hi narsimha
There is a lot of difference between cash sales order and normal sales order
The differences are
cash sale document type - BV , standard sales order document type - OR
Item category for cash sale is BVN and normal cash sales order it is TAN.
In VOV8, if you go to BV document type details , shipping conditions will be on where as in OR , shipping conditions will not be on .
In cash sale order , automatically a delivery number will be created in the background once you save the cash sale order , whereas in normal sales order , after saving order you need to do delivery and then save it then only delivery number will be generated
In cash sale the billing date will be todays date only where as in normal sale billing date can be after 1 week also , depends on the availability check
In normal sales cycle , you get invoice in billing F2, where as in Cash sale when you create a cash sale order the output you get is the invoice for the customer.
In cash sale there wont be any credit , where as in normal sales order there will be credit for customers .
Example :
cash sale - A customer purchasing goods in a retail outlet and then and there he is paying cash (no credit) to the retailer.
Normal sale - Customer purchasing goods but paying in installments , that means he is a regualar customer and he is getting credit.
Why cash sale is order related billing ?
Because , once you save the cash sale order automatically the delivery number is also created. now when you go to VL02n and enter the picking quantity it has to be fully referenced , of how much you have given in the cash sale order . But if you try to do partial delivery . you cant do again , you need to change the quantity what you have given in the delivery and enter in VA02 and enter the same quantity. then only the order will be closed
check the billing relevance for the item category BVN ( it is order related billing)
normal sales order is delivery realted billing ?
Because the item category for TAN is relavent for delivery and Billing relevence is different from BVN
you can do paritial deliveries in normal sales cycle till complete order quantity is referenced
Reward points if useful
Regards
Srinath -
Order related billing for manufacturing
Can anybody explain to me the effects of order-related billing in manufacturing? What if deliveries is not the same as sales order. Or should i just make another order type for this?
Thanks in advance!Dear Joker,
-->Why you want to go for sales order related billing with out delivery reference !!
-->Are you not creating any delivery after sales order !!
-->Delivery is entirely different from sales order.
-->As per the satnsard service related activities will be billed with reference to the sales order because here there will not be any physical movement of goods.
-->When ever there is physical movements of the goods you need to create delivery.
-->When ever there is delivery you better to create billing document with reference to the delivery.
I hope this will help you,
Regards,
Murali.
Maybe you are looking for
-
AFAB Accidently posted into period 12.
Hi Expert, My user accidently planned posting run into period 12 (which somehow the close coordinator open period 12). And now user cannot do planned posting run for period 01. Can i reverse the planned posting run period 12? This is the error messag
-
Error in Query/Report results
Hi I my report in columns i had a structure with 12 elements each for Month based on Restrictions on Current Cal month variable and Offsets. So when user executes reports in columns it will be displayed as MAY2009,JUN2009,JULY2009....DEC2009. my re
-
i have a 2006 iMac with a 160 HD and 1GB of ram. I recently got a 2TB external hard drive and transfered all my pictures to that. Once I had a solid folder structure for my photos, I dragged them all to iPhoto. Once iPhoto had created its own folder
-
I am trying to upgrade my macbook pro to os x mavericks, but it has been on the reboot process for more than 2 hours. There is only the apple logo with the spinning ball thing. What should I do?
-
Copying xorg.conf from another distro
This may or may not be a silly question, but it's an honest one. On my desktop, I just installed Arch Linux, and already have Debian on another partition. Would it be safe to copy my xorg.conf from Debian, or would this cause issues on Arch? I tried