Professional Documents
Culture Documents
Rich Mercer Oracle Corporation: Oracle Support Services Revised May 2011
The intent of this document is to discuss methods to consider when streamlining the booking process within the Oracle Order Management application. There are a number of variables to consider when trying to improve performance for booking, such as, tax calculation, pricing strategy, hold definitions, etc. Therefore, this document will certainly grow as the booking process performance is refined. For the inception of this paper, the first variable discussed involves scheduling.
Defer Scheduling
In order to pick release a sales order line, a schedule date is required. As if Release 11i, if no schedule date is populated on the order then scheduling code must be run in order to populate this required field. The scheduling routine uses pertinent information from the order line to derive the best schedule date. The minimum information from the order line includes the Item, Quantity, Unit of Measure and Request Date. Optional information may include more detailed data such as the Inventory Organization (Warehouse) and the requested Schedule Date. This information is used to perform a query mainly against the MSC_DEMANDS, MSC_SALES_ORDERS and MSC_SUPPLIES tables to determine the appropriate schedule date. The request and/or results are temporarily stored in the MRP_ATP_SCHEDULE_TEMP and MRP_ATP_DETAILS_TEMP tables for the ORDER_LINE_ID. This scheduling code may be invoked in a variety ways.
Method 1 AutoScheduling: If Autoscheduling is turned on, the scheduling function is automatically run to populate the schedule date when the line is first saved to the database. To determine quickly if the AutoScheduling is defaulted to on, query up a sales order line and choose Tools from the Menu, if the AutoScheduling is checked then it is turned on by default.
Method 2 Specify a Schedule Ship Date - If a Schedule Ship Date is specified on the order line, it is validated through the scheduling routine when the order line is saved. For entering and booking functions, the Schedule Ship Date is an optional field. It is only required in order to Pick Release the order line. The Schedule Ship Date may be manually entered or automatically populated by the Defaulting Rules. Method 3 Workflow Function - Finally, Scheduling may be invoked through a function call as part of a workflow activity. In the seeded workflow process, Line Flow Generic, the scheduling function is not deferred after the booking function is run. Therefore, scheduling is immediately performed as the end user waits for control to return to the form. This is equivalent to running the scheduling function as if AutoScheduling were turned on, only it is done after booking and not upon the first commit of the line.
This scheduling routine can be a very time consuming process, and the question needs to be asked, In our production environment, is it important to our business flow that the scheduling routine be done prior to (or as part of) the order being booked? or more simply stated, In our production environment can we defer the scheduling of the order to a background process? If it is determined that the scheduling process can be done in the background rather than online while the data entry clerk waits, then there is a way to configure your Order Management system to significantly improve performance when booking an order. The approach taken here is not so much to decrease the latency of getting an order to a pick release eligible state, but to increase the throughput, by breaking up the order flow process into smaller pieces. The following diagram illustrates this point.
Scheduling
Deferred to WF Background
We see that when we reduce the overhead associated with the booking process we reduce the online wait time incurred by the user. This allows the user to process a new sales order instead of waiting for the scheduling code to run, thus increasing throughput. To the left of the boxes above the order is in a state of Book Eligible, and to the right is the state of Eligible to be Pick Released. Configuring the system to defer scheduling requires the following steps:
Turn AutoScheduling Off Ensure the Schedule Date is not populated by Default Rules or manually entered Modify the Line Process Flow to Defer Scheduling.
First ensure that the profile for OM: AutoSchedule is set to No. Do this from the Assign Profile Values form (Sysadmin: Profiles + System).
To validate that AutoScheduling is not defaulted to Yes for the Transaction Types, go to the Define Transactions Form in Order Management (OM: Setup + Transactions + Define). Under the Shipping tab, ensure the AutoSchedule checkbox is Off for the Order Transaction Type.
Finally, the AutoSchedule feature can be turned off manually on the form. This is also a good way to validate that the defaulting of AutoScheduling is indeed set to Off. Open the Sales Order form and enter the Order Type field. Next, check the value of the AutoSchedule checkbox in the Tools Menu.
For detailed instructions on implementing this change using the Workflow Builder, see Appendix A of this document. The summary of steps required are: 1. Copy existing workflow process 2. Replace the Schedule Line process activity with Schedule Line, Deferred** 3. Save the process off to the database 4. Assign lines from the Transaction Types form to use the new Line process. The Before and After definitions of the line processes follow:
BEFORE
AFTER
** As of Release 12, a new scheduling sub-process named 'Schedule-Line, Manual' was introduced to control scheduling manually after the order is booked. If the new sub-process is used in the line workflow, then after booking the order, lines are blocked at the 'Schedule - Eligible' activity. From 'Schedule - Eligible' activity the lines can be progressed from Sales Orders window or the Schedule Orders concurrent program can be used to schedule the lines.
In order to use the newly defined line flow called Line Flow Generic, Scheduling Deferred, the line types used on the order for the applicable order type must be modified. Do this by returning to the Define Transaction Types form for the order type and choose the Assign Lines button. End date the existing line flows and insert the new line flows.
In a production environment this would not be done is such a manual fashion, but rather be setup as a scheduled request to be run at an interval that suits your business flow. Once the request is completed the line will have a schedule date (verified in the Sales Order form), and the line will be ready for Pick Release.
1. Open the Workflow Builder on your client machine (Start > Programs > Oracle > Oracle Workflow Builder) 2. Choose the Open folder icon or choose File + Open 3. Next choose the Database radio button and enter the appropriate connect string:
4. Choose OK and you will get a list of all the Item Types loaded into the database. The Item Type you are concerned with currently is the OM Order Line. Choose to Add it to the Visible side of the window as shown.
5. Choose OK and wait for them to be loaded. Notice at this time that the small apps@vis11i icon is representative of a database disk.
This means that saving changes to the workflow definition will be done to the database. You want to be careful to coordinate these changes with any other users who may be using the Workflow Builder at the same time. 6. Expand the Processes branch and locate the Line Flow Generic workflow process.
7. Using the right mouse button, click on this process and choose Copy. 8. Again, click on the right mouse button and choose Paste. Do not be alarmed at the error message.
Once you choose OK you will have the opportunity to change the internal name to a unique value. Change it to the following values as shown below:
9. Click OK and you will have a newly created workflow process called Line Flow Generic, Defer Scheduling which is currently identical to the Order Flow Generic.
10. Double click on your new process to open it in the Process Window as shown below.
11. Click on the Schedule Line process (within the process window) highlighted above and choose the Delete button the toolbar (red X).
12. Now drag the Schedule - Line, Deferred process from the Navigator and drop it onto the Process Window.
13. Now draw the arrow directing the flow from the Enter Line process to the Schedule Line, Deferred process. Do this by using the right mouse button to click on the Enter Line process and while continuing to hold the mouse button down drag the arrow to the Schedule Line, Deferred process and then release the mouse button.
14. Repeat step 13 for drawing the flow arrow from Schedule Line, Deferred to Create Supply Line processes.
15. Save this off to the database using the File + Save option from the Menu.