Optimizing Performance for the Order Management Booking Process

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.

it is validated through the scheduling routine when the order line is saved. Method 3 – Workflow Function . ‘Line Flow – Generic’. Time to Book Booking Validation and Scheduling Booking Validation Time to Book 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. 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 the seeded workflow process. • This scheduling routine can be a very time consuming process. only it is done after booking and not upon the first commit of the line. . 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. Therefore. by breaking up the order flow process into smaller pieces. For entering and booking functions. and to the right is the state of ‘Eligible to be Pick Released’. and the question needs to be asked. the ‘Schedule Ship Date’ is an optional field.If a ‘Schedule Ship Date’ is specified on the order line. In order to turn the defaulting of AutoScheduling Off involves looking at a profile option and the definition of the Order Transaction Type. Scheduling may be invoked through a function call as part of a workflow activity. The following diagram illustrates this point. scheduling is immediately performed as the end user waits for control to return to the form. thus increasing throughput. This is equivalent to running the scheduling function as if AutoScheduling were turned on.• Method 2 – Specify a Schedule Ship Date . To the left of the boxes above the order is in a state of ‘Book – Eligible’. This allows the user to process a new sales order instead of waiting for the scheduling code to run. but to increase the throughput. then there is a way to configure your Order Management system to significantly improve performance when booking an order. It is only required in order to Pick Release the order line. The approach taken here is not so much to decrease the latency of getting an order to a pick release eligible state. Turn AutoScheduling Off AutoScheduling can be invoked in a number of ways.Finally. the scheduling function is not deferred after the booking function is run. The Schedule Ship Date may be manually entered or automatically populated by the Defaulting Rules. ‘In our production environment. ‘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.

Next. Open the Sales Order form and enter the Order Type field. Under the ‘Shipping’ tab.First ensure that the profile for OM: AutoSchedule is set to ‘No’. This is also a good way to validate that the defaulting of AutoScheduling is indeed set to Off. the AutoSchedule feature can be turned off manually on the form. . go to the Define Transactions Form in Order Management (OM: Setup + Transactions + Define). To validate that AutoScheduling is not defaulted to ‘Yes’ for the Transaction Types. ensure the AutoSchedule checkbox is Off for the Order Transaction Type. Finally. Do this from the Assign Profile Values form (Sysadmin: Profiles + System). check the value of the AutoSchedule checkbox in the Tools Menu.

. this is a trivial task. Validate that no rules exists as shown below: Modifying the Line Process Flow to Defer Scheduling The most time intensive change to implement deferred scheduling is to modify the Workflow process for the line. There is no seeded defaulting rules for the schedule ship date. For those experienced in using Workflow Builder. Direct the users not to insert the schedule date when entering order lines. The other method of entering the schedule date is to allow the defaulting rules to populate the field. With your cursor on the ‘Schedule Ship Date’ field click on the ‘Defaulting Rules’ button. and you must be certain that a customized rule was not entered. This can be easily confirmed by querying the Defaulting Rules form (OM: Setup + Rules + Defaulting) for the ‘Order Line’ entity.Ensuring the Schedule Date is not populated To prevent the scheduling code from being run requires that a schedule date not be populated on the order line of the order.

see Appendix A of this document. Copy existing workflow process 2. then after booking the order. lines are blocked at the 'Schedule .For detailed instructions on implementing this change using the Workflow Builder. . a new scheduling sub-process named 'Schedule-Line. Assign lines from the Transaction Types form to use the new Line process. Manual' was introduced to control scheduling manually after the order is booked. The ‘Before’ and ‘After’ definitions of the line processes follow: BEFORE AFTER ** As of Release 12. If the new sub-process is used in the line workflow. The summary of steps required are: 1.Eligible' activity. Save the process off to the database 4.Eligible' activity the lines can be progressed from Sales Orders window or the Schedule Orders concurrent program can be used to schedule the lines. Deferred’** 3. From 'Schedule . Replace the ‘Schedule – Line’ process activity with ‘Schedule – Line.

Click on the ‘Book Order’ button and observe the improvement. Once the request is completed the line will have a schedule date (verified in the Sales Order form). . Scheduling Deferred’. return to the order line and validate that the Schedule Date field is still blank for the booked order line. first save the record using the yellow disk icon on the toolbar.In order to use the newly defined line flow called ‘Line Flow – Generic. Prior to clicking on the ‘Book Order’ button. and the line will be ready for Pick Release. Testing the New Flow To test. The difference between the state of the 2 lines just mentioned is that the first line is not ready for pick release until the scheduling code has run. ensure once again that AutoScheduling is turned Off beneath the Tools Menu and that no Schedule Date is entered. End date the existing line flows and insert the new line flows. To allow the line to pass through the scheduling activity in workflow requires that we run the ‘Workflow Background Process’ for the ‘OM Order Line’ as shown below (Sysadmin: Requests + Run). but rather be setup as a scheduled request to be run at an interval that suits your business flow. enter a new sales order line which utilizes the new line flow. Exercising the scheduling in a deferred state dramatically improved performance on my test system (by a factor of 6). To get a better perspective of how much of an improvement we will realize in the booking process. To make sure that the scheduling function was not run. In a production environment this would not be done is such a manual fashion. 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.

Loading Workflow Builder 2. Choose ‘OK’ and you will get a list of all the ‘Item Types’ loaded into the database. Choose the Open folder icon or choose File + Open… 3. Open the Workflow Builder on your client machine (Start > Programs > Oracle > Oracle Workflow Builder) 2.5 or higher onto your client machine. Steps to Modify the Process within Workflow Builder 1. The Item Type you are concerned with currently is the ‘OM Order Line’.Modifying the Workflow Process to Defer Scheduling Prerequisite 1. Choose to ‘Add’ it to the ‘Visible’ side of the window as shown. Next choose the ‘Database’ radio button and enter the appropriate connect string: 4.Appendix A: . If this has not been done or you cannot connect to the database from your client machine please seek the help of your System Administrator and/or DBA to configure your system accordingly. .

Choose ‘OK’ and wait for them to be loaded. . 8.5. Do not be alarmed at the error message. 7. 6. 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. Notice at this time that the small ‘apps@vis11i’ icon is representative of a database disk. Expand the Processes branch and locate the ‘Line Flow – Generic’ workflow process. click on this process and choose ‘Copy’. Again. Using the right mouse button. click on the right mouse button and choose ‘Paste’.

Change it to the following values as shown below: 9. .Once you choose OK you will have the opportunity to change the internal name to a unique value. 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’.

. Double click on your new process to open it in the Process Window as shown below. Click on the ‘Schedule Line’ process (within the process window) highlighted above and choose the Delete button the toolbar (red X). 11.10.

Line. Deferred’ process and then release the mouse button. 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.12. Deferred’ process from the Navigator and drop it onto the Process Window. Deferred’ process. . Now drag the ‘Schedule . 13. Now draw the arrow directing the flow from the ‘Enter – Line’ process to the ‘Schedule – Line.

Deferred’ to ‘Create Supply – Line’ processes.14. Repeat step 13 for drawing the flow arrow from ‘Schedule – Line. Save this off to the database using the File + Save option from the Menu. . 15.

Sign up to vote on this title
UsefulNot useful