‡ Depot Repair ‡ Field Service ‡ Install Base ‡ Service Contracts ‡ Service Fulfillment Manager ‡ Spares Management

‡ Oracle Product Lifecycle Management . Oracle Advanced product Catalog

‡ Telesales ‡ Trade Management ‡ Incentive Compensation ‡ Order Capture ‡ Partners Online

Develop Service & Maintain Market
‡ Advanced Supply Chain Planning ‡ Global Order Promising

‡ Release Management ‡ Shipping Execution ‡ Inventory Management ‡ WMS ‡ Transportation Execution

Fulfill Plan

Manufacture

‡ Cost Management ‡ Configure to Order ‡ Process Manufacturing ‡ Project Manufacturing ‡ Quality ‡ Work in Process
‡ Purchasing ‡ iProcurement

Procure

Sell & Manage Orders

‡ Order management Advanced Pricing ‡ Configurator ‡ iStore

Oracle Supply Chain Management Solutions

Oracle Order Management

Enter Order and Line details

Oracle Advanced pricing
Price the Order

Oracle Shipping Execution

Oracle Transportation Management Ship Confirm

Oracle Global ATP
Check Availability, Schedule Order

Oracle Mobile Supply Chain Application
Pick Confirm

Oracle Order Management Oracle Shipping Execution
Pick Release the Order Book the Order

Oracle WMS

Oracle INV

.

.

benefits (for example. discounts and surcharges).Modifiers enable you to set up price adjustments (for example. . Pri Li t Li 100 It m=A 5987 Pri =$100 Price lists contain item and item category prices. free goods. Qualifiers determine who is eligible for certain Price List or modifier. coupons) and freight and special charges that can be applied to the Price list lines.

Price lists contain item and item category prices. discounts and surcharges). free goods. coupons) and freight and special charges that can be applied to the Price list lines. Qualifiers determine who is eligible for certain Price List or modifier. benefits (for example. .Modifiers enable you to set up price adjustments (for example.

Blanket Document Number. default Freight Carrier information. Details about the related Blanket Sales Agreement: can be found in Other tab as. default Payment Terms. Application Method is populated as Unit Price: Defines the price for inventory items and item categories You can define the following types of prices on price lists: ‡ Unit price: A fixed price. you can define bracket pricing or price breaks. Select Line Types as Price List Line: To enter a base list price for the item. default Freight Terms.Price lists contain item and item category prices along with Currency. ‡ Percent Price: A price which is a percent of the price of another item (for service items only) ‡ Formula: Multiple pricing entities and constant values related by arithmetic operators.. . Pricing Transaction Entity. Source System Code etc. A negative Round To number indicates number of places to the right of the decimal point. ‡ Price Break: If the price of an item varies with the quantity ordered. Round To.

. ‡ Range: The pricing engine charges each unit of volume at the price of the within which it falls. So the total price is calculated as follows: Total price = 20 * $90 each = $1800 If the Price Type is Point: The price is not returned if the ordered quantity does not fall in the price range of the price list. the Block price repeats for every interval defined by the Recurring Value column. the price is $10 for each 100 units up to 1200 units. ‡ Unit Price: Defines the price for inventory items and item categories Block pricing enables you to apply a lumpsum price rather than a per unit price to a pricing line. So for the first 1200 units. Eg: For Point break type. If the Price Type is Range: A price of 0 is retrieved for the ordered quantity that does not fall in the price range. To charge $10 for 0 to 1200 items with recurring price 100. the total cost would be as follows: ‡ Block price 1: Price for first 1200 (1200/100= 12 X $10): $120 (first price break) ‡ Block price 2: Price for each additional block of 100 units beginning with 1201 units: $30 (second price break). ‡ Point: The pricing engine charges each unit of volume at the price of the within which the total falls. When a recurring value is used with price breaks. So if 1300 units were purchased. Eg: For Range break type with Block pricing. Choose an Application Method: ‡ Block Price: Defines the price for the entire set of a block. if you ordered 25 units. the total quantity falls into the Price 2nd bracket where the unit price is $90. For 1201 units and more.Select Line Type as Price Break Header: Select the Price Break Type as. Total $150 We shall discuss the Pricing Context and Pricing attributes later.. you could create a second price to define a price of $30 for each 100 units.

To make a qualifier mandatory for all qualifying conditions. Qualifiers determine who is eligible for certain Price List. the pricing engine uses the highest precedence secondary price list (the secondary price list with the lowest value in the Precedence field). Enter a qualifier Grouping Number. the pricing engine looks for the price on any attached secondary price list. We shall discuss the Qualifier Context & Qualifier attributes later. If the item is found. Qualifier lines with the same grouping number generate an AND condition and qualifiers with different grouping numbers generate an OR condition.If the item you are ordering is not in the primary price list. . you can use a qualifier grouping number of -1.

QP_LIST_HEADERS_B LIST_HEADER_ID LIST_TYPE_CODE START_DATE_ACTIVE END_DATE_ACTIVE AUTOMATIC_FLAG CURRENCY_CODE ROUNDING_FACTOR SHIP_METHOD_CODE FREIGHT_TERMS_CODE TERMS_ID COMMENTS DISCOUNT_LINES_FLAG GSA_INDICATOR QP_LIST_LINES PRORATE_FLAG SOURCE_SYSTEM_CODE LIST_LINE_ID LIST_HEADER_ID LIST_LINE_TYPE_CODE QP_PRICING_ATTRIBUTES START_DATE_ACTIVE PRICING_ATTRIBUTE_ID LIST_HEADER_ID LIST_LINE_ID PRICING_PHASE_ID EXCLUDER_FLAG ACCUMULATE_FLAG PRODUCT_ATTRIBUTE_CONTEXT PRODUCT_ATTRIBUTE PRODUCT_ATTR_VALUE PRODUCT_UOM_CODE PRICING_ATTRIBUTE_CONTEXT PRICING_ATTRIBUTE PRICING_ATTR_VALUE_FROM PRICING_ATTR_VALUE_TO END_DATE_ACTIVE AUTOMATIC_FLAG MODIFIER_LEVEL_CODE PRICE_BY_FORMULA_ID LIST_PRICE LIST_PRICE_UOM_CODE PRIMARY_UOM_FLAG INVENTORY_ITEM_ID ORGANIZATION_ID .

.

A set of Qualifiers are seeded in Adv Pring viz: Qualifiers determine who is eligible for certain modifier. you can use a qualifier grouping number of -1. Qualifier groups with different numbers create ´ORµ conditions. Qualifiers with the same group number create ´ANDµ conditions. Qualifiers may be grouped to create ´AND/ORµ conditions using grouping numbers. To make a qualifier mandatory for all qualifying conditions. . When qualifier group is selected. all the qualifiers in the qualifier group are attached to the modifier or price list.

QP_QUALIFIERS QUALIFIER_ID QUALIFIER_RULE_ID LIST_HEADER_ID LIST_LINE_ID QUALIFIER_GROUPING_NO QUALIFIER_CONTEXT QUALIFIER_ATTRIBUTE QUALIFIER_ATTR_VALUE COMPARISON_OPERATOR_CODE .

Here is an example of a qualifier usage. you can use a qualifier grouping number of -1. Qualifiers determine who is eligible for certain modifier. Qualifiers with the same group number create ´ANDµ conditions. Qualifiers may be grouped to create ´AND/ORµ conditions using grouping numbers. To make a qualifier mandatory for all qualifying conditions. Create a Discount list modifier. Qualifier groups with different numbers create ´ORµ conditions. .. Click on List qualifier to show the eligibility criteria for this modifier to be applied.

.

We can create eligibility rules for modifiers by assigning list and line level qualifiers. . The Global box is selected when the Pricing Security Control profile option is set to ON. coupons) and freight and special charges that can be applied to the Price list lines. This means that the price list can be used by all operating units for pricing transactions. Control features that influence modifiers are products and product groups. levels. and buckets. benefits (for example. pricing attributes. the price list·s use is restricted to the operating unit of the user creating the price list. free goods. discounts and surcharges). If cleared.Modifiers enable you to set up price adjustments (for example. incompatibility groups. phases.

This means the customer must specifically request that the modifier benefit be applied ‡ List Source Document Number: This is the Blanket Number of the blanket sales agreement associated with the modifier. . ‡ List Source Code: Displays the code associated with the modifier source. the pricing engine automatically applies the modifier If cleared. benefits (for example. For example. then this modifier is specific to that blanket and cannot be used with other blanket sales agreements. BSO indicates Blanket Sales Order. ‡ Pricing Transaction Entity (PTE): Displays the pricing transaction entity associated with the modifier. coupons) and freight and special charges that can be applied immediately to pricing requests or accrues for later disbursement. You can create the following modifier list types: ‡ Deal ‡ Discount List ‡ Freight and Special charge List ‡ Promotion ‡ Surcharge List If Automatic box is selected.Modifiers enable you to set up price adjustments (for example. The Ask for box is only available for modifier list types of Deal and Promotion. discounts and surcharges). ‡ Source System Code: Displays the source system code of the modifier such as QP for pricing. The Pricing Transaction Entity value defaults from the PTE that created the modifier. ‡ Shareable box: Indicates if the modifier is shared or not. This field cannot be updated. If nonshareable (the default). free goods. then the modifier is considered a manual modifier and the adjustment must be applied manually rather than automatically.

‡ Line: If the line is eligible to receive the modifier. ‡ Group of Lines: If the pricing request is eligible to receive the modifier. ‡ Price Break Header: Applies a variable discount or surcharge price adjustment to a pricing request based meeting the condition of a break type. ‡ Other Item Discount: Gives a price adjustment or benefit to a specified item on an order when the customer orders one or more other items on the same order.Modifier No field is populated with a default modifier number which identifies the modifier line and is unique. Modifier Line Types: ‡ Discount: Creates a negative price adjustment such as a 10% discount. and payment terms with typically more favorable charges. ‡ Coupon Issue: Issues a coupon on one order that the customer can redeem for a price adjustment or benefit on a later order. ‡ Item Upgrade: Replaces a specific item ordered with another item for the same price. You can use both point and range type breaks. ‡ Freight/Special Charge: Applies a freight charge. ‡ Term Substitution: Replaces freight charges. shipping charges. the pricing engine applies the modifier at the line level. Modifier application Level: ‡ Order: If the line is eligible to receive the modifier. ‡ Promotional Goods: Adds a new item with a price adjustment or benefit when the customer orders one or more other items on the same order. the pricing engine applies the modifier at the order level. . ‡ Surcharge: Creates a positive price adjustment. the pricing engine considers the item quantity or item amount consumed for a group of order lines.

Select either Point or Recurring as the Break Type. So if a sales order is created with order quantity 20. where Value from =10 application method =PERCENT and value=2. Use All Items to define a modifier that applies to all items in your product hierarchy. The Precedence value will default based on the Product Attribute Value. Select an Operator value such as = or BETWEEN To create greater than and less than conditions. If RECURRING is selected. Item Category. then 4%discount is applied . If you select ALL_ITEMS for Product Attribute. the Product Attribute Value is ALL. If point break is chosen then the modifier line will be applied only once. then it will be accumulated as« Recurring break type with the following values. Select a Product Attribute Value. or All Items.Select a Product Attribute value such as Item Number. leave From Value and To Value blank. This value can be updated. as follows: ‡ From Value = 5 and To Value blank creates the condition Value > 5 ‡ From Value blank and To Value = 100 creates the condition Value < 100 ‡ From Value = 5 and To Value = 100 creates the condition Value >= 5 and value <= 100Enter the Value From/To. Enter a Volume Type such as Item Quantity and Item Amount to instruct the pricing engine which item attribute to use when qualifying for a modifier. for example.

to apply a 10% discount.Modifier application methods: ‡ Percent: Creates a percentage price adjustment on each unit based on the percentage entered in the Value field. Accrue: Select Accrue check box to enter accrual information. 4. 3. Expiration Date: Defines when the accrued transactions expire. Have we discussed the Pricing phases and events? . ‡ Amount: Creates a fixed price adjustment on each unit using the amount entered in the Value field.50. Say. Creates a price adjustment for the difference in list price and the new price. the accrual conversion rate is 0. Benefit Qty and Benefit UOM: Enter Benefit Qty and Benefit UOM of the benefit to be accrued. 6. 2. select Percent as the Application Method. The Expiration Period begins when item begins to accrue. Multiple incompatibility groups can be assigned to each pricing phase. Use the benefit columns to define nonmonetary accruals. Accrual: Complete the remaining fields to enter an accrual: 1. 5. if the pricing engine selects more than one eligible price list line in the desired unit of measure. it resolves the incompatibility by picking the price list line having the lowest precedence number. Accrual Redemption Rate: You can enter or modify the redemption rate after the Accrue box is selected. For example. For example. Accrual Conversion Rate: Defines the conversion of the Benefit UOM to the primary currency. if one air mile is 0. ‡ New price: Overrides the selling price of this item and makes the new price defined in the Value field the new selling price. During the phase List Line Base Price.50 currency units. Expiration Period and Period Type: The pricing engine calculates the expiration date. ‡ Lumpsum: Creates a price adjustment for this lump sum amount on the entire line. Assign a pricing phase and then assign an incompatibility group to each modifier line.

Have we discussed the Pricing Formulae yet? QP_LIST_HEADERS_B LIST_HEADER_ID LIST_TYPE_CODE START_DATE_ACTIVE END_DATE_ACTIVE AUTOMATIC_FLAG CURRENCY_CODE ROUNDING_FACTOR SHIP_METHOD_CODE FREIGHT_TERMS_CODE TERMS_ID COMMENTS DISCOUNT_LINES_FLAG GSA_INDICATOR PRORATE_FLAG SOURCE_SYSTEM_CODE QP_LIST_LINES LIST_LINE_ID LIST_HEADER_ID LIST_LINE_TYPE_CODE START_DATE_ACTIVE END_DATE_ACTIVE AUTOMATIC_FLAG MODIFIER_LEVEL_CODE PRICE_BY_FORMULA_ID LIST_PRICE LIST_PRICE_UOM_CODE PRIMARY_UOM_FLAG INVENTORY_ITEM_ID ORGANIZATION_ID QP_PRICING_ATTRIBUTES PRICING_ATTRIBUTE_ID LIST_HEADER_ID LIST_LINE_ID PRICING_PHASE_ID EXCLUDER_FLAG ACCUMULATE_FLAG PRODUCT_ATTRIBUTE_CONTEXT PRODUCT_ATTRIBUTE PRODUCT_ATTR_VALUE PRODUCT_UOM_CODE PRICING_ATTRIBUTE_CONTEXT PRICING_ATTRIBUTE PRICING_ATTR_VALUE_FROM PRICING_ATTR_VALUE_TO .Formula: Optionally. surcharge. or freight charge (a formula can be used with modifier line types of Discount. Surcharge or Price Break Header). select a formula to calculate a discount.

.

A pricing transaction entity (PTE) is defined for a group of Source Applications having various request types. you can define new contexts for the Pricing Context. and product hierarchies Creating new pricing contexts and attributes enables you to create additional user-defined data sources for your pricing actions. For each attribute. Once you define a new context. and new attributes for Pricing and Product contexts. You cannot create new contexts or attributes for the Qualifier context. pricing. . User-entered means that the value is obtained when a user enters the value. you can also create its attributes. Contexts and attributes are used to define customer. Under ORDFUL Pricing transaction entity we have a source application called Adv Pricing having request type as ONT ie. Order management . you can select "User-Entered" as the attribute mapping method to derive the value for the attribute. In Basic Pricing.

Click on Adv Pricing application and view the derivation logic below. else if it is ¶Attribute mapping· then click on the attribute mapping button below to see how the information is derived. ship method.Link attributes for the Qualifier context ¶ADS Order·. If the attribute mapping method is ¶user entered· then the system waits for data to be entered by the user. OE_ORDER_PUB. order source etc.Shipping_method_code . It can be derived from Header or line level.G_Line. Check the user value string ie. We have various info like supplier. as various attributes for this qualifier. Enter the column names in pricing table to which these info are mapped.

. It has various attributes like Name. Let·s see how those LOVs are set up. Customer name is selected from qp_customers_v view for the above customer attribute. it is referring to for validation Eg. ship to. Click on the value_set tbutton o view the table and column. Navigate to the context setup and search a qualifier context say ¶Customer·. sales channel etc.While creating a Price list we are restricted to a LOV for the Pricing or product or qualifier context attribute.

Supplier Context Code Attribute Eg. Order Source Context Code Attribute Eg. ADS_ORDER USER_VALUESET_ID SEEDED_FORMAT_TYPE USER_FORMAT_TYPE REQUIRED_FLAG Context Code Attribute Eg. Shipment Method . CUSTOMER Context Code Eg. Sold To Org Context Code Attribute Eg.QP_PTE_SOURCE_SYSTEMS PTE_SOURCE_SYSTEM_ID PTE_CODE APPLICATION_SHORT_NAME ENABLED_FLAG QP_PRC_CONTEXTS_B PRC_CONTEXT_ID PRC_CONTEXT_CODE PRC_CONTEXT_TYPE SEEDED_FLAG ENABLED_FLAG QP_SEGMENTS_B SEGMENT_ID SEGMENT_CODE PRC_CONTEXT_ID AVAILABILITY_IN_BASIC SEGMENT_MAPPING_COLUMN SEEDED_FLAG Context Type Eg: Qualifier Context APPLICATION_ID SEEDED_PRECEDENCE USER_PRECEDENCE SEEDED_VALUESET_ID Context Code Eg.

QP_PTE_SEGMENTS SEGMENT_PTE_ID SEGMENT_ID PTE_CODE SEGMENT_LEVEL SOURCING_ENABLED SEEDED_SOURCING_METHOD USER_SOURCING_METHOD SOURCING_STATUS LOV_ENABLED LIMITS_ENABLED USED_IN_SETUP QP_PTE_REQUEST_TYPES_B REQUEST_TYPE_CODE PTE_CODE ORDER_LEVEL_GLOBAL_STRUCT LINE_LEVEL_GLOBAL_STRUCT ORDER_LEVEL_VIEW_NAME QP_ATTRIBUTE_SOURCING LINE_LEVEL_VIEW_NAME ATTRIBUTE_SOURCING_ID ENABLED_FLAG SEGMENT_ID REQUEST_TYPE_CODE ATTRIBUTE_SOURCING_LEVEL APPLICATION_ID SEEDED_SOURCING_TYPE USER_SOURCING_TYPE SEEDED_VALUE_STRING USER_VALUE_STRING SEEDED_FLAG ENABLED_FLAG .

QP_PTE_SEGMENTS SEGMENT_PTE_ID SEGMENT_ID PTE_CODE SEGMENT_LEVEL SOURCING_ENABLED SEEDED_SOURCING_METHOD USER_SOURCING_METHOD SOURCING_STATUS LOV_ENABLED LIMITS_ENABLED USED_IN_SETUP QP_SEGMENTS_B SEGMENT_ID SEGMENT_CODE PRC_CONTEXT_ID AVAILABILITY_IN_BASIC SEGMENT_MAPPING_COLUMN SEEDED_FLAG APPLICATION_ID SEEDED_PRECEDENCE USER_PRECEDENCE SEEDED_VALUESET_ID USER_VALUESET_ID SEEDED_FORMAT_TYPE USER_FORMAT_TYPE REQUIRED_FLAG .

.

Events are points in the process flow when the calling application sends a pricing request to the pricing engine (similar to a workflow event). The pricing engine uses the price list and modifiers that are in effect at order entry to meet booking requirements such as credit check. price adjustments. for example. base prices. use the Reprice Line event and insert the Reprice Line workflow activity into the order process workflow to invoke the repricing. or freight charges. if you need to price sales orders at shipment. depends on the pricing phases of the event. For example. The information that the pricing engine returns. promotions. QP_PRICING_PHASES PRICING_PHASE_ID NAME MODIFIER_LEVEL_CODE PHASE_SEQUENCE INCOMPAT_RESOLVE_CODE SEEDED_FLAG FREEZE_OVERRIDE_FLAG USER_FREEZE_OVERRIDE_FLAG USER_INCOMPAT_RESOLVE_CODE LINE_GROUP_EXISTS OID_EXISTS RLTD_EXISTS FREIGHT_EXISTS MANUAL_MODIFIER_FLAG QP_EVENT_PHASES PRICING_EVENT_CODE PRICING_PHASE_ID START_DATE_ACTIVE SEARCH_FLAG SEEDED_FLAG USER_SEARCH_FLAG .

.

‡ Modifier Value: Uses the value that is entered in the Value field of Define Modifier window. the pricing engine evaluates the formula and displays the final list price on the order. Like discount by attaching a formula to a discount line. 2. When the sales order is entered. 3) used in an arithmetic equation such as 1*2. . you can run a concurrent program at any time to calculate the final list price using the formula up front (not wait until order entry time) and also store it in the price list. ‡ Dynamic calculation: The list price resulting from the formula calculation is not calculated or stored anywhere until the sales order is entered with that Price List line item. A formula consists of step numbers (such as 1. A step number such as 1 in the formula expression corresponds to the formula line with the same step number in the Formula Lines region.Formulas can be linked to a price list line or modifier line to: ‡ Create a price from a computation as an alternative to entering prices in a price list. ‡ Price List Line: A formula which has List Price as a component and is attached to a price list line gets the list price from the Value entered in a price list line. ‡ Calculate a price adjustment. Select one of the following Formula Types: ‡ List Price: The price of the item in a specific price list to which you have attached a formula. A formula which has a Modifier Value as a component cannot be attached to a price list line. Enter a Formula expression. ‡ Numeric Constant: Enter the numeric constant in Component. ‡ Static calculation: If the formula is attached to a price list line for static calculation of the final list price.

the date for which the pricing engine is evaluating the formula.‡ Pricing Attribute: Select the Pricing Attribute Context and Pricing Attribute. ‡ p_price_effective_date: Pricing Effective Date. ‡ Function: The Component field displays GET_CUSTOM_PRICE. When you complete your entries for the formula line. The engine passes only the pricing and product Attributes of the price list line to which the formula is attached. ‡ p_list_price: List price on the price list line to which the formula using Get_Custom_Price is attached. type a new name in the Component field. . The step numbers for a formula are available in the GET_CUSTOM_PRICE API. and attribute value records for product and pricing attributes and a column indicating the type (Product Attribute or Pricing Attribute). To create a new factor list. ‡ p_req_line_attrs_tbl: PL/SQL table of records containing context. ‡ Factor List: Select an existing factor list in Component field. May be null. GET_CUSTOM_PRICE parameters are: ‡ p_price_formula_id: Primary key of the formula that uses the Get_Custom_Price function. click Factors to create the factor criteria in the Factors window. You must write the function in this PL/SQL package and it must return a number. attribute.

If you have multiple entries. if you are selling cars. select an Associated Pricing Attribute Context and Associated Pricing Attribute to associate with the base pricing attribute context and base pricing attribute values (to create an AND condition).Let·s enter a factor list and define adjustment factor based on various Pricing context and attributes Click Factors to create factor criteria. In the Associate Pricing Attributes region.8.1 and 3. you could use adjustment factors to adjust the price based on the car options the customer chooses: ‡ If the car options are Standard then the price is multiplied by 1 (factor=1) ‡ If the car options are Business then the price is multiplied by 1. . Select a value for Base Pricing Attribute Context.5 (factor=1.0 years. ‡ If the car is older than 3. the pricing engine chooses one of the entries. For example: ‡ If the car is between 1. the price is multiplied by 0. For example. you probably want to adjust the price further based on the age of the car. An adjustment factor enables you to adjust the price based on the options selected. Select a value for Base Pricing Attribute. Select a comparison Operator and enter the Value From/To. Use the Associate Pricing Attributes region to associate additional contexts with the base context (to create an AND condition where both attributes must be present to qualify).0 years old.5) If the cars you are selling are second hand. the price is multiplied by 0. Enter the Adjustment Factor.6. you must use the same base context in this region (to create an OR condition).

the concurrent program Build Formula Package should be run to generate the formula package.Updating Formula Prices We need to use this process to use static formulas to set list prices. ‡ Static calculation: Prior to order entry. you execute a concurrent process which calculates the list price. and select the specific Pricing Formula. select Update Individual Pricing Formula for Price Lists. you can select from the following calculation methods: ‡ Dynamic calculation: When you enter an order the pricing engine uses the formula to calculate list price. When you attach a formula to a price list line. select Build Formula Package to run the program. For price list lines whose formulas have been added or changed from when they were last updated by this concurrent program. Every time a new formula expression is created. . select New and Modified Lines Only of Price Lists. From the Tools menu.

.

gpr_pricing_attr_tbl(J). gpr_pricing_attr_val_tbl QP_PRICE_LIST_PUB.list_line_id := FND_API.Price_List_Rec_Type. gpr_pricing_attr_tbl(J). pricing_attribute.Price_List_Val_Rec_Type.description := 'Sample price list'.G_OPR_CREATE. gpr_pricing_attr_tbl(J). gpr_msg_count number := 0.G_MISS_NUM. ppr_pricing_attr_val_tbl QP_PRICE_LIST_PUB.put_line('after get price list '). K number := 1. gpr_price_list_line_tbl(K).Price_List_Rec_Type. ppr_qualifiers_val_tbl QP_Qualifier_Rules_Pub.Pricing_Attr_Val_Tbl_Type.Sample script which inserts a Price List with 3 price list lines. */ J := 1.list_line_id := FND_API. gpr_pricing_attr_tbl(J).PRODUCT_UOM_CODE := 'Ea'. ppr_price_list_rec QP_PRICE_LIST_PUB. ppr_pricing_attr_tbl QP_PRICE_LIST_PUB..list_header_id := FND_API. pricing_attr_value_to and comparison_operator_code ( '=' or 'between') and repeat the product_attr_value and its attribute and context for each record. FOR K IN 1. This sample price list does not have any qualifiers or price breaks or non product-information type of pricing attributes.PRICE_LIST_LINE_INDEX := 1.PRODUCT_ATTR_VALUE := '62061'.G_MISS_NUM. gpr_pricing_attr_tbl(J). /* product_attr_value stores inventory item id . gpr_pricing_attr_tbl(J). gpr_price_list_line_val_tbl QP_PRICE_LIST_PUB.PRODUCT_ATTRIBUTE_CONTEXT := 'ITEM'. gpr_pricing_attr_tbl(J). length.Price_List_Line_Tbl_Type. .EXCLUDER_FLAG := 'N'. ppr_price_list_val_rec QP_PRICE_LIST_PUB.pricing_attribute_id := FND_API.Qualifiers_Val_Tbl_Type. gpr_pricing_attr_tbl(J).Qualifiers_Val_Tbl_Type.operation := QP_GLOBALS.currency_code := 'USD'.G_MISS_NUM. ppr_price_list_line_val_tbl QP_PRICE_LIST_PUB. When you have pricing attributes like color. gpr_price_list_line_tbl(K).Price_List_Line_Val_Tbl_Type. gpr_pricing_attr_tbl(J).Price_List_Val_Rec_Type.list_type_code := 'PRL'.Price_List_Line_Val_Tbl_Type.Qualifiers_Tbl_Type.Pricing_Attr_Tbl_Type. gpr_price_list_rec QP_PRICE_LIST_PUB.ATTRIBUTE_GROUPING_NO := 1. ppr_price_list_line_tbl QP_PRICE_LIST_PUB.PRODUCT_ATTRIBUTE := 'PRICING_ATTRIBUTE1'. gpr_pricing_attr_tbl(J). PRICE_LIST_LINE_INDEX is used to link the child (pricing attributes) to the parent(line). gpr_price_list_val_rec QP_PRICE_LIST_PUB. gpr_price_list_rec.product_attribute for Item Number is Pricing_Attribute1 product_attribute_context is ITEM.name := 'Sample1-PL 1024'. gpr_pricing_attr_tbl(J). ppr_qualifiers_tbl QP_Qualifier_Rules_Pub. gpr_pricing_attr_tbl(J). and the product information for each of the lines(Product Information is stored in pricing attributes table in product attribute columns). **************************************************************************** declare gpr_return_status varchar2(1) := NULL.G_MISS_NUM.3 LOOP gpr_price_list_line_tbl(K). /* you can set the currency of price list to whatever. j number := 1. This script must be modified by the user such that the qpr_pricing_attr_ tbl(J). pricing_attr_value_from.G_MISS_NUM.operation := QP_GLOBALS. gpr_pricing_attr_tbl QP_PRICE_LIST_PUB. Each line can have one or more pricing attributes.arithmetic_operator := 'UNIT_PRICE'. gpr_price_list_rec. J := J + 1. gpr_pricing_attr_tbl(J). gpr_price_list_rec. populate the fields pricing_attribute_context. say FRA */ gpr_price_list_rec.Price_List_Line_Tbl_Type. gpr_price_list_line_tbl(K). gpr_price_list_rec.list_line_type_code := 'PLL'.PRODUCT_ATTRIBUTE_CONTEXT := 'ITEM'. gpr_pricing_attr_tbl(J). gpr_msg_data varchar2(2000). gpr_qualifiers_tbl QP_Qualifier_Rules_Pub. /* set the list_header_id to g_miss_num */ gpr_price_list_rec.G_OPR_CREATE. begin --dbms_output.PRODUCT_ATTRIBUTE := 'PRICING_ATTRIBUTE1'.pricing_attribute_id := FND_API.product_attr_value columns (for J = 1 to 3) are populated with 3 different valid inventory_item_id from the instance where this script is run. gpr_price_list_line_tbl QP_PRICE_LIST_PUB. gpr_qualifiers_val_tbl QP_Qualifier_Rules_Pub.Pricing_Attr_Tbl_Type.G_OPR_CREATE.list_line_id := FND_API.operation := QP_GLOBALS.operand := 10. width etc.Pricing_Attr_Val_Tbl_Type. gpr_price_list_line_tbl(K).Qualifiers_Tbl_Type.G_MISS_NUM. END LOOP.

PRODUCT_ATTRIBUTE_CONTEXT := 'ITEM'.operation := QP_GLOBALS. EXCEPTION WHEN FND_API. p_return_values=> FND_API. p_init_msg_list=> FND_API. p_data=> gpr_msg_data ). Price List Setup Application Program Interface 5-218 Oracle Order Management Open Interfaces. --dbms_output. WHEN FND_API. x_PRICE_LIST_LINE_tbl=> ppr_price_list_line_tbl .PRICE_LIST_LINE_INDEX := 2. x_PRICING_ATTR_val_tbl=> ppr_pricing_attr_val_tbl ). --dbms_output.gpr_pricing_attr_tbl(J). p_PRICING_ATTR_tbl=> gpr_pricing_attr_tbl .G_FALSE . end.G_RET_STS_UNEXP_ERROR .G_EXC_UNEXPECTED_ERROR THEN gpr_return_status := FND_API. gpr_pricing_attr_tbl(J). p_commit=> FND_API. p_PRICE_LIST_LINE_tbl=> gpr_price_list_line_tbl .G_RET_STS_SUCCESS THEN RAISE FND_API.G_OPR_CREATE. x_PRICE_LIST_LINE_val_tbl=> ppr_price_list_line_val_tbl .EXCLUDER_FLAG := 'N'. null.EXCLUDER_FLAG := 'N'.PRODUCT_UOM_CODE := 'Ea'. --Get message count and data --dbms_output.put_line('err msg ' || k ||'is: ' || gpr_msg_data). for k in 1 . Rollback. J := J + 1. x_return_status=> gpr_return_status . /* oe_msg_pub.Process_Price_List ( p_api_version_number=> 1 . END IF.put_line('before process price list '). gpr_pricing_attr_tbl(J).ATTRIBUTE_GROUPING_NO := 1.put_line(' msg count 2 is : ' || gpr_msg_count). gpr_msg_count loop gpr_msg_data := oe_msg_pub.Count_And_Get ( p_count=> gpr_msg_count . gpr_pricing_attr_tbl(J). . Rollback.ATTRIBUTE_GROUPING_NO := 1. */ --Get message count and data --dbms_output.pricing_attribute_id := FND_API. gpr_pricing_attr_tbl(J).put_line('err msg 1 is : ' || gpr_msg_data). x_PRICE_LIST_rec=> ppr_price_list_rec . gpr_pricing_attr_tbl(J). gpr_pricing_attr_tbl(J). x_PRICE_LIST_val_rec=> ppr_price_list_val_rec . gpr_pricing_attr_tbl(J).list_line_id := FND_API. gpr_pricing_attr_tbl(J). gpr_pricing_attr_tbl(J). & Electronic Messaging Guide WHEN OTHERS THEN gpr_return_status := FND_API. IF gpr_return_status <> FND_API.G_MISS_NUM. gpr_pricing_attr_tbl(J). gpr_pricing_attr_tbl(J). Rollback. --dbms_output. gpr_pricing_attr_tbl(J). / commit. API.get( p_msg_index => k.G_OPR_CREATE. p_PRICE_LIST_rec=> gpr_price_list_rec .put_line('after process price list ').G_FALSE . QP_PRICE_LIST_PUB. x_QUALIFIERS_tbl=> ppr_qualifiers_tbl .put_line('err msg 3 is : ' || gpr_msg_data).G_EXC_ERROR THEN gpr_return_status := FND_API.G_RET_STS_ERROR. --Get message count and data --dbms_output. p_encoded => 'F' ). x_msg_count=> gpr_msg_count . end loop. gpr_pricing_attr_tbl(J).PRICE_LIST_LINE_INDEX := 3.G_FALSE .operation := QP_GLOBALS.PRODUCT_ATTR_VALUE := '62081'. x_PRICING_ATTR_tbl=> ppr_pricing_attr_tbl . x_QUALIFIERS_val_tbl=> ppr_qualifiers_val_tbl . x_msg_data=> gpr_msg_data .G_RET_STS_UNEXP_ERROR .PRODUCT_UOM_CODE := 'Ea'.PRODUCT_ATTR_VALUE := '62083'. gpr_pricing_attr_tbl(J).PRODUCT_ATTRIBUTE := 'PRICING_ATTRIBUTE1'.G_MISS_NUM..G_EXC_UNEXPECTED_ERROR. gpr_pricing_attr_tbl(J). exit.

gpr_formula_lines_tbl(K). ppr_formula_rec QP_PRICE_FORMULA_PUB.name := 'Sample1-PF 1025-1'.Formula_Lines_Val_Tbl_Type. gpr_formula_rec.G_MISS_NUM. /* Create price formula line 1 of type 'List Price'(LP) */ K := 1.Formula_Lines_Tbl_Type.Corresponds to the Pricing Attribute 'Insurance Cost' gpr_formula_lines_tbl(K).Formula_Rec_Type.price_formula_line_id := FND_API.operation := QP_GLOBALS. gpr_formula_lines_tbl(K).pricing_attribute := 'PRICING_ATTRIBUTE12'.price_formula_id := FND_API.price_list_line_id For more information. ppr_formula_lines_tbl QP_PRICE_FORMULA_PUB. gpr_formula_lines_tbl(K).This sample script inserts a Pricing Formula with seven different pricing formula lines to demonstrate the six formula line types supported in Advanced Pricing formulas: * Price List Line (PLL) * Function (FUNC) * List Price(LP) * Numeric Constant (NUM) * Pricing Attribute (PRA) * Factor List(ML) * Modifier Value (MV) Oracle Basic Pricing supports three formula line types: * Pricing Attribute (PRA) * Numeric Constant (NUM) * Factor List (ML) A pricing formula header record and seven price formula lines are created. /* Create price formula line 2 of type 'Price List Line'(PLL) */ K := K + 1.Formula_Val_Rec_Type.G_OPR_CREATE. gpr_formula_rec.price_modifier_list_id and the following column is populated with a valid list_line_id of an existing Price List Line from the instance where this script is run: gpr_formula_lines_tbl(K). gpr_formula_lines_tbl(K).price_list_line_id := 293195.price_formula_id := FND_API.G_MISS_NUM. /* Create price formula line 3 of type 'Pricing Attribute'(PRA) */ K := K + 1.price_formula_line_id := FND_API. gpr_formula_lines_tbl(K). -.step_number := 1. This script must be modified by the user so that the following column is populated with a valid list_header_id of an existing Factor List: gpr_formula_lines_tbl(K). Seed Data. gpr_formula_rec. gpr_formula_val_rec QP_PRICE_FORMULA_PUB. gpr_formula_lines_tbl(K).G_MISS_NUM. the list_header_id of an existing Factor List is used in this sample script.formula_line_type_code := 'PRA'.operation := QP_GLOBALS. gpr_formula_lines_tbl(K).4)/5+6'. begin /* Set the price_formula_id to g_miss_num to Create the Price Formula Record(Header)*/ gpr_formula_rec.price_formula_id := FND_API.Formula_Lines_Tbl_Type.step_number := 3. gpr_formula_lines_tbl(K).price_formula_id := FND_API.pricing_attribute_context := 'PRICING ATTRIBUTE'. -.Formula_Lines_Val_Tbl_Type. --Every operand must correspond to a step_number in a price formula line.price_formula_line_id := FND_API. K number := 1. ppr_formula_val_rec QP_PRICE_FORMULA_PUB. gpr_formula_lines_tbl(K). gpr_formula_lines_tbl(K).G_MISS_NUM.'Testing 1023'.G_OPR_CREATE. gpr_formula_lines_tbl(K).Corresponds to the list_line_id of the item 'dw01' on the PriceList -.formula_line_type_code := 'LP' gpr_formula_lines_tbl(K). gpr_formula_lines_tbl QP_PRICE_FORMULA_PUB. **************************************************************************** declare gpr_return_status varchar2(1) := NULL.operation := QP_GLOBALS. ppr_formula_lines_val_tbl QP_PRICE_FORMULA_PUB.G_OPR_CREATE.G_MISS_NUM. gpr_formula_lines_tbl(K).G_MISS_NUM. gpr_msg_data varchar2(2000).operation := QP_GLOBALS. gpr_formula_rec.step_number := 2.formula_line_type_code := 'PLL'. gpr_formula_lines_val_tbl QP_PRICE_FORMULA_PUB.formula := 'SQRT(1)*2-NVL(3. gpr_formula_lines_tbl(K). gpr_msg_count number := 0. For the formula line of type Factor List. /* Create price formula line 4 of type 'Numeric Constant'(NUM) */ K := K + 1.G_MISS_NUM. gpr_formula_lines_tbl(K).Formula_Val_Rec_Type. gpr_formula_lines_tbl(K).G_OPR_CREATE.G_MISS_NUM.price_formula_line_id := FND_API. see: Oracle Advanced Pricing User's Guide. gpr_formula_lines_tbl(K).description := 'Sample Pricing Formula'. gpr_formula_lines_tbl(K).Formula_Rec_Type.G_MISS_NUM.price_formula_id := FND_API. . gpr_formula_rec QP_PRICE_FORMULA_PUB. gpr_formula_lines_tbl(K). --Any valid Mathematical Expression including built-in database functions.

x_FORMULA_LINES_val_tbl => ppr_formula_lines_val_tbl )..G_MISS_NUM. end.operation := QP_GLOBALS. Rollback.G_OPR_CREATE.formula_line_type_code := 'MV' gpr_formula_lines_tbl(K). x_FORMULA_rec => ppr_formula_rec . gpr_formula_lines_tbl(K).G_MISS_NUM. gpr_formula_lines_tbl(K). gpr_formula_lines_tbl(K).operation := QP_GLOBALS. end loop. Rollback.step_number := 5. x_msg_data => gpr_msg_data . gpr_formula_lines_tbl(K).step_number := 4. gpr_formula_lines_tbl(K). Rollback.G_OPR_CREATE.formula_line_type_code := 'NUM'.gpr_formula_lines_tbl(K).G_MISS_NUM. p_return_values => FND_API.put_line('after process price formula '). gpr_formula_lines_tbl(K).G_MISS_NUM. gpr_formula_lines_tbl(K).Count_And_Get ( p_countgpr_msg_count .to return a numeric value and also set the profile option -.G_FALSE .'ABC' gpr_formula_lines_tbl(K). --Get message count and data --dbms_output. null.G_OPR_CREATE. gpr_formula_lines_tbl(K).formula_line_type_code := 'ML'. x_FORMULA_val_rec => ppr_formula_val_rec . END IF --dbms_output. / Commit. QP_PRICE_FORMULA_PUB.G_RET_STS_UNEXP_ERROR .step_number := 7. WHEN FND_API.Get_Custom_Price function -. -.Process_Price_Formula ( p_api_version_number => 1 . gpr_formula_lines_tbl(K). /* Create price formula line 5 of type 'Function'(FUNC) */ -. x_FORMULA_LINES_tbl => ppr_formula_lines_tbl . gpr_formula_lines_tbl(K).get( p_msg_index => k.price_formula_line_id := FND_API. p_encoded => 'F' ). p_commit => FND_API. gpr_msg_count loop gpr_msg_data := oe_msg_pub. --dbms_output.price_formula_line_id := FND_API. /* Create price formula line 6 of type 'Factor List'(ML) */ K := K + 1.Corresponds to the list_header_id of an existing Factor List -.price_modifier_list_id := 50174.put_line('err msg 3 is : ' || gpr_msg_data).price_formula_id := FND_API. x_return_status => gpr_return_status .formula_line_type_code := 'FUNC'. .operation := QP_GLOBALS. p_data => gpr_msg_data ). K := K + 1. gpr_formula_lines_tbl(K). p_FORMULA_rec => gpr_formula_rec .G_FALSE .price_formula_line_id:= FND_API.put_line('err msg ' || k ||'is: ' || gpr_msg_data). /* Create price formula line 7 of type 'Modifier Value'(MV) */ K := K + 1. gpr_formula_lines_tbl(K). gpr_formula_lines_tbl(K).G_RET_STS_SUCCESS THEN RAISE FND_API. --Get message count and data --dbms_output. gpr_formula_lines_tbl(K).put_line(' msg count 2 is : ' || gpr_msg_count). /* oe_msg_pub.put_line('before process price formula ').G_OPR_CREATE.G_MISS_NUM.put_line('err msg 1 is : ' || gpr_msg_data).G_FALSE . gpr_formula_lines_tbl(K). */ --Get message count and data --dbms_output. EXCEPTION WHEN FND_API.price_formula_id := FND_API. for k in 1 .G_EXC_UNEXPECTED_ERROR.G_EXC_ERROR THEN gpr_return_status := FND_API.successfully use this formula line type (FUNC) in their formulas.price_formula_id := FND_API. p_init_msg_list => FND_API. WHEN OTHERS THEN gpr_return_status := FND_API.G_RET_STS_ERROR. IF gpr_return_status <> FND_API. gpr_formula_lines_tbl(K).operation := QP_GLOBALS.G_MISS_NUM.G_RET_STS_UNEXP_ERROR .step_number := 6. p_FORMULA_LINES_tbl => gpr_formula_lines_tbl .G_EXC_UNEXPECTED_ERROR THEN gpr_return_status := FND_API.numeric_constant := 1000.User must customize the QP_CUSTOM.'QP: Get Custom Price Customized' to 'Yes' at the Site Level to -. x_msg_count => gpr_msg_count . --dbms_output. gpr_formula_lines_tbl(K).

Sign up to vote on this title
UsefulNot useful