Common Errors and Solutions when Using Workflow in Order ManagementAn Oracle White Paper March 2007
ContentsExecutive Summary ....1 1. Introduction .....2 2. Processing Orders Using Workflow ....7 3. Error Handling ......16 4. Data Corruption ....25 5. Workflow Performance Degradation .....29 6. Data Needed to Request Data Fix .......30 Appendix A .32 References .33 List of Illustrations: Figure 1a. Generic Order Header Workflow Process . .2 Figure 1b. Generic Order Line Workflow Process .3 Figure 1c. Generic Generate Default Account Process 3 Figure 1d. Activities List Window ..5 Figure 1e. View Diagram Window .6 Figure 2a. Incomplete Result at Booking ..9 Figure 2b. Process Message Window for Activities in SO Form 10 Figure 2c. Process Message Window for Deferred Activities 11 Figure 2d. On Hold Result at Booking 12 Figure 2e. Not Eligible Result at Invoice Interface 13 Figure 3a. OMERROR Process 17 Figure 3b. Open Messages Checkbox is Checked . 18 Figure 3c. View Open Messages from the Sales Order Form 19 Figure 3d. Line Stuck at Shipped Open Messages not Checked .20 Figure 3e. Fulfill Activity in Error .20 Figure 3f. Workflow Errors for Fulfill Activity 21 Figure 3g. Retry of the Fulfill Activity in Error 21 Figure 3h. Successful Retry of the Fulfill Activity in Error .. 22 Figure 3i. Line After Retry of the Fulfill Activity in Error .23
Executive Summary: Workflow in Order Management is the engine that processes orders from start to finish. At times, order headers and lines encounter errors in either seeded or customized flows. When the workflow gets stuck it refuses to continue to the next activity. The result is that orders or RMAs cannot be booked, configuration items cannot be created, lines cannot be fulfilled, shipments cannot be invoiced, orders cannot be closed and so on. This presentation will discuss how to resolve and prevent these workflow issues and as a last resort what data is needed to request a data fix from Development.
1IntroductionWorkflow controls the sequence of events that occur in the processing of sales documents such as orders, quotes, blanket sales agreements, returns, order lines, and return lines. Oracle Workflow manages activities, executes functions, sends notifications, maintains completed activity history, detects errors, and initiates error processes. An Item Type is a grouping of workflow components into a high level category. All components of a workflow process must be associated with a specific item type. An item type can contain multiple processes. OM Item Types Order Management uses the following seeded workflow item types to process headers and lines: OM Order Header (OEOH) - All Order Header level activities and sub-processes are seeded under this WF Item type. Header flows are started using this item type with the header ID as the Item Key. An order flow is started when an order header is created and saved. OM Order Line (OEOL) - All order line level activities and subprocesses are seeded under this WF item type. Line flows are started using this item type with the line ID as the item key. An order line flow is started when an order line is created and saved. OM: Generate Cost of Goods Sold Account (OECOGS) - This is the item type that encompasses all processes designed to build the COGS account when interfacing transactions from Order Management to Inventory. The following is an example of a generic order header workflow process belonging to the OEOH item type:
Figure 1a: Generic Order Header Workflow Process The Order Flow Generic is the most commonly used header flow. This process includes activities that book and close the order header. It can be used with any line flow for any item type, with outbound lines and with return lines. The following is an example of a generic order line workflow process belonging to the OEOL item type:
Figure 1b: Generic Order Line Workflow Process The Line Flow Generic line flow manages several item types. It can be used for all items including assemble-to-order (ATO) items, ATO models, kits, and pick-to-order (PTO) models. This flow will not work for configured items generated from assembleto-order models. The following is an example of the generic Generate Default Account process belonging to the OECOGS item type:
Figure 1c: Generic Generate Default Account Process The Generic Generate Default Account Process derives the Cost of Goods Sold account for a transaction interfaced to Inventory from Order Management/Shipping. It comes seeded with the function Get CCID (account ID) for a line. This function will return the CCID from the Cost of Goods Sold assigned to the item on the sales order line within the shipping inventory organization. To generate the COGS Account from the Order Type, please review Note.414314.1 for detailed instructions. Note: Workflow processes starting with UPG_** are upgraded workflows for use in processing upgraded orders from prior releases. These workflows should never be used for new orders after the upgrade as they contain inefficient or obsolete activities in 11i. Process Dependencies There is a parent and child dependency between orders and lines. Example: 1. Order lines should wait for the order to book before progressing in their individual Line flows. 2. All order lines should close, before the order header closes. Viewing Workflows in Oracle Order Management From within Order Management you can view the active workflow processes discussed in this paper and their associated functions, messages, sub-processes, notifications, and properties. These processes must be in an active running state and also associated with a sales order or sales order line in order to view them. To view processes for specific orders within Order Management, complete the following steps: 1. Open the desired order in Oracle Order Management. 2. Navigate to the Tools menu and select Workflow Status. 3. A new window opens and displays the workflow status as an activities list.4
The following image depicts the Activities List window in Oracle Order Management:
Figure 1d: Activities List Window 4. Select the View Diagram button to view the actual workflow diagram. The following image depicts the View Diagram window in Oracle Order Management:
Figure 1e: View Diagram Window
2Processing Orders Using WorkflowThere are three modes in which orders or lines can be progressed: Synchronous, Manual or Deferred. When an order (or line) is created, the application starts a header (or line) flow for it. The Workflow engine will push the order/line ahead as long as the activities are synchronous. The flow stops when it hits block activities, notification activities or wait activities. The flow gets deferred to the background when it hits a high-cost activity or an activity that explicitly defers the flow to the background. Synchronous Completion In this mode, once a flow is started or re-started the WF activities are executed synchronously or online until it reaches the end of the flow or reaches some kind of block activity or is deferred. Example: You create a line that uses the seeded Line Flow Generic. This has the seeded Schedule - Line sub-process. Provided that there are no holds, once the order is booked, the line will automatically schedule. The flow will then continue on and stop at the Ship activity, making the line eligible for Pick Release. Manual Completion If the order/line hits an Eligibility Block, then you can move the order/line forward via the Progress Order LOV (Actions > Progress Order). This LOV displays the functions that the order or line is eligible for (and can be manually completed). Example: You create an order that uses the seeded Book Order, Manual sub-process. When an order is eligible for Booking, the flow will stop at the Book Eligible block. The Progress Order LOV on the Sales Order Header form displays that the order is eligible for Booking. Clicking Ok on the LOV will trigger completion of the Book Eligible block. The flow will move to the Book activity and execute it, thus booking the order.
Deferred Completion An order or line flow can also stop because the flow was deferred to the Background Engine. Example: Fulfillment is deferred in all the seeded line flow. The Workflow Background Engine Process concurrent program needs to be scheduled to run at periodic intervals to be able to fulfill and invoice interface lines (otherwise it would have to be manually executed). The Workflow Background Engine also processes Wait activities and Timed-Out activities. Activity Results Most Order Management function activities use the standard seeded lookup OM Sub-Process Results, handles Holds. This lookup has the following result codes: Complete, Incomplete, On Hold and Not Eligible. 1. Complete - A function activity completes with the Complete result when it executes successfully. Example: When the seeded Book function successfully books an order, it will complete with a Complete result. Please refer to Figure 1d. 2. Incomplete - A function activity completes with the Incomplete result when it runs into expected errors that it is built to handle. The Incomplete result normally transitions to an Eligibility block or a Wait Activity. Example: When the seeded Book function finds that the order line does not have a Ship To on the order line, it will complete with an Incomplete result and transition to the Book -Eligible activity. The following image depicts the Incomplete Result at Booking:
Figure 2a Incomplete Result at Booking When an activity is completed via the Sales Order window, the Processing Messages window appears to display messages that indicate errors. The error message can be retrieved from the Header or the Line using Actions > View Open Messages. The following image depicts the Process Message Window for the Inc