Fix Errors in All Sales Orders

Fix errors that happen with a set of sales orders, orchestration processes, or fulfillment tasks, not only errors that a search in the Order Management work area returns.

You can use Recover Order, Recover Process, or Recover Task actions to fix errors that cause problems in your sales orders. However, these actions can only fix errors that happen for sales orders that a search in the Order Management work area returns.

Instead, you can use the Recover Errors scheduled process to:

  • Fix errors that happen during order fulfillment. For example, a fulfillment line that can't reserve inventory because there isn't enough inventory available to fulfill the item.
  • Fix system errors on fulfillment lines.
  • Evaluate conditions in your orchestration process. For details, see Guidelines for Pausing Orchestration Processes.
  • Fix a problem with an advance shipment notice. For details, see Recover an Advance Shipment Notice.

Try It

Fix errors in all sales orders.

  1. Fix the problem that causes the error.

    If you don't fix the problem, then the same error will continue to happen whether or not you run the scheduled process.

  2. Sign into Oracle Applications. Make sure you have the privileges that you need to run the Recover Errors scheduled process. For details, see Recover Errors.

  3. Go to the Scheduled Processes work area.

  4. On the Scheduled Process page, click Schedule New Process.

  5. In the Schedule New Process dialog, set the value, then click OK.

    Attribute

    Value

    Name

    Recover Errors

  6. In the Process Details dialog, set the parameters to filter the sales orders that you must fix.

    For example, set Customer Name to Computer Service and Rentals, and the scheduled process will attempt to fix errors in all sales orders that contain Computer Service and Rentals in the Customer Name attribute.

    Set This Parameter

    To Fix Errors That Happen in Sales Orders

    Orchestration Order Number

    Where the Order attribute contains the value that you enter.

    Assume you create a sales order and its Order attribute contains 56849. If you set this parameter to 56849, then the scheduled process will attempt to fix errors in sales order 56849.

    Source Order Number

    Where the Source Order attribute contains the value that you enter.

    From Ordered Date

    When the Ordered Date attribute happens on or after the date that you enter.

    To Ordered Date

    When the Ordered Date attribute happens on or before the date that you enter.

    Source System

    When the Source Order System attribute contains the source system that you select.

    Process Name

    When the Orchestration Process Number attribute references the orchestration process that you select.

    Customer Name

    When the Customer attribute contains the value that you select.

    Inventory Item

    That have the inventory item that you enter.

    Task Type

    That are currently on the task type that you select. For example, if you select Schedule, then the scheduled process will attempt to fix errors for sales orders that are currently on the Schedule task.

    • We recommend that you specify a task type or a task name. If you don't, then the scheduled process will attempt to recover lines that are in error for all tasks, and that might affect performance.

    Task Name

    That are currently on the task that you select. For example, if you select Schedule Goods, then the scheduled process will attempt to fix errors for sales orders that are currently on the Schedule Goods task.

    Order Orchestration Function

    That involve a specific type of processing or feature. For example, select Approvals, and the scheduled process will attempt to fix errors in each sales order that has an approval.

    Here are some of the values that you can set.

    • Fulfillment Task. Recover order lines that are stuck at various fulfillment tasks in the orchestration process.
    • Fulfillment Process. Recover order lines that are stuck because there's an error with the orchestration process. For example, you didn't deploy the orchestration process.
    • Start Orchestration. Use this value to unlock draft sales orders, recover lines that aren't started, or actions that are stuck. For details, see Recover Sales Orders That Are Locked or Not Started.

    Scope

    See Set the Scope.

    For important details, see Guidelines for Using Scheduled Processes in Order Management.

  7. Click Submit.

  8. In the Confirmation dialog, note the value of attribute Process ID, then click OK > Close.

  9. Click Actions > Refresh.

  10. Use the Process ID that you noted earlier to locate your scheduled process, then make sure the Status attribute for this process displays Succeeded.

  11. Take action, depending on the status.

    Status

    Take Action

    Error

    In the Log and Output section, click the Attachment link, then examine the results. An Error status usually indicates that you must fix the root cause of the error, then run the scheduled process again.

    Succeeded

    View the log to determine how many fulfillment lines Order Management picked, how many it processed, and how many it couldn't process.

Set the Scope

Set the Scope parameter to filter errors according to where they happen.

If You Set the Scope To Then the Scheduled Process Will
Order Fulfillment Errors

Attempt to fix errors that happen only with sales order data in your downstream applications during a fulfillment task.

The scheduled process will ignore the Number of Days to Look for System Errors parameter and the Date to Start Looking, Counting Backward parameter. It will instead use all the other parameters.

System Errors

Attempt to recover order lines that are stuck because of a system problem, such as the database times out, the server times out, there's an unstable server connection, a resource isn't available because there's a stuck thread, there's isn't enough memory, and so on.

The scheduled process will use the Number of Days to Look for System Errors parameter and the Date to Start Looking Counting Backward parameter. It will ignore all other parameters.

If you set the Scope to System Errors, then we recommend that you run the scheduled process no more than one time each day.

Order Fulfillment and System Errors

Attempt to fix errors that happen with sales order data and with the system.

The scheduled process will use only the Number of Days to Look for System Errors parameter and the Date to Start Looking Counting Backward parameter when it fixes system errors. It will use only the other parameters when it fixes fulfillment errors.

Set the Scope for System Errors

You can specify these parameters when you set the Scope parameter to System Errors or to Order Fulfillment and System Errors.

Set This Parameter To Fix System Errors That Happen in Sales Orders. . .
Number of Days to Look for System Errors

During the number of days that you specify.

For example, set Number of Days to Look for System Errors to 5, set Date to Start Looking Counting Backward to May 15, and the process will attempt to fix system errors that happen on May 11 through May 15.

Date to Start Looking, Counting Backward

Starting on the date that you specify, and then counting backward from that date.

If you don't set a date, then the scheduled process starts looking for system errors today, and then starts counting backward from today.

If you set up this scheduled process to run on a schedule, then leave Date to Start Looking Counting Backward empty.

These parameters apply only to system errors. They don't apply to fulfillment errors.

Assume:

  • A fulfillment error happens on May 10:

    Orchestration couldn't create a reservation because the reservation quantity is greater than the available-to-reserve quantity.

  • A system error happens on May 11:

    The request failed. Orchestration process 300100098837243 for sales order 482655 didn't start because it isn't deployed or the server isn't available. Deploy the orchestration process. Make sure the server is up and running.

If you set these values, then the scheduled process will attempt to fix only the system error:

Parameter Value
Scope System Errors
Number of Days to Look for System Errors 5
Date to Start Looking, Counting Backward May 15

If you set these values, then the scheduled process won't attempt to fix either error:

Parameter Value
Scope System Errors
Number of Days to Look for System Errors 1
Date to Start Looking, Counting Backward May 15

If you set these values, then the scheduled process will attempt to fix the system error and the fulfillment error:

Parameter Value
Scope Order Fulfillment and System Errors
Number of Days to Look for System Errors 5
Date to Start Looking, Counting Backward May 15

If you set these values, then the scheduled process will attempt to fix the fulfillment error but not the system error:

Parameter Value
Scope Order Fulfillment and System Errors
Number of Days to Look for System Errors 1
Date to Start Looking, Counting Backward May 15

Filter the Orchestration Processes That You Want to Look At

You can also set these parameters when you set the Scope parameter to System Errors or to Order Fulfillment and System Errors. These parameters apply only to system errors. They don't apply to fulfillment errors.

Parameter Description
Number of Orchestration Process Versions to Fix

Specify the number of versions to fix, starting with the latest version.

Assume you use orchestration process x and orchestration process y. x has versions 1, 2, 3, and y has versions 1, 2, 3, 4, and 5.

  • This parameter has a default value of 1, so if you don't set it, then we'll look at errors in version 3 of x and version 5 of y.
  • If you set this parameter to 3, then we'll look at errors in versions 1, 2, and 3 of x and versions 3, 4, and 5 of y.
  • If you leave this parameter empty, then we'll look at all versions, and that might degrade performance.
Days to Look for Active Orchestration Processes

Specify how many days to look for orchestration processes that are active.

For example, set Days to Look for Active Orchestration Processes to 30, and we will look only at orchestration processes that were active today or during the prior 29 days from today. We won't look at any orchestration process that has an end date that happens more than 30 days ago.

Assume:

  • Today is May 15.
  • You use orchestration process x, and it has versions 1, 2, 3.
  • You also use orchestration process y, and it has versions 1, 2, 3, 4, and 5.
  • The end date for orchestration process x is empty.
  • The end date for orchestration process y is May 1.

If you set these values, then the scheduled process will attempt to fix system errors that involve versions 1, 2, and 3 of process x, but it won't consider any versions of process y:

Parameter Value
Scope System Errors
Number of Orchestration Process Versions to Fix 3
Days to Look for Active Orchestration Processes 10

If you set these values, then the scheduled process will attempt to fix system errors that involve versions 1, 2, and 3 of process x, and it will attempt to fix system errors that involve versions 3, 4, and 5 of y:

Parameter Value
Scope System Errors
Number of Orchestration Process Versions to Fix 3
Days to Look for Active Orchestration Processes 30

Use All the Filters

You can narrow your search even further.

Continuing our scenario, if you set these values, then the scheduled process will attempt to fix only the system error, and it will only look at system errors that involve versions 1, 2, and 3 of process x, but it won't consider any versions of process y:

Parameter Value
Scope System Errors
Number of Days to Look for System Errors 5
Date to Start Looking, Counting Backward May 15
Number of Orchestration Process Versions to Fix 3
Days to Look for Active Orchestration Processes 10

Use the Default Values

You can use these default values when you set the Scope parameter to System Errors or to Order Fulfillment and System Errors:

Parameter Default Value If You Remove the Value and Leave it Empty, the Scheduled Process Will
Number of Days to Look for System Errors 30 Look at errors that happen on all days.
Date to Start Looking, Counting Backward Empty Look at errors starting today to the beginning of time, or at least to the Precambrian era.
Number of Orchestration Process Versions to Fix 1 Look at all versions of each orchestration process.
Days to Look for Active Orchestration Processes 180 Look at all active and inactive orchestration processes.

If you remove all the values from these parameters, then the scheduled process will look at all versions of all orchestration processes, starting today and proceeding to the beginning of time. To avoid performance problems, we strongly recommend that you don't do this.

Set a Schedule

Recover Errors Comes Predefined to Run Automatically

The Recover Errors scheduled process can recover temporary system errors that might resolve themselves automatically over time, such as a database that doesn't reply, a server that times out, server connection problems, and so on.

Temporary system errors usually don't require a manual intervention. To resolve them in a timely way, Order Management comes predefined to run Recover Errors every hour, on the hour, starting at 12 AM, UTC:

  • Each run identifies the temporary system errors that it can resolve.
  • Every other instance runs with the Order Orchestration Function parameter set to Start Orchestration. For example, the 2 AM, 4 AM, 6 AM runs, and so on. This helps Recover Errors identify the sales orders that are in error but there's a problem that's preventing the orchestration process from starting. For example, orchestration can't start because the sales order is stuck in Not Started status.
  • Each run has a maximum duration of 30 minutes. Recover Errors stops after 30 minutes even if more errors still exist. It will try to recover any remaining errors during the next run.
  • If you manually set up Recover Errors to run on a schedule, then it won't start orchestration or recover temporary system errors when it runs for the instances that you scheduled.

Recover Errors tracks the errors that it can't recover throughout the day. It:

  • Skips errors that it can't recover until the next mass run.
  • Attempts to recover all errors each day at 4 AM, 8 AM, 12 PM, 4 PM, and 8 PM, which is 5 times each day. Each of these runs is a mass run.
  • If it can't recover an error after 5 mass runs, it will try to recover the error one time each day for the next 7 days.
  • If an error persists after 7 days, then Recover Errors will skip it and no longer attempt to recover it. You must manually run Recover Errors to recover these skipped errors.

Consider some examples.

Sales Orders That Have System Errors Predefined Run Example
O1 12 AM Recovery for 01 fails.
O1, O2 1 AM

Skip 01.

Recovery for 02 fails.

O1, O2, O3 2 AM

Skip 01 and 02.

Recovery for 03 fails.

O1, O2, O3, O4 3 AM

Skip 01, 02, and 03.

Recovery for 04 fails.

O1, O2, O3, O4, O5 4 AM

Attempt to recover O1, O2, O3, O4, and O5.

Recovered the error for O1, O3.

Recovery for O2, O4, and O5 fails.

O2, O4, O5, O6 5 AM

Skip O2, O4, and O5.

Recovery for 06 fails.

Set Your Own Schedule Manually

If you click Advanced > Schedule, enable the Using a Schedule option, and then set the Frequency so it recurs, such as Weekly, then make sure you set the parameters so they work efficiently with the schedule.

Assume you don't like having errors in your system that are more than a week old. You prefer to keep it up to date.
  • You run the scheduled process one time and set the Number of Days to Look for System Errors parameter to 180 to clean up all old errors.
  • You then set up a schedule to run the process one time each week.
  • There's no need to look beyond 7 days because you already fixed all the old errors, so you set Number of Days to Look for System Errors to 7. This helps to make sure the process runs efficiently and doesn't put a big burden your system resources.

You can set other parameters in a similar way to help make the process run more efficiently.

In some cases, you might have a need to recover from a specific set of errors. You can set the parameters and specify the schedule differently depending on what you need to recover:
If You Need to Recover Then Set These Parameters
Fulfillment tasks
  • Set the Task Type or the Task Name.
  • Set the Scope to Order Fulfillment Errors.
  • Set the Order Orchestration Function to Fulfillment Task.
Orchestration processes
  • Process Name.
  • Set the Scope to Order Fulfillment Errors.
  • Set the Order Orchestration Function to Fulfillment Process.
System errors Set the Scope to System Errors.
Assume you need to recover all sales order that are stuck at the scheduling task. Here are your settings:
  • Set Task Type to Schedule
  • Set Scope to Order Fulfillment Errors
  • Set Order Orchestration Function to Fulfillment Task

Frequency

Note: Don't run this scheduled process more than one time each day for each combination of parameters. For example, assume you do all the required setups for Global Order Promising, and now need to recover the order lines that are stuck at scheduling. You can run the scheduled process one time each day to recover from these errors.

You can run this scheduled process more frequently to meet a specific requirement, say every eight to ten hours. If you do, you must monitor performance closely. We recommend that you don't run it too often, such as every few minutes or once an hour. You can always run it manually to meet a specific need.

Use Profile Options to Control Recovery

For details about how to enable profile options, see Use Order Profiles to Control Order Management's Behavior.

Percent of Order Lines in Error in Each Hour

Use the Total Number of Order Lines in Each Hour profile and the Percent of Error Lines to Process Each Hour profile together to help avoid performance problems that might happen when you run the Recover Errors scheduled process.

Assume you set these values.

Profile Option Value
Total Number of Order Lines in Each Hour 25000
Percent of Order Lines in Error in Each Hour 10

2,500 is 10% of 25,000, so the Recover Errors scheduled process will attempt to recover about 2,500 order lines that are in error each hour. If the actual number of lines that are in error is significantly more than 2,500, say about 5,000, then the Recover Errors scheduled process will attempt to recover the lines in about 2 hours.

Set Percent of Order Lines in Error in Each Hour conservatively, such as 10%. Set it to a value that works for a typical business day where you don’t expect a lot of lines will go into error.

Increase Percent of Order Lines in Error in Each Hour only when you must recover lines that are in error at a much faster rate than usual. For example, something happens that causes errors to accumulate, such as your server goes down. If you increase it:

  • Increase it gradually, observe performance, then use a value that meets your business requirements.

    Consider the time of day when you run the Recover Errors process. Try to run it when you don't have other activities running that consume a lot of resources on your server.

  • Monitor performance. Adjust the values of these profiles as necessary according to the performance that you observe.

The values in this topic are example values. They aren't recommendations. You must use your own values to meet your business requirements.

For details, see Fix Errors in All Sales Orders.

Skip Functional Errors After Five Tries

If you enable the FOM_LIMIT_ER_RETRY administrator profile option, and if the Recover Errors scheduled process can't recover a functional error after 5 tries, then stop trying to recover that error.

Use this profile to avoid performance problems when the scheduled process tries to recover a functional error an unexpected number of times. For example, assume you normally run this scheduled process every few minutes. Reservation for an item fails because there isn't enough quantity on hand to meet demand, it might take several hours before you replenish inventory, so the process attempts to recover this error even though the root problem of not enough inventory persists. You can enable this profile, and then manually recover the item when you have enough inventory.

Guidelines

  • Use a fulfillment view in the Order Management work area to determine the attribute values that you need to use for each sales order.

  • Add values to more than one parameter to refine your search. For example, set Customer Name to Computer Service and Rentals, and set Order Orchestration Function to Approvals, and the scheduled process will attempt to fix errors in sales orders that include approvals for your Computer Service and Rentals customer.

  • Use Process Options and Advanced to set other options.

  • You can use the Days to Retry Recovery for Business Events parameter to specify the number of days to recover from errors that involve business events. See Manage Order Management Parameters.
  • Learn about source orders, source systems, and orchestration processes. For details, see How Order Management Transforms Source Orders Into Sales Orders.

Avoid Severe Performance Problems

Here's how you can reduce the amount of data that the scheduled process must process:
  • You must set at a value in at least one parameter. We recommend that you specify as many parameters as possible.
  • Set the scope.
  • In general, don't run this scheduled process more than one time each day.

You can use the Recover Errors scheduled process only to recover from unplanned errors. You must not use it as part of your regular business flow. For example, assume you frequently don't have enough quantity to reserve an item, and you frequently encounter an error:

A reservation was not created because the reservation quantity is greater than the available-to-reserve quantity.

You might be tempted to set up Recover Errors so it runs repeatedly on a schedule until there is enough quantity and fulfillment succeeds. However, this technique will almost certainly effect performance.

Instead of using Recover Errors, you must implement another solution. In our example, you could add a Pause step to your orchestration process that pauses the process until the quantity that's available to reserve is greater than the requested quantity on the order line. You would place the pause step immediately before the Reservation step.