zoukankan      html  css  js  c++  java
  • HOW to Use QP_PREQ_PUB.PRICE_REQUEST API to Price an Item

    In this Document

    Goal
      Solution
      References

    APPLIES TO:

    Oracle Advanced Pricing - Version 11.5.10 and later
    Information in this document applies to any platform.

    GOAL

    This note describes how the QP_PREQ_PUB.PRICE_REQUEST API can be called to obtain the Price of an item.

    SOLUTION

    The following is an example of how the QP_PREQ_PUB.PRICE_REQUEST API can be called to obtain the Price of an item

    Examples described in this note will use the following attributes - this has been tested using data set up in a Vision instance. You will need to change data as appropriate to your environment.

    NB - is important to ensure that the pricing phase on the modifier line matches the pricing event used when calling the API.

    For example if the pricing phase on the modifier is -- All Line Adjustments then to apply the modifier -- p_control_rec.pricing_event :='BATCH'; or alternatively change the pricing phase to -- List Line adjustments (note that setting the phase to the value will cause the pricing engine to update the price whenever the order line is changed and may have an impact on performance).

    Pricing Attributes

    1. Item priced is Inventory Item ID - 307627

    Qualifier Attributes
    1. Price List is Price List ID - 54824
    2. Customer is Customer ID - 16071

    A Modifier has been created where:
    1. The Modifier is qualified at Header Level by the Customer ID - 16071
    2. The Line on the modifier is qualified by pricing attribute - Inventory Item is 307627

    Price List
    1. For Testing purposes I have not included the Inventory Item ID -- 307627 on the price list - 54824
    2. The Price List does however include an ALL_ITEMS value which sets the price to 1.23

    When Calling the PRICE_REQUEST API, I have passed the following values.

    1. ALL_ITEMS pricing attribute which will be used to return a price from the price list if the item has not been included on the price list. This will only return a price if the Price List has a value for ALL_ITEMS.

    line_attr_rec.LINE_INDEX    := 1;
    line_attr_rec.PRICING_CONTEXT    :='ITEM'; 
    line_attr_rec.PRICING_ATTRIBUTE   :='PRICING_ATTRIBUTE3';
    line_attr_rec.PRICING_ATTR_VALUE_FROM   :='ALL';
    line_attr_rec.VALIDATED_FLAG    :='N';
    p_line_attr_tbl(1)    := line_attr_rec;

    2. The Inventory Item to be priced

    line_attr_rec.LINE_INDEX    := 1;
    line_attr_rec.PRICING_CONTEXT    :='ITEM'; 
    line_attr_rec.PRICING_ATTRIBUTE   :='PRICING_ATTRIBUTE1';
    line_attr_rec.PRICING_ATTR_VALUE_FROM   :='307627';                  -- INVENTORY ITEM ID
    line_attr_rec.VALIDATED_FLAG    :='N';
    p_line_attr_tbl(2)    := line_attr_rec;

    ---- Qualifier Attribute Record

    3. The Price List used to price the item

    qual_rec.LINE_INDEX     := 1; 
    qual_rec.QUALIFIER_CONTEXT    :='MODLIST';
    qual_rec.QUALIFIER_ATTRIBUTE    :='QUALIFIER_ATTRIBUTE4';
    qual_rec.QUALIFIER_ATTR_VALUE_FROM   :='54824';                     -- PRICE LIST ID
    qual_rec.COMPARISON_OPERATOR_CODE   := '=';
    qual_rec.VALIDATED_FLAG    :='Y';
    p_qual_tbl(1)     := qual_rec;

    4. Customer Qualifier will be used to determine (in this test) which modifier is to be used.

    qual_rec.LINE_INDEX     := 1;
    qual_rec.QUALIFIER_CONTEXT    :='CUSTOMER';
    qual_rec.QUALIFIER_ATTRIBUTE    :='QUALIFIER_ATTRIBUTE2';
    qual_rec.QUALIFIER_ATTR_VALUE_FROM   := 16071 ;   -- CUSTOMER ID;
    qual_rec.COMPARISON_OPERATOR_CODE   := '=';
    qual_rec.VALIDATED_FLAG    :='Y';
    p_qual_tbl(2)     := qual_rec;

    The following Script will create a procedure called XX_TEST_PRICE_REQUEST ---  PRICE_REQUEST_API_EXAMPLE.sql 

    Do the following to run the script from a SQL*Plus session

    SQL> Set Serveroutput on size 100000
    SQL> Exec XX_TEST_PRICE_REQUEST

    This should then return output similar to:

    File : /usr/tmp/l5027518.dbg
    Return Status text Routine: QP_PREQ_PUB.PRICE_REQUEST SUCCESS
    Return Status  S
    +---------Information Returned to Caller---------------------+
    -------------Request Line Information-------------------
    Line Index: 1
    Unit_price: 1.23
    Percent price:
    Adjusted Unit Price: .615
    Pricing status code: UPDATED
    Pricing status text:
    -----------Pricing Attributes Information-------------
    Line detail Index 3
    Context ITEM
    Attribute PRICING_ATTRIBUTE1
    Value 307627
    Status Code
    ---------------------------------------------------
    Line detail Index 2
    Context ITEM
    Attribute PRICING_ATTRIBUTE3
    Value ALL
    Status Code
    ---------------------------------------------------
    -----------Qualifier Attributes Information-------------
    Line Detail Index 3
    Context CUSTOMER
    Attribute QUALIFIER_ATTRIBUTE2
    Value 16071
    Status Code N
    ---------------------------------------------------
    ------------Price List/Discount Information------------
    Line Index: 1
    Line Detail Index: 2
    Line Detail Type:NULL
    List Header Id: 54824
    List Line Id: 189859
    List Line Type Code: PLL
    Adjustment Amount : 1.23
    Line Quantity :
    Operand Calculation Code: UNIT_PRICE
    Operand value: 1.23
    Automatic Flag: Y
    Override Flag:
    status_code: N
    status text: INSERTED IN L_LIST_CUR
    -------------------------------------------
    Line Index: 1
    Line Detail Index: 3
    Line Detail Type:NULL
    List Header Id: 191260
    List Line Id: 221749
    List Line Type Code: DIS
    Adjustment Amount : -.615
    Line Quantity :
    Operand Calculation Code: %
    Operand value: 50
    Automatic Flag: Y
    Override Flag: N
    status_code: N
    status text: PRODUCT_QUALIFIER_ONLY
    -------------------------------------------
    --------------Related Lines Information for Price Breaks/Service
    Items---------------

    PL/SQL procedure successfully completed.


    The Important Elements shown here are:

    1. /usr/tmp/l5027518.dbg     --  additional debug information is located in this file

    The following information is shown in the debug file:
    2. Request Line Information     --  Shows the price returned by the API
    3. Pricing Attributes Information --  Shows Pricing Attributes used to determine the price -- Note only the attributes used will be shown
    4. Qualifier Attributes Information --  Shows Qualifier Attributes used to determine the price -- Note only the attributes used will be shown
    5. Price List/Discount Information --  Shows the price list chosen as well as the modifiers which have been used to price the item.

    The following file is a LIST_LINE_DETAIL diagnostics report for the modifier (list line id - 221749). This shows the modifier details including pricing and qualifier attributes.

    Modifier_definition

    Note: 163913.1 - Debugging Advanced Pricing Modifier and Price List Lines (qp_list_line_detail.sql)

    An alternative method of obtaining this report is to run -- Diagnostics: List Line Details -- concurrent process from a Pricing Manager Responsibility.

    Additional reference: Note 412545.1 - Pricing Engine: How to simulate the Price Order Function using an API

    Still Have Questions? 
    To discuss this information further with Oracle experts and industry peers, we encourage you to review, join or start a discussion in the My Oracle Advanced Pricing Community.


    REFERENCES

    NOTE:412545.1 - How to Simulate the Price Order or Price Line Function using API QP_PREQ_PUB.PRICE_REQUEST Includes Example Scripts

    NOTE:1448751.1 - Qp_preq_pub.Price_request Is Not Showing a Discount Defined at Group of Lines Level
    NOTE:163913.1 - Diagnostic Report for Advanced Pricing Modifier and Price List Lines (qp_list_line_detail.sql)
     
     

    附件

       
     
  • 相关阅读:
    求a,b在区间上的公倍数个数
    最长非上升子序列的长度
    uva 11992 线段树
    hdu 5464 dp
    hdu 5465 树状数组
    hdu 5459 递推
    poj 2528 动态线段树
    hdu 4474 bfs
    ural 1495 bfs
    hdu 2795 线段树
  • 原文地址:https://www.cnblogs.com/wanghang/p/6299077.html
Copyright © 2011-2022 走看看