Pricing Engine Request Viewer Window

This chapter covers the following topics:

Overview of Pricing Engine Request Viewer

The Pricing Engine Request Viewer window captures and displays the inputs and outputs of pricing calls from calling applications such as Order Management, iStore, Order Capture, and Oracle Contracts Core. Information about the latest pricing request appears and is updated each time the pricing engine captures a new transaction. You can review this information to see which lines were selected or rejected by the pricing engine and to determine why certain prices and adjustments were or were not applied.

Using the Pricing Engine Request Viewer window, you can:

Setting Up the User Profiles

Set the following profile options to control the behavior of the Pricing Engine Request viewer:

QP: Debug

To start the Pricing Engine Request viewer, set the profile QP: Debug to "Request Viewer On." Alternately, select Request Viewer Off to turn the Request Viewer off. This profile option can be updated at the user level. The pricing engine request viewer is only active for the transactions of the user who set this profile option; other users' transactions are not affected. For additional information about the profile option settings, see QP: Debug.

QP: Set Request Name

Set the value of the profile option QP: Set Request Name to append the value of the profile with Order ID to be stored in the Request Name field. The default value is Null.

Note: The Pricing Engine Request Viewer window is available from within Oracle Order Management. The navigation path is: Sales Order window > Tools > Pricing Engine Request Viewer. It is also available on the menu for Pricing Manager Responsibility.

End-to-End Process for the Pricing Engine Request Viewer

The following series of activities occurs when a pricing call is made:

  1. The calling application makes a call to the Build Attribute Mapping Rules package to generate the attributes defined by the attribute mapping function.

  2. The calling application then calls the pricing engine with the attributes generated by attributes mapping.

  3. The pricing engine processes the request and then searches for and evaluates eligible price list and modifier lines.

  4. If the profile option QP: Debug is set to Request Viewer On, then the pricing engine inserts records into the permanent pricing debug tables and generates a unique request ID, storing the information from the calling application.

  5. The pricing request information can then be viewed by querying the request in the Pricing Engine Request viewer from the OM Sales Order Pad or through the Pricing Manager responsibility menu.

Regions in the Pricing Engine Request Viewer

The pricing engine request details appear in one or more of the following regions in the Pricing Engine Request window:

Pricing Engine Requests Region

This region maps to the QP_DEBUG_REQ table and displays the following information about the pricing engine requests with associated controls sent by the calling application:

Field Name Description
Order No For Request Type ONT only, the order number associated with the request appears.

Note: Depending on the version of Oracle Pricing installed, the order and line numbers for orders created in previous releases may not appear in the Pricing Engine Request window. However, order and line numbers created in subsequent releases can be viewed.

Req Name Order Id. of the calling application is appended with the value of the profile QP: Set Request Name and is stored in this field.
Req Id Request Id is the sequence number, which the window provides to uniquely identify the Pricing Engine requests.
Pricing Event A point in the transaction life cycle of your transaction at which you want to price it. The pricing event determines which phases the search engine processes according to the mapping in QP_EVENT_PHASES.
Created By Name of the user who created this request.
Creation Date Standard WHO Column. Contains the Date+ Time Stamp at which the record was created.
Calculate Flag Refers to the Calculation_Flag in the control record, which is passed to the pricing engine. From all the requesting systems the value for this flag is always passed as Y. Eligible values are:
  • N: Search engine: You do not want the engine to calculate the selling price.

  • C: Calculate engine: You are passing the adjustment records to the engine and you want the engine to recalculate the selling price, without retrieving new adjustments.

  • Y: Both calculate and search engine: Regular engine call. Retrieves new adjustments and calculates the selling price

Simulation Flag When selected, indicates that the call is for a pricing simulation. For simulations, the pricing engine should not make permanent record changes nor issue or redeem coupons.
Request Type Identifies the transaction system making the pricing request.
Rounding Flag Indicates whether the calculation engine should round the list price and selling price based on the price list rounding factor or the pricing request line record rounding factor. When rounding, the calculation engine rounds all intermediate subtotals for each pricing group sequence.
  • If set to Y , the engine will apply the rounding factor defined in the price list.

  • If set to N, unrounded figures will be returned.

  • If set to Q, then refer to the value of the profile QP: Selling Price Rounding Options.

GSA Check Flag Indicates whether the pricing calculation engine should test for GSA Violations:
The evaluation is performed if a request is for a non-GSA customer, and GSA rules are violated if the selling price of an item is calculated to be less than the price of the item on any GSA price list. Allowable values are:
  • Yes: Price Calculation engine tests for GSA violations, and violating request lines are returned to the calling application with a status of GSA violation.

  • No: Do not test for GSA violations.


The value of this field is controlled by profile in the requesting systems.
GSA Dup Check Flag Indicates that the engine should perform GSA duplicate check. The calling application sets this flag to Yes to have the pricing engine test for GSA violations or No so that the pricing engine does not test for GSA violations.
Temp Table Insert Flag This flag is set to Y, if the calling application directly inserts data into the pricing temporary tables. It is set to No if the pricing engine inserts into Temporary tables.
Manual Discount Flag Indicates the setting of the profile QP: Return Manual Discounts which controls how the pricing engine should perform incompatibility processing for manual discounts. The values for this profile are:
  • Yes: All the manual discounts will be returned. All the automatic discounts that get deleted as part of incompatibility processing will be returned as manual discounts.

  • No: All automatic and manual discounts will go through incompatibility processing and one of them in each incompatibility group will be returned. In this process an automatic discount might get deleted and a manual discount might get selected.

Source Order Amount Flag If set to Y, indicates to the pricing engine to source the order amount. The calling application will provide the order amount. If set to N, the pricing engine should calculate the order amount.
Public API Call Flag Indicates if the public API is being used to call the pricing engine.
If set to Yes, the public API, QP_PREQ_PUB is used to call the pricing engine. If set to N, the group API QP_PREQ_GRP is used to call the pricing engine.
Manual Adjustments Call Flag Indicates if the pricing engine will search and return modifiers from phases that have manual adjustments or automatic adjustments. These values are set up in the profile option QP: Return Manual Discounts:
  • Yes: Apply the manual discounts. The unit price is not calculated by the pricing engine.

  • No: Do not apply the manual discounts. This means that the new unit price is calculated by the pricing engine.


When the Manual Discount Flag check box is selected, it indicates that the profile option QP: Return Manual Discounts is set to Yes. The profile QP: Return Manual Discounts determines which modifier is evaluated by the pricing engine. The following table shows the setup of two modifiers with different precedence levels:
Modifier Name: Manual _1
  • Incompatibility Level: Incompatibility 1

  • Precedence: 100


Modifier Name: Manual _2
  • Incompatibility Level: Incompatibility 1

  • Precedence: 200


When QP: Return Manual Discounts = Yes, then the LOV will show both Manual_1 and Manual 2.
When QP: Return Manual Discounts = No, then the LOV will show Manual_1 since it has the highest precedence (determined by the lower precedence number).
Check Cust View Flag Used by the internal engine.
Currency Code Currency in which the pricing engine priced. The value for this field should be same across all lines.

Pricing Engine Request Lines Region

This region maps to QP_DEBUG_REQ_LINES table and displays the following information about the lines being priced, including unit price and adjusted unit price. You can also view information related to service and serviceable lines in this region.

Field Name Description
Line No Unique identifier of the request line in the calling application. For example, Order Number/Quote Number/Contract Number.
Status Code Returned status
Allowable values are:
  • N: New record created [All N (No) records are returned back from the pricing engine. These are success records.]

  • X: Unchanged (The default status when the line is passed to the pricing engine for processing)

  • D: Deleted

  • U: Updated

  • IPL: Invalid price list (When passed in price list is not found, then an error is given)

  • GSA: GSA violation

  • FER: Error processing formula

  • OER: Other error

  • CALC: Error in calculation engine

  • UOM: Failed to price using unit of measure

  • INVALID_UOM: Invalid unit of measure

  • DUPLICATE_PRICE_LIST: Duplicate price list

  • INVALID_UOM_CONV: Unit of measure conversion not found

  • INVALID_INCOMP: Could not resolve incompatibility

  • INVALID_BEST_PRICE: Could not resolve best price.

Line Id Unique identifier of the request line in the calling application. For example, Order Number/Quote Number/Contract Number.
Status Text Returned message from Pricing Engine.
Line Index PL/SQL unique identifier for request line.
Line Type Code Type of line within the request. Eligible values are:
  • ORDER

  • LINE

Pricing Date Date and Time for which the pricing engine calculates the prices.
Line Qty Pricing request line quantity.
Line UOM Code Pricing request line unit of measure.
Unit Price Unit price of the item that is expressed in Priced UOM Code.
Adjusted Unit Price Price per unit after the pricing engine applies discounts and Surcharges. It indicates the unit price for the service item, which has the percent price.
UOM Qty This holds service duration expressed in Line UOM Code. Unit of measure quantity, for example, in service pricing, LINE_UOM_CODE is Months and UOM_QUANTITY is 2.This field is used for service item pricing.
Priced Qty Quantity of pricing request line that pricing engine has priced.
Priced UOM Code Unit of measure in which the pricing engine priced.
Currency Code Currency in which the pricing engine priced. The value for this field should be same across all lines.
Price Flag Indicates the degree to which the price is frozen. Allowable values, based on lookup type CALCULATE_PRICE_FLAG are:
  • Y (Calculate Price): Apply all prices and modifiers to the request line.

  • N (Freeze Price): Do not apply any prices or modifiers to the request line. Consider the volume of the request line when processing LINEGROUP modifiers for other lines.

  • P (Partial Price): Apply prices and modifiers in phases whose freeze override flag is Y.

Percent Price Price calculated as a percentage of the price of another item.
Parent Price When the pricing engine determines the price of an item from the price of another item, the price of the related item. This is used only for service items and it is populated from the serviceable item.
Parent Qty When the pricing engine determines the price of an item from the price of another item, the quantity of the related item.
Parent Uom Code: When the pricing engine determines the price of an item from the price of another item, the unit of measure of the related item.
Processing Order This field is used for service pricing. It indicates the order in which pricing will be done for order lines related to service pricing.
Processed Flag Indicates whether line has been processed by engine or not. Possible values:
  • No: Not processed

  • Yes: Processed


Used by the internal engine.
Processed Code Internal code that indicates the stage of engine processing when an error occurred.
Active Date First Type The date type of ACTIVE_DATE_FIRST based on lookup type EFFECTIVE_DATE_ TYPES. Default value is date Ordered.
Start Date Active First In addition to the pricing effective date, you can specify two additional dates for the pricing engine to use to qualify pricing entities. The pricing engine compares this date against the first date range on the modifier list - QP_LIST_LINES.START_DATE_ACTIVE_FIRST and QP_LIST_LINES.END_DATE_ACTIVE_FIRST.
Active Date Second Type The date type of ACTIVE_DATE_SECOND based on lookup type EFFECTIVE_DATE_ TYPES. Default value is Requested Ship Date.
Start Date Active Second In addition to the pricing effective date, you can specify two additional dates for the pricing engine to use to qualify pricing entities. The pricing engine compares this date against the first date range on the modifier list - QP_LIST_LINES.START_DATE_ACTIVE_SECOND and QP_LIST_LINES.END_DATE_ACTIVE_SECOND.
Group Qty Sum of the quantity of group of lines. Used by the internal engine.
Group Amount Sum of the price of group of lines. Used by the internal engine.
Line Amount Price for the line quantity. Used by the internal engine.
Rounding Factor If ROUNDING_FLAG = Y and the pricing event does not include the base price phase, the rounding factor that the pricing engine should use.
Updated Adjusted Unit Price To update the adjusted unit price or to manually override the selling price, the calling application writes the new manual updated price into this field and calls the pricing engine. The pricing engine tries to apply the eligible manual adjustments and calculate the new price. If it cannot apply the manual adjustments, then it will raise an error at that line.
Price Request Code Unique identifier for order line used by limits processing. It has the structure Request Type Code-Order Id-Line Id. Used by the internal engine.
Hold Code Whenever the limit is adjusted or exceeded and limit_hold_flag is Y, the engine sets the value of this field to LIMIT. Used by the internal engine.
Hold Text Whenever the limit is adjusted or exceeded and limit_hold_flag is Y, the engine sets the value of the field HOLD_CODE to LIMIT and an appropriate message is set to HOLD_TEXT. Used by the internal engine.
Price List Header Name of the list header used to create or update the pricing line.
Validated Flag This field is related to PRICE_LIST_HEADER_ID. If set to Y, indicates that the price list is validated and no qualification check is necessary. If set to N, indicates that the price list is not validated.
Qualifiers Exist Flag This field is related to PRICE_LIST_HEADER_ID. If set to Y, indicates that the qualifiers exist for the price list. If set to N, indicates that the qualifiers does not exist for the price list.
Pricing Attrs Exist Flag This field is related to PRICE_LIST_HEADER_ID. If set to Y, indicates that pricing attributes exist for the price list. If set to N, indicates that pricing attributes does not exist for the price list.
Primary Qual Match Flag This field is related to PRICE_LIST_HEADER_ID. If set to Y,indicates that qualifiers exist for primary price list. If set to N, indicates that qualifiers does not exist for primary price list.
Usage Pricing Type Indicates the usage pricing type. Allowable values are:
  • Regular

  • Billing

  • Authoring

The lines region can be used to locate the source of a problem. For example, from the lines region of the Pricing Engine Request window, a specific line in the lines region shows the expected adjusted unit price (map to unit selling price). From the Sales Order window, we observe that the unit-selling price is blank and does not display an expected unit-selling price. The problem is in the pricing integration code. A price is generated, but Oracle Order Management does not display it.

Pricing Engine Request Line Details Region

This region maps to the QP_DEBUG_REQ_LDETS table. The Req Id + Line Index column maintains the master-detail relationship between lines and line details. This region shows information regarding processed price list lines and modifiers lines selected and/eliminated by the engine.

The Priced box indicates which lines were finally selected for pricing by the pricing engine. The Applied box indicates which lines were considered in calculating the selling price. This region also displays the information for item upgrades, coupon issue, term substitution, freight and special charges, and relationships between price breaks. The information that appears includes the following:

Field Name Description
Priced This value indicates whether the pricing engine successfully selected all the adjustments (Both manual and automatic). If selected, the line is considered for pricing by the pricing engine. If cleared, the line is rejected by the pricing engine.
Applied The lists or list lines that this pricing event or a prior pricing event applied. Allowable values are:
  • Yes: Applicable when the attribute context is a list or list line

  • No: Not applicable when the attribute context is a list or list line

Status Code Indicates returned status. Possible Values are:
  • New record created [All N (No) records are returned back from the pricing engine. These are success records.]

  • Unchanged (Default status when the line is passed to the pricing engine for processing)

  • Deleted

  • Updated

  • Invalid price list (When passed in price list is not found, then an error occurs.)

  • GSA violation

  • Error processing formula

  • Other error

  • Error in calculation engine

  • Failed to price using unit of measure

  • Invalid unit of measure

  • Duplicate price list

  • Unit of measure conversion not found

  • Could not resolve incompatibility

  • Could not resolve best price

Status Text Returned message from Pricing Engine.
Parent Line Detail Index PL/SQL unique identifier. Unique identifier of request line detail in calling application.
Line Detail Index PL/SQL unique identifier. Unique identifier of request line detail in calling application.
List Type Name List type of the line used. Possible values can be found from the lookup type LIST_TYPE_CODE from qp_lookup table.
Price List Name Price List Name of the line used.
Modifier No. Modifier list number

Note: Manual modifiers: For versions 11.5.9 and higher, records are not created in the Pricing Engine Request Viewer until the manual modifier is applied.

Modifier Name Modifier list name
List Line Type Line type of the list line used to update the pricing line. Possible values can be found from the lookup type LIST_LINE_TYPE_CODE from qp_lookups table.
List Line No Modifier list line number
Modifier Level Code The level at which the list line qualified for the transaction. Based on lookup type MODIFIER_LEVEL_CODE.
Operand Calculation Name Type of operand. Allowable values are:
  • Adjustment percent (for discounts)

  • Adjustment amount (for discounts)

  • Adjustment New Price (for discounts)

  • UNIT_PRICE (for price lists)

  • PERCENT_PRICE (for price lists)

  • LUMPSUM

Operand Value of pricing request detail line.
Adjustment Amount It indicates the dollar value of the adjusted amount. It holds the value of the bucketed adjusted amount for line types like PLL, DIS, and SUR etc. For price break (PBH) child lines, the field is populated if the pricing engine derived the value of the request line or request line detail from a price break.
Automatic If Automatic is selected, it indicates that the pricing engine automatically applied the request line detail to the request line. The engine derives the value from the list line.
Bucket Indicates the pricing bucket in which the pricing engine applied this list line. If MODIFIER_LEVEL is ORDER or if AUTOMATIC_FLAG is set to N, the value in this field cannot be modified.
Pricing Phase The pricing phase that created the request line detail.
Price Formula Formula attached to the price list line or modifier line.
Incompatibility Group Code This specifies that the discount is incompatible with all other discounts in this incompatibility group. Incompatibilities can be specified for discounts across Modifier types.
Override Indicates if a user in the calling application can override the modifier value. No restriction in place to modify the OPERAND_VALUE irrespective of value in this flag.
Charge Type Indicates the type of charge based on lookup type FREIGHT_CHARGES_TYPE. Used for Freight/Special Charge-type modifiers.
Charge Sub Type Indicates the type of charge based on lookup type CHARGE_TYPE_CODE.
Item Upgrade Value From Original Item.
Item Upgrade Value To Upgraded Item. The Item and its upgrade item must be related and the relationship is defined in Oracle Inventory screen.
Ask for Used by the internal engine. If selected, it indicates that the selected modifier is an ASK FOR modifier.
Processed Used by the internal engine. Indicates whether line has been processed by engine or not. Possible values:
  • No: Not processed

  • Yes: Processed

Created From SQL Indicates which cursor was used by the engine to select the modifier. Used by the internal engine. Possible values:
  • PRODUCT_ONLY

  • EXCLUDED_PRODUCT_ONLY

  • QUALIFIER_ONLY

  • PRODUCT_QUALIFIER_ONLY

  • PRODUCT_PRICING_ONLY

  • PRODUCT_QUALIFIER_PRICING_ONLY

  • INSERTED IN SECONDARY LIST HEADER SEARCH

  • INSERTED IN VALIDATED LIST_HEADER_SEARCH1

  • INSERTED IN NOT VALIDATED LIST_HEADER_SEARCH1

  • INSERTED IN VALIDATED ASKED FOR PROMOTION SEARCH

  • INSERTED IN NOT VALIDATED QUAL_LIST_HEADER_SEARCH

  • INSERTED BY CREATE_QUALIFIER_FROM_LIST

Line Quantity Quantity on the price break line. Populated if the pricing engine derived the value of the request line or request line detail from a price break. A not null value indicates that this particular break line was used in the calculation.
Product Precedence It indicates the rank of preference given for the Qualifiers/Pricing Attributes. For the same item if there are more than one incompatible discounts qualifying then the discount with the higher precedence is given.
Best Percent Modifier percentage that gives the best price. Used by the internal engine.
Primary UOM If set to Yes it indicates that if the price cannot be found for a product in the UOM passed from the calling application, the pricing engine will convert the transaction quantity to the primary UOM specified. Applicable only to price lists.
Benefit Qty The accrual quantity for non-monetary accruals or, for promotional goods, item quantity
Benefit UOM Code The accrual unit of measure for non-monetary accruals, or for promotional goods, item unit of measure.
Accrual Indicates whether the discount is an accrual.
Accrual Conversion Rate The rate to use when converting a non-monetary accrual to a monetary value.
Estimated Accrual Rate Indicates the percentage at which to accrue or, for a coupon, the expected rate of redemption of the coupon. Liability is defined as: ACCRUAL OR COUPON VALUE * ESTIM_ ACCRUAL_RATE. Default Value: 100.
Rounding Factor If ROUNDING_FLAG = Y and the pricing event does not include the base price phase, the rounding factor that the pricing engine should use. This value is passed in by the calling application.
Secondary Price list Ind: Indicates that the pricing used a secondary price list instead of the price list that the calling application requested. Applicable only to price lists.
Group Qty Sum of the quantity of group of lines. Used by the internal engine.
Group Amount Sum of the price of group of lines. Used by the internal engine.
Process Code This is set by the engine and used for selecting lines for calculation. Used by the internal engine. Possible values:
  • N: New

  • D: Deleted

  • X: Unchanged

Updated Flag This value is passed in by the calling application. Used by the internal engine.
Limit Code The value of this field is set to ADJUSTED when limit is adjusted, set to EXCEEDED when the limit is exceeded. Used by the internal engine.
Limit Text Returned message from Pricing Engine whenever limit is Exceeded or Adjusted.
Header Limit Exists Selected if a Header Limit exists.
Line Limit Exists Selected if the Line Limit exists

Attributes Window

The line attributes region maps to QP_DEBUG_REQ_LINE_ATTRS table. This region displays information about the pricing attributes that the attribute mapping function passed to the pricing engine. The pricing engine uses these attributes to qualify a line or an order for price and adjustments. From the Pricing Engine Request Viewer window select the Attributes button to display all attributes for a selected line or line detail. If you select the Attributes button from Request Lines region, the attributes displayed will be attributes passed to the pricing engine.

If you select the Attribute from the Request Line Details region, the attributes displayed will be the attributes related to the selected price list lines and modifier lines.

Use this table when Oracle Order Management does not return an expected discount or adjustment and the list line ID do not appear in line details region.

The Attributes window consists of three tabs: Qualifier Context, Product Context and Pricing Context.

Qualifier Context tab

The following image depicts the Qualifier Context tab from the Attributes window:

Qualifier Context tab: Attributes window

the picture is described in the document text

Columns in this tab include:

Field Name Description
Context Context for a product or pricing attribute, for example, Product Hierarchy.
Attribute Product or pricing attribute, for example, PRICING_ATTRIBUTE11: Customer Item ID.
Value From Passed in value for product or pricing attribute.
Setup Value From Setup value for product or pricing attribute.
Setup Value To Setup value for product or pricing attribute.
Grouping Number It indicates the qualifier grouping number which is used to group qualifiers together to create AND/OR relationships.
Validated Flag If set to Y, Indicates that the price list is validated and no qualification check is necessary. If set to N, Indicates that the price list is not validated.
Comparison Operator Type The relational operator code used to define how the pricing engine should evaluate the pricing attributes or qualifier attributes, based on lookup type COMPARISON_OPERATOR.
Applied Flag The lists or list lines that this pricing event or a prior pricing event applied. Allowable values are:
  • Yes: Applicable when the attribute context is a list or list line

  • No: Applicable when the attribute context is a list or list line

Qualifier Precedence The precedence number, or selectivity of the qualifier attribute in the Qualifier Descriptive Flex field. It is used by the pricing engine for incompatibility resolution.
Data Type Indicates the data type of the pricing attribute value or qualifier attribute value.
Processed Code Set by the engine and used for selecting lines for calculation. Used by the internal engine. Possible values are:
  • N: New

  • D: Deleted

  • X: Unchanged.

Distinct Qualifier Flag To determine qualification engine sets this flag to indicate that this is unique qualifier.
Primary UOM Flag If set to Yes, indicates that if the price cannot be found for a product in the UOM passed from the calling application, then the pricing engine will convert the transaction quantity to the primary UOM specified.
Modifier Number Modifier list number.
Modifier Name Modifier list name.
List Line Number Modifier list line number.

Product Context tab

The following image shows the Product Context tab:

Product Context tab: Attributes window

the picture is described in the document text

Columns in this tab include:

Field Name Description
Context Context for a product or pricing attribute, for example, Product Hierarchy.
Attribute Product or pricing attribute, for example, PRICING_ATTRIBUTE11: Customer Item ID.
Value From Passed in value for product or pricing attribute.
Setup Value From: Setup value for product or pricing attribute.
Setup Value To: Setup value for product or pricing attribute.
Applied Flag: The lists or list lines that this pricing event or a prior pricing event applied. Allowable values are:
  • Yes: Applicable when the attribute context is a list or list line

  • No: Applicable when the attribute context is a list or list line

Qualifier Precedence: The precedence number, or selectivity of the qualifier attribute in the Qualifier Descriptive Flex field. It is used by the pricing engine for incompatibility resolution. This field cannot be updated by the user.
Data Type Indicates the data type of the pricing attribute value or qualifier attribute value.
Product UOM Unit of measure of the item, product group, and so on for which the price or modifier is defined.
Processed Code This is set by the engine and used for selecting lines for calculation. Used by the internal engine. Possible values are:
  • N: New

  • D: Deleted

  • X: Unchanged.

Excluded Flag If set to Yes, indicates that the product value was defined as an excluded item on the modifier line.
Group Qty Sum of the quantity of group of lines. Used by the internal engine.
Group Amount Sum of the price of group of lines. Used by the internal engine.
Primary UOM Flag Primary UOM Flag: If set to Yes it indicates that if the price cannot be found for a product in the UOM passed from the calling application, the pricing engine will convert the transaction quantity to the primary UOM specified.
Modifier Number Modifier list number.
Modifier Name Modifier list name.
List Line Number Modifier list line number.

Pricing Context tab

The following image shows the Pricing Context tab:

Pricing Context tab: Attributes window

the picture is described in the document text

Columns in the Pricing Context tab are described in the following table:

Field Name Description
Context Context for a product or pricing attribute, for example, Product Hierarchy.
Attribute Product or pricing attribute, for example, PRICING_ATTRIBUTE11: Customer Item ID.
Value From Passed in value for product or pricing attribute.
Setup Value From Setup value for product or pricing attribute.
Setup Value To Setup value for product or pricing attribute.
Comparison Operator Type The relational operator code used to define how the pricing engine should evaluate the pricing attributes or qualifier attributes, based on lookup type COMPARISON_OPERATOR.
Applied Flag The lists or list lines that this pricing event or a prior pricing event applied. Allowable values are:
  • Yes: Applicable when the attribute context is a list or list line

  • No: Applicable when the attribute context is a list or list line

Data Type Indicates the data type of the pricing attribute value or qualifier attribute value.
Processed Code Set by the engine and used for selecting lines for calculation. Used by the internal engine. Possible values:
  • N: New

  • D : Deleted

  • X: Unchanged.

Primary Uom Flag If set to Y it indicates that if the price cannot be found for a product in the UOM passed from the calling application, the pricing engine will convert the transaction quantity to the primary UOM specified.
Modifier Number Modifier list number.
Modifier Name Modifier list name.
List Line Number Modifier list line number.

The line attributes window of the Pricing Engine Requests Viewer window can be used to locate the source of a problem. For example, customer 1006 receives a discount. If Oracle Order Management does not return the discount and the line detail region does not display the list line ID in the Pricing Engine Requests Viewer window, the solution would be as follows:

In the line attributes region, query to find the record with the following values:

If you do not find the attribute, this qualifier was not passed to the pricing engine. It is possible that the Build Attribute Mapping Rules program was not run after the first use of new type of qualifier (the qualifier is not sourced by the attribute mapping). If you are using your customer-defined qualifier, then make sure that the attributes mapping setup is properly defined.

If you do find the attribute, the problem occurred in the pricing engine. Contact Oracle Support for a pricing engine debug script.

Related Lines Window

This window maps to the QP_DEBUG_REQ_RLTD_LINES table.

Select the Related Lines button from the Pricing Engine Request Viewer window to display the Pricing Debug Related Lines window. The cursor needs to be in the Request Line Details region. You can view the relationship between the Buy and Get items for Other Item Discounts and Promotional Goods.

The following image shows the Related Lines window:

Related Lines window

the picture is described in the document text

Columns in this window are described in the following table:

Field Name Description
Line Index PL/SQL unique identifier for request line.
Line Detail Index PL/SQL unique identifier for request detail line.
Relationship Type of relationship between pricing lines. Allowable values are:
  • BUY

  • GET

Modifier Type Line type of the list line used to update the pricing line. Possible values can be found from the lookup type LIST_LINE_TYPE_CODE from the qp_lookups table.
Operand Value of pricing request detail line, for example, 10 currency unit list price with 3 percent discount.
Modifier number Modifier list number.
Modifier Name Modifier list name.
Application Method Type of operand. Eligible values are:
  • Adjustment percent (for discounts)

  • Adjustment amount (for discounts)

  • Adjustment New Price (for discounts)

  • Unit Price (for price lists)

  • Percent Price (for price lists)

  • Lumpsum

  • Block Price

  • Break Unit Price

Formula Step Values Window

This window maps to QP_DEBUG_FORMULA_STEP_VALUES table. This region shows information about the formula step values, which are inserted into the table QP_FORMULA_STEP_VALUES during the evaluation of formula attached to the price lists. The pricing engine inserts step values into QP_FORMULA_STEP_VALUES only if the profile QP: Insert Formula Step Values into Temp Table is set to Y.

Select the Step Values button from the Pricing Engine Request Viewer window to display the Formula Step Values window. The cursor needs to be in the Request Line Detail region.

The following image shows the Formula Step Values window:

Formula Step Values window

the picture is described in the document text

Columns in this window are described in the following table:

Field Name Description
Step Number Step number corresponding to a formula line.
Component Value Evaluated value of a formula step.
Formula Line Type Type of the formula line. Possible values are:
  • FUNC: Function

  • LP: List Price

  • ML: Factor List

  • MV: Modifier Value

  • NUM: Numeric Constant

  • PLL: Price List Line

  • PRA: Pricing Attribute

Formula Name Name of the pricing formula.
Formula Mathematical formula for a rule.

Debug Log Window

The Debug Log window, which maps to the qp_debug_text table, displays the contents of the debug log file.

Searching the Debug Log

You can search for a string in the Debug Log to find related records and lines. Select a returned record, and click the Go To button to view ten previous records from that line number and the remaining lines.

Purging the Debug Log

Click Purge to delete all the records in the Debug Log.

Debug Log

the picture is described in the document text

Analyzing Error Messages

From the Line Details region of the Pricing Engine Requests Viewer window, you can analyze error messages to troubleshoot and resolve problems. For example, if Oracle Order Management does not return an expected adjustment (list line), then you could use the Pricing Engine Requests Viewer window to find the problems as described in the following example:

In the Pricing Engine Requests Viewer window, look for the list line ID in the created_from_list_line_id column. If you find the expected list line ID in the window and it has a pricing_status_code of D_GRP, the grouping operation of the pricing engine deleted it.

Check your grouping condition in the Modifier window to see what other conditions must be met to receive the adjustment. If the list line ID has a pricing_status_code of N (accepted by engine) and it is not reflected in pricing integration, then the problem occurs in pricing integration.

Other pricing status codes that may appear are listed in the following tables:

This table lists the three success codes for a line:

Pricing Status Code Error
N New record created
U Updated
X Unchanged

This table lists the available internal processing status:

Pricing Status Code Error
D Deleted
T Transient
B Best price evaluation
OTHER_ITEM_BENEFITS Deleted in PRG processing
P_UOM_FLAG Removed due to primary UOM conversion
I Deleted during incompatibility
G Deleted in grouping

This table lists codes that require action from the calling application:

Pricing Status Code Error
IPL Invalid price list
GSA GSA violation
NMS Item not found in primary or secondary price list
FER Error processing formula
OER Other errors
S System generated message
CALC Error in calculation engine
UOM Failed for price unit of measure
INVALID_UOM Invalid unit of measure
DUPLICATE_PRICE_LIST Duplicate price lists
INVALID_UOM_CONV Unit of measure conversion not found
INVALID_INCOMP Unable to resolve incompatibility
INVALID_BEST_PRICE Unable to resolve best price
LIMIT Put limit on hold
EXCEEDED Limit exceeded

Viewing Service and Serviceable Lines

This Pricing Engine Request Lines region has information related to the Service Lines relationship. The fields Related Line Index and Line Index in the Pricing Engine Request Lines region are related. By comparing the values of the Related Line Index with the Line Index, you can identify if the lines are related, for example, Service Item and Serviceable Item.

For example, Line Index 2 could be a serviceable item (such as Oracle 8i) and Line Index 3 could be a service item (such as Gold Support for 8i).

Viewing Price Break lines

This Pricing Engine Request Line Details region has information related to Price Break Lines Relationship. The Parent Line Detail Index field and Line Detail Index field in the Pricing Engine Request Line Details region are related. By looking at the values of Parent Line Detail Index and Line Detail Index, you can identify if a Price Break exists. Price Break setup has a Price Break Parent Record, which has a line type called PBH. This PBH record can have more than one child record that actually defines the breaks.

For example, you could create a price break setup where the Price Break Parent Record has a line type called Price Break Header. This PBH record could have three child records (Line Detail Index 10, Line Detail Index 11, and Line Detail Index 12) that define the breaks.

Viewing Other Item Discounts (OID)

In this case, two request lines, such as Buy ITEM1 and get $500 off on ITEM2, are passed to the pricing engine. In this example, both ITEM1 and ITEM2 need to be ordered on two order lines so that two request lines are created and passed to the pricing engine. When the engine processes the other item discounts, it creates a discount line for -$500 on the second request line. It also creates a relationship record, and this relationship is shown in the Related Lines window. Line Detail Index 9 is the actual Discount Line, which is the OID line, and Line Detail Index 10 is the actual benefit line, which is the $500 off line.

Viewing Promotional Goods Discount (PRG)

In this case, only the original buy item request line, such as Buy ITEM1 and get ITEM2 for free, is passed to the pricing engine. In this example, only the request line/order line with ITEM1 is sent to the pricing engine. ITEM2 need not be ordered. The pricing engine selects the PRG Modifier because of purchase of ITEM1 and creates a Line Detail Record (Line Index 1 - Line Detail Index 2). Then it tries to give the benefit, which is a free item (ITEM2). The process engine does the following:

Purging Pricing Engine Requests

The concurrent program Purge Pricing Engine Requests will purge the pricing engine requests. You should run this program on a regular basis to purge the historical data from the pricing debug tables or if you observe a marked deterioration in the performance of the Pricing Engine Request Viewer window. Periodically purging the historical data from the pricing debug tables improves the performance of the Pricing Engine Request Viewer window.

See the Oracle Advanced Pricing User's Guide for more information on running concurrent programs.

Important: This concurrent program does not affect any of the user procedures on Pricing Engine Request Viewer UI.

Deleting Pricing Engine Requests

Follow these steps to delete a previously saved pricing engine request:

  1. From the Pricing Engine Requests Viewer window, choose View > Find to find the Pricing Engine Request to delete.

  2. Choose Edit > Delete.