CREATE OR REPLACE PACKAGE BODY APPS.XX1003_SO_API AS PROCEDURE SO_CREATE (errbuf IN OUT NOCOPY VARCHAR2 ,errcode IN OUT NUMBER ,headerid IN NUMBER ,lineid IN NUMBER ,bill_seq_id IN NUMBER ,quantity IN NUMBER ,B_type IN VARCHAR2 DEFAULT 'STH' ,asset_number IN VARCHAR2 DEFAULT NULL ,user_line_desc IN VARCHAR2 DEFAULT NULL) AS -- l_api_version_number NUMBER := 1.0; l_return_status VARCHAR2(2000); l_msg_count NUMBER; l_msg_data VARCHAR2(2000); -- ----------------INPUT VARIABLES FOR PROCESS_ORDER API------------------------- l_header_rec oe_order_pub.header_rec_type; l_line_tbl oe_order_pub.line_tbl_type; l_action_request_tbl oe_order_pub.Request_Tbl_Type; ----------------OUT VARIABLES FOR PROCESS_ORDER API--------------------------- l_header_rec_out oe_order_pub.header_rec_type; l_header_val_rec_out oe_order_pub.header_val_rec_type; l_header_adj_tbl_out oe_order_pub.header_adj_tbl_type; l_header_adj_val_tbl_out oe_order_pub.header_adj_val_tbl_type; l_header_price_att_tbl_out oe_order_pub.header_price_att_tbl_type; l_header_adj_att_tbl_out oe_order_pub.header_adj_att_tbl_type; l_header_adj_assoc_tbl_out oe_order_pub.header_adj_assoc_tbl_type; l_header_scredit_tbl_out oe_order_pub.header_scredit_tbl_type; l_header_scredit_val_tbl_out oe_order_pub.header_scredit_val_tbl_type; l_line_tbl_out oe_order_pub.line_tbl_type; l_line_val_tbl_out oe_order_pub.line_val_tbl_type; l_line_adj_tbl_out oe_order_pub.line_adj_tbl_type; l_line_adj_val_tbl_out oe_order_pub.line_adj_val_tbl_type; l_line_price_att_tbl_out oe_order_pub.line_price_att_tbl_type; l_line_adj_att_tbl_out oe_order_pub.line_adj_att_tbl_type; l_line_adj_assoc_tbl_out oe_order_pub.line_adj_assoc_tbl_type; l_line_scredit_tbl_out oe_order_pub.line_scredit_tbl_type; l_line_scredit_val_tbl_out oe_order_pub.line_scredit_val_tbl_type; l_lot_serial_tbl_out oe_order_pub.lot_serial_tbl_type; l_lot_serial_val_tbl_out oe_order_pub.lot_serial_val_tbl_type; l_action_request_tbl_out oe_order_pub.request_tbl_type; -- l_msg_index NUMBER; l_data VARCHAR2(2000); l_loop_count NUMBER; l_debug_file VARCHAR2(200); -- -- Variable declarations ------ -- v_item_qty NUMBER; v_inventory_item_id NUMBER; v_party_id NUMBER; v_sold_to_id NUMBER; v_price_list NUMBER; v_attribute1 VARCHAR2(100); v_attribute2 VARCHAR2(100); v_attribute3 VARCHAR2(100); v_attribute4 VARCHAR2(100); v_attribute5 VARCHAR2(100); v_attribute6 VARCHAR2(100); v_attribute7 VARCHAR2(100); v_attribute8 VARCHAR2(100); v_attribute9 VARCHAR2(100); v_attribute10 VARCHAR2(100); v_attribute11 VARCHAR2(100); v_attribute12 VARCHAR2(100); v_pricing_attribute1 VARCHAR2(100); v_pricing_attribute2 VARCHAR2(100); v_pricing_attribute3 VARCHAR2(100); v_pricing_context VARCHAR2(100); v_line_type_id NUMBER; v_org_id NUMBER; v_rtrn VARCHAR2(10) := ''; V_TEMP VARCHAR2(100); -- -- CURSOR c_so_line IS SELECT org_id ,line_type_id ,inventory_item_id ,price_list_id ,attribute1 ,attribute2 ,attribute3 ,attribute4 ,attribute5 ,attribute6 ,attribute7 ,attribute8 ,attribute9 ,attribute10 ,attribute11 ,attribute12 FROM apps.oe_order_lines_all WHERE line_id = lineid; -- -- CURSOR c_so_line_price IS SELECT PRICING_CONTEXT ,PRICING_ATTRIBUTE1 ,PRICING_ATTRIBUTE2 ,PRICING_ATTRIBUTE3 FROM apps.oe_order_price_attribs WHERE line_id = lineid; -- -- BEGIN fnd_file.put_line(fnd_file.LOG,'- Begin ---------------------------------------------------'); -- Get all local Values from the order line --- -- OPEN c_so_line; FETCH c_so_line INTO v_org_id ,v_line_type_id ,v_inventory_item_id ,v_price_list ,v_attribute1 ,v_attribute2 ,v_attribute3 ,v_attribute4 ,v_attribute5 ,v_attribute6 ,v_attribute7 ,v_attribute8 ,v_attribute9 ,v_attribute10 ,v_attribute11 ,v_attribute12; CLOSE c_so_line; -- ----------------INITIALIZE DEBUG INFO------------------------------------- -- l_debug_file := OE_DEBUG_PUB.Set_Debug_Mode('FILE'); oe_debug_pub.INITIALIZE; oe_debug_pub.setdebuglevel(5); Oe_Msg_Pub.INITIALIZE; -- ----------------INITIALIZE ENVIRONMENT------------------------------------- fnd_global.apps_initialize(1090,50370,7000); -- pass in user_id, responsibility_id, and resp application_id ----------------INITIALIZE HEADER RECORD------------------------------ l_header_rec := OE_ORDER_PUB.G_MISS_HEADER_REC; ----------------POPULATE REQUIRED ATTRIBUTES ---------------------------------- /* l_header_rec.operation := OE_GLOBALS.G_OPR_CREATE; l_header_rec.order_type_id := 100000; l_header_rec.sold_to_org_id := 1000; l_header_rec.price_list_id := 100; l_header_rec.pricing_date := SYSDATE; l_header_rec.transactional_curr_code := ‘USD’; l_header_rec.flow_status_code:=’ENTERED’; l_header_rec.cust_po_number := ‘123?; l_header_rec.attribute1 := ‘ABC’; */ l_header_rec.header_id := headerid; l_header_rec.OPERATION := OE_GLOBALS.G_OPR_UPDATE; /*changes l_header_rec.price_list_id := 6023; l_header_rec.pricing_date := SYSDATE; l_header_rec.flow_status_code:='ENTERED'; l_header_rec.transactional_curr_code := 'INR'; */ ----------------INITIALIZE ACTION REQUEST RECORD------------------------------------- -- l_action_request_tbl(1) := OE_ORDER_PUB.G_MISS_REQUEST_REC; ----------------INITIALIZE LINE RECORD-------------------------------- -- l_line_tbl(1) := OE_ORDER_PUB.G_MISS_LINE_REC; l_line_tbl(1).INVENTORY_ITEM_ID := v_inventory_item_id; l_line_tbl(1).LINE_TYPE_ID := v_line_type_id; l_line_tbl(1).ORDERED_QUANTITY := quantity; IF B_type='STH' THEN l_line_tbl(1).price_list_id := 6007;--v_price_list;6023 ELSE l_line_tbl(1).price_list_id := 40147;--v_price_list;6023 END IF; l_line_tbl(1).attribute1 := asset_number;--v_attribute1; l_line_tbl(1).attribute2 := v_attribute2; l_line_tbl(1).attribute3 := v_attribute3; l_line_tbl(1).attribute4 := v_attribute4; l_line_tbl(1).attribute5 := B_type; l_line_tbl(1).attribute6 := v_attribute6; l_line_tbl(1).attribute7 := v_attribute7; l_line_tbl(1).attribute8 := v_attribute8; l_line_tbl(1).attribute9 := v_attribute9; l_line_tbl(1).attribute10 := 'AUTO'; --l_line_tbl(1).attribute11 := lineid; l_line_tbl(1).attribute11 := bill_seq_id; l_line_tbl(1).attribute12 := v_attribute12; l_line_tbl(1).source_document_id := headerid; l_line_tbl(1).source_document_line_id := lineid; l_line_tbl(1).source_document_type_id := 2; l_line_tbl(1).USER_ITEM_DESCRIPTION := user_line_desc; l_line_tbl(1).OPERATION := OE_GLOBALS.G_OPR_CREATE; -- ----------------CALL TO PROCESS ORDER API--------------------------------- -- OE_Order_PUB.Process_Order (p_api_version_number => l_api_version_number, p_header_rec => l_header_rec, p_line_tbl => l_line_tbl, p_action_request_tbl => l_action_request_tbl, x_header_rec => l_header_rec_out, x_header_val_rec => l_header_val_rec_out, x_header_adj_tbl => l_header_adj_tbl_out, x_header_adj_val_tbl => l_header_adj_val_tbl_out, x_header_price_att_tbl => l_header_price_att_tbl_out, x_header_adj_att_tbl => l_header_adj_att_tbl_out, x_header_adj_assoc_tbl => l_header_adj_assoc_tbl_out, x_header_scredit_tbl => l_header_scredit_tbl_out, x_header_scredit_val_tbl => l_header_scredit_val_tbl_out, x_line_tbl => l_line_tbl_out, x_line_val_tbl => l_line_val_tbl_out, x_line_adj_tbl => l_line_adj_tbl_out, x_line_adj_val_tbl => l_line_adj_val_tbl_out, x_line_price_att_tbl => l_line_price_att_tbl_out, x_line_adj_att_tbl => l_line_adj_att_tbl_out, x_line_adj_assoc_tbl => l_line_adj_assoc_tbl_out, x_line_scredit_tbl => l_line_scredit_tbl_out, x_line_scredit_val_tbl => l_line_scredit_val_tbl_out, x_lot_serial_tbl => l_lot_serial_tbl_out, x_lot_serial_val_tbl => l_lot_serial_val_tbl_out, x_action_request_tbl => l_action_request_tbl_out, x_return_status => l_return_status, x_msg_count => l_msg_count, x_msg_data => l_msg_data); -- --- If Pricing Context found then insert else do nothing BEGIN -- OPEN c_so_line_price; FETCH c_so_line_price INTO v_pricing_context ,v_pricing_attribute1 ,v_pricing_attribute2 ,v_pricing_attribute3; CLOSE c_so_line_price; -- IF v_pricing_context IS NOT NULL THEN -- fnd_file.put_line(fnd_file.LOG,'B_TYPE IS: ' || B_type); fnd_file.put_line(fnd_file.LOG,'Line.line_id IS: ' || l_line_tbl_out(1).line_id); errbuf := errbuf || v_rtrn || 'B_TYPE IS: ' || B_type ; errbuf := errbuf || v_rtrn || 'Line.line_id IS: ' || l_line_tbl_out(1).line_id ; -- UPDATE OE_ORDER_PRICE_ATTRIBS SET PRICING_ATTRIBUTE3=B_type WHERE HEADER_ID = l_header_rec.header_id AND LINE_ID = l_line_tbl_out(1).line_id; -- END IF; -- END; -- ----------------Assign return status----------------------------------- -- IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN -- fnd_file.put_line(fnd_file.LOG,'API Success'); errbuf := errbuf || v_rtrn || 'API Success' ; errcode := 0; -- ELSE -- fnd_file.put_line(fnd_file.LOG,'API Failure'); errbuf := errbuf || v_rtrn || 'API Failure' ; ROLLBACK; errcode := 2; -- END IF; -- ---------------Display error messages------------------------------------- -- FOR i IN 1 .. l_msg_count LOOP -- Oe_Msg_Pub.GET (p_msg_index => i ,p_encoded => Fnd_Api.G_FALSE ,p_data => l_data ,p_msg_index_out => l_msg_index); fnd_file.put_line(fnd_file.LOG,'Message is: ' || l_data); fnd_file.put_line(fnd_file.LOG,'Message index is: ' || l_msg_index); errbuf := errbuf || v_rtrn || 'Message is: ' || l_data; errbuf := errbuf || v_rtrn || 'Message index is: ' || l_msg_index; -- END LOOP; -- ----------------Display return status flags------------------------------ -- fnd_file.put_line(fnd_file.LOG,'Process ORDER ret status IS: ' || l_return_status); --fnd_file.put_line(fnd_file.LOG,'Process ORDER msg data IS: ' || l_msg_data); fnd_file.put_line(fnd_file.LOG,'Process ORDER msg COUNT IS: ' || l_msg_count); fnd_file.put_line(fnd_file.LOG,'Header.order_number IS: ' || TO_CHAR(l_header_rec_out.order_number)); fnd_file.put_line(fnd_file.LOG,'Header.return_status IS: ' || l_header_rec_out.return_status); fnd_file.put_line(fnd_file.LOG,'Header.booked_flag IS: ' || l_header_rec_out.booked_flag); fnd_file.put_line(fnd_file.LOG,'Header.header_id IS: ' || l_header_rec_out.header_id); fnd_file.put_line(fnd_file.LOG,'Header.order_source_id IS: ' || l_header_rec_out.order_source_id); fnd_file.put_line(fnd_file.LOG,'Header.flow_status_code IS: ' || l_header_rec_out.flow_status_code); fnd_file.put_line(fnd_file.LOG,'Debug = ' || OE_DEBUG_PUB.G_DEBUG); fnd_file.put_line(fnd_file.LOG,'Debug Level = ' || TO_CHAR(OE_DEBUG_PUB.G_DEBUG_LEVEL)); fnd_file.put_line(fnd_file.LOG,'Debug File = ' || OE_DEBUG_PUB.G_DIR||''||OE_DEBUG_PUB.G_FILE); fnd_file.put_line(fnd_file.LOG,'- End ---------------------------------------------------'); OE_DEBUG_PUB.DEBUG_OFF; errbuf := errbuf || v_rtrn || 'Process ORDER ret status IS: ' || l_return_status ; --errbuf := errbuf || v_rtrn || 'Process ORDER msg data IS: ' || l_msg_data ; errbuf := errbuf || v_rtrn || 'Process ORDER msg COUNT IS: ' || l_msg_count ; errbuf := errbuf || v_rtrn || 'Header.order_number IS: ' || TO_CHAR(l_header_rec_out.order_number) ; errbuf := errbuf || v_rtrn || 'Header.return_status IS: ' || l_header_rec_out.return_status ; errbuf := errbuf || v_rtrn || 'Header.booked_flag IS: ' || l_header_rec_out.booked_flag ; errbuf := errbuf || v_rtrn || 'Header.header_id IS: ' || l_header_rec_out.header_id ; errbuf := errbuf || v_rtrn || 'Header.order_source_id IS: ' || l_header_rec_out.order_source_id ; errbuf := errbuf || v_rtrn || 'Header.flow_status_code IS: ' || l_header_rec_out.flow_status_code ; errbuf := errbuf || v_rtrn || 'Debug = ' || OE_DEBUG_PUB.G_DEBUG ; errbuf := errbuf || v_rtrn || 'Debug Level = ' || TO_CHAR(OE_DEBUG_PUB.G_DEBUG_LEVEL) ; errbuf := errbuf || v_rtrn || 'Debug File = ' || OE_DEBUG_PUB.G_DIR||''||OE_DEBUG_PUB.G_FILE ; -- END SO_CREATE; END XX1003_SO_API; / *************************************************************************************************************************** CREATE OR REPLACE PROCEDURE XX.XX1002_CR_PRICE_LIST_PBH_P_OTH (PN_PRC_LST_HDRID IN NUMBER ,PN_INV_ITEM_ID IN NUMBER ,PV_UOM IN VARCHAR2 ,PN_PRICE IN NUMBER ,PN_SEQNUM IN NUMBER ,PV_XXVAL IN VARCHAR2 -- to be discussed later ,PV_IU_FLAG IN VARCHAR2 -- to be discussed later ,PV_FRMPRC IN NUMBER ,PV_TOPRC IN NUMBER ,PN_LSTLNID OUT NUMBER ,PV_STATUS OUT VARCHAR2) AS -- gpr_return_status VARCHAR2(1) := NULL; gpr_msg_count NUMBER := 0; gpr_msg_data VARCHAR2(2000); k NUMBER := 1; j NUMBER := 1; tmpvar NUMBER; nxtseq NUMBER; v1 number; -- gpr_price_list_rec APPS.QP_PRICE_LIST_PUB.Price_List_Rec_Type; gpr_price_list_val_rec APPS.QP_PRICE_LIST_PUB.Price_List_Val_Rec_Type; gpr_price_list_line_tbl APPS.QP_PRICE_LIST_PUB.Price_List_Line_Tbl_Type; gpr_price_list_line_val_tbl APPS.QP_PRICE_LIST_PUB.Price_List_Line_Val_Tbl_Type; gpr_qualifiers_tbl APPS.QP_Qualifier_Rules_Pub.Qualifiers_Tbl_Type; gpr_qualifiers_val_tbl APPS.QP_Qualifier_Rules_Pub.Qualifiers_Val_Tbl_Type; gpr_pricing_attr_tbl APPS.QP_PRICE_LIST_PUB.Pricing_Attr_Tbl_Type; gpr_pricing_attr_val_tbl APPS.QP_PRICE_LIST_PUB.Pricing_Attr_Val_Tbl_Type; ppr_price_list_rec APPS.QP_PRICE_LIST_PUB.Price_List_Rec_Type; ppr_price_list_val_rec APPS.QP_PRICE_LIST_PUB.Price_List_Val_Rec_Type; ppr_price_list_line_tbl APPS.QP_PRICE_LIST_PUB.Price_List_Line_Tbl_Type; ppr_price_list_line_val_tbl APPS.QP_PRICE_LIST_PUB.Price_List_Line_Val_Tbl_Type; ppr_qualifiers_tbl APPS.QP_Qualifier_Rules_Pub.Qualifiers_Tbl_Type; ppr_qualifiers_val_tbl APPS.QP_Qualifier_Rules_Pub.Qualifiers_Val_Tbl_Type; ppr_pricing_attr_tbl APPS.QP_PRICE_LIST_PUB.Pricing_Attr_Tbl_Type; ppr_pricing_attr_val_tbl APPS.QP_PRICE_LIST_PUB.Pricing_Attr_Val_Tbl_Type; -- BEGIN --select xxseq.nextval into nxtSeq from dual; --DBMS_OUTPUT.PUT_LINE('Seq Generated '|| to_char(nxtSeq,'99999999999') ); DBMS_OUTPUT.PUT_LINE('after get price list '); /* set the list_header_id to g_miss_num */ gpr_price_list_rec.list_header_id := PN_PRC_LST_HDRID; -- from profile trnasaction price list id gpr_price_list_rec.list_type_code := 'PRL'; /* you can set the currency of price list to whatever, say FRA */ gpr_price_list_rec.operation := APPS.QP_GLOBALS.G_OPR_UPDATE; -- gpr_price_list_line_tbl(K).list_line_id := APPS.FND_API.G_MISS_NUM; gpr_price_list_line_tbl(K).list_line_type_code := 'PBH'; gpr_price_list_line_tbl(K).price_break_type_code := 'RANGE'; gpr_price_list_line_tbl(K).operation := APPS.QP_GLOBALS.G_OPR_CREATE; gpr_price_list_line_tbl(K).operand := PN_PRICE;--1; gpr_price_list_line_tbl(K).arithmetic_operator := 'BLOCK_PRICE'; -- J := 1; --- NORMAL LIST LINE gpr_pricing_attr_tbl(J).pricing_attribute_id := APPS.FND_API.G_MISS_NUM; gpr_pricing_attr_tbl(J).list_line_id := APPS.FND_API.G_MISS_NUM; gpr_pricing_attr_tbl(J).PRODUCT_ATTRIBUTE_CONTEXT := 'ITEM'; gpr_pricing_attr_tbl(J).PRODUCT_ATTRIBUTE := 'PRICING_ATTRIBUTE1'; gpr_pricing_attr_tbl(J).PRODUCT_ATTR_VALUE := PN_INV_ITEM_ID; gpr_pricing_attr_tbl(J).PRODUCT_UOM_CODE := PV_UOM; gpr_pricing_attr_tbl(J).EXCLUDER_FLAG := 'N'; gpr_pricing_attr_tbl(J).PRICE_LIST_LINE_INDEX := 1; gpr_pricing_attr_tbl(J).operation := APPS.QP_GLOBALS.G_OPR_CREATE; J := J + 1; --- K := K + 1; --- PRICE BREAK HEADER 1 gpr_price_list_line_tbl(K).list_line_id := APPS.FND_API.G_MISS_NUM; gpr_price_list_line_tbl(K).list_line_type_code := 'PLL'; gpr_price_list_line_tbl(K).operation := APPS.QP_GLOBALS.G_OPR_CREATE; gpr_price_list_line_tbl(K).operand := PN_PRICE;--10; gpr_price_list_line_tbl(K).arithmetic_operator := 'BLOCK_PRICE'; gpr_price_list_line_tbl(K).rltd_modifier_group_no := 1; gpr_price_list_line_tbl(K).PRICE_BREAK_HEADER_INDEX := 1; -- ----------------- for Pricing Attribute by P.S.Iyer -- gpr_pricing_attr_tbl(J).pricing_attribute_id := APPS.FND_API.G_MISS_NUM; gpr_pricing_attr_tbl(J).list_line_id := APPS.FND_API.G_MISS_NUM; gpr_pricing_attr_tbl(J).PRODUCT_ATTRIBUTE_CONTEXT := 'ITEM'; gpr_pricing_attr_tbl(J).PRODUCT_ATTRIBUTE := 'PRICING_ATTRIBUTE1'; gpr_pricing_attr_tbl(J).PRODUCT_ATTR_VALUE := PN_INV_ITEM_ID; gpr_pricing_attr_tbl(J).PRODUCT_UOM_CODE := PV_UOM; gpr_pricing_attr_tbl(J).EXCLUDER_FLAG := 'N'; gpr_pricing_attr_tbl(J).ATTRIBUTE_GROUPING_NO := 1; gpr_pricing_attr_tbl(J).PRICE_LIST_LINE_INDEX := 1; gpr_pricing_attr_tbl(J).PRICING_ATTRIBUTE_CONTEXT := 'VOLUME'; gpr_pricing_attr_tbl(J).PRICING_ATTRIBUTE := 'PRICING_ATTRIBUTE10'; gpr_price_list_line_tbl(K).arithmetic_operator := 'BREAKUNIT_PRICE'; gpr_pricing_attr_tbl(J).PRICING_ATTR_VALUE_FROM := '0'; gpr_pricing_attr_tbl(J).PRICING_ATTR_VALUE_TO := '2000'; gpr_pricing_attr_tbl(J).COMPARISON_OPERATOR_CODE := 'BETWEEN'; gpr_pricing_attr_tbl(J).EXCLUDER_FLAG := 'N'; gpr_pricing_attr_tbl(J).PRICE_LIST_LINE_INDEX := 2; gpr_pricing_attr_tbl(J).operation := APPS.QP_GLOBALS.G_OPR_CREATE; -- --- 2nd line in price break --- PRICE BREAK HEADER ---------------- PRICING ATTRIBUTE QP INTERNAL ----------------- for Pricing Attribute by P.S.Iyer J:=J+1; gpr_pricing_attr_tbl(J).pricing_attribute_id := APPS.FND_API.G_MISS_NUM; gpr_pricing_attr_tbl(J).list_line_id := APPS.FND_API.G_MISS_NUM; gpr_pricing_attr_tbl(J).PRODUCT_ATTRIBUTE_CONTEXT := 'ITEM'; gpr_pricing_attr_tbl(J).PRODUCT_ATTRIBUTE := 'PRICING_ATTRIBUTE1'; gpr_pricing_attr_tbl(J).PRODUCT_ATTR_VALUE := PN_INV_ITEM_ID; gpr_pricing_attr_tbl(J).PRODUCT_UOM_CODE := PV_UOM; gpr_pricing_attr_tbl(J).EXCLUDER_FLAG := 'N'; gpr_pricing_attr_tbl(J).ATTRIBUTE_GROUPING_NO := 1; gpr_pricing_attr_tbl(J).PRICE_LIST_LINE_INDEX := 1; gpr_pricing_attr_tbl(J).PRICING_ATTRIBUTE_CONTEXT := 'QP_INTERNAL'; gpr_pricing_attr_tbl(J).PRICING_ATTRIBUTE := 'PRICING_ATTRIBUTE1'; gpr_pricing_attr_tbl(J).COMPARISON_OPERATOR_CODE := '='; gpr_pricing_attr_tbl(J).PRICING_ATTR_VALUE_FROM := PN_SEQNUM; gpr_pricing_attr_tbl(J).operation := APPS.QP_GLOBALS.G_OPR_CREATE; -- J:=J+1; gpr_pricing_attr_tbl(J).pricing_attribute_id := APPS.FND_API.G_MISS_NUM; gpr_pricing_attr_tbl(J).list_line_id := APPS.FND_API.G_MISS_NUM; gpr_pricing_attr_tbl(J).PRODUCT_ATTRIBUTE_CONTEXT := 'ITEM'; gpr_pricing_attr_tbl(J).PRODUCT_ATTRIBUTE := 'PRICING_ATTRIBUTE1'; gpr_pricing_attr_tbl(J).PRODUCT_ATTR_VALUE := PN_INV_ITEM_ID; gpr_pricing_attr_tbl(J).PRODUCT_UOM_CODE := PV_UOM; gpr_pricing_attr_tbl(J).EXCLUDER_FLAG := 'N'; gpr_pricing_attr_tbl(J).ATTRIBUTE_GROUPING_NO := 1; gpr_pricing_attr_tbl(J).PRICE_LIST_LINE_INDEX := 1; gpr_pricing_attr_tbl(J).PRICING_ATTRIBUTE_CONTEXT := 'QP_INTERNAL'; gpr_pricing_attr_tbl(J).PRICING_ATTRIBUTE := 'PRICING_ATTRIBUTE3'; gpr_pricing_attr_tbl(J).COMPARISON_OPERATOR_CODE := '='; gpr_pricing_attr_tbl(J).PRICING_ATTR_VALUE_FROM := PV_XXVAL; gpr_pricing_attr_tbl(J).operation := APPS.QP_GLOBALS.G_OPR_CREATE; -- DBMS_OUTPUT.PUT_LINE('before process price list '); -- -- QP_LIST_HEADERS_PVT.Process_Price_List apps.qp_price_list_pub.process_price_list ( p_api_version_number=> 1 , p_init_msg_list=> apps.fnd_api.g_true , p_return_values=> apps.fnd_api.g_true , p_commit=> apps.fnd_api.g_false , x_return_status=> gpr_return_status , x_msg_count=> gpr_msg_count , x_msg_data=> gpr_msg_data , p_price_list_rec=> gpr_price_list_rec , p_price_list_line_tbl=> gpr_price_list_line_tbl , p_pricing_attr_tbl=> gpr_pricing_attr_tbl , x_price_list_rec=> ppr_price_list_rec , x_price_list_val_rec=> ppr_price_list_val_rec , x_price_list_line_tbl=> ppr_price_list_line_tbl , x_price_list_line_val_tbl=> ppr_price_list_line_val_tbl , x_qualifiers_tbl=> ppr_qualifiers_tbl , x_qualifiers_val_tbl=> ppr_qualifiers_val_tbl , x_pricing_attr_tbl=> ppr_pricing_attr_tbl , x_pricing_attr_val_tbl=> ppr_pricing_attr_val_tbl ); -- IF gpr_return_status <> APPS.FND_API.G_RET_STS_SUCCESS THEN -- DBMS_OUTPUT.PUT_LINE(gpr_return_status); DBMS_OUTPUT.PUT_LINE('err msg 1 is : ' || gpr_msg_count); DBMS_OUTPUT.PUT_LINE(' msg count 2 is : ' || gpr_msg_count); -- FOR k IN 1 .. gpr_msg_count LOOP gpr_msg_data := apps.oe_msg_pub.GET( p_msg_index => k,p_encoded => 'F') ; -- Get message count and data --DBMS_OUTPUT.PUT_LINE('err msg ' || k ||'is: ' || gpr_msg_data); NULL; END LOOP; -- ELSE -- DBMS_OUTPUT.PUT_LINE(gpr_return_status); DBMS_OUTPUT.PUT_LINE('err msg 1 is : ' || gpr_msg_count); tmpvar := ppr_price_list_line_tbl(1).list_line_id; DBMS_OUTPUT.PUT_LINE('Price List Line id '||tmpvar); DBMS_OUTPUT.PUT_LINE('Price Header Id ' ||gpr_price_list_rec.list_header_id); -- PV_STATUS := gpr_return_status; PN_LSTLNID := ppr_price_list_line_tbl(1).list_line_id; -- END IF; DBMS_OUTPUT.PUT_LINE('after process price list '); EXCEPTION WHEN APPS.FND_API.G_EXC_ERROR THEN gpr_return_status := APPS.FND_API.G_RET_STS_ERROR; PV_STATUS := gpr_return_status; --Get message count and data --DBMS_OUTPUT.PUT_LINE('err msg 1 is : ' || gpr_msg_data); Rollback; -- WHEN APPS.FND_API.G_EXC_UNEXPECTED_ERROR THEN gpr_return_status := APPS.FND_API.G_RET_STS_UNEXP_ERROR ; PV_STATUS := gpr_return_status; --DBMS_OUTPUT.PUT_LINE(' msg count 2 is : ' || gpr_msg_count); for k in 1 .. gpr_msg_count loop gpr_msg_data := apps.oe_msg_pub.get( p_msg_index => k,p_encoded => 'F'); --Get message count and data --DBMS_OUTPUT.PUT_LINE('err msg ' || k ||'is: ' || gpr_msg_data); end loop; Rollback; -- WHEN OTHERS THEN gpr_return_status := APPS.FND_API.G_RET_STS_UNEXP_ERROR ; PV_STATUS := gpr_return_status; --Get message count and data --DBMS_OUTPUT.PUT_LINE('err msg 3 is : ' || gpr_msg_data); Rollback; END XX1002_CR_PRICE_LIST_PBH_P_OTH; / ***********************************************************************************************************************