Troubleshoot Your Pricing Setups

Troubleshoot problems you encounter that involve pricing.

Various Lists

Trouble

Shoot

I encounter an error when I create a sales order in the Order Management work area.

A matching price list cannot be found for this transaction for the pricing strategy

This problem might happen when I set up more than one business unit, I set up a price list for each unit, and the error only happens for one of the units.

You might not have assigned the correct access set to the price list.

Assume you created price list m for business unit n, price list y for business unit x, and the problem happens only when you create a sales order that references business unit x.

  1. Go to the Pricing Administration work area.

  2. Click Tasks > Manage Price Lists.

  3. Search for, then open price list y for editing.

  4. Click Access Sets.

  5. Add the Common access set.

I add an item to a cost list and click Save. I add the item on the catalog line in Order Management, then click the price on the catalog line, but the price breakdown doesn't contain any text or values.

If you add an item to the cost list but don't create a charge for it, pricing will fail.

Make sure you click Create Cost Charge, set up the charge, then click Save when you add the item to the cost list on the Cost List page in Pricing Administration.

I create a sales order for customer Computer Service and Rentals in the Order Management work area, add item AS54888 on the order line, click Submit, then an error displays.

The application can't find a matching price list for this transaction for pricing strategy Corporate Pricing Strategy.

Its possible you didn't add the item to the price list. For details, see How Profiles, Segments, and Strategies Work Together.

Try this.

  1. Examine the profile.

    • In the Pricing Administration work area, click Tasks > Manager Customer Pricing Profiles.

    • On the Manager Customer Pricing Profiles page, search for customer Computer Service and Rentals.

    • In the search results, notice the value.

      Customer Name

      Customer Value

      Computer Service and Rentals

      Very High

  2. Examine the segment.

    • Click Tasks > Manage Pricing Segments.

    • On the Manage Pricing Segments page, notice the values.

      Pricing Segment

      Customer Value

      High Value

      Very High

      In this example, notice Pricing assigns the High Value segment to each customer that has a Very High value. Computer Service and Rentals has a Very High value, so Pricing places Computer Service and Rentals in the High Value segment.

  3. Examine the strategy assignment.

    • Click Tasks > Manage Pricing Strategy Assignments.

    • On the Manage Pricing Strategy Assignments page, on the top part of the page, click the row that includes Header in the Assignment Level attribute, then notice the values that display in the matrix.

      Pricing Strategy

      Pricing Segment

      Corporate Pricing Strategy

      High Value

      In this example, notice Pricing assigns the Corporate Pricing Strategy to the High Value segment. In the previous step, you determined Pricing places Computer Service and Rentals in the High Value segment, so Pricing uses the Corporate Pricing Strategy for Computer Service and Rentals.

  4. Examine the strategy.

    • Click Tasks > Manage Pricing Strategies.

    • On the Manage Pricing Strategies page, search the Name attribute for Corporate Pricing Strategy.

    • In the search results, click Corporate Pricing Strategy.

    • Click Price Lists, then, in the Segment Price Lists area, notice you assigned one price list to the strategy.

      Name

      Currency

      USD Price List

      USD

      At this point, you have confirmed that the profile, segment, strategy assignment, and strategy result in using the USD Price List for customer Computer Service and Rentals. So, its very likely you didn't add the AS54888 item to the price list, and that's what's causing the error.

  5. Examine the price list.

    • In the Name column, click USD Price List.

    • On the Edit Price List page, in the Items area, search the Item attribute for AS54888.

    • The search likely doesn't return a result, so, in the search results, click Actions > Add Row, then add the AS54888.

I create a sales order in the Order Management work area, add an order line, but the currency on the order line defaults to a value I didn't expect.

Assume you used the Pricing Administration work area.

  • Created a price list named RMB Price List, set the currency for the price list to RMB, then added the AS54600 item to it.

  • Added the RMB Price List to the Corporate Pricing Strategy.

    For details, see Use Different Currencies for the Same Customer.

Next, in the Order Management work area, you add the AS54600 to an order line. The currency on the order line defaults to USD. You expect it to default to RMB.

Its possible you didn't set up the default currency or currency conversion correctly.

  1. Identify your strategy.

    • Make sure you have the privileges that you need to manage sales orders.

    • Go to the Order Management work area, open your sales order, set the Customer attribute, then click Actions > View Pricing Strategy and Segment.

    • Copy the strategy name, such as Corporate Pricing Strategy, to your clipboard.

    • Sign out of Order Management.

  2. Examine your set up.

    • Make sure you have the privileges that you need to administer pricing.

    • Go to the Pricing Administration work area.

    • In the Pricing Administration work area, click Tasks > Manage Pricing Strategies.

    • On the Manage Pricing Strategies page, search for, then open Corporate Pricing Strategy.

    • On the Edit Pricing Strategy page, notice the value for the Default Currency attribute.

      In this example, the order line defaults to USD, so its likely the Default Currency attribute contains USD. This set up is ok if you plan to use this strategy primarily for order lines that require USD.

    • Click Currency Conversion Lists, then examine the list.

  3. Fix your set up.

    • Create a currency conversion list that converts USD to RMB. For details, see Manage Currency Conversion Lists.

    • Add the currency conversion list to your pricing strategy.

Pricing Rules

  • Make sure you add the list that contains the pricing rule to a pricing strategy.

  • Make sure you approve the list. Click Approve on the page that you use to create the list so you can add it to a pricing strategy and so the pricing algorithm can use it. Pricing displays Approve only if you sign in with pricing privileges, and only if you haven't already approved the list.

  • Make sure the transaction happens during the time frame that you specify when you set the start date and end date for the list.

Price Breakdown Doesn't Display a Value

I set up a discount rule, create a new sales order and add an item to it, but one of the lines in the price breakdown doesn't display a value until I click Save or Submit. I don't want to save or submit the order yet because I am providing a quote to my customer.

Try this.

  1. Go to Pricing Administration.

  2. Create a sand box. For details, see Create a Sandbox So You Can Edit Service Mappings.

  3. Click Tasks > Manage Service Mappings.

  4. Search for and open the service mapping you use with your rule, such as the Sales mapping.

  5. Click Sources.

  6. Map your attribute.

    Assume you use the RoundingBillToPartyId attribute in your discount rule.

    • In the Sources list, click OrderCatalogLine.

    • In the Entity Mapping list, click Header.

    • In the Attribute Mappings list, click Actions > Add, then map the RoundingBillToPartyId attribute to the PartyId view object attribute.

  7. Repeat step 5, but map RoundingBillToPartyId to PartyId in the OrderLine source.

Note

  • Examine the predefined mapping of RoundingBillToPartyId to PartyId in the Header entity of the OrderHeader source. The OrderHeader source provides pricing when you reprice or save the sales order.

  • The OrderCatalogLine source provides pricing on the catalog line when you search.

  • The OrderLine source provides pricing when you add an item to the sales order.

  • OrderCatalogLine and OrderLine don't come predefined with the mapping. You must add whatever attributes you use with your rule to OrderCatalogLine and OrderLine.

Service Mappings

Trouble

Shoot

In the Pricing Administration work area, I click Tasks > Manage Service Mappings, open my service mapping for editing, then click Sources. But I can't map an attribute because the Add Row action on the Attribute Mappings tab is grey and not active.

Here are some solutions you can try.

  • Make sure you have the privileges that you need to administer pricing. If you don't have these privileges, there are many actions that you can't do.

  • If you opt into the Unified Sandbox during set up, then you must create and active it. For details, see Create a Sandbox So You Can Edit Service Mappings.

I set up a matrix class or algorithm variable and notice that the list of values for the Service doesn't contain any values, or doesn't contain the entity I set up in the service mapping.

Remove any values you entered in the Alias of an entity.

I encounter an error that's similar to this one.

The definition of inherited attribute LineItemRating_Custom of entity Line in the service mapping isn't valid.

In this example, the data type for LineItemRating_Custom is probably different across service mappings. For example, you might have set it up as a String in the Sales service mapping and as a Decimal in the MaterialTransfer service mapping.

Make sure you use the same data type for your custom attribute in the Sales service mapping and in the MaterialTransfer service mapping.

The list of values for the Join Entity is empty.

Refresh the row. Click the next row in the list of entities, then click the row where the Join Entity is empty.

If the problem persists, make sure you correctly set up your attribute. For example, make sure it doesn't contain any typographical errors.

The Save action is disabled.

Do.

  • Cancel your changes.

  • Save changes frequently, such as after you set up each attribute.

  • Redo your set up on the entity or attribute.

Pricing doesn't save my changes.

Do.

  • Use the View Source XML action to verify your changes and make sure they're what you expect.

  • Create a new Test for your pricing algorithm. Verify that the example PriceRequest payload includes the changes you expect.

  • If you modify a source mapping, then create or reprice a sales order and make sure it doesn't contain any errors.

I move my service mappings from my test environment to my production environment, but production doesn't include my set up.

In your test environment, on the Manage Service Mappings page, click Actions > View Source XML, then verify the XML includes your changes and that the changes are what you expect. In particular, examine your _Custom objects, make sure they exist, and you set them up correctly.

Do it again in your production environment, and make sure the set up is the same in test and production.

I encounter an incident error when creating or pricing a sales order.

Do.

  • Examine recent changes you made to your service mappings. Make sure they're correct.

  • If necessary, remove the source map, set it up again, and retry the flow.

  • Make sure View Object Name and View Object Attribute in your source mapping don't contain typographical errors.

  • Use Auto Suggest when you set View Object Name to make sure you set a value that doesn't contain typographical errors.

The attributes I set up don't match their intended use.

Examine the descriptions for the attributes and make sure you're using them correctly. Go to SOAP Web Services for Oracle SCM Cloud, expand Price Request Service, then click Price Sales Transaction.

Pricing Algorithms

You might encounter one of these errors when you test your pricing algorithm.

Trouble

Shoot

I encounter an error message.

An application error occurred. See the incident log for details.

I encounter a java.math.BigDecimal exception.

This error typically happens when Pricing can't process the price override.

Add a check mark to the Allow Manual Adjustment option in the Price List Charge area of the price list.

If caching is.

  • Turned off. Restart your test.

  • Turned on. Wait 30 minutes, and then restart your test.

I encounter an error message.

Unable to parse the variable[PriceRequest] using the service definition [Sales.PriceRequestInternal]. Please check the variable value or service schema.

This error typically indicates that you didn't format the XML syntax in the test case input correctly.

Use an XML editor to make sure you format the XML correctly.

I encounter an error message.

Failed to get data for Service Parameter Mapping "Sales" Source "Orderheader" Service "PriceSalesTransaction". Caused by failing to process entity "LinePrcOverrideEFF_Custom".

This error happens because the Weblogic Server doesn't include the service data object, the entities, or the attributes that you added to the PriceSalesTransactions service.

Restart each OrderOrchestration Weblogic Server (WLS) that you use in your test.

I encounter an error message.

Another user changed the row with primary key oracle.jbo.Key[300100078134872]

This error might happen when you modify a pricing algorithm, save your changes, and then immediately publish the pricing algorithm.

Try one of these solutions, then publish again.

  • On the Manage Algorithms page, enter %Custom% in the Query by Example to refresh the list of algorithms.

  • Sign out of Pricing, and then sign back in.

I encounter one of these errors when I click Run Test.

  • java.lang.NullPointerException

  • Attempt to access dead entity in TestcaselOEO, key=oracle.jbo.Key[300100078134901]

  • Attribute VariableName in SetTransformAlgorithmAM.TestcaseInput is required.

These errors happen when an unsaved modification exists in the input payload and you click Run Test.

Click OK in the error dialog, cancel your algorithm edit, navigate to the Manage Algorithm page, open the algorithm, make your changes, save them, then click Run Test.

A modification that I make to a pricing rule doesn't seem to go immediately into effect. There's a delay.

I encounter an application error when I import a sales order.

Make sure the EnableCache variable equals False on your pricing algorithm.

EnableCache comes predefined as False. Don't set it to True.

Import

You might encounter one of these errors when you import pricing.

Trouble

Shoot

I encounter an error when I run the Import Price List scheduled process.

java.sql.SQLException: ORA-06533: Subscript beyond count
ORA-06512: at "FUSION.QP_IMPORT_UTIL", line 1681
ORA-06512: at "FUSION.QP_PL_CHARGES_IMPORT", line 1307
ORA-06512: at "FUSION.QP_PL_ITEMS_IMPORT", line 1453
ORA-06512: at line 1

This problem might happen because there's no value set for the Default Price Periodicity UOM Class pricing parameter. To fix it, set a value for the parameter, then redo your import. For details, see Manage Pricing Parameters.

I import a sales order into Order Management but the Your Price attribute on the order line is 0.

This might happen if you import the sales order with the FreezePriceFlag attribute set to True. If FreezePriceFlag is True, then Pricing doesn't calculate price for the order line. Instead, it copies attribute values from your import payload, such as from the Extended Amount attribute on the DOO_ORDER_LINES_ALL_INT worksheet when you use file-based data import.

Make sure your import payload has values in the attributes that Pricing needs to set price when you freeze pricing. For details, see Freeze Price on Sales Orders and Import Price Lists.

I create an order revision, enable the Freeze Pricing and Shipping Charges option on it, then click Submit. At some later time, I copy the order, add an order line to the copy, but then encounter an error when I click Submit.

The order was not priced because the product charge for the item does not contain a value. Include a value, and then reprice the order.

You can't use the Order Management work area to add the line because you froze pricing when you revised the original order, but you can import a line through order import. If you decide to import, make sure your import payload has the pricing details that Pricing needs to price the line.

You can freeze price when you copy a sales order. For details, see Copy Sales Orders.

Runtime

Troubleshoot problems that happen in your runtime environment.

Problems with Pricing Set Ups That Have Expired

Trouble

Shoot

I create and submit a sales order in the Order Management work area on March 1, 2021. The next day, on March 2, 2021, I revise the sales order and submit it, but encounter an error.

Order Revision Fails With: An Application Error Occurred. See the Incident Log for More Information.

Its possible that part of your pricing set up has expired.

  1. Open the sales order in the Order Management work area, click Tasks > View Pricing Strategy and Segment, then examine the values. Assume Pricing Segment equals Corporate Segment.

  2. Make sure you have the privileges that you need to administer pricing, go to the Pricing Administration work area, then make sure none of the objects that are involved in pricing the sales order have expired.

    For example, make sure the End Date for the Corporate Segment happens after March 2, 2021.

Here are some of the objects that have end dates that you should examine.

  • Price List

  • Return Price List

  • Cost List

  • Discount List

  • Shipping Charge List

  • Pricing Rule

  • Pricing Guideline

  • Pricing Profile

  • Pricing Segment

  • Pricing Strategy

  • Pricing Strategy Assignment

  • Currency Conversion List

  • Pricing Algorithm

If the end date has expired, then set it to a later date.

As an alternative, redo your pricing set up so none of the objects have expired. For example, if the price list expired but you don't to use it any more, then create a new price list and add the item to the new price list.

In January, I create a sales order in the Order Management work area, add an order line, set the UOM on the line to Box, then submit the order. In April, I revise the order but get an error when I submit it.

An application error occurred. See the incident log for more information.

This problem might happen because the price list that Pricing used to price the item in January is no longer active. Pricing used a new price list to price it April, but the new price list doesn't have a charge for the Box UOM.

  1. Open the sales order in the Order Management work area.

  2. On the order line, in the Amount column, click the value, then look for the name of the price list, such as Base List Price Applied from Corporate Segment Price List.

  3. Go to the Pricing Administration work area, open the price list that you noticed on the order line, then add a charge for the Box UOM to the item on the price list. This allows the pricing algorithm to determine the price when you reprice the order, save it, or submit it.

    As an alternative, activate the old price list.

For details, see Manage Price Lists.

I add the AS54888 item to the Corporate Segment Price List and set the Pricing UOM attribute to Pallet when I add the item to the list. But at runtime, the UOM on the order line defaults to Each.

Make sure the End Date attribute on Corporate Segment Price List is empty or contains a date that happens after the current system date.

Problems with Pricing Strategies and Pricing Segments

Trouble

Shoot

I create a new sales order in Order Management and encounter a problem on the Create Order page.

The View Pricing Strategy and Segment dialog doesn't contain a value for the pricing segment and the strategy defaults to Corporate Pricing Strategy.

I click the error icon and notice an error.

The pricing strategy was not determined for the current transaction.

No matching pricing segment was found for the customer.

If the problem persists, make sure you create a profile, segment, strategy, and strategy assignment for the customer that you select in the Customer attribute on the Create Order Page in Order Management.

I create a sales order in the Order Management work area. On the order header, I click Actions > Edit Currency Details, but the Order Currency attribute is empty.

Or, I encounter one of these errors.

Pricing strategy was not determined for the transaction

No matching pricing segment found for the transaction

No matching pricing segment found for the customer

Its possible that you haven't set up a default pricing segment.

Set up a default pricing segment. For details, see Manage Pricing Segments.

I create a sales order in the Order Management work area and leave the Customer and Business Unit attributes empty. On the order header, I click Actions > Edit Currency Details, but the Order Currency attribute is empty. If I set the Customer and Business Unit first, click Actions > Edit Currency Details, then the Order Currency attribute displays a value.

I expect the Create Order page to display my currency before I set any values on the order header.

Set the value of the Default Currency attribute on your pricing strategy. For details, see Manage Pricing Strategies.

I encounter an error:

An error occurred while deriving a pricing strategy for the transaction

This problem might happen because an attribute that has a unique value was changed. For example, while migrating between environments or upgrading to a new update, you change the value in the Source Code Name attribute on the Sales Pricing Strategy Assignment matrix class from PricingStrategyId to PricingStrategyID.

Attribute values are case sensitive. Make sure your attribute values match each other exactly, including upper case and lower case.

Other Problems

Trouble

Shoot

I use the Add Unreferenced Return Lines action in the Order Management work area to add a return line, click Add, but then the return line doesn't have a price.

Try this.

  • Go to the Setup and Maintenance work area and enable the Return Items or Cancel Services Without a Reference Order opt-in feature.

  • Go to the Pricing Administration work area and use the Promote All action to promote your pricing algorithms.

  • Examine your pricing rules and pricing algorithms. Make sure you have set them up correctly.

  • If you're importing a sales order, then make sure your import payload has values for the attributes that pricing needs to price a return line.

I add an item to a price list, but the order line I create in Order Management doesn't include the changes I made in the Pricing Administration work area. I am collecting planning data and using the Refresh and Start the Order Promising Server scheduled process to publish my changes.

Wait for the scheduled process to finish and for your changes to propagate through your environment. Wait about one hour.

The price breakdown on the Catalog Line or order line in Order Management doesn't contain the rows I need, such as Margin or Cost of Goods Sold.

Set up the pricing results presentation. For details, see Manage Price Details on Order Lines.

Other Resources for Troubleshooting

See sections in Administering Pricing for other troubleshooting tips.