Oracle Advance Pricing: Pricing Security

Price is the fee companies charge customer for the goods/services they sell/provide. Price would cover the cost incurred in manufacturing the finished item or in purchasing the item plus associated overhead costs and profit margin. Generally a price list would be created for all the items a company sells to its customers which would be revised periodically.Companies can have different prices for different Customers. Prices might differ based on the volume of purchase, if customer is a regular customer, item is a seasonal one, promotional sale etc. Oracle Advanced Pricing module helps in achieving the different Pricing functionality. In this Post we will discuss the Pricing Security feature of Oracle Advance Pricing. We do have cases in which one of the divison does not want to show its price list to other divisions. In such cases pricing security is the feature that is used.

Pricing Security
Pricing security enables you to restrict pricing activities such as updating and viewing pricing entities to users who are granted specific access privileges. Pricing entities include price lists, pricing agreements, and modifiers.
Pricing security can be set up and maintained in the HTML user interface by a user who is assigned the Oracle Pricing Administrator responsibility. The Oracle Pricing Administrator has the authorization to access and update all pricing entities for all functional users.
With pricing security, you can implement a higher level of control by:
• Assigning pricing entities to operating units: A pricing entity can be assigned ownership to a specific operating unit. You can restrict usage to one operating unit or by all operating units.
• Assigning privileges that control which grantee (Global, Operating Unit, Responsibility, or User level) can view or maintain the specified entity: You can use security privileges to control users’ access to pricing entities in the following ways:
 Grant view-only or maintain access privileges to functional users at the Global, Operating Unit, Responsibility, or User level.
 Assign or reassign Operating Unit ownership to price lists and modifiers and control which operating units can use them for pricing transactions.
• Create entity sets (a set consists of grouped pricing entities) and assign access privileges to the entire set. The Entity Set function is available only with license to Advanced Pricing.
• Setting default rules for security access for new pricing entities.
Warning: Before turning on pricing security, you must create privileges for existing pricing entities.
When Pricing Security is Off
• For a modifier or price list, if the PTE and source system are the same as those set in the user’s profile options, QP: Pricing Transaction Entity and QP: Source System Code, then the Update icon will be enabled and the Details icon will be disabled.
• For a modifier or price list, if the PTE and source system are different from those set in the user’s profile options, QP: Pricing Transaction Entity and QP: Source System Code, the Update icon will be disabled and the Details icon will be enabled.
• When the source systems are different (and the PTE is the same as in the QP: Pricing Transaction Entity profile option), you can view only the price lists and modifiers for the PTE specified in the profile option.
When Pricing Security is On
• For a modifier or price list with Maintain and View privileges, if the PTE and source system are the same as those in the user’s profile options, QP: Pricing Transaction Entity and QP: Source System Code, then the Update icon will be enabled and the Details icon will be disabled.
• For a modifier or price list with Maintain and View privileges, if the PTE and source systems are different from those in the user’s profile options, QP: Pricing Transaction Entity and QP: Source System Code, then the Update icon will be disabled and the Details icon will be enabled. This condition occurs when the same PTE is defined for both the user’s profile option, QP: Pricing Transaction Entity, and the modifier or price list, but the source systems are different. The behavior is the same in the forms-based UI.
• If the modifier or price list has View-privileges only, the Update icon will be disabled and the Details icon will be enabled, regardless of the PTE and source system for which the modifier or price list belongs.
Setup Steps for Implementing Pricing Security
After upgrading to pricing security, pricing security is not switched on automatically. Pricing users with functional access can still fully view and maintain existing price lists and modifiers as before the upgrade.
Before turning security on, following setups steps should be reviewed and completed for implementing pricing security, otherwise, pricing users may be unable to query any price lists or modifiers in the pricing windows. After security setup have been completed the concurrent program QP: Security Control with Views Conversion needs to be run to turn on pricing security.
Note: The profile option QP: Security Control (read-only) displays the current setting of the security option for entire installation (either on or off). Oracle Pricing Administrator responsibility needs to be assigned to set up and maintain the pricing security features for all functional pricing users.
Step 1: Map security access requirements
Identify and map all price lists, modifiers, and agreement price lists to:
• Operating units that should own and maintain them.
• The users in those operating units who require View-Only or Maintain access (view and update) to pricing entities.
• Operating units that use them when pricing transactions.
Step 2: Assign ownership of pricing entities (Entity Usage page)
The next step is to assign preexisting price lists and modifiers to an operating unit. Use Global Usage settings to restrict the entity to a specific operating unit or make it available across all operating units.
Step 3: Create privileges (Privileges page)
The next step is to create access privileges for all users in all operating units. You can assign view or maintain access to a pricing entity. Optionally, you may want to create entity sets that enable you to group multiple entities of the same entity type, and then grant access to the entity set. For example, you may want to create a set called Summer Set that contains all active modifiers with Summer Promotion in the modifier name. Then you can assign privileges to the entity set rather than to each entity separately.
Note: You must have a license for Advanced Pricing to use entity sets.
Step 4: Set security profile options
Use the following security profile options to set the default security privileges for pricing entities that are newly-created:
• QP: Security Default ViewOnly Privilege: Sets the default Viewing privileges for newly-created pricing entities.
• QP: Security Default Maintain Privilege: Sets the default Maintain privileges for newly-created pricing entities.
• QP: Security Control (read-only): This profile option displays the current setting of the security option for your entire installation (either on or off). This profile option value cannot be directly updated – only the concurrent program QP: Security Control with Views Conversion can turn pricing security on and off.
These profile options are delivered in default settings that maintain the existing functional security features of Oracle Pricing. Before you can change these profile settings, the Oracle Pricing Administrator must map the complete security access requirements for each pricing entity. No security profile option should be changed until these steps have been completed.
Step 5: Turn on pricing security
To activate pricing security, set the concurrent program QP: Security Control with Views Conversion to ON. This is the “switch” that turns security on or off for your installation. Before setting the program to ON, ensure you have completed all the preceding implementation steps.

Thanks for reading this article.

Oracle PLM Item Export Run-time error ‘1004’ (WebADI Error)

MDM team on day to day basis needs to export ICC, Item data to Excel, do updates and then upload back to applications. But many a times exporting to excel via WebADI becomes challenge and causes many errors, one of the error and resolution is explained below:

Reason for this error while exporting data:
In the Excel macro security area, Visual Basic Project is not selected as a trusted source.

In Excel 2003, go to “Tools” > “Macro” > “Security” and select the “Trusted Sources” tab. Check the box next to “Trust access to Visual Basic Project”.
(Note: The box for “Trust all installed add-ins and templates” should also be checked.)
In Excel 2007, use the following navigation:
• Click on the Office button in the upper left corner
• Click on the Excel Options button
• On the left, click on the Trust Center
• Click on the Trust Center Settings button
• On the left, click on Macro Settings
• Click on “Trust access to the VBA project object model”


Introduction – Gaurav Upmanyu – Oracle R12 – Supply Chain

Hi Readers,

Here I like to introduce to our NEW expert and contributor in Supply Chain Area.

Gaurav is Oracle SCM Functional Consultant with expertise in Order to Cash, Configure to Order and Procure to Pay business transactions with experience in Manufacturing, Trading, Construction and Oil & Gas companies.

He is having functional and technical expertise and available and open to help you out. Be free to ask your questions or queries.

thanks –


Order to Cash Technical Flow

  1. Order Entry
    This is first stage, When the order is entered in the system, it creates a record in order headers and Order Lines table.

    * Enter header details: Once you enter details on the order header and save it or move it to lines, record goes to one table oe_order_headers_all flow_status_code = ENTERED, booked_flag = N), Primary key=HEADER_ID

    o No record exist in any other table for this order till now.

    * Enter Line details for this order: Enter different item numbers, quantity and other details in line tab. When the record gets saved, it goes to one table. Order header details will be linked with line details by order HEADER_ID. oe_order_lines_all (flow_status_code = ENTERED, booked_flag = N, open_flag = Y) Primary key= LINE_ID

    2.Order Booking
    This is next stage, when Order is booked then the Flow status changed from Entered to Booked. At this stage, these below table get affected.

    * oe_order_headers_alL
    * oe_order_lines_all
    * wsh_delivery_details
    * wsh_delivery_assignments

    *In shipping transaction form order status remains “Ready to Release”.

    At the same time, Demand interface program runs in background And insert into inventory tables mtl_demand, here LINE_ID come as a reference in DEMAND_SOURCE_LINE

    3. Reservation
    This step is required for doing reservations SCHEDULE ORDER PROGRAM runs in the background and quantities are reserved. Once this program get successfully get completed, the mtl_demand and mtl_reservations table get updated. LINE_ID gets updated in DEMAND_SOURCE_LINE_ID in both the tables.

    4. Pick Release
    Pick Release is the process of putting reservation on on-hand quantity available in the inventory and pick them for particular sales order.

    Pick release can be done from ‘Release Sales Order’ form or ‘Pick release SRS’ program can be scheduled in background. In both of these cases all lines of the order gets pick released depending on the Picking rule used. If specific line/s needs to be pick release it can be done from ‘Shipping Transaction form. For this case Pick Release is done from ‘Release Sales Order’ form with Pick Confirm=NO.
    Once pick release is done these are the tables get affected:

    * If step 3 is not done then MTL_RESERVATIONS gets updated now.
    * wsh_new_deliveries
    * wsh_delivery_assignments
    * wsh_delivery_details
    * (move order tables. Here request is generated to move item from Source (RM or FG) sub-inventory to staging sub-inventory)
    * Mtl_material_transactions_temp

    *In shipping transaction form order status remains “Released to Warehouse” and all the material still remains in source sub-inventory. We need to do Move Order Transaction for this order. Till this no material transaction has been posted to MTL_MATERIAL_TRANSACTIONS

    5.Pick Confirm/ Move Order Transaction

    Items are transferred from source sub-inventory to staging Sub-inventory. Here material transaction occurs.

    Order line status becomes ‘Picked’ on Sales Order and ‘Staged/Pick Confirmed’ on Shipping Transaction Form.

    * oe_order_lines_all
    * mtl_transaction_accounts
    * wsh_delivery_details
    * wsh_delivery_assignments

    * This step can be eliminated if we set Pick Confirm=YES at the time of Pick Release

    6.Ship Confirm
    Here ship confirm interface program runs in background. Data removed from wsh_new_deliveries.

    The items on the delivery gets shipped to customer at this stage.

    * oe_order_lines_all
    * wsh_delivery_details
    * mtl_transaction_interface
    * mtl_material_TRANSACTIONS
    * mtl_transaction_accounts
    * Data deleted from mtl_demand, MTL_reservations
    * Item deducted from MTL_ONHAND_QUANTITIES

    7.Enter Invoice

    After shipping the order the order lines gets eligible to get transfered to RA_INTERFACE_LINES_ALL. Workflow background engine picks those records and post it to RA_INTERFACE_LINES_ALL. This is also called Receivables interface, that mean information moved to accounting area for invoicing details. Invoicing workflow activity transfers shipped item information to Oracle Receivables. At the same time records also goes in the table RA_INTERFACE_SALESCREDITS_ALL which hold details of sales credit for the particular order.

    ra_interface_lines_all (interface table into which the data is transferred from order management) Then Autoinvoice program imports data from this table which get affected into this stage are receivables base table. At the same time records goes in


    8.Complete Line
    In this stage order line level table get updated with Flow status and open flag.
    oe_order_lines_all (flow_status_code ‘shipped’, open_flag “N”)

    9.Close Order
    This is last step of Order Processing. In this stage only oe_order_lines_all table get updated. These are the table get affected in this step.