Using QP_INTERFACE_LIST_HEADERS , QP_INTERFACE_LIST_LINES
Sample script to import price list using interface tables QP_INTERFACE_LIST_HEADERS QP_INTERFACE_QUALIFIERS
create or replace package idc_bulk_Pricelist_pkg as procedure IDC_BulkUpload (p_PriceList_Name in varchar2, p_item in varchar2, p_description in varchar2, p_UOM in varchar2, p_price in VARCHAR2, p_eff_date in VARCHAR2, p_sumbit_import in varchar2 :='X'); END idc_bulk_Pricelist_pkg; / create or replace package body idc_bulk_Pricelist_pkg as procedure IDC_BulkUpload (p_PriceList_Name in varchar2, p_item in varchar2, p_description in varchar2, p_UOM in varchar2, p_price in VARCHAR2, p_eff_date in VARCHAR2, p_sumbit_import in varchar2 :='X') is V_SEQ NUMBER; ln_request_id number; v_count number; v_org_sys_head_ref VARCHAR2(100); v_org_sys_line_ref VARCHAR2(100); v_org_sys_pr_att VARCHAR2(100); v_orig_system_header_PL VARCHAR2(100); v_desc VARCHAR2(200); v_plist_name varchar2(100); begin SELECT IDC_SEQ.NEXTVAL INTO V_SEQ FROM DUAL; SELECT count(*) into v_count FROM qp_pricing_attributes QPA, qp_list_lines QPL,qp_list_headers QPH, mtl_system_items_b mib WHERE qpa.list_line_id= qpl.list_line_id AND QPH.LIST_HEADER_ID = qpl.list_header_id --AND QPL.list_header_id =245163 AND QPH.NAME=p_PriceList_Name and to_char(mib.inventory_item_id) =qpa.product_attr_value and mib.organization_id = 204 and mib.segment1 =p_item; if (v_count =1 and p_PriceList_Name != 'SUBMIT_UPLOAD') then -- update begin select orig_system_header_ref,description into v_orig_system_header_PL, v_desc from qp_list_headers where name =p_PriceList_Name; SELECT qpa.orig_sys_header_ref,qpa.orig_sys_line_ref,qpa.orig_sys_pricing_attr_ref into v_org_sys_head_ref, v_org_sys_line_ref, v_org_sys_pr_att FROM qp_pricing_attributes QPA, qp_list_lines QPL,qp_list_headers QPH, mtl_system_items_b mib WHERE qpa.list_line_id= qpl.list_line_id AND QPH.LIST_HEADER_ID = qpl.list_header_id --AND QPL.list_header_id =245163 AND QPH.NAME=p_PriceList_Name and to_char(mib.inventory_item_id) =qpa.product_attr_value and mib.organization_id = 204 and mib.segment1 = p_item; INSERT INTO QP_INTERFACE_LIST_HEADERS( ORIG_SYS_HEADER_REF, LIST_TYPE_CODE, NAME, DESCRIPTION, CURRENCY_CODE, ACTIVE_FLAG, CURRENCY_HEADER_ID, START_DATE_ACTIVE, END_DATE_ACTIVE, ROUNDING_FACTOR, SOURCE_LANG, LANGUAGE, INTERFACE_ACTION_CODE, PROCESS_FLAG, PROCESS_STATUS_FLAG ) VALUES ( v_orig_system_header_PL, /* Unique identification of the price list in the external application from where the price list is imported. */ 'PRL', /* List Type Code. PRL for standard price list */ p_PriceList_Name, /* Price List Name */ v_desc,/* Description */ 'USD', /* Currency Code. The currency of the price list.*/ 'Y', /* Active Flag */ 86, /* Currency Header Id. Identifies Multi-Currency List associated with a Price List.Alternatively, populate CURRENCY_HEADER column with Multi-Currency List Name. */ '1996/01/01', /* Start Date Active */ NULL, /* End Date Active */ -2, /* Rounding Factor */ 'US', /* Source Language */ 'US', /* Language */ 'UPDATE', /* Interface Action Code. The possible values are INSERT/UPDATE/DELETE. */ 'Y', /* Process flag for transaction */ 'I' /* Process Status Flag for transaction */ ); /* Insert Price list line(PLL) details into QP_INTERFACE_LIST_LINES table. */ INSERT INTO QP_INTERFACE_LIST_LINES ( ORIG_SYS_LINE_REF, ORIG_SYS_HEADER_REF, LIST_LINE_TYPE_CODE, START_DATE_ACTIVE, END_DATE_ACTIVE, ARITHMETIC_OPERATOR, OPERAND, PRIMARY_UOM_FLAG, PRODUCT_PRECEDENCE, INTERFACE_ACTION_CODE, PROCESS_FLAG, PROCESS_STATUS_FLAG ) VALUES ( v_org_sys_line_ref, /* The combination of this and ORIG_SYS_HEADER_REF is the primary key of the equivalent of the price list line table of the external system from where the price data is loaded.*/ v_org_sys_head_ref, /* orig_sys_header_ref */ 'PLL', /* List Line Type Code. PLL for price list line. */ p_eff_date, /* Start date active */ NULL, /* End date active */ 'UNIT_PRICE', /* Arithmetic operator */ p_price, /* operand */ 'Y', /* Primary UOM Flag */ 230, /* Product Precedence */ 'UPDATE', /* Interface Action Code. The possible values are INSERT/UPDATE/DELETE. */ 'Y', /* Process flag for transaction */ 'P' /* Process Status Flag for transaction */ ); /* Insert Product attribute details into QP_INTERFACE_PRICING_ATTRIBS table. */ INSERT INTO QP_INTERFACE_PRICING_ATTRIBS ( ORIG_SYS_PRICING_ATTR_REF, ORIG_SYS_LINE_REF, ORIG_SYS_HEADER_REF, PRODUCT_ATTRIBUTE_CONTEXT, PRODUCT_ATTR_CODE, PRODUCT_ATTR_VAL_DISP, PRODUCT_UOM_CODE, INTERFACE_ACTION_CODE, PROCESS_FLAG, PROCESS_STATUS_FLAG ) VALUES (v_org_sys_pr_att, /* The combination of ORIG_SYS_HEADER_REF, ORIG_SYS_LINE_REF, ORIG_SYS_PRICING_ATTR_REF is the primary key of the equivalent of the pricing attribute table of the external system from where the price data is loaded.*/ v_org_sys_line_ref, /* orig_sys_line_ref */ v_org_sys_head_ref, /* orig_sys_header_ref */ 'ITEM', /* Product Attribute Context */ 'INVENTORY_ITEM_ID', /* Product Attribute Code */ p_item,--'U-Z101' , /* Product Name. Alternatively populate PRODUCT_ATTR_CODE with inventory item id of the item.*/ 'Ea', /* Product UOM */ 'UPDATE', /* Interface Action Code. The possible values are INSERT/UPDATE/DELETE */ 'Y', /* Process flag for transaction */ 'P' /* Process Status Flag for transaction */ ); COMMIT; end; --- update end if; --insert into idc_msgs values ( 'i m after 1'); if v_count =0 then if p_PriceList_Name != 'SUBMIT_UPLOAD' then begin select orig_system_header_ref,description,name into v_orig_system_header_PL, v_desc,v_plist_name from qp_list_headers where name =p_PriceList_Name; INSERT INTO QP_INTERFACE_LIST_HEADERS( ORIG_SYS_HEADER_REF, LIST_TYPE_CODE, NAME, DESCRIPTION, CURRENCY_CODE, ACTIVE_FLAG, CURRENCY_HEADER_ID, START_DATE_ACTIVE, END_DATE_ACTIVE, ROUNDING_FACTOR, SOURCE_LANG, LANGUAGE, INTERFACE_ACTION_CODE, PROCESS_FLAG, PROCESS_STATUS_FLAG ) VALUES (v_orig_system_header_PL, /* Unique identification of the price list in the external application from where the price list is imported. */ 'PRL', /* List Type Code. PRL for standard price list */ p_PriceList_Name, /* Price List Name */ v_desc,/* Description */ 'USD', /* Currency Code. The currency of the price list.*/ 'Y', /* Active Flag */ 86, /* Currency Header Id. Identifies Multi-Currency List associated with a Price List. Alternatively, populate CURRENCY_HEADER column with Multi-Currency List Name. */ '1996/01/01', /* Start Date Active */ NULL, /* End Date Active */ -2, /* Rounding Factor */ 'US', /* Source Language */ 'US', /* Language */ 'UPDATE', /* Interface Action Code. The possible values are INSERT/UPDATE/DELETE. */ 'Y', /* Process flag for transaction */ 'I' /* Process Status Flag for transaction */ ); /* Insert Price list line(PLL) details into QP_INTERFACE_LIST_LINES table. */ INSERT INTO QP_INTERFACE_LIST_LINES ( ORIG_SYS_LINE_REF, ORIG_SYS_HEADER_REF, LIST_LINE_TYPE_CODE, START_DATE_ACTIVE, END_DATE_ACTIVE, ARITHMETIC_OPERATOR, OPERAND, PRIMARY_UOM_FLAG, PRODUCT_PRECEDENCE, INTERFACE_ACTION_CODE, PROCESS_FLAG, PROCESS_STATUS_FLAG ) VALUES ('CORPORATE_LINE-'||V_SEQ, /* The combination of this and ORIG_SYS_HEADER_REF is the primary key of the equivalent of the price list line table of the external system from where the price data is loaded.*/ v_orig_system_header_PL, /* orig_sys_header_ref */ 'PLL', /* List Line Type Code. PLL for price list line. */ p_eff_date,--'02-JUN-08', /* Start date active */ NULL, /* End date active */ 'UNIT_PRICE', /* Arithmetic operator */ p_price,--150, /* operand */ 'Y', /* Primary UOM Flag */ 230, /* Product Precedence */ 'INSERT', /* Interface Action Code. The possible values are INSERT/UPDATE/DELETE. */ 'Y', /* Process flag for transaction */ 'P' /* Process Status Flag for transaction */ ); /* Insert Product attribute details into QP_INTERFACE_PRICING_ATTRIBS table. */ INSERT INTO QP_INTERFACE_PRICING_ATTRIBS ( ORIG_SYS_PRICING_ATTR_REF, ORIG_SYS_LINE_REF, ORIG_SYS_HEADER_REF, PRODUCT_ATTRIBUTE_CONTEXT, PRODUCT_ATTR_CODE, PRODUCT_ATTR_VAL_DISP, PRODUCT_UOM_CODE, INTERFACE_ACTION_CODE, PROCESS_FLAG, PROCESS_STATUS_FLAG ) VALUES ('CORPORATE_PATTR'||V_SEQ, /* The combination of ORIG_SYS_HEADER_REF, ORIG_SYS_LINE_REF, ORIG_SYS_PRICING_ATTR_REF is the primary key of the equivalent of the pricing attribute table of the external system from where the price data is loaded.*/ 'CORPORATE_LINE-'||V_SEQ, /* orig_sys_line_ref */ v_orig_system_header_PL, /* orig_sys_header_ref */ 'ITEM', /* Product Attribute Context */ 'INVENTORY_ITEM_ID', /* Product Attribute Code */ p_item,--'U-Z101' , /* Product Name. Alternatively populate PRODUCT_ATTR_CODE with inventory item id of the item.*/ 'Ea', /* Product UOM */ 'INSERT', /* Interface Action Code. The possible values are INSERT/UPDATE/DELETE */ 'Y', /* Process flag for transaction */ 'P' /* Process Status Flag for transaction */ ); end ; END IF; end if; --insert into idc_msgs values ( 'i m after 0'); if P_PriceList_Name = 'SUBMIT_UPLOAD' then begin --insert into idc_msgs values ( 'i m inside submit upload'); fnd_global.apps_initialize(1000049 ,64438,661); mo_global.init('QP'); ln_request_id := FND_REQUEST.SUBMIT_REQUEST (application => 'QP', -- Application Name program => 'QPXVBLK', -- Program description => 'QP: Bulk Import of Price List' , start_time => NULL, -- START_TIME sub_request => FALSE, -- SUB_REQUEST argument1 => 'PRL', argument2 => 'Corporate', argument3 => '', argument4 => NULL, argument5 => 'Y', argument6 => 1, argument7 => 'N', argument8 => '', argument9 => 'Y', argument10 => 'Y'); dbms_output.put_line('Req id ' || ln_request_id); COMMIT; end; end if; COMMIT; end; end idc_bulk_Pricelist_pkg; / select * from user_errors where lower(name)='idc_bulk_Pricelist_pkg' / create sequence idc_seq start with 1 increment by 1 /
Sample CSV file to be uploaded using WebADi Integrator
Price List Name,Item,description,uom,Price,effDate
IDC PriceList,U-Z101,Usage Item for Zeo Laser Printer II,Ea,333,12-NOV-2009
IDC PriceList,CM31556,Monitor - 19" Flat,Ea,135,12-NOV-2009
SUBMIT_UPLOAD,,,,,