Guidelines for Managing Change That Happens During Order Fulfillment

Apply guidelines when you specify how to process change that happens during order fulfillment, including how to compensate change.

Import Change From Channel

You can import change orders through various channels.

flow of import change orders through various channels

Note

  • A channel can include an order capture system, fulfillment system, the Order Management work area, and so on.

  • Order Management cross-references, transforms, validates, and orchestrates the change in a way that's similar to how it does this work for a new sales order. If rules that control how to process a change exist, then Order Management applies them. You can use setup options to modify how Order Management does this processing.

  • Use the same Excel template that you use to import sales orders to import change orders. For details, see Import Orders Into Order Management.

  • Use the same web service that you use to create a sales order to import a change order. For details, see Use Web Services to Import Orders.

  • Use only one channel to make changes. For example, use Create Order Revision to make changes, or use a web service, or use file-based import. Don't use Create Order Revision and web services and file-based import. Using different channels causes confusion when attempting to identify the source of the change.

  • Some implementations price the order in a channel, then send it to Order Management:

    • You can't change the pricing that your channel uses to the pricing that Oracle Pricing uses.

    • You can't change the pricing that Oracle Pricing uses to the pricing that your channel uses.

  • Order Management submits the change orders that it receives through a web service to order fulfillment. You can't submit a change order through a web service and keep it in Draft status. Order Management only keeps a sales order in Draft if an error happens in the change order.

  • Order Management doesn't update a sales order that's in Draft status.

  • If you use Create Order Revision in the Order Management work area, and if you must revise the order again, then use Create Order Revision again. Don't use a web service or file-based import to revise the order again.

Manage attribute values:

  • If you change only one line in a sales order, then it isn't necessary to import all order lines.

  • To cancel the order line, import a quantity of 0.

  • Order Management sets the attribute value to empty for each order line attribute that the channel doesn't send. For example, if the original order includes a value for Shipping Method, and if the channel sends a change request that doesn't include Shipping Method, then Order Management sets Shipping Method to empty.

  • If the channel revises only the order header, then Order Management revises the header but not the order lines.

  • The channel must include a value for each required attribute.

  • To cancel an order line, the channel must explicitly request the cancel. Order Management doesn't implicitly cancel order lines when it revises a sales order.

Orchestrate Fulfillment

Use the Edit Orchestration Process Definition page in the Setup and Maintenance work area. For details, see Set Up Orchestration Processes.

page Edit Orchestration Process Definition in work area Setup and Maintenance

You can administer these attributes:

Attribute

Description

Cost of Change Rule

A rule that you set up on an orchestration process that specifies the business cost your organization will incur as a result of processing the change.

Change Mode

An option that you set on an orchestration process. It determines when Order Management records the state of the process. It compares these states when it compensates the sales order.

Choose a value:

  • Advanced. Process change. Record the state of the orchestration process at each orchestration process step.

  • Simple. Process change only on the step that receives the change. Record the state of the orchestration process when it starts and at the step where the orchestration process receives the change.

  • None. Don't allow change. Don't record the state of the orchestration process.

Use Flexfield Attributes

An option that you can set on an orchestration process or orchestration process step that specifies whether to examine flexfield attributes when compensating the sales order.

If you enable this option, then Order Management examines flexfield attributes that the item references to determine whether it must compensate the orchestration process.

Assume you create a flexfield named Color. Assume the user changes the value of Color from Red to Blue. You can use Color during compensation to allow your fulfillment system to reschedule the order line so it ships a blue item instead of a red one.

Order Management disables Use Flexfield Attributes and Use Transactional Item Attributes on each predefined orchestration process, by default. You can't enable these options on a predefined orchestration process. However, you can create a copy of a predefined orchestration process, and then enable them on the copy.

Use Transactional Item Attributes

An option that you set on an orchestration process or orchestration process step that specifies whether to examine transactional attributes when compensating a sales order. For details, see Manage Transactional Attributes.

Enable the Use Flexfields Attributes option and the Use Transactional Item Attributes option only if you will send these attributes to your fulfillment system during compensation.

Use Dynamic Attributes

An option you can set that specifies whether to examine dynamic attributes when compensating a sales order.

Compensation Pattern

A rule that you set up on an orchestration process step that specifies the adjustment to make to the sales order when the order changes.

For example, if Order Management receives a change order that specifies to ship an item from a different warehouse during the Create Shipment step, then it runs the Cancel service and the Create service again.

If you don't specify a compensation pattern, then Order Management uses the predefined compensation pattern, by default. A predefined pattern uses Update, Cancel, or Create.

Task Type

An attribute that you set on an orchestration process step. The task type that you select determines the attributes that Order Management uses when it determines whether it must compensate the sales order for this step.

Order Management comes predefined to use a set of attributes for each predefined task type. You can't modify the predefined set up, but you can add more attributes. Order Management doesn't add these attributes to a new task type that you add, and it doesn't evaluate this task until you add these attributes. To add them, you must click Add All.

Reserve Supply

If you reserve or schedule an order line according to future supply, then consider whether your orchestration process needs the reserve step or the schedule step. For example, the reservation step examines supply that's currently available, and then reserves it to make sure your fulfillment system can fulfill the item. If you don't need to reserve supply, then don't include the reservation step. If you do need to reserve, then consider making the reservation step a manual step, for example, so the user must click a button, such as Reserve.

You can also add a pause step before the reserve or schedule step. The pause task can pause the orchestration process until the shipment is almost ready to ship, such as 12 hours before scheduled shipment. When the reservation step runs, it will provide a more accurate picture of supply that's available because it's closer to the ship date. Waiting to reserve supply in this way can also reduce the cost of holding inventory until it's time to ship.

Set Up Rule for Cost of Change

Rule for Cost of Change

Note

  • Set up a rule that measures the cost of change. If it's too high, then reject the change.

  • In the header area of the orchestration process, next to Cost of Change Rule, click Click for Rule.

  • Use Advanced Mode.

  • Use the Assign action.

  • Assign a numeric value to Header.mRuleDecision.costOfChange. For example:

    Header.mRuleDecision.costOfChange = 10

Set Up Compensation

Set Up Compensation

Note

  • Use a compensation rule only to compensate change. If you must also set the values for other attributes, then use a posttransformation rule.

  • In the steps area of the orchestration process, in the step that you must compensate, in the Compensation Pattern column, click Click for Rule.

  • Use Advanced Mode.

  • In the IF statement:

    • Use a change function, such as attributeChanged or Changed.

    • Specify the attribute that changed. For example, if the user changed the Item attribute, then use INVENTORYITEMID.

  • For example:

    Fline.attributeChanged(DooSeededOrchestrationRules.IFLine. INVENTORYITEMID)is true

    Get the list of attributes that you can specify. For details, see Entities and Attributes That You Can Use When You Integrate Order Management with Other Oracle Applications.

  • In the THEN statement:

    • Use the Assign action.

    • For example:

      header.mRuleDecision.compensationPattern = "CANCEL_CREATE"

    • Assign a value.

      Value

      Description

      UPDATE

      Update the current fulfillment request with the latest attribute value.

      Each orchestration process comes predefined to use UPDATE, by default. If you don't specify a compensation pattern, and if the orchestration process detects a change, then it will send an update request to the fulfillment system.

      UPDATE_CREATE

      Update the current fulfillment request with the latest attribute value, and also create a new request.

      CANCEL_CREATE

      Cancel the current fulfillment request, and then create a new request that includes the latest attribute value.

      CANCEL_UPDATE

      Cancel the current fulfillment request, and then update another fulfillment request with the latest attribute value.

      CANCEL_UPDATE_CREATE

      Cancel the current fulfillment request, update another fulfillment request with the latest attribute value, and then create a new request that includes the latest attribute value.

      NOOP

      NOOP (No Operation). Don't do any compensation.

      These values determine what request the orchestration process sends to the fulfillment system.

Constrain Change

Use a processing constraint:

  • Disallow change that you know your fulfillment system can't accommodate, such as changing the supplier for an item that requires significant lead time for the supplier to produce.

  • Make sure a channel doesn't make a change that your fulfillment system can't accommodate.

  • Make sure the user includes required attributes. Assume you add your own numeric attribute x for invoicing, and invoicing requires attribute x to calculate the invoice. You can use a constraint to make sure the user adds a value for x, and that the value is numeric.

  • If a constraint doesn't meet your business requirement, then use an order management extension to validate, then display a message or warning.

page Manage Processing Constraints

Note

  • Set the Constraint Entity attribute to Order Fulfillment Line.

  • If the Enabled attribute is active on a predefined constraint, then you can disable it. Disable a predefined constraint only after you make sure removing the constraint won't negatively affect your implementation.

  • Use the same value in the Group Number attribute to create an AND condition across constraints. For example, if you set Group Number to 10 for condition x, and Group Number to 10 for condition y, and if conditions x and y both evaluate to True, then Order Management applies the constraint.

  • Use different values in Group Number to create an OR condition. For example, if you set Group Number to 10 for condition x, and Group Number to 20 for condition y, and if condition x or y evaluates to True, then Order Management applies the constraint.

  • Use the Applicable Roles tab to specify the user roles that can or can't edit an attribute according to the constraint.

  • Use the Manage Processing Constraints page in the Setup and Maintenance work area.

  • For details, see Manage Processing Constraints.

For example:

flow of Managing Processing Constraints

Here's the logic that this constraint implements.

Prevent user from updating attribute Supplier on fulfillment line.

You set these values:

Attribute

Value

Constraint Entity

Order Fulfillment Line

Constrained Operation

Update

Attribute Name

Supplier

Enabled

Contains a check mark

Manage Attributes That Identify Change

flow of Manage Attributes That Identify Change

This example implements a condition.

If the user changes Quantity on fulfillment line, then perform compensation during shipping.

Note

  • The user creates a revision, clicks Submit, and then Order Management starts the orchestration process.

  • The orchestration process reaches a step that uses the Shipment task type, then examines the Manage Order Attributes That Identify Change page in the Setup and Maintenance work area to determine whether to process the change.

  • For details, see Manage Order Attributes That Identify Change.

For example:

setting attribute Task Type

Note

  • Set the Task Type attribute to a value, such as Schedule, Reservation, Shipment, and so on, to determine when to examine the change.

  • Specify an entity to determine where the attribute resides:

    • Order Fulfillment Line

    • Order Line

    • Order Header

  • Specify the attribute to examine, such as Ordered Quantity.

  • Use the Add action to add an attribute.

  • You can add a predefined attribute, such as Ordered Quantity, but you can't disable it.

Other Guidelines

Order Management doesn't run pretransformation rules when you use Create Order Revision. If you must set the default attribute value on a new order line that the user adds when using Create Order Revision, then create a posttransformation rule that sets the default value.

You can use a fulfillment view to change a large number of fulfillment lines. If you set up a number of business rules that must run for each change, and if you submit a large set of changes, then you might encounter degraded performance. You must test how many fulfillment line updates your environment can accommodate, then limit the updates from the fulfillment view according so they meet your performance requirements.