Troubleshoot Order Management

Fix problems that happen in your Order Management set ups.

Some solutions use SQL to query the Order Management database. For details, see Use SQL to Query Order Management Data.

To troubleshoot extensible flexfields, see Troubleshoot Extensible Flexfields in Order Management.

Setup

Trouble

Shoot

I use the Manage Hold Codes page in the Setup and Maintenance work area. When attempting to add a service on the Services tab, the Select and Add: Services dialog doesn't display the service I need. For example, it displays the Create Shipping service but not the Update Shipping service.

Use the Manage Task Types page to specify the tasks and services that you can select for the hold. You must set the Hold Enabled option to make the service display on the Services tab. For details, see Use Your Own Task Type to Apply Holds.

I go to the Manage Order Lookups page in the Setup and Maintenance work area, but I can't add a lookup code that's longer than 30 characters.

I need more characters to accurately describe the code.

The purpose of the Lookup Code attribute is to provide a quick way to scan all the codes. Use the Meaning or Description attributes to provide more detail.

The same situation applies for other objects, such as the validation rule set in a processing constraint. Most of these objects include a code or short name, but also a description that you can use to elaborate.

I use the ImportSalesOrder web service to import values for the Scheduled Ship Date and Scheduled Arrival Date attributes of each sales order.

However, Order Management replaces the imported values with the value of the Requested Ship Date attribute. It replaces the values when it updates the sales order status.

If you use Global Order Promising to schedule your sales order, then create a business rule that sets the Override Schedule attribute to Yes. This attribute instructs Global Order Promising not to schedule the dates but instead to use whatever dates that you already have.

Examine an example rule. For details, see Set Default Values for Scheduled Ship Date

I go to the Manage Administrator Profile Values page in the Setup and Maintenance work area, then search the Profile Display Name attribute for Display Currency.

But the Profile Value attribute in the Profile Values area of the search results doesn't have any values that I can select.

This problem usually happens when you haven't collected currencies.

Go to the Plan Inputs work area and do the Collect Planning Data task.

  • Set Source System to OPS.

  • Set Collection type to Targeted

  • Move the Currencies reference entity to the Selected Entities list.

For details, see Collect Planning Data for Order Management.

Verify that you collected currency data.

select
  *
from
  msc_xref_mapping
where
  entity_name like 'CURRENC%'

select
  *
from
  msc_currencies_tl

For details, see Use SQL to Query Order Management Data.

I encounter an error.

Fail to load task definition. :: oracle.apps.fnd.applcore.visualInformationBuilder.businessRules. publicCommonApprovals.task.TaskLoaderException : Exception thrown in getSAXSource ::java.lang.NullPointerException : null

You might encounter this error because your privilege doesn't allow access to a set up task, such as the Manage Order Approval Rules task in the Setup and Maintenance work area.

You need the Manage Order Approval Rules privilege and the BPM Workflow System Admin Role privilege. You have two choices.

  • Make sure you have the privileges that you need to administer Order Management. It includes the privileges that you need.

  • Create a new role, assign the privileges to it, then run the Retrieve Latest LDAP Changes scheduled process.

Order Entry

Trouble

Shoot

I encounter a problem with a customer item. For example:

  1. I create a trading item relationship between the AS54888 item and the STELLAR_1 customer item in Product Information Management.
  2. I create a sales order, add the AS54888 to order line 1, and submit the order.
  3. I modify the relationship in Product Information Management so that the AS54888 references the STELLAR_2 customer item.
  4. I revise the sales order and add the AS54888 on order line 2.
  5. I notice that line 2 has the STELLAR_2 customer item but line 1 still has the old STELLAR_1.

This is expected behavior.

Don't modify the relationship. Instead, create a new one, and use a different value in the Trading Partner Item attribute.

For background, see Set Up Customer Items for Order Management.

I create a sales order in the Order Management work area. I search for, then add an item on the catalog line, but the line displays an error message.

No data was retrieved

I encounter an error when I create a sales order:

Orchestration process 300000001288069 for order was not started because it is not deployed or the server is unavailable.

This problem happens when you create or modify an orchestration process but don't deploy it or when the server is down.

Wait for the server to come back online. If the problem persists after the server is available, then deploy the orchestration process. For details, see Deploy Orchestration Processes.

I add my business unit to the Coverage Start Date parameter.

Next, I create a sales order, add a coverage item, set the Contract Start Date for the item, then click Submit, but Order Management changes the Contract Start Date in the fulfillment view.

If you add your business unit to the Coverage Start Date parameter, then Order Management uses it to calculate coverage dates. For details, see Manage Order Management Parameters.

If you prefer to manually enter the date on the order line, then remove your business unit from the Coverage Start Date parameter.

I create and submit a sales order, but the order lines remain in the Not Started status. This happens on every order I create. I also encounter an error.

Task 300000090474951 for orchestration process 300000090474941 failed. Use the appropriate Order Orchestration work area action to recover this task. (DOO-2685501)

I try to recover the sales order or revise the order but the problem persists.

Its possible that you have a routing rule on a pause task, which Order Management doesn't support.

  1. Go to the Setup and Maintenance work area and the search for the page that you use to manage routing rules. Its either Manage External Interface Routing Rules or Manage External Integration Routing Rules for Sales Orders. For details, see Overview of Using Business Rules With Order Management.

  2. Look for a rule that depends on a pause task and that sets the connector. For example, if you use Visual Information Builder, look for a rule that's similar to:

    If Task Type is equal to pause, then set connector name to Fusion-Reservation.

    If you use Oracle Business Rules, look for a rule that's similar to:

    If header.Task Type is "Pause", then Set Connector Name ( "Fusion-Reservation" )

  3. Deactivate the rule. Remove the check mark from the Active option.

  4. Go to the Order Management work area and use the Recover action on your sales order.

I encounter an error:

Task Invoice for orchestration process 300000600179143 failed. Use recover task, recover order, or recover process to recover the failed task or process. (DOO-2685501) You must set the Primary Salesperson attribute and the Sales Credits on the order header or the order line, then resubmit the sales order. The Create Billing Lines fulfillment task failed because data is missing or isnt correct. The Required Salesperson option is enabled in Accounts Receivable. Source Order Information: 2829-2-1

Set the Primary Salesperson attribute and the Sales Credits on the order header or the order line, then resubmit the sales order.

If you don't want to require the primary salesperson, then you can disable the option.

  1. Go to the Setup and Maintenance work area, then go to the task:
    • Offering: Financials
    • Functional Area: Receivables
    • Task: Manage Receivables System Options
  2. On the Manage Receivables System Options page, search for your business unit, then click it in the search results.
  3. On the Edit System Options page, disable the Require Salesperson option, then click Save and Close.

For details, see Implementation Settings for Revenue Recognition.

Revised Orders

Trouble

Shoot

Order Management creates a new sales order revision every time we update an attribute.

We use OrderImportService or the Sales Order for Order Hub REST API to import source orders into Order Management.

We have a scheduling application in our fulfillment system that periodically calculates the scheduled ship date, and we use an extensible flexfield on the order line to store the date.

Our integration creates a new sales order revision every time we change the date. We don't want it to create a revision.

Use the Order Fulfillment Response Service instead of OrderImportService or REST API. Order Fulfillment Response Service doesn't create a revision.

Learn about Order Fulfillment Response Service. For details, see Web Services That You Can Use to Integrate Order Management.

For details and examples, go to REST API for Oracle Supply Chain Management Cloud, expand Order Management, then click Sales Orders for Order Hub.

Return Orders

Trouble

Shoot

I encounter an error:

Processing constraints: A user-defined validation couldn't be completed: You cannot submit the order because the bill to customer for the return line has changed. It is not related to the bill to customer in the original order line.

This message comes from the predefined DOO_RMA_BILLTO_CUSTOMER_CHANGED processing constraint. For details, see Processing Constraints.

Or I encounter this error in the log file of the Import Autoinvoice scheduled process:

The bill-to customer of the credit memo must be either the same as or related to the bill-to customer of the transaction it's crediting.

For details about Import Autoinvoice, see Update Intercompany Receivables Invoice Import Details.

We recommend that you don't modify the Bill-to Customer attribute when you create a return order. Also, make sure the Bill-to Customer contains the same value that the original order contains or is related to the original Bill-to Customer.

You can also disable the DOO_RMA_BILLTO_CUSTOMER_CHANGED constraint. If you disable it after you submit the sales order, then you might encounter the Import Autoinvoice error. To avoid it, set up an account relationship between the Bill-to Customer on the original order line and the Bill-to Customer on the return order, and then run Import Autoinvoice. For more, see Customer Account Relationships.

I create a sales order in the Order Management work area.

In the Order Lines area, I click Actions > Add Unreferenced Return Lines.

I add an item, set the return line type and reason, then click Add.

But the return line doesn't have a price.

Promote your pricing algorithms. For details, see Promote Pricing Algorithms Into the Latest Update.

My return line is stuck in the Awaiting Receiving status.

Run the Send Receipt Confirmation scheduled process.

As an option, set the Source Document Number parameter to the number that identifies the source order that contains the return line. For example, if the source order number is 14052903, then set Source Document Number to 14052903.

I encounter an error.

Order management didn't create a sales order for source order AFH879, source order line 7, source order schedule 4, billing plan 3. If the price on the return order is different from the price on the original order, then you must set the cancel reason to Price Change and resubmit the order.

In some situations you might need to adjust the price for future billing periods after you start recurring billing, but you can do this adjustment only for a referenced return line.

If you adjust price on a referenced return line for an outbound line that has recurring billing, and if the unit price on the return line is different from the unit price on the original line, then you must set the CancelReasonCode attribute to ORA_PRICE_CHANGE in your import payload. If you use any other value, then you'll get this error message.

Return a Closed Order Line

I encounter an error when I attempt to create a return for a closed order line.

This error might happen because the setup in Product Information Management doesn't allow you to return the item. You must set it up. For details, see Guidelines for Processing Return Orders.

As an option, run SQL on your Oracle database to confirm the value of the Returnable attribute on the item and the fulfillment line.

SELECT  dfla.source_order_number                ,
        dfla.inventory_item_id                  ,
        dfla.status_code                        ,
        dfla.returnable_flag "Fline Return Flag",
        esib.Item_number                        ,
        esib.Returnable_flag "Item Return Flag"
FROM    doo_fulfill_lines_all dfla,
        egp_system_items_b esib
WHERE   source_order_number                = '&SOURCE_ORDER_NUMBER'
        AND esib.inventory_organization_id = dfla.inventory_organization_id
        AND esib.inventory_item_id         = dfla.inventory_item_idWord' to retain layout.]

Features

Transportation Management

Trouble

Shoot

Order Management sends a request to Transportation Management, but the web service between Integration Cloud Service and Transportation Management isn't up and running, so the Order Management work area displays an error icon on the fulfillment line.

Use error recovery to retry the task.

Don't retry the call through Integration Cloud Service because Order Management can't accept an update from Transportation Management while the task is in error.

Transportation Management sends an update to Order Management, but Order Management rejects the update because the fulfillment line isn't on a wait step in the orchestration process, or the orchestration process is already processing another request.

Manually resend the request from Transportation Management.

Sales Agreements

Trouble

Shoot

I set the Customer attribute on the order header, but no sales agreements are available in the Sales Agreement attribute on the order header when you create a sales order.

Make sure you set up a sales agreement for the customer and that its active.

The sales agreements that are available on the order header are different from the ones that are available on the order line.

Examine your sales agreement set up. Order Management includes sales agreements on the.

  • Order header that you set up for the customer and are active.

  • Order line that you set up for the customer, are active, and that you specified for the item on the order line.

Error Messages

Message

Solution

Pricing did not apply a sales agreement adjustment for charge Sale Price because it cannot find adjustment basis 100010.

Make sure you correctly set up the adjustment basis on the pricing term for the sales agreement.

Pricing did not apply a tier adjustment on the sales agreement for charge Sale Price because it cannot find adjustment basis 100010.

Make sure you correctly set up the adjustment basis on the pricing term that adjusts price according to tiers for the sales agreement.

Pricing did not apply a tier adjustment for the sales agreement to charge Sale Price because it cannot find tier basis 100010.

Make sure you correctly set up the tier basis on the pricing term that adjusts price according to tiers for the sales agreement. Make sure you correctly set up the price element on the tier basis.

For example, you can't use the QP_NET_PRICE price element as the tier basis for a pricing term that references a sales agreement.

Get Details

Here's some SQL that you can use to get details about sales agreements that you can set on the order header.

SELECT h.CONTRACT_ID, h.ID, h.MAJOR_VERSION, h.VERSION_TYPE,h.CONTRACT_NUMBER, h.CONTRACT_NUMBER_MODIFIER, h.COGNOMEN CONTRACT_NAME, h.SHORT_DESCRIPTION, h.DESCRIPTION,h.STS_CODE, h.ORG_ID, h.INV_ORGANIZATION_ID, h.CURRENCY_CODE,h.START_DATE, h.END_DATE,
p.OBJECT1_ID1 PRIMARY_PARTY_ID, p.RLE_CODE FROM OKC_K_HEADERS_VL h, OKC_CONTRACT_TYPES_VL t, OKC_K_PARTY_ROLES_VL p
where h.CONTRACT_TYPE_ID=t.CONTRACT_TYPE_ID and h.BUY_OR_SELL='S' and t.CONTRACT_CLASS='AGREEMENT' AND t.INTENT='S' and t.LINE_CLASS='SALES_AGREEMENT' AND h.ID=p.DNZ_CHR_ID(+) AND h.MAJOR_VERSION=p.MAJOR_VERSION(+) AND p.PRIMARY_YN(+)='Y'
and h.STS_CODE='ACTIVE' and h.VERSION_TYPE in ('C','A') and h.TEMPLATE_YN='N' and h.ORG_ID=<BuId> and h.CURRENCY_CODE=<CurrencyCode>
and p.OBJECT1_ID1=<PartyId> and <PricingDate> BETWEEN h.START_DATE AND Nvl(h.END_DATE,<PricingDate>)

Here's some SQL that you can use to gets details about sales agreements that you can set on the order line.

SELECT h.CONTRACT_ID, h.ID CHR_ID, l.MAJOR_VERSION, l.VERSION_TYPE, h.CONTRACT_NUMBER, h.CONTRACT_NUMBER_MODIFIER, h.COGNOMEN CONTRACT_NAME, h.SHORT_DESCRIPTION CONTRACT_SHORT_DESCRIPTION, h.DESCRIPTION CONTRACT_DESCRIPTION,l.STS_CODE, h.ORG_ID, h.INV_ORGANIZATION_ID, l.CURRENCY_CODE,l.START_DATE, l.END_DATE, l.UOM_CODE,l.ID LINE_ID, l.LINE_NUMBER, l.ITEM_NAME, l.ITEM_DESCRIPTION,
l.OBJECT1_ID1 ITEM_ID, l.OBJECT1_ID2 ITEM_INV_ORG_ID, p.OBJECT1_ID1 PRIMARY_PARTY_ID, p.RLE_CODE
FROM OKC_K_HEADERS_VL h, OKC_CONTRACT_TYPES_VL t, OKC_K_PARTY_ROLES_VL p, OKC_K_LINES_VL l
where h.CONTRACT_TYPE_ID=t.CONTRACT_TYPE_ID and h.BUY_OR_SELL='S' and t.CONTRACT_CLASS='AGREEMENT' AND t.INTENT='S' and t.LINE_CLASS='SALES_AGREEMENT' AND h.ID=l.DNZ_CHR_ID AND h.MAJOR_VERSION=l.MAJOR_VERSION and l.SOURCE_CODE_CLASS='SALES_AGREEMENT' and l.STS_CODE='ACTIVE' AND h.ID=p.DNZ_CHR_ID(+) AND h.MAJOR_VERSION=p.MAJOR_VERSION(+) AND p.PRIMARY_YN(+)='Y'
-- and h.STS_CODE='ACTIVE' and h.VERSION_TYPE in ('C','A') and h.TEMPLATE_YN='N' and h.ORG_ID=<BuId> and h.CURRENCY_CODE=<CurrencyCode> and l.OBJECT1_ID1=<ItemId> and l.OBJECT1_ID2=<InvOrgId> and l.UOM_CODE=<UomCode>
and <PricingDate> BETWEEN l.START_DATE AND Nvl(l.END_DATE,<PricingDate>)

Order Management Extensions

Trouble

Shoot

We deploy Order Management in a language that isn't English, such as Japanese. I set the SetName attribute to Common Set in an extension.

vcrow.setAttribute("SetName", "Common Set");

I get an error when I submit the sales order.

Error executing Extended Order Type-AR Trns Type in event On Start of Submission Request: oracle.jbo.JboException: JBO-29000: Unexpected exception caught: java.lang.NullPointerException, message = Cannot invoke method getAttribute () on null object. (DOO-2685874) '

This problem happens because Common Set might not be available for your language. Instead, you can set the SetCode attribute to COMMON.

vcrow.setAttribute("SetCode", "COMMON");

For an example of this usage, see the //Function to get Billing Transaction Type code in the Set the Billing Transaction Type According to Order Type subtopic. For details, see Extend Order Headers.

My order management extension doesn't run when use I the Order Management work area to cancel a sales order, but it does run if I use REST API to cancel the order.

This problem happens because you can run an order management extension when you cancel a sales order only through REST API. You can't run an order management extension when you cancel the sales order in the Order Management work area.

Class or Type Not Allowed

I receive a response payload in XML format when I use a web service.

<ORACLE_INTEGRATION_MESSAGE xmlns="http://xmlns.oracle.com/oih/oracle_integration_message">
<DOCUMENT_NAME>STORE_PAYMENT_TRANSACTION</DOCUMENT_NAME>
<DOCUMENT_NUMBER>99999</DOCUMENT_NUMBER>
<DOCUMENT_TYPE>NEW_PAYMENT</DOCUMENT_TYPE>
<FROM_SYSTEM>AR</FROM_SYSTEM>
<TO_SYSTEM>STORE</TO_SYSTEM>
<PAYLOAD>
<PARAMETERLIST>
<!-- core mandatory attributes -->
<PARAMETER>
<NAME>GEC_SET_ID</NAME>
<VALUE>46777</VALUE>
</PARAMETER>
<PARAMETER>
<NAME>TRANSACTION_ID</NAME>
<VALUE>36787503</VALUE>
</PARAMETER>
</PARAMETERLIST>
</PAYLOAD>
</ORACLE_INTEGRATION_MESSAGE>

I have to parse this response in an order management extension. I attempt to import the XmlSlurper library to do the parse but the order management extension displays an error.

The use of this class or type is not allowed: groovy.util.XmlSlurper

Learn how to fix this problem. For details, see the Extract Details subtopic in Troubleshoot Problems with Web Services.

Performance

Trouble

Shoot

Performance decreases each time I add an order line to a sales order that I create or edit in the Order Management work area. For example, I add 25 order lines.

  • The first 15 requires about 1 second to add each line.

  • The 21st line requires 10 seconds.

  • The 22nd line requires 12 seconds.

  • The 25th line requires 22 seconds.

I save the order, requery it, then add the 26th line, which requires 2 seconds. To avoid the problem, I save and requery the order each time I add 15 more lines. However, I have over 100 lines to add.

This problem typically happens because you defined a pretransformation rule but didn't test to make sure the attribute value was empty before doing the transformation. So the rule examines every row in the sales order, including rows that the rule already evaluated, instead of evaluating only the rows that don't contain a value.

Make sure the attribute value that you transform in a pretransformation rule is empty before you set the value. For details, see Manage Pretransformation Rules.

It takes a long time to open the Overview page or to query for a sales order from the Overview page in the Order Management work area.

This problem might happen because it takes a long time for Order Management to create and display infolets on the Overview page.

Use a quick action link to get to the page that you use to create or manage sales orders instead of going through the Overview page.

    • Open a sandbox.
    • Click Structure.
    • Navigate to Order Management.
    • Enable the Add as a Quick Action Link on Home Page option for the Create Orders and for the Manage Orders task.
    • The next time you need to create or manage a sales order, use the link on your home page.
    For details, see Overview of Sandboxes.
If you don't use jeopardy, then set the Enable Orchestration Process Planning and Calculate Jeopardy order management parameter to No. For details, see Manage Order Management Parameters.