Troubleshoot Problems with Configure-to-Order
Troubleshoot problems that happen during setup or at runtime in a configure-to-order flow.
Problems That Happen During Setup
Trouble |
Shoot |
---|---|
I can't find an item when I create a work definition. I search for my item in the Create Work Definition dialog, but the search can't find it, or parts of my structure are missing in the Work Definition work area. For example, I create an applicability rule, but the rule editor doesn't display a configure option, or I manually add rule text and encounter an error. Assume you set up a hierarchy in Product Information Management.
You associate CTO_474000 and CTO_474300 with an inventory organization, but don't associate CTO_474301 with an inventory organization. You then manually add an applicability rule. ITEM='CTO_474000'.'CTO_474300'.'CTO_474301' But when you click Validate, you get an error.
|
The Work Definition work area only recognizes items that you associate with an inventory organization. Make sure you add an inventory organization on the Associations tab in Product Information Management for the model, each option class, and each configure option. For details, see these topics.
|
I encounter an error when I use the Create Work Definition dialog.
The structure isn't associated with an inventory organization. |
Use the Associations tab in Product Information Management to add your inventory organization, open the new version that Product Information Management creates, then use the Structures tab to add your structure to the new version. If you add the structure first, Product Information Management creates a new version of your item, appends (M1) to it, but doesn't copy the structure from the V1 version to the M1 version, and you must add the structure again to M1. |
I encounter an error when I create an applicability rule.
I create an applicability rule, validate it, and close the rule editor. I then click Save to save the work definition, but encounter an error. |
This error sometimes happens if you navigate away from the rule editor and come back to it, or add and remove rule text several times. Click Cancel on the Edit Work Definition Details page, reopen the work definition, then add your rule. |
The Product Information Management work area doesn't delete my items. I create items in the Product Information Management work area. During testing, I find I need to revise some and delete others. I search for my item on the Manage Delete Groups, click Actions > Delete, add it to a delete group, but it persists in the work area. |
Try this.
For details, see Group Deletions of Items, Structures, New Item Requests, and Change Orders. |
The Manage ATP Rules page doesn't contain my item. I add a catalog to my model. I search the Manage ATP Rules page for my item but the search doesn't return anything. |
Collect and refresh. For details, see Collect Planning Data for Your Configuration Model. |
I receive a warning when I use the Plan Inputs page to collect data.
|
In the Collect Planning Data dialog, change the Collection Type to Automatic Selection to let the server choose the data to collect. You can use Net Change the next time you collect data. |
Global Order Promising keeps giving available-to-promise recommendations. I test my make or buy setup, but Promising keeps giving available-to-promise recommendations. |
This problem typically happens in a test environment where your flow isn't finished yet or Promising isn't refreshed. Promising identifies on-hand quantities for the item and uses them to source supply until you exhaust the quantities. Examine and correct your inventory quantities, run collections, then run the Refresh and Start the Order Promising Server scheduled process. |
I add an extensible flexfield to the parent of my configuration model. I also add an extensible flexfield to each child. However, if the user creates a revision, then Order Management copies the value from the flexfield on the parent into the flexfields on the children, replacing whatever data was in the flexfields on the children. We don't want this overwrite to happen. |
Write a processing constraint on each extensible flexfield so the constraint prevents Order Management from updating the child flexfields during a revision. |
Problems That Happen During Import
Manual Price Adjustment
I import a manual price adjustment on the child line of a model, but the adjustment doesn't show up in the Order Management work area, and I can't use the work area to change the adjustment.
Try this:
- Apply a manual price adjustment only on the model's root line.
- Don't apply a manual price adjustment on a child line.
- Locate the manualPriceAdjustments entity on the root line of your import payload,
then set the ChargeRollupFlag attribute to
true
in that entity.
Import Can't Find Part of a Configured Item
You might encounter an error where your import can't find part of a configured item, such as a configuration node. For example, you encounter an error.
Cannot find a matching configuration node for item 12345
A configuration node is part of a configured item. A configure option is an example of a configuration node. This error might happen even if the node exists in the structure of a configured item that includes an instance type of Optional Single Instance. The order import process does a search that validates and creates the structure that it includes in the sales order even if a node, such as Option Classes, is missing in the order import data that defines the structure.
However, if the root of the configured item contains a reference model that you set up as Optional Single Instance, or if it's part of an option class, and if the order import data doesn't include the absolute path to the node, then the search won't find the node.
To avoid this problem, use the Product Information Management work area to modify the instance type of the structure from Optional Single Instance to Required Single Instance. Your modification won't affect functional behavior. You must also set the Use Configurator for Order Import Validation parameter to Yes. For details, see Manage Order Management Parameters.
Assume the order import data includes M1, M1.M2, M1.M2.SI2, and the Product Information Management includes this structure for a configured item:
M1
|_M2 (Optional Single Instance)
|_OC1
|_SI2
The order import search won't find the complete structure, it will create an error during order import, and it will add an entry in the Order Import log that's similar to this entry.
The order import process failed
for source order source_order_identifier for the
following reason: Cannot find a matching configuration node for item item_number on order line number order_line_number.
where
- source_order_identifier identifies the source order
- item_number identifies the item
- order_line_number identifies the order line
This entry indicates that the search couldn't find a matching configure option in the Optional Single Instance node.
For another example, assume the order import data includes M1, M1.M2, M1.M2.SI1, and the Product Information Management contains this structure.
M1
|_OC1
|_M2 (Optional Single Instance)
|_SI1
The order import search will fail in the same way it failed in the first example.
Explicitly Define Each Node
If the same option item happens more than one time in your model's hierarchy, then you must explicitly define each node.
Assume you have this hierarchy:
Stove
Oven
10K BTU Gas Burner
20K BTU Gas Burner
Stovetop
10K BTU Gas Burner
20K BTU Gas Burner
You have the same 10K BTU Gas Burner option in two different option classes, once in the Oven option class and again in the Stovetop option class. It's important that you explicitly describe each of these nodes in your hierarchy even though the item itself is the same in both classes.
Assume you use the value 10029041 to identify the 10K BTU Gas Burner:
Node |
Code |
---|---|
Stove |
<ns1:RootParentLineReference>1</ns1:RootParentLineReference> |
Oven |
<ns1:ParentLineReference>1</ns1:ParentLineReference> |
10K BTU Gas Burner |
<ns1:ProductNumber>10029041</ns1:ProductNumber> |
Stovetop |
<ns1:ParentLineReference>2</ns1:ParentLineReference> |
10K BTU Gas Burner |
<ns1:ProductNumber>10029041</ns1:ProductNumber> |
Here's what your payload should look like:
<ns1:Line>
<ns1:SourceTransactionLineIdentifier>6</ns1:SourceTransactionLineIdentifier>
<ns1:ProductNumber>10029041</ns1:ProductNumber>
<ns1:ProductDescription/>10K BTU Gas Burner</ns1:ProductDescription>
<ns1:OrderedQuantity>1</ns1:OrderedQuantity>
<ns1:OrderedUOMCode>EA</ns1:OrderedUOMCode>
<ns1:ParentLineReference>1</ns1:ParentLineReference>
<ns1:RootParentLineReference>1</ns1:RootParentLineReference>
<ns1:Line>
<ns1:Line>
<ns1:SourceTransactionLineIdentifier>30</ns1:SourceTransactionLineIdentifier>
<ns1:ProductNumber>10029041</ns1:ProductNumber>
<ns1:ProductDescription/>10K BTU Gas Burner</ns1:ProductDescription>
<ns1:OrderedQuantity>1</ns1:OrderedQuantity>
<ns1:OrderedUOMCode>EA</ns1:OrderedUOMCode>
<ns1:ParentLineReference>2</ns1:ParentLineReference>
<ns1:RootParentLineReference>1</ns1:RootParentLineReference>
<ns1:Line>
Note
- ParentLineReference identifies each option class.
- RootParentLineReference identifies the parent of the option class. That parent is the Stove, which is the top node in the model.
- This example includes only a small part of the payload. For details about the entire payload that you actually need, see Structure Your Configured Item's Payload.
Here's an example that would fail:
<ns1:Line>
<ns1:SourceTransactionLineIdentifier>6</ns1:SourceTransactionLineIdentifier>
<ns1:ProductNumber>10029041</ns1:ProductNumber>
<ns1:ProductDescription/>10K BTU Gas Burner</ns1:ProductDescription>
<ns1:OrderedQuantity>1</ns1:OrderedQuantity>
<ns1:OrderedUOMCode>EA</ns1:OrderedUOMCode>
<ns1:ParentLineReference>1</ns1:ParentLineReference>
<ns1:RootParentLineReference>1</ns1:RootParentLineReference>
<ns1:Line>
<ns1:Line>
<ns1:SourceTransactionLineIdentifier>30</ns1:SourceTransactionLineIdentifier>
<ns1:ProductNumber>10029041</ns1:ProductNumber>
<ns1:ProductDescription/>10K BTU Gas Burner</ns1:ProductDescription>
<ns1:OrderedQuantity>1</ns1:OrderedQuantity>
<ns1:OrderedUOMCode>EA</ns1:OrderedUOMCode>
<ns1:ParentLineReference>1</ns1:ParentLineReference>
<ns1:RootParentLineReference>1</ns1:RootParentLineReference>
<ns1:Line>
This code might result in an error that's similar to:
The order import process failed for source order CSQ-2043-1~42542342 for the
following reason: The item 10029041 cannot be selected more than once.
This example fails because it doesn't explicitly identify each node in the hierarchy. It
uses the same ParentLineReference>1
to identify each option class, so
Order Management can't accurately explode the hierarchy. For details about exploding,
see Forecast an Assemble-to-Order Item.
Problems That Happen at runtime
Trouble |
Shoot |
---|---|
The Configuration page in the Order Management work area doesn't display the configure options. I set up my item in Product Information Management. I create a sales order in Order Management, search for the item on the catalog line, click Configure and Add, but the configuration page displays only the name of the item. It doesn't display any components or configure options. |
Make sure you set the Optional attribute to Yes for each class that contains an option, and for each option. For the option, you must set this attribute on the child structure. You can't set it from the parent structure. |
The Order Management work area doesn't display the transaction attribute. |
The Configurator Models work area doesn't come predefined to include transactional attributes. You must import the model so Order Management can populate them at runtime. Try this.
|
Order Management fails to create the item. I configure the item in Order Management, then click Submit. Order Management displays an error message and sets the sales order status to Draft. The assemble-to-order flow attempts to create the configured item but fails. |
Try this.
|
An exception happens after i click Submit. I configure the item in Order Management, then click Submit. Order Management accepts the configuration and sets the sales order status to Processing. The flow creates the configured item but an error happens in downstream processing. |
Learn how to fix this problem. For details, see Manage Exceptions for Configured Items. |
An assemble-to-order flow doesn't create a supply order. |
Different problems might cause this problem. They're similar to problems that happen in back-to-back fulfillment with an item that isn't configured. Here are some fixes you can try.
Do the fix, then release the planning recommendations to create the supply order. |
The flow creates a purchase requisition but doesn't create a purchase order. |
If a blanket purchase agreement exists with the supplier, and if the flow sends a purchase requisition, then it normally creates the purchase order. Try this.
|
The flow fails to create a work order. I set up a pick-to-order model that includes pick components and a child assemble-to-order component. I successfully assign a Make At or Buy From sourcing rule for each of my options. I set the lead time for each item in the model to 0 days or empty at the organization level. I notice that if on-hand availability doesn't exist for any pick-to-order or assemble-to-order option, then the flow fails to create a work order. I wonder whether the flow expects on-hand inventory to exist for all items in the model before it creates the work order. |
Note
|
Global Order Promising doesn't make a recommendation. Inventory contains the on-hand quantities for the configured item, but Global Order Promising doesn't make an available-to-promise recommendation. |
Promising is only aware of on-hand quantities that you collect and refresh. To collect on-hand quantities from your warehouse, run the Refresh and Start the Order Promising Server scheduled process. |
I create a sales order that includes a configuration model, click Submit, then encounter an error.
|
You set the User Item Type when you create the configuration model in Product Information Management. Its possible you chose a type that isn't enabled. For details, see Create Your Configuration Model. Try one of these fixes.
|
Exception Messages
Here's an example exception message.
com.oracle.bpel.client.BPELFault:
faultName: {{http://schemas.oracle.com/bpel/extension}remoteFault}
messageType: {{http://schemas.oracle.com/bpel/extension}RuntimeFaultMessage}
parts: {{ summary=<summary>oracle.fabric.common.FabricInvocationException:
Unable to invoke endpoint URI "http://scm-internal.oracleoutsourcing.com:10617/invUom/UnitOfMeasureService"
successfully due to: javax.xml.soap.SOAPException: javax.xml.soap.SOAPException:
Bad response: 503 Service Temporarily Unavailable from url
The text Bad response: 503
Service Temporarily Unavailable
indicates that the web service
isn't available. Its possible something is restarting, such as the
server, a component or system that the service calls, or the service
itself. Wait a few minutes, then click Resubmit.
If the message describes a setup problem, then fix the setup, then Resubmit.
For details, see Manage Exceptions for Configured Items.
Getting Help
It might be necessary to contact Oracle Support. If you do, see SRDC Configure to Order, Data Collection for Configure to Order (Doc ID 2141338.1) on My Oracle Support to help you prepare.