Processing Constraints

You can use a processing constraint to control the modifications that your users can make on a sales order.

A processing constraint is a rule that controls who can change a sales order, what can change in the sales order, and when the change can happen. For example:

  • If an Order Entry Specialist attempts to submit or modify a sales order, order line, or fulfillment line, and if a processing constraint doesn't allow the submit or change, then reject it and displays a message.

  • If a source system attempts to submit or modify a sales order, then reject it and send a return message.

Order Management also uses predefined processing constraints to make sure each fulfillment request includes the attributes that it needs to process the request.

Examples

Example Constraint

Description

Reject a change when the sales order is shipping.

Assume an orchestration process achieves the shipping stage for a sales order, and a user submits a change.

  • The shipping stage happens late in the orchestration process.

  • It's expensive and not practical to change the sales order.

Create a constraint that rejects the change after the orchestration process has achieved the shipment step.

Reject each sales order that doesn't include required attributes.

Assume your company doesn't deliver items to an address that doesn't include a ship-to contact.

Create a constraint that rejects the sale order when it doesn't include a ship-to contact.

Reject a change that requires approval.

Assume your company doesn't allow the Order Entry Specialist to submit a change if the transaction value exceeds $10,000, and if a manager hasn't approved the change.

Create a processing constraint that rejects a change when all of these conditions are true.

  • The user signed in with the Order Entry Specialist role.

  • The transaction exceeds $10,000.

  • A manager hasn't approved the change.

Parts of a Processing Constraint

Part

Description

Role

The job role that the constraint references doesn't allow you to make the change.

For example, you can constrain an Order Entry Specialist from changing a sales order when the orchestration process proceeds beyond a step that you specify.

Action

The action that the constraint doesn't allow. You can constrain the user from doing these actions.

  • Create

  • Validate

  • Update

  • Split

  • Submit

  • Cancel

  • Delete

Condition

The condition that the constraint evaluates to determine whether to apply the constraint. For example, you can create a condition that applies a constraint when Order Management submits a sales order.

This topic uses predefined job roles. You must create your own job roles, depending on your security requirements. For details, see Privileges That You Need to Implement Order Management.

How It Works

A processing constraint applies this logic:

  • If the validation rule set is true, and if the user attempts an action on the record set that the processing constraint prevents, then constrain the operation and display a message.

Consider an example.

the logic that a processing constraint uses.

Here's how this example works:

Step

Object

Description

1

Processing constraint

If the Order Entry Specialist role does an Update operation on the fulfillment line entity:

2

Validation rule set

And if the Status attribute on the fulfillment line entity contains a value of Awaiting Shipment:

3

Constraint entity

Then constrain the change that the Order Entry Specialist is attempting to make:

4

Record set

According to the Bill-to Customer attribute on the fulfillment line entity.

Another Example

Consider the predefined Shipping Method on Order Header Isn't Valid processing constraint.

If This Applicable Role

Attempts to Do This Constrained Operation

On This Constraint Entity

And If This Validation Rule Set is True

Reject the Change and Display This Message

All

Submit

Order Header

Shipping Method on Order Header Isn't Valid

You can't submit the sales order because the combination of the mode of transport, service level, and carrier that determines the shipping method on the order header isn't valid.

The Shipping Method on Order Header Isn't Valid rule set looks at the mode of transport, service level, and carrier on the order header. If one of these attributes contains a value, then all of them must contain a value. If one of them contains a value but not all of them do, then the rule set evaluates to true and the processing constraint prevents the submit.

Objects That You Set Up for a Processing Constraint

Object

Description

Validation rule set

A group of one or more If statements. For example:

  • If the order is closed, then reject the change.

In this example, a predefined validation rule set named Order is Closed examines the Open attribute on the order header to determine whether the value is N.

Note

  • Use the validation rule set to restrict the validation that the constraint does to lines that meet the condition that you specify, such as lines that are billed.

  • The validation rule set prevents the constraint from examining all lines, which might degrade performance.

  • Create the validation rule set before you create the constraint.

  • You can't modify or delete a predefined validation rule set, but you can create a new one.

  • You can apply a processing constraint when the condition is true or isn't true.

  • You can't enter a value that contains a ~ (tilde) when you create a validation rule set because Order Management uses the tilde as a delimiter when it evaluates the constraint rule at runtime.

    You might also encounter this problem at runtime with some order attributes. For example, a shipping instruction might contain a tilde.

Record set

A set of records that Order Management groups according to common attribute values so it can evaluate a constraint.

For example, to evaluate all sales orders for a customer, specify to evaluate one of these entities when you create the record set.

  • Order header

  • order line

  • Order fulfillment line

You can then select an attribute to refine the record set. For example, to evaluate all sales orders for a customer, select the Order Header entity, then select the Sold-to Customer attribute.

A validation rule set and a record set work together to create the conditions where the constraint constrains the action.

You must create your validation rule set and record set first, then create the constraint.

Constraint entity

The business object or orchestration process that the constraint constrains.

For example, an order header, or an attribute of an order header, such Latest Acceptable Ship Date.

Constraint package

A set of triggers that Order Management applies to a table in an Oracle database. A background process sets triggers when you create a constraint package.

A constraint package can activate a new or modified.

  • Validation rule set that's of a table type

  • Record set for a processing constraint

Here are the ways that you create a constraint package.

  • Use the Manage Processing Constraints page or run the Generate Constraint Packages scheduled process.

  • Create or modify a record set or a validation rule set that's of a table type.

You don't need to create a constraint package for a validation that isn't a table type.

Constraint Name

Here are the text strings that you can use in the constraint name.

Text String

Constraint That Happens During Validation With

GTM

Oracle Global Trade Management.

PAYMENT

Payment.

PRICING

Pricing.

Constraint name doesn't include GTM, PAYMENT, or PRICING

Screen for all types during order validation.

For example, to indicate payment, use DOO_PAYMENT_EXCEPTION.

The text style in the text string isn't case-sensitive. For example, use GTM, Gtm, gtm, gtM, and so on.

You can place the text string anywhere in the constraint name.

How Order Management Displays Your Constraint's Message

Order Management typically displays the value that you enter in your constraint's Message attribute in the Order Management work area. However, it doesn't display that message for some actions in a fulfillment view.

Assume you create a constraint that prevents you from editing each fulfillment line that's in the shipping stage, and you add this text in the constraint's Message attribute.

You can't update the fulfillment line because its in the shipping stage.

At runtime, you:

  1. Create a sales order with 100 order lines and click Submit.
  2. Wait several days. While you wait, Order Management ships 70 of the 100 order lines.
  3. Open the order and click Switch to Fulfillment View.

On the Order page, you click Fulfillment Lines, select all 100 lines, then click Actions > Edit.

Order Management displays a warning that you can't do the action on all the lines, but you expected it to display your constraint's message. Order Management doesn't display the value from your constraint's Message attribute because it would display 70 separate instances of that message. Instead, you can click OK in the warning dialog, then Order Management will display a dialog that allows you to edit the 30 lines that aren't constrained.

Predefined Processing Constraints

Order Management comes with a number of predefined processing constraints. You can view them:

  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, search the Constraint Name attribute for a value:
    • DOO
    • Fulfillment
    • Order

    As an alternative, filter the Constraint Entity attribute.

  3. Examine the search results. They contain various constraints that control Order Management's behavior. Examine the Message attribute to view the message that each constraint displays at run time.

Constrain Sales Credits

If you have a sales credit on the order header, and if Order Management has closed any line in the sales order or interfaced any line to billing, then the DOO_HEADER_SALECREDITS_UPDATE constraint prevents you from modifying that credit. This constraint comes predefined as enabled. We recommend that you leave it enabled, but you can temporarily disable it to meet your needs. For example, the salesperson that you assigned the credit to has become a sales manager so you need to assign it to someone else.

  1. Assume you create a sales order, assign the sales credit on the order header to June Tsai, add two order lines, and submit it. During fulfillment, Order Management closes line 1 and sets line 2 to awaiting shipping.
  2. June Tsai gets promoted to manager, so you disable June as a salesperson.
  3. Your customer requests to revise line 2, so you need to revise the sales order:
    • Go to the Setup and Maintenance work area, use the Manage Processing Constraints page to disable the DOO_HEADER_SALECREDITS_UPDATE constraint, then click Generate Packages.
    • Go to the Order Management work area and create a revision for the sales order.
    • On the revision, click the pencil next to Sales Credits, set the Salesperson attribute to someone else, such as Diane Cho.
    • Update line 2, then submit the revision.
    • Use the Manage Processing Constraints page to enable the DOO_HEADER_SALECREDITS_UPDATE constraint and generate packages.

For background about how to create a salesperson, see How To Define Sales Person (Doc ID 2155741.1) on My Oracle Support.

More

  • If you set up a constraint that doesn't include a condition, then the constraint is always true. For example, the predefined processing constraint that prevents the Order Entry Specialist from deleting a sales order prevents deletion in all situations.

  • You can use a constraint with an extensible flexfield.

  • You can write a constraint for a sales credit. For example, write a constraint that prevents the user from updating the sales credit if Order Management already shipped the order line. You can't write a validation rule set that constrains a sales credit. For example, you can't write a constraint that prevents the user from updating the warehouse if the sales credit empty.

  • Learn how to use a constraint to manage change, including how to set up AND and OR conditions. For details, see Guidelines for Managing Change That Happens During Order Fulfillment.