Extending Oracle Order Management Seeded Workflows

This chapter covers the following topics:

Overview

This chapter provides guidelines to follow for extending the Oracle Order Management seeded workflow processes to meet your business needs. Oracle supports the extension of workflows. Extensions include using existing seeded subprocesses to build new workflow processes and modifying parameters of a subprocess without changing process logic (for example, changing the wait period of the Wait activity from month end to daily).

If the Oracle Order Management seeded workflows do not meet your business processing needs, you can create new flows by using any of the following methods:

Warning: Oracle provides support only for its seeded activities, processes, and the type of extensions described in this manual. Oracle does not provide support for your custom activities and processes.

Customizations

A customization changes the logic of the core application. Oracle does not support customizations to seeded workflows. Examples of customizations include:

Warning: Customization refers to the modification of the logic of a process or subprocess, and is not supported by Oracle.

Exceptions

The following exceptions are supported by Oracle:

For more information about extending workflows or to learn how to create your own workflows, refer to the Oracle Workflow User's Guide.

Extending Workflow

When extending existing workflows to meet your business needs, always copy the seeded process and rename both the internal and display names before modifying the workflow. This process ensures that you do not modify seeded data. It also prevents patches containing the.wft files (which contain all the seeded flows and related information) from overriding your modifications.

Warning: If you modify any of Oracle's seeded workflow data, your changes are not supported. Any changes to the seeded workflow data are overwritten when a patch containing the .wft file is applied.

For example, you should not directly change the Book - Order, Manual subprocess by adding or deleting activities from it. Copy and rename what you want to change before making modifications. Do not modify predefined data; this includes all function activities, subprocesses, processes, and item attributes.

Always modify a copy of a subprocess instead of function activities. For example, use the seeded Book - Order, Manual subprocess rather than the seeded Book function activity. The subprocess is designed to handle exceptions, and it may perform other functions as well. For example, the Create Supply Order - Line, Manual subprocess not only creates supply, but also determines whether an item is sourced internally or externally.

Once you have modified an order or line flow, assign it to an order or line type. For more information about assigning workflows to transaction types, refer to Assigning Workflows to Transaction Types.

Dependencies

Oracle Order Management requires that some workflow events occur before others. This creates certain dependencies that should not be violated. For example, shipping is dependent on booking and therefore cannot occur after booking.

The following list describes dependencies in Oracle Order Management:

There are several ways to extend workflow processes without violating the Oracle Order Management dependencies. The following are several examples of extending workflow:

Guidelines

When extending workflow processes to meet your business needs, stay within the following guidelines:

More Guidelines on Extending Workflow

If you are extending the seeded Order Management workflows to add workflow custom activites, please refer to the standards and procedures in the Oracle Workflow Developer's Guide. All PL/SQL stored procedures that are called by function or notification activities in an Oracle Workflow process should follow this standard API format so that the Workflow Engine can properly execute the activity.

The Workflow Engine traps errors produced by function activities by setting a savepoint before each function activity. If an activity produces an unhandled exception, the engine performs a rollback to the savepoint, and sets the activity to the ERROR status. For this reason, you should never commit within the PL/SQL procedure of a function activity. The Workflow Engine never issues a commit as it is the responsibility of the calling application to commit.

For environments such as database triggers or distributed transactions that do not allow savepoints, the Workflow Engine automatically traps "Savepoint not allowed" errors and defers the execution of the activity to the background engine.

If you must use a commit/rollback, please ensure that your extension is built as an autonomous transaction that insulates the main transaction by establishing the savepoint. Adding Commit/Rollback will interfere with the referential integrity of the application and will cause data corruption and exceptions that will stop the flow of an order or its line.

Examples of Extending Workflow

This section discusses possible extensions to the seeded Oracle Order Management workflows. The extensions listed do not violate Oracle Order Management dependencies, change core logic, or violate the rules for modifying a subprocess.

Note: Always remember to copy the seeded process or subprocess and rename both the internal and displays name before making any modifications.

Process Parameters

Complete the following steps to modify the Close - Order subprocess to close orders more frequently than month-end.

  1. Copy and rename the internal and displays names for the Close - Order subprocess.

  2. Modify the Wait function activity in the copied and renamed Close - Order subprocess. If you want the orders to close twice a day, open the property sheet of the Wait activity, select the Node Attributes tab and set the Wait Mode to Relative Time, and set the Relative Time attribute to a value of .5.

  3. Drag and drop this subprocess into your new header level process. Remember to modify the internal and display names of this new process.

  4. Attach your new process to a Transaction Type.

Approvals

You can extend processes and subprocesses by adding approvals. Refer to the Oracle Workflow User's Guide for more information about approvals.

One way to extend a workflow process using an approval is to add an approval to the header before booking. To create a process with this approval, complete the following steps:

  1. Copy and rename the internal and displays names for the header level booking subprocess (Book - Order, Manual or Book - Order, Deferred).

  2. Create the approval message and notification. For more information about creating messages and notifications, refer to the Oracle Workflow User's Guide.

  3. Insert the approval notification function activity into the subprocess so that the approval occurs before booking.

  4. Save your new subprocess and drag and drop it into a header level flow process (one that has been copied and renamed for your extensions).

  5. Select the performer of the notification.

  6. Set up a Transaction Type in Oracle Order Management that uses your new header process flow.

For more details on creating and extending workflows refer to the Oracle Workflow User's Guide.

Another way to extend a workflow process using an approval is to require approval for all standard line processes before a Ship activity can occur. To create a process with this approval, complete the following steps:

  1. Copy and rename the internal and displays names for the line level subprocess (such as Line Flow - Generic).

  2. Create the approval message and notification. For more information about creating messages and notifications, refer to the Oracle Workflow User's Guide.

  3. Set the performer of the notification.

  4. Insert the approval notification function activity into the subprocess so that the approval occurs before booking.

  5. Assign your new line process to a Transaction Type in Oracle Order Management.

For more details on creating and extending workflows refer to the Oracle Workflow User's Guide.

Deferred Booking

Another extension available at the order header level is to create a process with deferred booking. To create a process with deferred booking, complete the following steps:

  1. Copy and rename the internal and displays names for the order level process you want to extend (such as Order Flow - Generic).

  2. Remove the Book - Order, Manual subprocess.

  3. Insert the Book - Order, Deferred subprocess in place Book - Order, Manual.

  4. Save your new process and assign it to a Transaction Type in Oracle Order Management.

Time-out Transition for Notifications

The time-out transition option is another way to extend workflow to meet business requirements. In the case of quotes, for example, a yes/no approval function activity is inserted before Book - Order, Manual or Book - Order, Deferred. If approved the order continues to the booking subprocess. The order closes if either of the following conditions occur:

To set up such a process with a time-out transition, complete the following steps:

  1. Copy and rename the internal and displays names for the line level subprocess (such as Line Flow - Generic).

  2. Create an approval message and notification. For more information about creating messages and notifications, refer to the Oracle Workflow User's Guide.

  3. On the Node tab of your notification define a time-out. If you use the Relative Time time-out of 30 days, orders processed using this Transaction Type close after 30 days if the notification is not approved.

  4. Set the performer of the notification.

  5. Insert the approval notification function activity into the subprocess so that the approval occurs before booking.

  6. Assign your new line process to a Transaction Type in Oracle Order Management.