SlideShare a Scribd company logo
Pricing Data Bulk Loader API
An Oracle Technical Brief
Apr 2009
1
Pricing Data Bulk Loader API
OVERVIEW
This document gives an overview of the functionality provided through
the Pricing Data Bulk Loader API. This functionality is available for
Basic Pricing and Advanced Pricing. For a Basic Pricing installation,
only the Basic Pricing data is imported into the system. The Pricing Data
Bulk Loader API consists of a set of interface tables and a concurrent
program. All validations and defaulting are performed before the data
is inserted, deleted or updated. Records that are successfully loaded are
automatically purged from the interface table(s).
Purpose of introducing this API
The Pricing Data Bulk Loader can be used as an alternative to the price
list user interface (UI) and Price List Business Object API
(QP_PRICE_LIST_PUB.Process_Price_List) for importing large volumes of
price list data such as from a legacy system. This functionality was
created to improve performance for this task. For details on the setup
for advanced pricing, please refer to advanced pricing users guide, My
Oracle Support Note 91798.1 - Order Management Product Suite
Documentation.
Your business practices may require that you upload price list data on
a regular basis such as those described in the following scenarios:
• When a new price list needs to be created by uploading a price
change file.
• When new product lines are created, new offerings to new
channels, acquisitions of product lines or companies, new
product rollout, and new price list creations.
• When implementing a new sales territory, to bulk load existing
price lists or to upload pricing from regions that may have their
pricing on spreadsheets.
Important implementation Notes:
How Entities Are Utilized
2
Table Name Select Insert Update Delete
QP_INTERFACE_LIST_HEADERS X - X X
QP_INTERFACE_LIST_LINES X - X X
QP_INTERFACE_QUALIFIERS X - X X
QP_INTERFACE_PRICING_ATTRIBS X - X X
QP_INTERFACE_ERRORS - X - -
QP_LIST_HEADERS_B - X X X
QP_LIST_HEADERS_TL - X X X
QP_LIST_LINES - X X X
QP_QUALIFIERS - X X X
QP_PRICING_ATTRIBUTES - X X X
QP_RLTD_MODIFIERS - X X X
Interface Tables
• QP_INTERFACE_LIST_HEADERS
• QP_INTERFACE_LIST_LINES
• QP_INTERFACE_QUALIFIERS
• QP_INTERFACE_PRICING_ATTRIBS
• QP_INTERFACE_ERRORS
Sample Scripts Are Provided
Patch #4900462 provides example scripts for Price List Bulk Loader feature
introduced in 11.5.10 under $QP_TOP/patch/115/sql directory.
• QPBLKEX1.sql - Script populates interface tables to insert price list
header and price list line.
• QPBLKEX2.sql - Script populates interface tables to insert price list
header and price list line and pricing attributes.
• QPBLKEX3.sql - Script populates interface tables to insert price list
header and price break line.
• QPBLKEX4.sql - Script populates interface tables to update price list
header with qualifiers.
• QPBLKEX5.sql - Script populates interface tables to attach secondary
price lists to the primary price list.
Date Formats
Populate QP_INTERFACE_LIST_HEADERS.START_DATE_ACTIVE or
END_DATE_ACTIVE with format 'YYYY/MM/DD', (for example, 2006/06/24).
See Note 416121.1 - How to set the start_date_active and end_date_active columns
in QP_INTERFACE_LIST_HEADERS. Type of start_date_active and
end_date_active columns is VARCHAR2 in QP_INTERFACE_LIST_HEADERS
and DATE in other tables.
Pricing Data Bulk Loader API Implementation
An overview of the tasks involved in the implementation for the Pricing Data
3
Bulk Loader API is depicted in the following flowchart
Purge the Interface tables
Yes
No
Populate the
Interface tables
Should data be
deleted from QP
interface tables?
Run the Pricing Data Bulk
Loader API
Set value for the profiles.
QP: Pricing Transaction Entity
QP: Source System Code
QP: Batch Size for Bulk Import
End
Delete existing records from
QP Interface tables.
Gather statistics on the
Interface tables
Gather statistics on the
inv and qp schemas (if this
task was not completed
recently/within the last week)
4
If QP interface data is no longer needed, be sure to delete any
outstanding records; especially for the orig_sys_header_ref that will be
populated for the next run of this API.
Sample SQL that may be used for purging specific data:
Delete from qp_interface_list_headers where orig_sys_header_ref='XYZ';
Delete from qp_interface_list_headers where orig_sys_header_ref='XYZ';
Delete from qp_interface_list_lines where orig_sys_header_ref='XYZ';
Delete from qp_interface_pricing_attribs where orig_sys_header_ref='XYZ';
Delete from qp_interface_errors where orig_sys_header_ref='XYZ';
Commit;
Populate the Interface Tables
The pricing data bulk loader imports data from the following interface
tables:
• QP_INTERFACE_LIST_HEADERS: This table captures the
Price List header data.
• QP_INTERFACE_LIST_LINES: Price list line data is
captured in this interface table.
• QP_INTERFACE_QUALIFIERS: This table contains the
header qualifiers associated with the price lists to be imported.
• QP_INTERFACE_PRICING_ATTRIBS: The product and
pricing attributes data is captured in this table.
Gathering QP Interface Table Statistics This
step is required to improve performance.
1. Responsibility: System Administrator
2. Navigate to: Concurrent > Request
3. Submit a New Request
4. Select request 'Gather Table Statistics'
Ensure 'Estimate Percentage' parameter entered is 10 or greater
Run this request for the QP interface tables as listed above.
Gather Statistics for QP and INV Schemas
If data has recently been loaded or entered into QP(Advanced Pricing)
or INV (Inventory) or if it has been a while since statistics were
gathered for these schemas, please gather fresh statistics for both
schemas. See Note 419728.1 – How to Gather Statistics on Oracle
Applications 11i and above.
5
Profile Options used in Pricing Data Bulk Loader
The following profile options should be set:
• QP: Pricing Transaction Entity: When the Pricing Data Bulk
Loader API is called, the price list data is picked up from the
interface table when the Pricing Transaction Entity attribute
(column) is either:NULL or same as the profile value
• QP: Source System Code: When the Pricing Data Bulk
Loader API is called, the price list data is picked up from the
interface table when the Source System Code attribute
(column) is either;NULL or same as the profile value
• QP: Batch Size for Bulk Import: This profile value
determines the number of records loaded into the memory for
processing. For improved performance, set an appropriate
value for this profile based on your hardware configuration. If
the profile value is set too high, then the system may "hang."
The default value is 1000.
Run the Pricing Data Bulk Loader API
1. Responsibility: Oracle Pricing Manager
2. Navigate to: Reports
3. Select Name = QP:Bulk Import of Price List
4. Enter desired parameters
• Entity: Indicates which pricing entity is to be processed. This defaults as
PRL (price list). Currently only price lists(PRL) may be uploaded.
• Entity Name: Enter the name of the price list to be processed. When the
name is specified the price list is considered for import regardless of the
values. If left blank, all entities of the selected Entity type available for
processing in the interface tables will be processed: for example,
PROCESS_STATUS_FLAG = 'P', PROCESS_FLAG = 'Y' and
REQUEST_ID = NULL are considered for the import.
• Process ID: This value corresponds to the process_id in the interface
tables. The Process ID groups data in the interface table. You can select
criteria to specify which records should be processed. If this field is left
blank, all available records for processing will be considered subject to the
restrictions entered in Entity Name.
• Process Type: This corresponds to the process type listed in the interface
tables such as XML.
• Process Parent: Select Yes (the default) or No to define if the loader should
process a parent record if a child record has an error. This is applicable only
to the List Line and Pricing Attributes parent-child relation.
6
• No of Threads: Enter a number that indicates the total number of child
processes or threads to achieve multi-threading for list lines and their child
records. The default value is 1. Note: Multi-threading can impact the length
of processing time required; therefore, it is recommended that you do not
exceed the number of Central Processing Units (CPUs) available when
running the program. Ideally, schedule the concurrent request for a slow
processing period or when there are few users on the system.
• Turn Debug On: Valid values are Yes or No. If Yes, detailed debug
messages are written to the concurrent program log file. As debug
messages add to the performance overhead, specifying No results in
quicker completion of the concurrent request.
Note: The field PROCESS_STATUS_CODE is updated to ‘E’ for records that
fail the validation logic of value to id conversion
Example Case :
Price List Name – Test001
Description – Test001 Price List
Currency – USD
Multi-Currency Conversion – Corporate Pricelist Conversion list.
Start date active – 01-Jan-2009
End date active – 05-May-2009
Price List Lines Details:
Product Context – Item
Product Attribute – Item Number
Product Value –AS54888
Value – 100
Precedence – 220
Start Date – JAN-05-2009
Populate interface tables as follows.
INSERT INTO qp_interface_list_headers(orig_sys_header_ref,
list_type_code, NAME, description, active_flag, currency_code,
currency_header, rounding_factor, source_lang, LANGUAGE,
start_date_active, end_date_active,
interface_action_code, process_flag, process_status_flag)
VALUES('H_EXM123', 'PRL', 'Test001’, 'Test001 Price List',
'Y', 'USD', 'Corporate Pricelist Conversion list', -2,
'US', 'US', '2009/01/01', '2009/05/05',
'INSERT', 'Y', 'P');
INSERT INTO qp_interface_list_lines(orig_sys_line_ref,
orig_sys_header_ref, list_line_type_code,
start_date_active,
arithmetic_operator, operand, primary_uom_flag,
product_precedence, interface_action_code,
process_flag, process_status_flag)
VALUES('L_EXM123', 'H_EXM123',
'PLL', To_Date('JAN-05-2009', 'MON-DD-YYYY'),
'UNIT_PRICE', 100, 'Y', 220,
'INSERT', 'Y', 'P');
INSERT INTO qp_interface_pricing_attribs(orig_sys_pricing_attr_ref,
orig_sys_line_ref, orig_sys_header_ref,
7
product_attribute_context, product_attr_code, product_attr_val_disp,
product_uom_code,
interface_action_code, process_flag, process_status_flag)
VALUES('A_EXM123',
'L_EXM123', 'H_EXM123',
'ITEM', 'INVENTORY_ITEM_ID', 'AS54888',
'Ea', 'INSERT', 'Y', 'P');
Populate the Interface tables as follows to updatethe list price to 200
and UOM to DZ of the above price list.
INSERT INTO qp_interface_list_headers(orig_sys_header_ref, NAME,
list_type_code, interface_action_code, process_flag,
process_status_flag)
VALUES('H_EXM123', ‘Test001’, 'PRL', 'UPDATE', 'Y', 'P');
INSERT INTO qp_interface_list_lines(orig_sys_line_ref,
orig_sys_header_ref, list_line_type_code,
start_date_active, arithmetic_operator,
operand,
interface_action_code, process_flag, process_status_flag)
VALUES('L_EXM123', 'H_EXM123',
'PLL', To_Date('JAN-05-2009', 'MON-DD-YYYY'),
'UNIT_PRICE', 200,
'UPDATE', 'Y', 'P');
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,
product_uom_code,
interface_action_code, process_flag, process_status_flag)
VALUES('A_EXM123', 'L_EXM123', 'H_EXM123',
'ITEM', 'INVENTORY_ITEM_ID', 'AS54888',
'DZ',
'UPDATE', 'Y', 'P');
Note the format of start_date_active and end_date_active and process_status_flag =
P and process_flag = Y.
8
OTHER BUSINESS SCENARIOS
Several other common business scenarios are provided below to assist you
in better understanding the setups required.
Scenario 1: Script to Insert ALL_ITEMS
REM /**************************************************************************
REM * The columns INTERFACE_ACTION_CODE, PROCESS_FLAG and
PROCESS_STATUS_FLAG
REM are mandatory and should be populated in all the interface tables with appropriate
values.
REM * Errors in the process are inserted into QP_INTERFACE_ERRORS table. REM *
Please read Oracle Electronic Technical Reference Manual (eTRM) to understand REM
interface tables, columns and interface tables relationship.
REM * Please read Oracle Advanced Pricing Implementation Guide(Metalink Note: 91798.1)
REM for details on QP: Bulk Import of Price List concurrent program and parameters.
REM***************************************************************************/
-- Script to Insert ALL_ITEMS
/* Insert Price list header details into QP_INTERFACE_LIST_HEADERS table */
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
(
'SAMPLE_HEADER_SMITHA_SB13', /* 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 */
'Sample_BLK_PL_10', /* Price List Name */
'Sample Bulk Loaded Price List',/* Description */
'USD', /* Currency Code. The currency of the price list.*/
'Y', /* Active Flag */
30, /* Currency Header Id. Identifies Multi-Currency List associated with a
Price List.
Alternatively, populate CURRENCY_HEADER column with
Multi-Currency List Name. */
TO_CHAR(sysdate,'YYYY/MM/DD'), /* Start Date Active */
NULL, /* End Date Active */
-1, /* Rounding Factor */
'US', /* Source Language */
'US', /* Language */
'INSERT', /* Interface Action Code. The possible values are
INSERT/UPDATE/DELETE. */
'Y', /* Process flag for transaction */
'P' /* 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,
9
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
(
'SAMPLE_LINE_10', /* 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.*/
'SAMPLE_HEADER_10', /* orig_sys_header_ref */
'PLL', /* List Line Type Code. PLL for price list line. */
sysdate, /* Start date active */
NULL, /* End date active */
'UNIT_PRICE', /* Arithmetic operator */
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_attr_value,
PRODUCT_UOM_CODE,
INTERFACE_ACTION_CODE,
PROCESS_FLAG,
PROCESS_STATUS_FLAG
) VALUES
(
'SAMPLE_PATTR_10', /* 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.*/
'SAMPLE_LINE_10', /* orig_sys_line_ref */
'SAMPLE_HEADER_10', /* orig_sys_header_ref */
'ITEM', /* Product Attribute Context */
'ALL_ITEMS', /* Product Attribute Code */
'ALL', /* Product Name. Alternatively populate PRODUCT_ATTR_CODE with
inventory item id of the item.*/
--1, /*for category id MISC.MISC*/
'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 */
);
COMMIT;
EXIT;
Scenario 2: Script to Insert Item Number
10
REM /**************************************************************************
REM * The columns INTERFACE_ACTION_CODE, PROCESS_FLAG and
PROCESS_STATUS_FLAG
REM are mandatory and should be populated in all the interface tables with appropriate
values.
REM * Errors in the process are inserted into QP_INTERFACE_ERRORS table. REM *
Please read Oracle Electronic Technical Reference Manual (eTRM) to understand REM
interface tables, columns and interface tables relationship.
REM * Please read Oracle Advanced Pricing Implementation Guide(Metalink Note: 91798.1)
REM for details on QP: Bulk Import of Price List concurrent program and parameters.
REM***************************************************************************/
-- script to insert Item number
/* Insert Price list header details into QP_INTERFACE_LIST_HEADERS table */
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
(
'SAMPLE_HEADER_10', /* 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 */
'Sample_BLK_PL_10', /* Price List Name */
'Sample Bulk Loaded Price List',/* Description */
'USD', /* Currency Code. The currency of the price list.*/
'Y', /* Active Flag */
30, /* Currency Header Id. Identifies Multi-Currency List associated with a
Price List.
Alternatively, populate CURRENCY_HEADER column with
Multi-Currency List Name. */
TO_CHAR(sysdate,'YYYY/MM/DD'), /* Start Date Active */
NULL, /* End Date Active */
-1, /* Rounding Factor */
'US', /* Source Language */
'US', /* Language */
'INSERT', /* Interface Action Code. The possible values are
INSERT/UPDATE/DELETE. */
'Y', /* Process flag for transaction */
'P' /* 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
(
11
'SAMPLE_LINE_10', /* 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.*/
'SAMPLE_HEADER_10', /* orig_sys_header_ref */
'PLL', /* List Line Type Code. PLL for price list line. */
sysdate, /* Start date active */
NULL, /* End date active */
'UNIT_PRICE', /* Arithmetic operator */
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
(
'SAMPLE_PATTR_10', /* 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.*/
'SAMPLE_LINE_10', /* orig_sys_line_ref */
'SAMPLE_HEADER_10', /* orig_sys_header_ref */
'ITEM', /* Product Attribute Context */
'INVENTORY_ITEM_ID', /* Product Attribute Code */
'AS54888', /* 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 */
);
COMMIT;
EXIT;
Scenario 3: Script to Insert Item Category
REM /**************************************************************************
REM * The columns INTERFACE_ACTION_CODE, PROCESS_FLAG and
PROCESS_STATUS_FLAG
REM are mandatory and should be populated in all the interface tables with appropriate
values.
REM * Errors in the process are inserted into QP_INTERFACE_ERRORS table. REM *
Please read Oracle Electronic Technical Reference Manual (eTRM) to understand REM
interface tables, columns and interface tables relationship.
REM * Please read Oracle Advanced Pricing Implementation Guide(Metalink Note: 91798.1)
REM for details on QP: Bulk Import of Price List concurrent program and parameters.
REM***************************************************************************/
-- script to insert item category
12
/* Insert Price list header details into QP_INTERFACE_LIST_HEADERS table */
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
(
'SAMPLE_HEADER_12', /* 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 */
'Sample_BLK_PL_12', /* Price List Name */
'Sample Bulk Loaded Price List',/* Description */
'USD', /* Currency Code. The currency of the price list.*/
'Y', /* Active Flag */
30, /* Currency Header Id. Identifies Multi-Currency List associated with a
Price List.
Alternatively, populate CURRENCY_HEADER column with
Multi-Currency List Name. */
TO_CHAR(sysdate,'YYYY/MM/DD'), /* Start Date Active */
NULL, /* End Date Active */
-1, /* Rounding Factor */
'US', /* Source Language */
'US', /* Language */
'INSERT', /* Interface Action Code. The possible values are
INSERT/UPDATE/DELETE. */
'Y', /* Process flag for transaction */
'P' /* 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
(
'SAMPLE_LINE_12', /* 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.*/
'SAMPLE_HEADER_12', /* orig_sys_header_ref */
'PLL', /* List Line Type Code. PLL for price list line. */
sysdate, /* Start date active */
NULL, /* End date active */
'UNIT_PRICE', /* Arithmetic operator */
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 */ );
13
/* 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_attr_value,
PRODUCT_UOM_CODE,
INTERFACE_ACTION_CODE,
PROCESS_FLAG,
PROCESS_STATUS_FLAG
) VALUES
(
'SAMPLE_PATTR_12', /* 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.*/
'SAMPLE_LINE_12', /* orig_sys_line_ref */
'SAMPLE_HEADER_12', /* orig_sys_header_ref */
'ITEM', /* Product Attribute Context */
'ITEM_CATEGORY', /* Product Attribute Code */
--'MISC.MISC', /* Product Name. Alternatively populate PRODUCT_ATTR_CODE
with inventory item id of the item.*/
1, /*for category id MISC.MISC*/
'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 */ );
COMMIT;
EXIT;
Scenario 4: Script to Update Header/Line or Attribute
Details
REM /************************************************************************** REM
Please Note:
REM * The columns INTERFACE_ACTION_CODE, PROCESS_FLAG and
PROCESS_STATUS_FLAG
REM are mandatory and should be populated in all the interface tables with appropriate
values.
REM * Errors in the process are inserted into QP_INTERFACE_ERRORS table. REM *
Please read Oracle Electronic Technical Reference Manual (eTRM) to understand REM
interface tables, columns and interface tables relationship.
REM * Please read Oracle Advanced Pricing Implementation Guide(Metalink Note: 91798.1)
REM for details on QP: Bulk Import of Price List concurrent program and parameters.
REM***************************************************************************/
--Script to update Header/Line or Attribute details
/* Insert Price list header details into QP_INTERFACE_LIST_HEADERS table */
INSERT INTO QP_INTERFACE_LIST_HEADERS(
LIST_HEADER_ID
,LIST_TYPE_CODE
,INTERFACE_ACTION_CODE
,PROCESS_STATUS_FLAG
,process_flag
,ORIG_SYS_HEADER_REF
) VALUES
(
234415
,'PRL' /* List Type Code. PRL for standard price list */
,'UPDATE' /* Interface Action Code. The possible values are
INSERT/UPDATE/DELETE. */
,'P' /* Process Status Flag for transaction */
14
,'Y'
,'SAMPLE_HEADER_10'
);
/* Insert Price list line(PLL) details into QP_INTERFACE_LIST_LINES table. */
INSERT INTO QP_INTERFACE_LIST_LINES (
LIST_LINE_ID
,LIST_HEADER_ID
,LIST_LINE_TYPE_CODE
,INTERFACE_ACTION_CODE
,PROCESS_STATUS_FLAG
,OPERAND
,process_flag
,ORIG_SYS_LINE_REF
,ORIG_SYS_HEADER_REF
) VALUES
(
288720
,234415
,'PLL'
,'UPDATE' /* Interface Action Code. The possible values are
INSERT/UPDATE/DELETE. */
,'P' /* Process Status Flag for transaction */
,800
,'Y'
,'SAMPLE_LINE_10'
,'SAMPLE_HEADER_10'
);
/* Insert Product attribute details into QP_INTERFACE_PRICING_ATTRIBS table. */
INSERT INTO QP_INTERFACE_PRICING_ATTRIBS (
PRICING_ATTRIBUTE_ID
,LIST_LINE_ID
,INTERFACE_ACTION_CODE
,PROCESS_FLAG
,PROCESS_STATUS_FLAG
,product_uom_code
,ORIG_SYS_PRICING_ATTR_REF
,ORIG_SYS_LINE_REF
,ORIG_SYS_HEADER_REF
) VALUES
(
289676
,288720
,'UPDATE' /* Interface Action Code. The possible values are
INSERT/UPDATE/DELETE */
,'Y' /* Process flag for transaction */
,'P' /* Process Status Flag for transaction */
,'DZ'
,'SAMPLE_PATTR_10'
,'SAMPLE_LINE_10'
,'SAMPLE_HEADER_10'
);
COMMIT;
EXIT;
TROUBLESHOOTING
There are a few things to watch out for when you try to implement the
Pricing Data Bulk Loader API.
15
)
16
Pricing Data Bulk Loader API
May 2009
Author: Kelli Stone
Co-Author: Rajendra Badadare, Smitha Balaraman, Shaneed Muhammed
Copyright © Oracle Corporation 2009 All Rights Reserved Printed in the
U.S.A.
This document is provided for informational purposes
only and the information herein is subject to change
without notice. Please report any errors herein to Oracle
Corporation. Oracle Corporation does not provide any
warranties covering and specifically disclaims any
liability in connection with this document.
Oracle is a registered trademark and Enabling the
Information Age are trademarks of Oracle
Corporation.
Oracle Corporation
World Headquarters
500 Oracle Parkway
Redwood Shores, CA 94065
U.S.A.
Worldwide Inquiries: 415.506.7000
Fax 415.506.7200
Copyright © Oracle Corporation 1995
All Rights Reserved
17

More Related Content

Similar to PBDL.pdf

AWS July Webinar Series: Amazon redshift migration and load data 20150722
AWS July Webinar Series: Amazon redshift migration and load data 20150722AWS July Webinar Series: Amazon redshift migration and load data 20150722
AWS July Webinar Series: Amazon redshift migration and load data 20150722Amazon Web Services
 
Ge aviation spark application experience porting analytics into py spark ml p...
Ge aviation spark application experience porting analytics into py spark ml p...Ge aviation spark application experience porting analytics into py spark ml p...
Ge aviation spark application experience porting analytics into py spark ml p...Databricks
 
Optimizer overviewoow2014
Optimizer overviewoow2014Optimizer overviewoow2014
Optimizer overviewoow2014Mysql User Camp
 
MySQL Optimizer Cost Model
MySQL Optimizer Cost ModelMySQL Optimizer Cost Model
MySQL Optimizer Cost ModelOlav Sandstå
 
SQL Server 2008 Development for Programmers
SQL Server 2008 Development for ProgrammersSQL Server 2008 Development for Programmers
SQL Server 2008 Development for ProgrammersAdam Hutson
 
Cost-Based Optimizer in Apache Spark 2.2
Cost-Based Optimizer in Apache Spark 2.2 Cost-Based Optimizer in Apache Spark 2.2
Cost-Based Optimizer in Apache Spark 2.2 Databricks
 
Planning function on BPC hana system
Planning function on BPC hana systemPlanning function on BPC hana system
Planning function on BPC hana systemSelvakumar Murugesan
 
The Database Environment Chapter 8
The Database Environment Chapter 8The Database Environment Chapter 8
The Database Environment Chapter 8Jeanie Arnoco
 
Skills Portfolio
Skills PortfolioSkills Portfolio
Skills Portfoliorolee23
 
Overview of query evaluation
Overview of query evaluationOverview of query evaluation
Overview of query evaluationavniS
 
Managing Statistics for Optimal Query Performance
Managing Statistics for Optimal Query PerformanceManaging Statistics for Optimal Query Performance
Managing Statistics for Optimal Query PerformanceKaren Morton
 
Machinelearning Spark Hadoop User Group Munich Meetup 2016
Machinelearning Spark Hadoop User Group Munich Meetup 2016Machinelearning Spark Hadoop User Group Munich Meetup 2016
Machinelearning Spark Hadoop User Group Munich Meetup 2016Comsysto Reply GmbH
 
Cost-Based Optimizer in Apache Spark 2.2 Ron Hu, Sameer Agarwal, Wenchen Fan ...
Cost-Based Optimizer in Apache Spark 2.2 Ron Hu, Sameer Agarwal, Wenchen Fan ...Cost-Based Optimizer in Apache Spark 2.2 Ron Hu, Sameer Agarwal, Wenchen Fan ...
Cost-Based Optimizer in Apache Spark 2.2 Ron Hu, Sameer Agarwal, Wenchen Fan ...Databricks
 
Conversion Data.ppt
Conversion Data.pptConversion Data.ppt
Conversion Data.pptAmit Sharma
 
Data Conversion.ppt
Data Conversion.pptData Conversion.ppt
Data Conversion.pptAmit Sharma
 
London Redshift Meetup - July 2017
London Redshift Meetup - July 2017London Redshift Meetup - July 2017
London Redshift Meetup - July 2017Pratim Das
 

Similar to PBDL.pdf (20)

BAPI - Criação de Ordem de Manutenção
BAPI - Criação de Ordem de ManutençãoBAPI - Criação de Ordem de Manutenção
BAPI - Criação de Ordem de Manutenção
 
AWS July Webinar Series: Amazon redshift migration and load data 20150722
AWS July Webinar Series: Amazon redshift migration and load data 20150722AWS July Webinar Series: Amazon redshift migration and load data 20150722
AWS July Webinar Series: Amazon redshift migration and load data 20150722
 
Ge aviation spark application experience porting analytics into py spark ml p...
Ge aviation spark application experience porting analytics into py spark ml p...Ge aviation spark application experience porting analytics into py spark ml p...
Ge aviation spark application experience porting analytics into py spark ml p...
 
Optimizer overviewoow2014
Optimizer overviewoow2014Optimizer overviewoow2014
Optimizer overviewoow2014
 
MySQL Optimizer Cost Model
MySQL Optimizer Cost ModelMySQL Optimizer Cost Model
MySQL Optimizer Cost Model
 
Ab ap faq
Ab ap faqAb ap faq
Ab ap faq
 
SQL Server 2008 Development for Programmers
SQL Server 2008 Development for ProgrammersSQL Server 2008 Development for Programmers
SQL Server 2008 Development for Programmers
 
Cost-Based Optimizer in Apache Spark 2.2
Cost-Based Optimizer in Apache Spark 2.2 Cost-Based Optimizer in Apache Spark 2.2
Cost-Based Optimizer in Apache Spark 2.2
 
Planning function on BPC hana system
Planning function on BPC hana systemPlanning function on BPC hana system
Planning function on BPC hana system
 
The Database Environment Chapter 8
The Database Environment Chapter 8The Database Environment Chapter 8
The Database Environment Chapter 8
 
Skills Portfolio
Skills PortfolioSkills Portfolio
Skills Portfolio
 
Co&al lecture-07
Co&al lecture-07Co&al lecture-07
Co&al lecture-07
 
Overview of query evaluation
Overview of query evaluationOverview of query evaluation
Overview of query evaluation
 
Managing Statistics for Optimal Query Performance
Managing Statistics for Optimal Query PerformanceManaging Statistics for Optimal Query Performance
Managing Statistics for Optimal Query Performance
 
Machinelearning Spark Hadoop User Group Munich Meetup 2016
Machinelearning Spark Hadoop User Group Munich Meetup 2016Machinelearning Spark Hadoop User Group Munich Meetup 2016
Machinelearning Spark Hadoop User Group Munich Meetup 2016
 
Cost-Based Optimizer in Apache Spark 2.2 Ron Hu, Sameer Agarwal, Wenchen Fan ...
Cost-Based Optimizer in Apache Spark 2.2 Ron Hu, Sameer Agarwal, Wenchen Fan ...Cost-Based Optimizer in Apache Spark 2.2 Ron Hu, Sameer Agarwal, Wenchen Fan ...
Cost-Based Optimizer in Apache Spark 2.2 Ron Hu, Sameer Agarwal, Wenchen Fan ...
 
Conversion Data.ppt
Conversion Data.pptConversion Data.ppt
Conversion Data.ppt
 
Data Conversion.ppt
Data Conversion.pptData Conversion.ppt
Data Conversion.ppt
 
London Redshift Meetup - July 2017
London Redshift Meetup - July 2017London Redshift Meetup - July 2017
London Redshift Meetup - July 2017
 
oracle-reports6i
oracle-reports6ioracle-reports6i
oracle-reports6i
 

Recently uploaded

IESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIES VE
 
In-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT ProfessionalsIn-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT ProfessionalsExpeed Software
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsPaul Groth
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...Product School
 
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeFree and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeCzechDreamin
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
 
Demystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyDemystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyJohn Staveley
 
UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2DianaGray10
 
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...CzechDreamin
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...Sri Ambati
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Product School
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...Product School
 
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCustom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCzechDreamin
 
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlPeter Udo Diehl
 
AI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekAI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekCzechDreamin
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backElena Simperl
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
 
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka DoktorováCzechDreamin
 
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxUnpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxDavid Michel
 
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone KomSalesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone KomCzechDreamin
 

Recently uploaded (20)

IESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIESVE for Early Stage Design and Planning
IESVE for Early Stage Design and Planning
 
In-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT ProfessionalsIn-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT Professionals
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeFree and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
Demystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyDemystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John Staveley
 
UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2
 
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCustom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
 
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
 
AI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekAI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří Karpíšek
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
 
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxUnpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
 
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone KomSalesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
 

PBDL.pdf

  • 1. Pricing Data Bulk Loader API An Oracle Technical Brief Apr 2009
  • 2. 1 Pricing Data Bulk Loader API OVERVIEW This document gives an overview of the functionality provided through the Pricing Data Bulk Loader API. This functionality is available for Basic Pricing and Advanced Pricing. For a Basic Pricing installation, only the Basic Pricing data is imported into the system. The Pricing Data Bulk Loader API consists of a set of interface tables and a concurrent program. All validations and defaulting are performed before the data is inserted, deleted or updated. Records that are successfully loaded are automatically purged from the interface table(s). Purpose of introducing this API The Pricing Data Bulk Loader can be used as an alternative to the price list user interface (UI) and Price List Business Object API (QP_PRICE_LIST_PUB.Process_Price_List) for importing large volumes of price list data such as from a legacy system. This functionality was created to improve performance for this task. For details on the setup for advanced pricing, please refer to advanced pricing users guide, My Oracle Support Note 91798.1 - Order Management Product Suite Documentation. Your business practices may require that you upload price list data on a regular basis such as those described in the following scenarios: • When a new price list needs to be created by uploading a price change file. • When new product lines are created, new offerings to new channels, acquisitions of product lines or companies, new product rollout, and new price list creations. • When implementing a new sales territory, to bulk load existing price lists or to upload pricing from regions that may have their pricing on spreadsheets. Important implementation Notes: How Entities Are Utilized
  • 3. 2 Table Name Select Insert Update Delete QP_INTERFACE_LIST_HEADERS X - X X QP_INTERFACE_LIST_LINES X - X X QP_INTERFACE_QUALIFIERS X - X X QP_INTERFACE_PRICING_ATTRIBS X - X X QP_INTERFACE_ERRORS - X - - QP_LIST_HEADERS_B - X X X QP_LIST_HEADERS_TL - X X X QP_LIST_LINES - X X X QP_QUALIFIERS - X X X QP_PRICING_ATTRIBUTES - X X X QP_RLTD_MODIFIERS - X X X Interface Tables • QP_INTERFACE_LIST_HEADERS • QP_INTERFACE_LIST_LINES • QP_INTERFACE_QUALIFIERS • QP_INTERFACE_PRICING_ATTRIBS • QP_INTERFACE_ERRORS Sample Scripts Are Provided Patch #4900462 provides example scripts for Price List Bulk Loader feature introduced in 11.5.10 under $QP_TOP/patch/115/sql directory. • QPBLKEX1.sql - Script populates interface tables to insert price list header and price list line. • QPBLKEX2.sql - Script populates interface tables to insert price list header and price list line and pricing attributes. • QPBLKEX3.sql - Script populates interface tables to insert price list header and price break line. • QPBLKEX4.sql - Script populates interface tables to update price list header with qualifiers. • QPBLKEX5.sql - Script populates interface tables to attach secondary price lists to the primary price list. Date Formats Populate QP_INTERFACE_LIST_HEADERS.START_DATE_ACTIVE or END_DATE_ACTIVE with format 'YYYY/MM/DD', (for example, 2006/06/24). See Note 416121.1 - How to set the start_date_active and end_date_active columns in QP_INTERFACE_LIST_HEADERS. Type of start_date_active and end_date_active columns is VARCHAR2 in QP_INTERFACE_LIST_HEADERS and DATE in other tables. Pricing Data Bulk Loader API Implementation An overview of the tasks involved in the implementation for the Pricing Data
  • 4. 3 Bulk Loader API is depicted in the following flowchart Purge the Interface tables Yes No Populate the Interface tables Should data be deleted from QP interface tables? Run the Pricing Data Bulk Loader API Set value for the profiles. QP: Pricing Transaction Entity QP: Source System Code QP: Batch Size for Bulk Import End Delete existing records from QP Interface tables. Gather statistics on the Interface tables Gather statistics on the inv and qp schemas (if this task was not completed recently/within the last week)
  • 5. 4 If QP interface data is no longer needed, be sure to delete any outstanding records; especially for the orig_sys_header_ref that will be populated for the next run of this API. Sample SQL that may be used for purging specific data: Delete from qp_interface_list_headers where orig_sys_header_ref='XYZ'; Delete from qp_interface_list_headers where orig_sys_header_ref='XYZ'; Delete from qp_interface_list_lines where orig_sys_header_ref='XYZ'; Delete from qp_interface_pricing_attribs where orig_sys_header_ref='XYZ'; Delete from qp_interface_errors where orig_sys_header_ref='XYZ'; Commit; Populate the Interface Tables The pricing data bulk loader imports data from the following interface tables: • QP_INTERFACE_LIST_HEADERS: This table captures the Price List header data. • QP_INTERFACE_LIST_LINES: Price list line data is captured in this interface table. • QP_INTERFACE_QUALIFIERS: This table contains the header qualifiers associated with the price lists to be imported. • QP_INTERFACE_PRICING_ATTRIBS: The product and pricing attributes data is captured in this table. Gathering QP Interface Table Statistics This step is required to improve performance. 1. Responsibility: System Administrator 2. Navigate to: Concurrent > Request 3. Submit a New Request 4. Select request 'Gather Table Statistics' Ensure 'Estimate Percentage' parameter entered is 10 or greater Run this request for the QP interface tables as listed above. Gather Statistics for QP and INV Schemas If data has recently been loaded or entered into QP(Advanced Pricing) or INV (Inventory) or if it has been a while since statistics were gathered for these schemas, please gather fresh statistics for both schemas. See Note 419728.1 – How to Gather Statistics on Oracle Applications 11i and above.
  • 6. 5 Profile Options used in Pricing Data Bulk Loader The following profile options should be set: • QP: Pricing Transaction Entity: When the Pricing Data Bulk Loader API is called, the price list data is picked up from the interface table when the Pricing Transaction Entity attribute (column) is either:NULL or same as the profile value • QP: Source System Code: When the Pricing Data Bulk Loader API is called, the price list data is picked up from the interface table when the Source System Code attribute (column) is either;NULL or same as the profile value • QP: Batch Size for Bulk Import: This profile value determines the number of records loaded into the memory for processing. For improved performance, set an appropriate value for this profile based on your hardware configuration. If the profile value is set too high, then the system may "hang." The default value is 1000. Run the Pricing Data Bulk Loader API 1. Responsibility: Oracle Pricing Manager 2. Navigate to: Reports 3. Select Name = QP:Bulk Import of Price List 4. Enter desired parameters • Entity: Indicates which pricing entity is to be processed. This defaults as PRL (price list). Currently only price lists(PRL) may be uploaded. • Entity Name: Enter the name of the price list to be processed. When the name is specified the price list is considered for import regardless of the values. If left blank, all entities of the selected Entity type available for processing in the interface tables will be processed: for example, PROCESS_STATUS_FLAG = 'P', PROCESS_FLAG = 'Y' and REQUEST_ID = NULL are considered for the import. • Process ID: This value corresponds to the process_id in the interface tables. The Process ID groups data in the interface table. You can select criteria to specify which records should be processed. If this field is left blank, all available records for processing will be considered subject to the restrictions entered in Entity Name. • Process Type: This corresponds to the process type listed in the interface tables such as XML. • Process Parent: Select Yes (the default) or No to define if the loader should process a parent record if a child record has an error. This is applicable only to the List Line and Pricing Attributes parent-child relation.
  • 7. 6 • No of Threads: Enter a number that indicates the total number of child processes or threads to achieve multi-threading for list lines and their child records. The default value is 1. Note: Multi-threading can impact the length of processing time required; therefore, it is recommended that you do not exceed the number of Central Processing Units (CPUs) available when running the program. Ideally, schedule the concurrent request for a slow processing period or when there are few users on the system. • Turn Debug On: Valid values are Yes or No. If Yes, detailed debug messages are written to the concurrent program log file. As debug messages add to the performance overhead, specifying No results in quicker completion of the concurrent request. Note: The field PROCESS_STATUS_CODE is updated to ‘E’ for records that fail the validation logic of value to id conversion Example Case : Price List Name – Test001 Description – Test001 Price List Currency – USD Multi-Currency Conversion – Corporate Pricelist Conversion list. Start date active – 01-Jan-2009 End date active – 05-May-2009 Price List Lines Details: Product Context – Item Product Attribute – Item Number Product Value –AS54888 Value – 100 Precedence – 220 Start Date – JAN-05-2009 Populate interface tables as follows. INSERT INTO qp_interface_list_headers(orig_sys_header_ref, list_type_code, NAME, description, active_flag, currency_code, currency_header, rounding_factor, source_lang, LANGUAGE, start_date_active, end_date_active, interface_action_code, process_flag, process_status_flag) VALUES('H_EXM123', 'PRL', 'Test001’, 'Test001 Price List', 'Y', 'USD', 'Corporate Pricelist Conversion list', -2, 'US', 'US', '2009/01/01', '2009/05/05', 'INSERT', 'Y', 'P'); INSERT INTO qp_interface_list_lines(orig_sys_line_ref, orig_sys_header_ref, list_line_type_code, start_date_active, arithmetic_operator, operand, primary_uom_flag, product_precedence, interface_action_code, process_flag, process_status_flag) VALUES('L_EXM123', 'H_EXM123', 'PLL', To_Date('JAN-05-2009', 'MON-DD-YYYY'), 'UNIT_PRICE', 100, 'Y', 220, 'INSERT', 'Y', 'P'); INSERT INTO qp_interface_pricing_attribs(orig_sys_pricing_attr_ref, orig_sys_line_ref, orig_sys_header_ref,
  • 8. 7 product_attribute_context, product_attr_code, product_attr_val_disp, product_uom_code, interface_action_code, process_flag, process_status_flag) VALUES('A_EXM123', 'L_EXM123', 'H_EXM123', 'ITEM', 'INVENTORY_ITEM_ID', 'AS54888', 'Ea', 'INSERT', 'Y', 'P'); Populate the Interface tables as follows to updatethe list price to 200 and UOM to DZ of the above price list. INSERT INTO qp_interface_list_headers(orig_sys_header_ref, NAME, list_type_code, interface_action_code, process_flag, process_status_flag) VALUES('H_EXM123', ‘Test001’, 'PRL', 'UPDATE', 'Y', 'P'); INSERT INTO qp_interface_list_lines(orig_sys_line_ref, orig_sys_header_ref, list_line_type_code, start_date_active, arithmetic_operator, operand, interface_action_code, process_flag, process_status_flag) VALUES('L_EXM123', 'H_EXM123', 'PLL', To_Date('JAN-05-2009', 'MON-DD-YYYY'), 'UNIT_PRICE', 200, 'UPDATE', 'Y', 'P'); 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, product_uom_code, interface_action_code, process_flag, process_status_flag) VALUES('A_EXM123', 'L_EXM123', 'H_EXM123', 'ITEM', 'INVENTORY_ITEM_ID', 'AS54888', 'DZ', 'UPDATE', 'Y', 'P'); Note the format of start_date_active and end_date_active and process_status_flag = P and process_flag = Y.
  • 9. 8 OTHER BUSINESS SCENARIOS Several other common business scenarios are provided below to assist you in better understanding the setups required. Scenario 1: Script to Insert ALL_ITEMS REM /************************************************************************** REM * The columns INTERFACE_ACTION_CODE, PROCESS_FLAG and PROCESS_STATUS_FLAG REM are mandatory and should be populated in all the interface tables with appropriate values. REM * Errors in the process are inserted into QP_INTERFACE_ERRORS table. REM * Please read Oracle Electronic Technical Reference Manual (eTRM) to understand REM interface tables, columns and interface tables relationship. REM * Please read Oracle Advanced Pricing Implementation Guide(Metalink Note: 91798.1) REM for details on QP: Bulk Import of Price List concurrent program and parameters. REM***************************************************************************/ -- Script to Insert ALL_ITEMS /* Insert Price list header details into QP_INTERFACE_LIST_HEADERS table */ 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 ( 'SAMPLE_HEADER_SMITHA_SB13', /* 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 */ 'Sample_BLK_PL_10', /* Price List Name */ 'Sample Bulk Loaded Price List',/* Description */ 'USD', /* Currency Code. The currency of the price list.*/ 'Y', /* Active Flag */ 30, /* Currency Header Id. Identifies Multi-Currency List associated with a Price List. Alternatively, populate CURRENCY_HEADER column with Multi-Currency List Name. */ TO_CHAR(sysdate,'YYYY/MM/DD'), /* Start Date Active */ NULL, /* End Date Active */ -1, /* Rounding Factor */ 'US', /* Source Language */ 'US', /* Language */ 'INSERT', /* Interface Action Code. The possible values are INSERT/UPDATE/DELETE. */ 'Y', /* Process flag for transaction */ 'P' /* 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,
  • 10. 9 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 ( 'SAMPLE_LINE_10', /* 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.*/ 'SAMPLE_HEADER_10', /* orig_sys_header_ref */ 'PLL', /* List Line Type Code. PLL for price list line. */ sysdate, /* Start date active */ NULL, /* End date active */ 'UNIT_PRICE', /* Arithmetic operator */ 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_attr_value, PRODUCT_UOM_CODE, INTERFACE_ACTION_CODE, PROCESS_FLAG, PROCESS_STATUS_FLAG ) VALUES ( 'SAMPLE_PATTR_10', /* 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.*/ 'SAMPLE_LINE_10', /* orig_sys_line_ref */ 'SAMPLE_HEADER_10', /* orig_sys_header_ref */ 'ITEM', /* Product Attribute Context */ 'ALL_ITEMS', /* Product Attribute Code */ 'ALL', /* Product Name. Alternatively populate PRODUCT_ATTR_CODE with inventory item id of the item.*/ --1, /*for category id MISC.MISC*/ '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 */ ); COMMIT; EXIT; Scenario 2: Script to Insert Item Number
  • 11. 10 REM /************************************************************************** REM * The columns INTERFACE_ACTION_CODE, PROCESS_FLAG and PROCESS_STATUS_FLAG REM are mandatory and should be populated in all the interface tables with appropriate values. REM * Errors in the process are inserted into QP_INTERFACE_ERRORS table. REM * Please read Oracle Electronic Technical Reference Manual (eTRM) to understand REM interface tables, columns and interface tables relationship. REM * Please read Oracle Advanced Pricing Implementation Guide(Metalink Note: 91798.1) REM for details on QP: Bulk Import of Price List concurrent program and parameters. REM***************************************************************************/ -- script to insert Item number /* Insert Price list header details into QP_INTERFACE_LIST_HEADERS table */ 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 ( 'SAMPLE_HEADER_10', /* 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 */ 'Sample_BLK_PL_10', /* Price List Name */ 'Sample Bulk Loaded Price List',/* Description */ 'USD', /* Currency Code. The currency of the price list.*/ 'Y', /* Active Flag */ 30, /* Currency Header Id. Identifies Multi-Currency List associated with a Price List. Alternatively, populate CURRENCY_HEADER column with Multi-Currency List Name. */ TO_CHAR(sysdate,'YYYY/MM/DD'), /* Start Date Active */ NULL, /* End Date Active */ -1, /* Rounding Factor */ 'US', /* Source Language */ 'US', /* Language */ 'INSERT', /* Interface Action Code. The possible values are INSERT/UPDATE/DELETE. */ 'Y', /* Process flag for transaction */ 'P' /* 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 (
  • 12. 11 'SAMPLE_LINE_10', /* 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.*/ 'SAMPLE_HEADER_10', /* orig_sys_header_ref */ 'PLL', /* List Line Type Code. PLL for price list line. */ sysdate, /* Start date active */ NULL, /* End date active */ 'UNIT_PRICE', /* Arithmetic operator */ 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 ( 'SAMPLE_PATTR_10', /* 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.*/ 'SAMPLE_LINE_10', /* orig_sys_line_ref */ 'SAMPLE_HEADER_10', /* orig_sys_header_ref */ 'ITEM', /* Product Attribute Context */ 'INVENTORY_ITEM_ID', /* Product Attribute Code */ 'AS54888', /* 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 */ ); COMMIT; EXIT; Scenario 3: Script to Insert Item Category REM /************************************************************************** REM * The columns INTERFACE_ACTION_CODE, PROCESS_FLAG and PROCESS_STATUS_FLAG REM are mandatory and should be populated in all the interface tables with appropriate values. REM * Errors in the process are inserted into QP_INTERFACE_ERRORS table. REM * Please read Oracle Electronic Technical Reference Manual (eTRM) to understand REM interface tables, columns and interface tables relationship. REM * Please read Oracle Advanced Pricing Implementation Guide(Metalink Note: 91798.1) REM for details on QP: Bulk Import of Price List concurrent program and parameters. REM***************************************************************************/ -- script to insert item category
  • 13. 12 /* Insert Price list header details into QP_INTERFACE_LIST_HEADERS table */ 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 ( 'SAMPLE_HEADER_12', /* 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 */ 'Sample_BLK_PL_12', /* Price List Name */ 'Sample Bulk Loaded Price List',/* Description */ 'USD', /* Currency Code. The currency of the price list.*/ 'Y', /* Active Flag */ 30, /* Currency Header Id. Identifies Multi-Currency List associated with a Price List. Alternatively, populate CURRENCY_HEADER column with Multi-Currency List Name. */ TO_CHAR(sysdate,'YYYY/MM/DD'), /* Start Date Active */ NULL, /* End Date Active */ -1, /* Rounding Factor */ 'US', /* Source Language */ 'US', /* Language */ 'INSERT', /* Interface Action Code. The possible values are INSERT/UPDATE/DELETE. */ 'Y', /* Process flag for transaction */ 'P' /* 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 ( 'SAMPLE_LINE_12', /* 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.*/ 'SAMPLE_HEADER_12', /* orig_sys_header_ref */ 'PLL', /* List Line Type Code. PLL for price list line. */ sysdate, /* Start date active */ NULL, /* End date active */ 'UNIT_PRICE', /* Arithmetic operator */ 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 */ );
  • 14. 13 /* 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_attr_value, PRODUCT_UOM_CODE, INTERFACE_ACTION_CODE, PROCESS_FLAG, PROCESS_STATUS_FLAG ) VALUES ( 'SAMPLE_PATTR_12', /* 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.*/ 'SAMPLE_LINE_12', /* orig_sys_line_ref */ 'SAMPLE_HEADER_12', /* orig_sys_header_ref */ 'ITEM', /* Product Attribute Context */ 'ITEM_CATEGORY', /* Product Attribute Code */ --'MISC.MISC', /* Product Name. Alternatively populate PRODUCT_ATTR_CODE with inventory item id of the item.*/ 1, /*for category id MISC.MISC*/ '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 */ ); COMMIT; EXIT; Scenario 4: Script to Update Header/Line or Attribute Details REM /************************************************************************** REM Please Note: REM * The columns INTERFACE_ACTION_CODE, PROCESS_FLAG and PROCESS_STATUS_FLAG REM are mandatory and should be populated in all the interface tables with appropriate values. REM * Errors in the process are inserted into QP_INTERFACE_ERRORS table. REM * Please read Oracle Electronic Technical Reference Manual (eTRM) to understand REM interface tables, columns and interface tables relationship. REM * Please read Oracle Advanced Pricing Implementation Guide(Metalink Note: 91798.1) REM for details on QP: Bulk Import of Price List concurrent program and parameters. REM***************************************************************************/ --Script to update Header/Line or Attribute details /* Insert Price list header details into QP_INTERFACE_LIST_HEADERS table */ INSERT INTO QP_INTERFACE_LIST_HEADERS( LIST_HEADER_ID ,LIST_TYPE_CODE ,INTERFACE_ACTION_CODE ,PROCESS_STATUS_FLAG ,process_flag ,ORIG_SYS_HEADER_REF ) VALUES ( 234415 ,'PRL' /* List Type Code. PRL for standard price list */ ,'UPDATE' /* Interface Action Code. The possible values are INSERT/UPDATE/DELETE. */ ,'P' /* Process Status Flag for transaction */
  • 15. 14 ,'Y' ,'SAMPLE_HEADER_10' ); /* Insert Price list line(PLL) details into QP_INTERFACE_LIST_LINES table. */ INSERT INTO QP_INTERFACE_LIST_LINES ( LIST_LINE_ID ,LIST_HEADER_ID ,LIST_LINE_TYPE_CODE ,INTERFACE_ACTION_CODE ,PROCESS_STATUS_FLAG ,OPERAND ,process_flag ,ORIG_SYS_LINE_REF ,ORIG_SYS_HEADER_REF ) VALUES ( 288720 ,234415 ,'PLL' ,'UPDATE' /* Interface Action Code. The possible values are INSERT/UPDATE/DELETE. */ ,'P' /* Process Status Flag for transaction */ ,800 ,'Y' ,'SAMPLE_LINE_10' ,'SAMPLE_HEADER_10' ); /* Insert Product attribute details into QP_INTERFACE_PRICING_ATTRIBS table. */ INSERT INTO QP_INTERFACE_PRICING_ATTRIBS ( PRICING_ATTRIBUTE_ID ,LIST_LINE_ID ,INTERFACE_ACTION_CODE ,PROCESS_FLAG ,PROCESS_STATUS_FLAG ,product_uom_code ,ORIG_SYS_PRICING_ATTR_REF ,ORIG_SYS_LINE_REF ,ORIG_SYS_HEADER_REF ) VALUES ( 289676 ,288720 ,'UPDATE' /* Interface Action Code. The possible values are INSERT/UPDATE/DELETE */ ,'Y' /* Process flag for transaction */ ,'P' /* Process Status Flag for transaction */ ,'DZ' ,'SAMPLE_PATTR_10' ,'SAMPLE_LINE_10' ,'SAMPLE_HEADER_10' ); COMMIT; EXIT; TROUBLESHOOTING There are a few things to watch out for when you try to implement the Pricing Data Bulk Loader API.
  • 16. 15 )
  • 17. 16 Pricing Data Bulk Loader API May 2009 Author: Kelli Stone Co-Author: Rajendra Badadare, Smitha Balaraman, Shaneed Muhammed Copyright © Oracle Corporation 2009 All Rights Reserved Printed in the U.S.A. This document is provided for informational purposes only and the information herein is subject to change without notice. Please report any errors herein to Oracle Corporation. Oracle Corporation does not provide any warranties covering and specifically disclaims any liability in connection with this document. Oracle is a registered trademark and Enabling the Information Age are trademarks of Oracle Corporation. Oracle Corporation World Headquarters 500 Oracle Parkway Redwood Shores, CA 94065 U.S.A. Worldwide Inquiries: 415.506.7000 Fax 415.506.7200 Copyright © Oracle Corporation 1995 All Rights Reserved
  • 18. 17