Troubleshoot Problems With Order Import

Fix problems that happen in your Order Management implementation when you import a source order.

Error Messages

Trouble

Shoot

I encounter an error when I import a value for my extensible flexfield.

For example, I create an extensible flexfield named MyFlexfield, I set the Value Set attribute to 10 Characters when I create the flexfield's segment, but when I import, I encounter an error that's similar to:

01.01:JBO-27023: Failed to validate all rows in a transaction.JBO-27024: Failed to validate a row with key oracle.jbo.Key[300001199553247 ] in FulfillLineEOJBO-27024: Failed to validate a row with key oracle.jbo.Key[300001199553248 ] in FulfillLineEffBSO__Details__InformationprivateEOJBO-27025: Failed to validate attribute MyFlexfield with value. . .

Make sure the value that you import doesn't exceed the value that you set in the Value Set attribute. In this example, the value that you import in the MyFlexfield attribute must not exceed 10 characters.

For background, see Set Up Extensible Flexfields in Order Management.

I encounter an error message.

Order management did not import source order TEST_NOV21_02 because of the following error: An order was not created due to an unknown error. Check the run time user interface for processing status. Number of orders that did not pass validation: 1. Some of these orders may be available in the order entry user interface.

This problem might happen when the extended amount for the charge components on the coverage line doesn't contain a value.

If your order import includes a coverage item, and if your import data already defines pricing for the item before you do the import, then make sure the extended amount for the charge components on the coverage line contains a value.

Make sure the Duration Header Total attribute on the DOO_ORDER_CHARGE_COMPS_INT tab of the order import template contains a value for each coverage line.

I encounter an error message.

Order xxx will not be imported due to the following error: An order was not created due to an unknown error. null. Request Id: 1018270 Batch Name: SOF1 Source System: OPS Order Number: null Allow Auto Purge: Y Number of orders that were imported: 0. Check the run time user interface for processing status. Number of orders that did not pass validation: 1. Some of these orders may be available in the order entry user interface. Overall Result : ERROR

Set the RollupFlag attribute to N on the DOO_ORDER_CHARGES_INT tab of the order import template.

I import a sales order, but then encounter an error when I use the Order Management work area to change an attribute on the order, such as price, date, quantity, and so on.

You cannot save the draft Order because of following error: You cannot edit this Sales Order because you can not modify the Price, Tax Or the Shipping Charge. You cannot edit this Sale Order because it was created in a different Source System.

Disable the DOO_IMPORTED_DRAFT_HEADER_UPDATE processing constraint.

Note that, if you disable the constraint, and if you import a sales order that you already priced, and if you then use the Order Management work area to change the quantity or any other attribute that affects price, then Order Management doesn't reprice the order.

I encounter an error message.

A sales order was not created because source order does not include a value for required attribute ShipToPartyName. Provide a value for this attribute, and then submit the source order again.

This error might happen when you send contact details for the party or customer but don't include party or customer details.

DOO_ORDER_ADDRESSES_INT

Party Identifier Party Number Party Name Customer Identifier Customer Number Customer Name

Party Contact Identifier Party Contact Number Party Contact Name

Problems With Different Kinds of Data

I import a sales order and submit it. Order Management ships the order, but it gets stuck in Shipped status and I encounter an error that indicates the value of an attribute can't contain more than 30 characters. I attempt to use a recover action, but recover doesn't fix the problem.

This problem typically happens because Accounts Receivable in Oracle Applications requires that the value for some attributes not exceed 30 characters. Its possible that the value for an attribute in your import payload exceeds 30 characters. Have a look at them.

  • SourceTransactionNumber

  • SourceTransactionScheduleNumber

  • SourceTransactionLineIdentifier

If you don't use Oracle Receivables to invoice your sales orders, and if your value must exceed 30 characters, then you can disable a constraint.

  1. Go to the Setup and Maintenance work area, then go to the task.

    • Offering: Order Management

    • Functional Area: Orders

    • Task: Manage Processing Constraints.

  2. On the Manage Processing Constraints page, disable the constraint.

    Attribute

    Value

    Constraint Name DOO_SOURCE_ATTRIBUTE_LENGTH_VALIDATION

    Display Name

    Source Attributes Length Validation

    If you import a source order that has values that exceed 30 characters, and if the Source Attributes Length Validation constraint is enabled, then Order Management sets the order status to Draft and displays an error message in the Order Management work area. You must discard the draft, fix the character limit or disable the constraint, then import the source order again.

I Can't Import Binary Data

If you must import binary data, then you must convert your binary data to text before you do the import, and you must use the base64 encoding scheme when do the conversion.

Here's an example of payload data that failed import.

<ord:Attachment>
  <ord:FileContent>text/plain</ord:FileContent><ord:Data>VGhlIEdlbmVyYWwgVGVybXMgYW5kIENvbmRpdGlvbiBpbiBDb2h1IHF1b3RhdGlvbiANCnNoYWxsIHByZXZhaWwgaWYgdGhlcmUncyBhbnkgdGVybXMgY29uZmxpY3Qgd2l0aCBQTy4&amp;#x3D;</ord:Data>
  <ord:FileName>text_document.txt</ord:FileName>
  <ord:url>text_document.txt</ord:url>
  <ord:DataTypeCode>FILE</ord:DataTypeCode>
  <ord:Category>Order Confirmation Notes</ord:Category>
</ord:Attachment>

This import failed because the ampersand ( & ) in the Data tag isn't in base64 encoding.

Trouble

Shoot

I encounter an error message.

A sales order was not created because source order does not include a value for required attribute ShipToPartyName. Provide a value for this attribute, and then submit the source order again.

This error might happen when you send contact details for the party or customer but don't include party or customer details.

Include details for one or more party attributes.

  • Party Identifier

  • Party Number

  • Party Name

  • Party Contact Identifier

  • Party Contact Number

  • Party Contact Name

Include details for one or more customer attributes.

  • Customer Identifier

  • Customer Number

  • Customer Name

Scheduled Processes

Assume you run the Import Sales Orders scheduled process, it finishes running and reports status Error.

For example:

scheduled process Import Sales Orders.

Note

  1. On the Scheduled Processes page, in Search Results, click the row that's in error.

  2. In the Log and Output area, next to Attachment, click the link.

  3. Open the attachment and examine the error message.

For example:

Request Id: 65735
Batch Name: 10810
Source System: null
Order Number: null
Allow Auto Purge: Y
Order PMC_IMP_161208_002 will not be imported due to the following error: An order was not created because no matching row for attribute ProductNumber with the value AS54888777 was found for the source order with the following details: source order PMC_IMP_161208_002, source order line 1, source order schedule 11. Check the attribute value, and resubmit the order..
Number of orders that were imported: 0. Check the run time user interface for processing status.
Number of orders that did not pass validation: 1. Some of these orders may be available in the order entry user interface.
Overall Result : ERROR

This error happen because data in your order import template isn't correct. For example, ProductNumber contains AS54888777 but the Oracle database contains AS54888. Use SQL to query the Oracle database and identify the correct data to import.

For another example.

Request Id: 65699
Batch Name: 10810
Source System: null
Order Number: null
Allow Auto Purge: Y
Order PMC_IMP_161208_001 will not be imported due to the following error: An order was not created because the value 300,000,001,469,001,777 provided for the attribute SOLD_TO_PARTY_ID is invalid for the source order with the following details: source order PMC_IMP_161208_001. Check the attribute value, and resubmit the order..
Number of orders that were imported: 0. Check the run time user interface for processing status.
Number of orders that did not pass validation: 1. Some of these orders may be available in the order entry user interface.
Overall Result : ERROR

This error happen because the SOLD_TO_PARTY_ID attribute contains 300,000,001,469,001,777 but the Oracle database contains 300000001469001. Use SQL to query the Oracle database and identify the correct data to import.

Configured Items

See Troubleshoot Problems with Configure-to-Order.

Cross-References

I encounter an error on the Manage Order Orchestration Messages page.

A cross-referenced value was not found for attribute CURRENCY_CODE in source system XXXXXXX

You might also encounter this error in the response to your import payload.

<bpelFault>
<faultType>1</faultType>
<processResponse xmlns="http://xmlns.oracle.com/apps/scm/doo/decomposition/receiveTransform/receiveSalesOrder/DooDecompReceiveOrderComposite">
<part name="payload">
<processResponse xmlns:client="http://xmlns.oracle.com/apps/scm/doo/decomposition/receiveTransform/receiveSalesOrder/DooDecompReceiveOrderComposite" xmlns="http://xmlns.oracle.com/apps/scm/doo/decomposition/receiveTransform/receiveSalesOrder/DooDecompReceiveOrderComposite">
<client:OrchestrationOrderResponse>
<ns4:SourceTransactionNumber xmlns:ns4="http://xmlns.oracle.com/apps/scm/doo/decomposition/receiveTransform/receiveSalesOrder/model/">HITECH0001</ns4:SourceTransactionNumber>
<ns4:SourceTransactionIdentifier xmlns:ns4="http://xmlns.oracle.com/apps/scm/doo/decomposition/receiveTransform/receiveSalesOrder/model/">36466323</ns4:SourceTransactionIdentifier>
<ns4:SourceTransactionSystem xmlns:ns4="http://xmlns.oracle.com/apps/scm/doo/decomposition/receiveTransform/receiveSalesOrder/model/">ORA_BM_CPQ</ns4:SourceTransactionSystem>
<ns4:ReturnStatus xmlns:ns4="http://xmlns.oracle.com/apps/scm/doo/decomposition/receiveTransform/receiveSalesOrder/model/">ERROR</ns4:ReturnStatus>
<ns4:MessageName xmlns:ns4="http://xmlns.oracle.com/apps/scm/doo/decomposition/receiveTransform/receiveSalesOrder/model/">env:Server</ns4:MessageName>
<ns4:MessageDescription xmlns:ns4="http://xmlns.oracle.com/apps/scm/doo/decomposition/receiveTransform/receiveSalesOrder/model/">A cross-referenced value was not found for attribute CURRENCY_CODE in source system ORA_BM_CPQ.</ns4:MessageDescription>
</client:OrchestrationOrderResponse>
</processResponse>
</part>
</processResponse>
</bpelFault>

This problem happens because the source system, such as CPQ, doesn't require cross references but the Enable Data Cross-Reference option is enabled on the Manage Planning Source Systems page in the Setup and Maintenance work area.

To fix the problem, disable the Enable Data Cross-Reference option.

disable option Enable Data Cross-Reference

I encounter an error on the Manage Order Orchestration Messages page.

Cross-Referenced Value Not Found for UOM_CODE

My import payload includes:

<ns2:OrderedQuantity>1</ns2:OrderedQuantity>
<ns2:OrderedUOMCode>EA</ns2:OrderedUOMCode>

Two reasons might cause this problem.

  • You didn't collect data from the source system for Global Order Promising.

  • Your import payload doesn't include the correct UOM code.

First, in the Setup and Maintenance work area, open the Review Collected Order Reference Data page, click Units of Measure, then search for the unit of measure that your import payload references. If you can't find it, then you must collect data. For details, see Quick Start for Setting Up Order-to-Cash.

Next, run SQL against the Order Management database.

select
  mai.instance_id,
  mai.instance_code,
  muom.unit_of_measure,
  muom.uom_code
from
  msc_units_of_measure MUOM,
  msc_apps_instances MAI
where
MAI.instance_id = MUOM.SR_Instance_id;

This SQL determines whether the inventory and data collection tables contain the UOM you're importing.

Assume the query returns:

INSTANCE_ID

INSTANCE_CODE

UNIT_OF_MEASURE

UOM_CODE

300000000120910

OPS

EA

AbC

Next, run SQL to get the unit of measure that the UOM code references.

SELECT uom_code,
  uom_class,
  base_uom_flag,
  unit_of_Measure,
  description
FROM inv_units_of_measure_B iuomb,
  inv_units_of_measure_tl iuomtl
WHERE iuomb.unit_of_measure_id = iuomtl.unit_of_measure_id
and iuomtl.language = 'US'
ORDER BY UOM_code;

Assume the query returns:

UOM_CODE

UOM_CLASS

BASE_UOM_FLAG

UNIT_OF_MEASURE

DESCRIPTION

AbC

1

Y

EA

EACH

Modify your input payload so it uses the UOM_CODE that the query returns. For example, replace this:

<ns2:OrderedQuantity>1</ns2:OrderedQuantity>
<ns2:OrderedUOMCode>EA</ns2:OrderedUOMCode>

With this:

<ns2:OrderedQuantity>1</ns2:OrderedQuantity>
<ns2:OrderedUOMCode>AbC</ns2:OrderedUOMCode>

As an alternative, modify your input payload or so it uses the OrderedUOM attribute instead of OrderedUOMCode, and references the value from UNIT_OF_MEASURE instead UOM_CODE.

<ns2:OrderedQuantity>1</ns2:OrderedQuantity>
<ns2:OrderedUOM>EA</ns2:OrderedUOM>

Revisions and Returns

Trouble

Shoot

I import sales orders, submit them, import revisions for them, but then encounter performance problems and errors. For example, I import 1,000 sales orders and submit them. I immediately import revisions for each of those 1,000 sales orders, submit them, but then encounter problems. Wait some time, such as 10 minutes, then resubmit your request. If you have a large amount of lines, you might need to wait longer.

If a sales order is in Processing status or is stuck in some other status, then don't proceed. Wait some time or fix the problem that's causing the stuck order. For more, see Recover Sales Orders That Are Locked or Not Started.

I import a referenced return order, submit it, but Receivables doesn't create a credit memo for the return.

Make sure the business unit on the order line that you import is the same as the business unit on the original order line.

I encounter an error message while importing an order revision.

Order management didn't import source order 3502701192-10 because of the following error: A sales order was not created because source order 3502701192-10 doesn't include a value for required attribute BILL_TO_CUSTOMER_ID, on source order line 1, with source order schedule 1. Provide a value for this attribute, and then submit the source order again.

If you import an order revision, then you must include the Source Transaction Line Identifier and Source Transaction Schedule Identifier on the DOO_ORDER_ADDRESSES_INT tab of your import worksheet.

I include a value in the OriginalSourceOrderNumber attribute but the import fails. If you include a value for the OriginalSourceOrderNumber attribute, then you must also include a value in the OriginalSourceLineNumber attribute in the originalOrderReference entity. You must also include order line details. For details and examples, go to REST API for Oracle Supply Chain Management Cloud, expand Order Management, then click Sales Orders for Order Hub.

I Can't Get Specific Versions of Sales Orders

To get the latest version of a sales order through REST API, you can use /salesOrdersForOrderHub/{OrderKey}, where {OrderKey} is sourceOrderSystem:sourceOrderId.

However, if the order is in draft status, then the draft becomes the latest version of the order. If you have a draft revision, then you can't use the order's URL to get the sales order that you submitted. Instead, you must use the q parameter or one of the finders to return all versions of the order, and you can't use a GET request on the order header or order line to get extensible flexfields. Instead, you must do a GET on the additionalInformation child resource, and you must use that resource's URL with an expand=all parameter to expand the flexfield contexts.

As an alternative, you can use /salesOrdersForOrderHub/headerId to get to a specific version of the order. For example, use salesOrdersForOrderHub/57684 to get sales order with headerId 57684.

There Are Gaps in My Order Lines

There are gaps in my order lines when I import a revision or a return.

For example, I import a return order that has two referenced return lines, line 1 and line 2. Some time later, I import a revision to this return. The revision adds another line to the return, but the Manage Orders page displays this line as line number 4. I expected it to display line 3, not 4.

Assume you run an SQL to get details about your order.

SELECT  dha.source_order_number ,
        dfla.source_line_number ,
        dfla.fulfill_line_number,
        dfla.status_code        ,
        dla.line_number         ,
        dla.display_line_number
FROM    fusion.doo_headers_all dha       ,
        fusion.doo_fulfill_lines_all dfla,
        fusion.doo_lines_all dla
WHERE   dha.header_id                = dfla.header_id
        AND dla.line_id              = dfla.line_id
        AND dha.submitted_flag       = 'Y'
        AND dfla.source_order_number = '&SOURCE_ORDER_NUMBER'
ORDER BY dla.line_number

Assume the SQL returns these values.

SOURCE_ORDER_NUMBER

HEADER_ID

SOURCE_LINE_NUMBER

FULFILL_LINE_ID

FULFILL_LINE_NUMBER

LINE_NUMBER

DISPLAY_LINE_NUMBER

12323

300000100663978

1

300000100663987

1

1

1

12323

300000100663978

2

300000100664018

1

2

2

12323

300000100663978

3

300000100664052

1

3

3

12323

300000100663978

4

300000100670796

1

6

4

12323

300000100663978

5

300000100670811

1

7

5

12323

300000100663978

8

300000100659060

1

9

6

Notice that SOURCE_LINE_NUMBER has a gap between 5 and 8, and LINE_NUMBER has a gap between 3 and 6, and 7 and 9. Its possible that you used SOURCE_LINE_NUMBER or LINE_NUMBER in your import payload. Some import technologies, such as OrderInformationService, include these attributes in their response payload but you must not use them in your import payload when you import a revision or return.

If you're importing a revision or return and you don't want a gap in the order line number or fulfillment line number, then include a value for FULFILL_LINE_ID but not SOURCE_LINE_NUMBER in your payload. The Order Management work area will use the DISPLAY_LINE_NUMBER as the value to display on the Manage Orders page and other fulfillment views.

Other Problems

Trouble

Shoot

I use OrderImportService to import customer data, including the Contact attribute and the ContactEmail attribute.

I use the Customer Data Management page and verify that the import successfully imported contact and contact email.

I prefer to manage the contact and contact email for each account on the Manage Customers page, but I can't view these attributes on this page.

Manage Customers doesn't support managing contact and contact email for each account.

It takes a long time to create the CSV file when I do file-based data import.

For example, every day I import over 300 sales orders from my source system into Order Management. I can load the header details in the first worksheet with no problems, but after I after import about 1,900 lines from the second worksheet, DOO_ORDER_LINES_ALL_INT, the server performance declines to 15 to 20 seconds delay for each line.

I wait for over an hour but its still processing the lines.

Try this on the computer you're using when you create the CSV file.

  • Install the latest version of Microsoft Visual C++ Redistributable Packages.

  • Disable hardware acceleration in Excel.

  • Disable Excel add-ins that you don't need.

I use the Source Transaction Line Identifier attribute on the DOO_ORDER_LINES_ALL_INT worksheet when I import through file-based data import, then notice that I have sales orders where source line numbers are 20, 21, and 22, but the line numbers are 1, 2, and 3.

Is there way to make the line numbers use the same values that I set in Source Transaction Line Identifier?

Source Transaction Line Identifier and the line number don't store the same data.

Source Transaction Line Identifier identifies a transaction line in your source system. LINE_NUMBER stores a number for the order line in Order Management.

Order Management automatically creates the line number and stores it in the LINE_NUMBER column of the DOO_LINES_ALL table in the Oracle database. Order Management does this to make sure each line number is unique in the sales order. You can't modify this value.

The import reports only one error at a time. For example:
  • I import 100 order lines.
  • There's a problem on 10 different lines, starting with the fifth line that I import.
  • The import stops processing at line 5 and doesn't continue processing the other 95 lines.
  • I have to run the import successively and troubleshoot each of the other 9 lines that are in error separately.
  • I expected the import to process all lines and then provide 10 separate error messages, one for each line that's in error.

This is expected behavior. The import stops at the first error it encounters so you can fix that error. Sometimes an error on one line affects an error on another line. So its important to fix each error before continuing to the next error.

I import a shippable line and submit it, but the line gets stuck at some point during fulfillment.

For example, I import a sales order that has 3 lines and submit it. Lines 1 and 2 aren't shippable. Line 3 is shippable. Order Management fulfills and closes lines 1 and 2. Line 3 gets stuck during fulfillment.

If you have a shippable item that you must schedule or ship, or a custom fulfillment task that requires a request date, then make sure you include a value for at least one of these attributes on the line in your import payload:

  1. Requested Ship Date
  2. Requested Arrival Date

I want to use REST API to import a cancel on an order line. I want to view the import in the Order Management work area in draft status, and then manually submit it, but Order Management automatically submits it before I have a chance to do that.

Set the SubmittedFlag attribute to false on the header entity in your REST API payload. This will prevent Order Management from automatically submitting the order.

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