Oracle Supply Chain Management Cloud Release 10
Oracle Supply Chain Management Cloud Part Number E60816-02 Copyright 2011-2015, Oracle and/or its affiliates. All rights reserved. Authors: Cynthia Stevens, Deborah West This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited. The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing. If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, the following notice is applicable: U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/ or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs. No other rights are granted to the U.S. Government. This software or hardware is developed for general use in a variety of information management applications. It is not developed or intended for use in any inherently dangerous applications, including applications that may create a risk of personal injury. If you use this software or hardware in dangerous applications, then you shall be responsible to take all appropriate fail-safe, backup, redundancy, and other measures to ensure its safe use. Oracle Corporation and its affiliates disclaim any liability for any damages caused by use of this software or hardware in dangerous applications. Oracle and Java are registered trademarks of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Intel and Intel Xeon are trademarks or registered trademarks of Intel Corporation. All SPARC trademarks are used under license and are trademarks or registered trademarks of SPARC International, Inc. AMD, Opteron, the AMD logo, and the AMD Opteron logo are trademarks or registered trademarks of Advanced Micro Devices. UNIX is a registered trademark of The Open Group. This software or hardware and documentation may provide access to or information on content, products and services from third parties. Oracle Corporation and its affiliates are not responsible for and expressly disclaim all warranties of any kind with respect to third-party content, products, and services. Oracle Corporation and its affiliates will not be responsible for any loss, costs, or damages incurred due to your access to or use of third-party content, products, or services. For information about Oracle's commitment to accessibility, visit the Oracle Accessibility Program website at http://www.oracle.com/pls/topic/lookup? ctx=acc&id=docacc Oracle customers have access to electronic support through My Oracle Support. For information, visit http://www.oracle.com/pls/topic/lookup? ctx=acc&id=info or visit http://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs if you are hearing impaired.
Contents Preface 1 i Manage Open Sales Orders Overview 1... 1 Order Management Flow with Oracle CPQ Cloud: How it Works Order Orchestration Business Objects: How They Fit Together Searching in the Order Orchestration Work Area: Explained Editing Fulfillment Line Attributes: Examples... 6... 7... 8 Fulfillment Line Tax Information: Explained Correcting Errors: Explained... 3... 7 Recurring Charges and Order Total: Explained Parallel Processing: Explained... 1... 9... 9 Recovering Orders in Bulk: Procedure... 12 Using Scheduled Processes to Recover Orders in Bulk: Procedure... 12 Sourcing Items from a Different Warehouse: Points to Consider... 13 Resolving Fulfillment Line Exceptions: Points to Consider... 14 Using Holds to Temporarily Stop Processing: Explained... 17 Reviewing Exceptions: Examples Manual Scheduling: Explained... 18... 19 Order Orchestration Work Area Analytics: Explained... 20 Order Orchestration Work Area Analytic Types: Explained Split Fulfillment Lines: Explained... 23 Disabled Fulfillment Line Actions: Explained Models: Explained... 22... 24... 26 Closing Orchestration Orders: Procedure Fulfillment Line Closure : Explained... 27... 30 FAQs for Manage Open Sales Orders... 30
2 Process Sales Orders Overview 33... 33 Changes in Order Orchestration: How They Are Processed Order Orchestration Task Layer: Explained... 33 Shipment Task Layer Services: Explained... 36 Schedule Task Layer Services: Explained... 37 Reservation Task Layer Services: Explained Invoice Task Layer Services: Explained... 38... 38 Pausing Orchestration Processes: Explained... 39 Holds Task Layer Services: Explained... 40 Return Task Layer Services: Explained... 40 Orchestration Process Assignment Failure: Explained FAQ for Process Sales Orders 3... 33... 41 Orchestration Lookups: Explained 43... 43 Orchestration Profile Options: Explained Manage Hold Codes... 41... 43... 44 Manage Orchestration Source Systems... 45 FAQs for Orchestration Source Systems... 48 Collect Orchestration Reference and Transaction Data Perform Orchestration Data Collections Review Orchestration Collected Data... 52... 54 FAQs for Review Planning Collected Data Define Orchestration... 48... 55... 56 Define Processing Constraints... 111
Preface Preface This Preface introduces information sources available to help you use Oracle Applications. Oracle Applications Help Use the help icon to access Oracle Applications Help in the application. Note If you don't see any help icons on your page, click the Show Help button in the global area. Not all pages have help icons. You can also access Oracle Applications Help at https://fusionhelp.oracle.com/. Oracle Applications Guides To find other guides for Oracle Applications, go to: Oracle Applications Help, and select Documentation Library from the Navigator menu. Oracle Help Center at http://docs.oracle.com/ Other Information Sources My Oracle Support Oracle customers have access to electronic support through My Oracle Support. For information, visit http:// www.oracle.com/pls/topic/lookup?ctx=acc&id=info or visit http://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs if you are hearing impaired. http://www.oracle.com/pls/topic/lookup?ctx=acc&id=info http://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs (if you are hearing impaired). Oracle Enterprise Repository for Oracle Fusion Applications Oracle Enterprise Repository for Oracle Fusion Applications (http://fusionappsoer.oracle.com) provides details on assets (such as services, integration tables, and composites) to help you manage the lifecycle of your software. Documentation Accessibility For information about Oracle's commitment to accessibility, visit the Oracle Accessibility Program website at http:// www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc. i
Preface Comments and Suggestions Please give us feedback about Oracle Applications Help and guides! Send e-mail to: oracle_fusion_applications_help_ww_grp@oracle.com. Click your user name in the global area of Oracle Applications Help, and select Send Feedback to Oracle. ii
1 Chapter 1 Manage Open Sales Orders Manage Open Sales Orders Overview A customer service representative, order manager, or order administrator can use the Manage Open Sales Orders business process to make sure sales orders are fulfilled efficiently. These users can use the Order Orchestration work area to manage and monitor this process. This work area provides information about source orders that come from the order capture systems and fulfillment systems that your organization uses. You can do the following work in the Order Orchestration work area: Monitor order status and fulfillment line exceptions. View orchestration orders and orchestration processes. Identify fulfillment lines and orchestration processes that include exceptions. Use a Gantt chart, visual alerts, and orchestration process statuses to identify tasks that are in jeopardy. Check item availability, including options and their costs and delivery dates. Use intelligence that assists you with decision making. Take corrective action, such as substituting an item or splitting fulfillment lines so that order orchestration can supply a product from multiple warehouses. Manually schedule fulfillment lines. Manage holds. Manage order orchestration messages. Recover from errors. Order Management Flow with Oracle CPQ Cloud: How it Works Oracle Fusion Order Management Cloud Service provides an integration between Oracle Configure, Price, and Quote (CPQ) Cloud; Oracle SCM Cloud; and Oracle Financials Cloud. It streamlines the quote-to-cash order process, allowing you to manage how your orders are quoted, priced, fulfilled, and billed. It provides your enterprise with a way to set up order fulfillment to support your operating practices, improve operational effectiveness, improve consistent usage of business processes, and enforce corporate compliance. 1
Chapter 1 Manage Open Sales Orders The following figure illustrates the flow that order management uses when it processes a quote-to-cash order. Explanation of Callouts Order management uses the following steps when it processes an order: 1. Oracle CPQ Cloud creates a quote, adds products to the quote, prices the products, calculates shipping, communicates with Oracle Financials Cloud to approve credit, and then sends the order to order management. If the order includes a configured product, then Oracle CPQ Cloud uses a configurator to configure the product. Oracle CPQ Cloud also handles and sends order changes and order cancellations to order management, and it creates accounts for new customers. 2. Fusion Order Management uses an orchestration process during order import that identifies and assigns the set of steps that it will use to source, schedule, fulfill, pick, pack, and ship the order. The steps that it assigns vary so that 2
Chapter 1 Manage Open Sales Orders they optimize order fulfillment according to the specific needs of the order. It determines process logic, such as how to do forward planning and backward planning, how to compensate for modifications to the order, and it identifies the statuses to use for the order. Order management also calls the task layer services that perform the fulfillment process steps and that manage fulfillment tasks. 3. Fusion Order Management interacts with Oracle Fusion Global Order Promising to determine availability and order promising. If the order must reserve the product, then Fusion Order Management also interacts with the application that handles inventory. It communicates with Oracle Fusion Shipping to ship the order and it updates the fulfillment status. It then sends order information to order billing. 4. Fusion Accounts Receivables processes the billing information, including one-time charges and recurring charges, and then sends this information to Oracle Financials Cloud. 5. Oracle Financials Cloud creates an invoice, and then sends the order to order billing. It also processes payments, manages receivables, and manages revenue. 6. Order billing updates the billing status, and then sends it to Oracle CPQ Cloud. During this process, Fusion Order Management communicates order status and invoice status to Oracle CPQ Cloud, and Oracle Financials Cloud communicates the invoice status to the task layer services. Related Topics Product Transformation Rules: Explained Order Orchestration Task Layer: Explained Order Orchestration Business Objects: How They Fit Together The business objects that order orchestration uses allow you to monitor, manage, and fulfill orders. This topic describes some of these business objects and their relationships. 3
Chapter 1 Manage Open Sales Orders The following diagram illustrates how order orchestration modifies a source order. In this example, order orchestration does the following work: 1. Receives a source order. This order includes four order lines. 2. Decomposes the source order into logical pieces that it can fulfill, including an orchestration order. 3. Assigns fulfillment lines to orchestration processes. 4. Runs the orchestration processes that perform the tasks that are required to fulfill each fulfillment line. Note the following for this example: The first orchestration order line includes one fulfillment line. Order orchestration associates it with an orchestration process. 4
Chapter 1 Manage Open Sales Orders The second orchestration order line includes two fulfillment lines. Order orchestration associates them with a second orchestration process. The third and fourth orchestration order lines each include one fulfillment line. Order orchestration associates them with a third orchestration process. Some Business Objects That Order Orchestration Uses The following are some of the important business objects that order orchestration uses. Object Description Orchestration order Includes orchestration order lines and fulfillment lines. Note the following: The relationship that exists between an orchestration order and an orchestration order line is similar to the relationship that exists between a sales order and a sales order line. An orchestration order might not exactly mirror the structure that the source order uses. Orchestration order line Typically includes one fulfillment line. Note the following: If order orchestration splits a fulfillment line, then it maps two or more fulfillment lines to the same orchestration order line. The relationship that exists between an orchestration order and the orchestration order lines preserves some of the original structure of the source order, making it easier to keep track of the original intent of the source order, even if order orchestration splits the fulfillment lines that it associates with the orchestration order. Fulfillment line The main business object that you modify in the Order Orchestration work area. You can do the following modifications: Schedule or unschedule a fulfillment line Reserve product for a fulfillment line Substitute an item on a fulfillment line Change the warehouse, shipping method, or demand class for a fulfillment line 5
Chapter 1 Object Manage Open Sales Orders Description And so on Orchestration process An order administrator can set up an orchestration process to determine the tasks that this process must perform. You cannot modify an orchestration process definition in the Order Orchestration work area, but you can monitor an instance of this definition while it manages each fulfillment line. You can monitor each fulfillment line as it progresses through the orchestration process. Return fulfillment line Represents an order that order orchestration uses to return items. It is similar to a fulfillment line, but it includes a set of attributes that are specific to returning items. Searching in the Order Orchestration Work Area: Explained You can search for items on the Order Orchestration Overview page of the Order Orchestration work area. You can save searches that you must run frequently, and you can add fulfillment line searches that you have saved to the Watchlist. You can use the following different types of searches. Type of Search Description Basic You can use a few attributes to search for the following items: Fulfillment line Orchestration order Orchestration order line Orchestration process Return fulfillment line Order orchestration message 6
Chapter 1 Manage Open Sales Orders Type of Search Description Advanced Includes more attributes than the basic search includes. Note the following: You can use the Add Fields list to add more fields to the advanced search. If you use it, then the Search Results area displays each field that you add as a column after you run the search. You can use an extensible flexfield, but only with Order Orchestration, and only when you search for fulfillment lines. You cannot use an extensible flexfield with Order Management. All segments in the context are displayed by default. You can use advanced search to search for closed fulfillment lines. You cannot use basic search to search for closed fulfillment lines. Editing Fulfillment Line Attributes: Examples You can edit fulfillment line attributes in the Order Orchestration work area. Editing the Warehouse for Multiple Fulfillment Lines You are an order manager at a company that supplies carpeting from various warehouses throughout the United States. You just found out that the Boston warehouse is flooded due to a recent storm, but you know that the New York warehouse includes sufficient supply. You search for all fulfillment lines that source carpet from the Boston warehouse. You select all the fulfillment lines, and then open the Edit Fulfillment Lines window. You change the warehouse to New York. Editing the Demand Class for Multiple Fulfillment Lines You are an order manager at a company that is attempting to renew the approved supplier status with ABC Corporation. The negotiators at this corporation have stated that they are considering not renewing the approved supplier status due to a number of late orders. Because of the importance of this contract, you must make sure that these orders are not late. You search for all fulfillment lines for ABC Corporation, select all the fulfillment lines, open the Edit Fulfillment Lines window, and then set the Demand Class to High Priority. Recurring Charges and Order Total: Explained Order management uses text in the Your Price field to indicate a recurring charge. For example, the following value describes a recurring charge of $1,200.00 that occurs every month: 1,200.00 per Month If an order line includes a recurring charge, then order management sums only the one-time charges on this order line. It does not include the recurring charge in the Amount field of the order line. If an order line includes only a recurring charge, then 7
Chapter 1 Manage Open Sales Orders order management displays a value of 0 in the Amount field. Order management does this because a recurring charge occurs in a specific time period, but the total includes only the amount that is currently due. This time period might occur sometime after the date when the amount is due. Parallel Processing: Explained Order orchestration can simultaneously process more than one task. You can use this parallel processing to process different sets of fulfillment lines that each require a different set of processing tasks. For example, assume a customer purchases a laptop computer that includes a service contract. The business flow requires that the laptop ship at the same time that the service contract is sent through email. You can use parallel processing to ship the laptop and send the email at the same time. The following figure illustrates part of an orchestration process that includes branches that run in parallel with one another. Step 300 begins the parallel branching. Order orchestration runs steps 400 and 500 in one branch at the same time that it runs steps 600 and 700 in a parallel branch. The Create Invoice and the Wait for Billing steps occur after step 800. This figure does not include these final steps. 8
Chapter 1 Manage Open Sales Orders Order orchestration plans the orchestration process after it finishes each task. However, if a task requires several days to finish, then planning data might not be current because order orchestration cannot replan the branch while it waits for a longrunning task to finish. For information about how to use the Plan Orchestration Processes scheduled process to schedule an update that occurs at regular intervals, see Defining Orchestration Processes: Explained. Guidelines for Using Parallel Processing You set up an orchestration process so that it uses parallel processing in the same way that you set up an orchestration process to use a conditional branch, with the following differences: When you create a branch, you select the Parallel step type. You do not create branching conditions, set an evaluation sequence, or select Otherwise. Note the following: It is recommended that you use parallel processing when multiple, long-running tasks exist that must run at the same time. For example, to send simultaneous requests to two different fulfillment systems that typically require elapsed time to reply. It is recommended that you do not use parallel processing when the reply from a task request occurs almost immediately. You can set up parallel processing so that more than one task can run at the same time. You can filter the fulfillment lines of a group so that the tasks for some lines in this group run at the same time as tasks for the other lines. You can create a parallel process that does not filter lines in a branch so that more than one task is active for each line. Order orchestration does not allow you or a fulfillment system user to split a task that resides in a parallel branch. Related Topics Defining Orchestration Processes That Include Branching: Worked Example Fulfillment Line Tax Information: Explained Order orchestration displays the tax information that it gets from a sales order on a fulfillment line when it processes the sales order. It also sends this tax information to downstream fulfillment systems. These systems can update this information, and then return it to order orchestration. You cannot modify tax information in order orchestration. However, some actions in order orchestration might result in a change to the tax information that you can view. For example, assume you split a fulfillment line, order orchestration lists a new warehouse, and this warehouse uses tax information that is different from the tax information than the previous warehouse uses. An order administrator can create a processing constraint that uses tax attributes, and can specify a tax attribute as an order attribute that identifies change. Correcting Errors: Explained In most situations, order orchestration finishes each sales order to completion without error. If an error does occur, then you can use the Manage Order Orchestration Messages page to troubleshoot the problem. This page displays messages about a fulfillment line. You can also use the following features in the Order Orchestration work area to correct errors. You must possess the error recovery manager role to use these features. 9
Chapter 1 Manage Open Sales Orders Feature Description Assign Lines to Process Attempts to assign fulfillment lines to an orchestration process. Use it to assign fulfillment lines in a sales order that order orchestration did not assign. Recover Order Attempts to recover any orchestration processes or tasks that are in an error state for the orders that you select. You can use it to correct various errors, such as an orchestration process that has not started, or an orchestration process or task that resulted in error. Note the following: You must correct the root cause of the error before you use this feature. This feature is available only when an error is associated with an orchestration order. This feature runs the order starting immediately before the point where the error occurred. You can simultaneously select one or more orders to recover. You can recover orders in bulk. For more information, see Recovering Orders in Bulk: Procedure and Using Scheduled Processes to Recover Orders in Bulk: Procedure. Recover Process Attempts to recover an orchestration process that failed due to an error that is internal to this process, such as an error that occurs when order orchestration runs an orchestration process step, or due to an error when this process processes a task, such as an error that occurs when order orchestration sends a task request to a fulfillment system that is in an error state. Note the following: You can select one or more orchestration processes to recover. You can use this feature to recover all the tasks that a process references. This feature runs the orchestration process starting immediately before the point where the error occurred. Recover Task Attempts to recover a task that failed. Use it to correct an error that occurs when order orchestration attempts 10
Chapter 1 Feature Manage Open Sales Orders Description to send a request to a fulfillment system. Note the following: This feature is available only when a request to a task fails. To simultaneously recover multiple tasks, select multiple orchestration processes or orchestration orders, and then use Recover Process or Recover Order. This feature runs the task starting immediately before the point where the error occurred. Correcting Errors That Occur Outside of Order Orchestration You must correct the following errors outside of order orchestration. Error Solution An error that occurs in a source order that fails during decomposition. Resubmit the order..an error that occurs when order orchestration processes a reply from a fulfillment system. Resubmit the reply. An error that Oracle Enterprise Manager identifies as recoverable. Use Oracle Enterprise Manager to recover the error. Correcting Errors That Occur When Communicating with Web Services The Manage Web Service Details page can reference services that reside on the following systems: An order capture system An order fulfillment system If order orchestration must call multiple services on the same system, then you must do the following work: Add a separate row for each service that order orchestration must call. Use the same user name and password for each row that references the same system. For example, assume an order capture system named ORA_BM_CPQ must communicate with Service_A and Service_B, and that the user name for this system is CPQ_user, and the password is CPQ_password. In this situation, you add the following rows on the Manage Web Service Details page. 11
Chapter 1 Manage Open Sales Orders Target System Connector Name User Name Password ORA_BM_CPQ Service_A CPQ_user CPQ_password ORA_BM_CPQ Service_B CPQ_user CPQ_password Recovering Orders in Bulk: Procedure You can click Recover Order to correct the errors that are associated with an orchestration order. However, you can use this feature only to recover the orders that you can select in the Search Results list of the Order Orchestration work area. This topic describes how to use Take Action On All Search Results, which allows you to recover all the orders that the search returns, and not only the orders that you can select. To recover orders in bulk: 1. Correct the problem that caused the error. If you do not correct the problem that caused the error, then the same error will continue to occur whether or not you run recovery, and running recovery will not restart processing. 2. In the Navigator, click Order Orchestration. 3. On the Order Orchestration page, in the Search list, click Orchestration Orders, and then click Advanced. 4. On the Manage Order Orchestrations page, enter a value in a required field, set Message Type to Error, and then click Search. For this example, in the Customer list, enter Computer Service and Rentals. 5. Click the small area immediately to the left of the Orchestration Order column heading. This step selects all the orders that the search results contain. 6. Click Actions, click Take Action On All Search Results, and then click Recover Orders. Order Management attempts to recover all the errors that are contained in the orders that you choose. 7. If necessary, repeat step 6. Order Management can recover up to 5,000 orders each time you use Take Action On All Search Results. If more than 5,000 orders contain errors, then you must use Take Action On All Search Results repeatedly until it recovers all the orders that the search returns. To use a single action that recovers all errors, see Using Scheduled Processes to Recover Errors in Bulk: Procedure. Using Scheduled Processes to Recover Orders in Bulk: Procedure You can click Recover Order, Recover Process, or Recover Task in the Order Orchestration work area to recover items that are in error. However, these features can only recover errors that are associated with the orders that order management can return in a search from the Order Orchestration work area. This topic describes how to recover all the errors that are associated with a set of orders, processes, or tasks, and not only the errors that a search in the Order Orchestration work area returns. 12
Chapter 1 Manage Open Sales Orders To use scheduled processes to recover orders in bulk: 1. Correct the problem that causes the error. If you do not correct this problem, then the same error will continue to occur whether or not you run recovery, and running recovery will not restart processing. 2. In the Navigator, in the Tools section, click Scheduled Processes. 3. On the Scheduled Process page, click Schedule New Process. 4. In the Schedule New Process dialog, click Name, and then click Search. 5. In the Search and Select dialog, in the Name field, enter Recover Errors, click Search, click OK, and then click OK again. 6. In the Process Details dialog box, configure various options, use Process Options and Advanced to set other options, and then click Submit. You can set various options to filter the orders that you must recover. For this example, specify Computer Service and Rentals for the Customer Name. Order management will attempt to recover all errors that exist in all the orders that are associated with Computer Service and Rentals. 7. In the Confirmation dialog, click OK. 8. In the Search Results list, click Refresh, and then use the Status field to monitor the progress of your scheduled process. 9. Do one of the following, depending on the status value. Status Work You Must Perform Error In the Log and Output section, click the Attachment link, and then examine the results. In most situations, an Error status indicates that you must correct the root cause of the error, and then run recovery again. Succeeded View the log to determine how many fulfillment lines the application picked, how many it processed, and how many it could not process. Sourcing Items from a Different Warehouse: Points to Consider This topic describes how to source items that are not available in one warehouse from a different warehouse. You can do the following work to source an item from a different warehouse. Work Description Edit the Warehouse Attribute If you know that another warehouse possesses the item and quantity that the fulfillment line requires, then you can use the Edit Fulfillment Lines dialog to change the warehouse. 13
Chapter 1 Work Manage Open Sales Orders Description To determine which warehouse has the item, you can do the following work: Examine the Reports and Analytics that order orchestration provides. Examine the Availability pages Use Supply Availability reports Use the Supply Allocations reports Take action outside of order orchestration. Split the Fulfillment Line If the currently selected warehouse contains only some of the quantity that the fulfillment line requires, then you can split the fulfillment line, and then select another warehouse to source the remainder of the quantity. For example, assume fulfillment line 1 requires 30 widgets. The fulfillment line is in jeopardy because the currently selected warehouse, Warehouse A, has only 20 widgets. So, you split the fulfillment line, and then specify that the second fulfillment line source the remaining 10 widgets from Warehouse B. Select an Option on the Check Availability Page Order promising provides multiple options for scheduling, including sourcing the item from a different warehouse. To focus on options that source from a different warehouse, clear the Warehouse attribute on the Check Availability page. Order promising recommends a warehouse according to the sourcing rules and warehouse rankings that it references. Examine the Check Availability page to identify the options that you can use. Resolving Fulfillment Line Exceptions: Points to Consider Order orchestration automatically fulfills most orders. However, if a problem with an order does occur, then you can use the Order Orchestration work area to view the cause of the problem, and then fix it. The Manage Fulfillment Line Exceptions page displays the following types of fulfillment line exceptions: Past Due. Indicates that the current date occurs later than the scheduled ship date. Most fulfillment line exceptions are related to item availability or an orchestration process task. More than one solution to fix a fulfillment line exception might exist. How you resolve a fulfillment line exception depends on your organization policies. In Jeopardy. 14
Chapter 1 Manage Open Sales Orders Backordered. On Hold. Resolving Fulfillment Line Exceptions That Occur Because Items Are Not Available Most fulfillment line exceptions result from an item that is not available. Consider the following work to resolve these exceptions. Work You Can Do What Does It Do? Why Use It? Release holds. Releases a hold on a fulfillment line. You can only release a hold that was applied in order orchestration. If a hold exists on any part of a fulfillment line, then it might not be unable to proceed through the fulfillment process. A hold that is specific to some part of the orchestration process can allow a fulfillment line to proceed, but it might arrive at a point where it stops and waits for a user to release it. Use Check Availability to reschedule the fulfillment line. Displays the scheduling options that are available, and indicates the best option. An order administrator defines a set of business rules during implementation that determines the best option. If the fulfillment line is already scheduled, and if your selection results in a changed scheduled ship date, then order orchestration starts the change processing. Check Availability is the most effective way to reschedule a fulfillment line because it optimizes the choices and provides you with the information that you require to evaluate trade-offs. You do not have information about the supply, other than the information that the Order Orchestration work area displays. Override the schedule. Overrides the scheduled ship date or scheduled arrival date that the order promising process assigns. If you change the scheduled ship date, and if order orchestration already scheduled the fulfillment line, then order orchestration starts the change processing. You are aware of an alternative to the schedule that the order promising process assigns, and you know the best date to schedule the fulfillment line. You can override the schedule for multiple fulfillment lines. Change the warehouse. Lets you change the warehouse that sources the item on the selected fulfillment lines. You know the warehouse from which you want to source the item. The analytics provide information that may help you determine the warehouse to choose. 15
Chapter 1 Manage Open Sales Orders Work You Can Do What Does It Do? Why Use It? Change the demand class. Determines the priority when scheduling the fulfillment line. Demand class applies only if the ATP rule uses supply chain search, and if order orchestration uses allocation. You must schedule fulfillment lines as a group and make sure that important customers get the supply before other customers. You must expedite fulfillment, but the exact date is not important. You can change the demand class for multiple fulfillment lines. Change the shipping method. Lets you change the shipping method for all the fulfillment lines to a faster method. You know the shipping method that you must use. You can change the shipping method for multiple fulfillment lines. Clear selected fulfillment line attributes. Allows the order promising process to choose the best fulfillment option, without considering a specific attribute. You want to use Check Availability, but without having to consider one or more fulfillment requirements. You can clear the attributes for multiple fulfillment lines. Substitute the item on the fulfillment line. Substitutes the item on the fulfillment line with an item that you choose. Order orchestration displays the best substitution according to rules that the item master contains. You determine that an allowable substitute will provide an improved scheduling option. The analytics provide information that might help identify the item to substitute. Split the fulfillment line. Splits the fulfillment line. You know that you can fulfill one part of the fulfillment line from one warehouse, and another part it from another warehouse. The analytics provide information that might help you determine the warehouse to use. Unschedule the fulfillment line. Releases supply so that it is available for another fulfillment line. It starts change management that brings the process back to the scheduling step, and in the Awaiting Scheduling status. You must release supply to make it available for a high-priority fulfillment line. You must reschedule a fulfillment line from the Order Orchestration work area. 16
Chapter 1 Manage Open Sales Orders Work You Can Do What Does It Do? Why Use It? Schedule the fulfillment line. Sends a request to the order promising process to schedule a fulfillment line. The fulfillment line is associated with an orchestration process that includes a manual scheduling step, or the fulfillment line was unscheduled. Unreserve the supply. Releases supply that is reserved for a fulfillment line so that it is available for another fulfillment line. You want to make the supply that is reserved for one fulfillment line, and then make it available for another fulfillment line that is a higher priority. Reserve the supply. Removes supply from availability, and then reserves it for a fulfillment line. You want to make sure that supply is reserved for a specific fulfillment line. Related Topics Changes in Order Orchestration: How They Are Processed Using Holds to Temporarily Stop Processing: Explained An orchestration process hold pauses an action that is currently running on a business object or business service. You can define a hold code so that you can use it when order orchestration is orchestrating an order. You identify the services where order orchestration applies the hold when you define the hold code. You can also create a hold code that applies a hold to all services. Task layer services determine whether or not order orchestration attaches a hold code to the fulfillment line or to the order for one or more tasks that the orchestration process references. Note the following: You or an orchestration process can release a hold that you apply in order orchestration only in order orchestration. You can use a hold code that you define only for a hold that originates in order orchestration. You cannot use it for a hold that originates in some other application. An orchestration process applies a hold only when a hold request already exists from the order capture system or from the Order Orchestration work area. For example, assume an orchestration process is at the scheduling step when an order capture system sends a request to hold the shipping task. Order orchestration stores the request until the orchestration process reaches the shipping step. It then searches for existing requests, and then applies them. If you cancel an orchestration process, then order orchestration releases any holds that are associated with this process. If you do not cancel an orchestration process, then you must manually release each hold. Order orchestration transforms a hold that it receives from an order capture system or from an order fulfillment system. This hold becomes part of the orchestration order. 17
Chapter 1 Manage Open Sales Orders Only an order capture user can release a hold that is applied in an order capture system. Related Topics Holds Task Layer Services: Explained Reviewing Exceptions: Examples An error might occur in order orchestration, or in some other application, such as a billing application. Order orchestration displays the order orchestration exceptions that are associated with the error so that you can view exception details and history, and then fix the problem that caused the error. You can use the Manage Order Orchestration Messages window in the Order Orchestration work area to view exceptions, such as fulfillment line exceptions. Use the following scenarios to learn how to use orchestration messages to resolve issues. Warning from a Shipment Application You are an order manager at a company that manufactures tables. The following occurs: 1. You notice an orchestration order for 100 burl tables. 2. Order orchestration scheduled and confirmed the reservation for the fulfillment line for this order. 3. The orchestration process sent a shipment request to the shipping application. 4. The customer asks the sales representative to hold the shipment because a fire occurred in the warehouse. 5. The sales representative applies a hold on the order, and then sends the hold request to order orchestration. 6. The shipping application cannot apply the hold because the order was already picked and released. 7. The shipping application sends the warning to order orchestration, and order orchestration rejects the hold request. 8. The sales representative calls you on the phone to discuss the rejected hold request. 9. You notice the details in the Manage Order Orchestration Messages window and explain the reason for the hold rejection. Rejected Change Order You are an order manager at a company that manufactures stainless steel pipes. The following occurs: 1. A customer orders 100 pipes, and order orchestration creates an orchestration order for these pipes. 2. The customer calls to change the order quantity a few days after order orchestration sends the shipment request to the shipping application. 3. The sales representative modifies the sales order, and then submits the change order. 18
Chapter 1 Manage Open Sales Orders 4.. The order already was shipped, so order orchestration rejects the change order and saves the error details. 5. You view the details in the Manage Order Orchestration Messages window and explain to the sales representative the reason for the rejection. Missing Process Assignment Rules You are an order manager at a company that provides digital network service. The following occurs: 1. Order orchestration receives a sales order, but does not assign an orchestration process to the corresponding orchestration order because the process selection rules are missing. 2. You view the exception in the Manage Order Orchestration Messages window, and notice that the same error affects multiple orders. 3. You notify an order administrator, who then adds the process selection rules. 4. Some time later, the order administrator uses the Error Recovery privilege to activate the assign and launch process 5. Order orchestration assigns the orchestration processes to the orchestration orders. Manual Scheduling: Explained In most situations, order orchestration schedules a fulfillment line when it assigns an orchestration process to this fulfillment line. However, if the fulfillment line is currently processing a manual scheduling step, then you can manually schedule the line in the Order Orchestration work area. The Order Orchestration work area allows you to manually schedule one or more fulfillment lines. You can select one or more fulfillment lines, and then: Use a table of fulfillment lines to schedule them. Order orchestration schedules these fulfillment lines according to the Requested Ship Date or the Requested Arrival Date. Select a scheduling option on the Check Availability page to schedule them. If you select Override Schedule, then order promising does not calculate options. Note the following. Manual Scheduling Description Unscheduling a fulfillment line Releases the supply so that it becomes available for some other, higher priority fulfillment line. If you unschedule a fulfillment line, then the status of this line is awaiting scheduling. Scheduling a configured item, shipment set or model. If you select an option for one or more fulfillment lines, and if these lines reference a configured item, model, or shipment set, then order orchestration applies the 19
Chapter 1 Manual Scheduling Manage Open Sales Orders Description scheduling option that you select to all of the fulfillment lines that reference this configured item, model, or shipment set. Order Orchestration Work Area Analytics: Explained You can use the reports and analytics features in the Order Orchestration work area to get information about order statuses, and to facilitate order fulfillment. You can use reports and analytics to get information about fulfillment lines and orchestration processes. Overview Reports You can use the following reports to get an overview of the fulfillment line statuses. Report Description Fulfillment Lines by Exception Displays information about open fulfillment lines, each of which might include multiple types of fulfillment line exceptions that are occurring at the same time. This report might count a fulfillment line more than one time. For example, if a fulfillment line is in jeopardy and on hold, then this report includes this line in the count of lines that are in jeopardy, and also includes it in the count of lines that are on hold. Fulfillment Lines by Status Includes only open fulfillment lines. Reports That Manage Fulfillment Line Exceptions You can use the following Manage Fulfillment Line Exceptions reports to get information about items, customers, and orders for a fulfillment line. Analytics for customers use the customer party ID for the query. Report Description Item Availability Displays the following information about the item that a fulfillment line references: Available quantity. Amount of inventory that is available to fill customer orders. It is the shelf quantity minus the allocated quantity. Shelf quantity. Amount of inventory for an item that is currently on the shelf in the warehouse. It includes allocated and unallocated quantities. 20
Chapter 1 Report Manage Open Sales Orders Description Allocated quantity. Amount of inventory that is currently reserved to fill a customer order. Count of Holds for This Item by Hold Name Counts the holds that are applied to the orchestration order, orchestration order line, and their fulfillment lines. A fulfillment line might include multiple holds. Order orchestration caches this report, so the data is not real-time. The data refreshes according to the caching configuration. Count of Holds for This Customer by Hold Name Similar to the Count of Holds for This Item by Hold Name report, except the Count of Holds for This Customer by Hold Name report counts hold according to a customer. Fulfillment Line Exceptions for This Order Displays open fulfillment lines for a single order. Each of these fulfillment lines might include multiple types of fulfillment line exceptions that are occurring at the same time. This report might count a fulfillment line more than one time. For example, if an orchestration order includes two fulfillment lines, and if each of these lines include two exceptions, then the report counts four exceptions. Value of Fulfillment Lines by Hold Type Displays the value in the currency that the Order Orchestration work area uses. This currency might be different from the currency that the source order uses. This report does not count an inherited hold more than one time. For example, assume order orchestration applies a hold code to an orchestration order, and the fulfillment line that this order references inherits this hold from the orchestration order. In this situation, this report counts the hold only one time. Reports That Manage Orchestration Process Exceptions The Manage Orchestration Process Exceptions reports display information about orchestration process exceptions. Report Description Orchestration Process Exceptions by Type If an orchestration process includes more than one exception, then this report counts this process one time for each exception that it contains. 21
Chapter 1 Manage Open Sales Orders Report Description Count of Holds for This Customer by Hold Name Counts the number of orchestration processes for a customer that are stopped because a task is on hold. Order Orchestration Work Area Analytic Types: Explained The reports that the Order Orchestration work area displays use multiple technologies. This topic lists these technologies so that you can more readily troubleshoot issues that occur with these reports. The reports that the Order Orchestration work area displays use the following technologies. Report Name Page Technology Count of Holds for This Customer by Hold Name Manage Orchestration Processes Exceptions OLTP Customer: Count of Holds for This Customer by Type Manage Fulfillment Line Exceptions Oracle Transactional Business Intelligence Customer: Open Orchestration Orders for This Customer by Age Manage Fulfillment Line Exceptions OLTP Fulfillment Lines by Exception Overview OLTP Fulfillment Lines by Status Overview OLTP Item: Count of Holds for This Item by Hold Name Manage Fulfillment Line Exceptions Oracle Transactional Business Intelligence Item: Item Availability Manage Fulfillment Line Exceptions OLTP Orchestration Process Exceptions by Type Manage Orchestration Processes Exceptions OLTP Order: Average Age of Orders by Hold Manage Fulfillment Line Exceptions OLTP Order: Fulfillment Line Exceptions for This Order Manage Fulfillment Line Exceptions OLTP 22
Chapter 1 Report Name Manage Open Sales Orders Page Technology Manage Fulfillment Line Exceptions OLTP Order: Value of Fulfillment Lines by Hold Type Split Fulfillment Lines: Explained You can create a split fulfillment line in the Order Orchestration work area. Order orchestration can also automatically split a fulfillment line as part of a fulfillment step. Note the following: Order orchestration splits the entire orchestration process any time that a fulfillment line split occurs. Order orchestration sets the attribute values of any fulfillment line that it splits to each of the attribute values that the original fulfillment line contains. You can use the orchestration order line to view the quantity that exists before the split occurs. You can use the Manage Fulfillment Lines page to view the quantity on each fulfillment line after the split occurs. Note the following split behavior. Split Behavior Description Manual Split Note the following: You can use Split Fulfillment Line in the Order Orchestration work area only on a manual schedule task. To split a fulfillment line that is not on a manual schedule task, you can click Unschedule while the orchestration process is running, and then split the fulfillment line. Unschedule moves the orchestration process back to the schedule task, which now is a manual task. Order orchestration does not run change management for a manual split. Automatic Split Although you cannot use the Check Availability page to manually split a fulfillment line, the availability option that you select might implicitly split the fulfillment line. A fulfillment line can automatically split in the following situations: If you select a fulfillment option on the Check Availability page, then this option might require order orchestration to split a fulfillment line so that it can provide the availability results that you require. 23
Chapter 1 Split Behavior Manage Open Sales Orders Description Some other fulfillment system can automatically split a fulfillment line. Splits That Are Not Allowed Order orchestration does not allow a split fulfillment line in the following situations: The fulfillment line does not include the Splits Allowed attribute. The quantity of the fulfillment line is one or less. The fulfillment line prohibits a split. If you possess an override privilege, then you can override this prohibition. A task in a parallel branch references the fulfillment line. The fulfillment line resides in a shipment set. To split this line, you can remove it from the shipment set, and then split it. Related Topics How Split Fulfillment Lines Affect Status: Explained Disabled Fulfillment Line Actions: Explained This topic describes why order orchestration disables some of the fulfillment line actions in the Order Orchestration work area. Order orchestration never disables the following actions: View Fulfillment Details View Hold Details View Charges and Cost Check Availability Order orchestration disables the following actions according to the following situations. Action Situation Where Order Orchestration Disables an Action All fulfillment line actions, except view Order orchestration disables this action in any the following situations: The fulfillment line is locked, canceled, closed, was shipped, or belongs to a model. 24
Action Chapter 1 Manage Open Sales Orders Situation Where Order Orchestration Disables an Action The user request status is processing. An orchestration process is not assigned to the fulfillment line. Unschedule Order orchestration disables this action in any the following situations: The fulfillment line is not scheduled. The scheduled ship date does not contain a value. Reserve Order orchestration disables this action in the following situations: The fulfillment line is not scheduled. The scheduled ship date does not contain a value. The fulfillment line or any child fulfillment line is reserved. The reserved quantity contains a value. Unreserve Order orchestration disables this action in any the following situations: The fulfillment line or any child fulfillment line is reserved. The reserved quantity does not contain a value. Substitute Item Order orchestration disables this action in any the following situations: You selected more than one fulfillment line, but all of them do not reference the same ordered item. If order orchestration has substituted an ordered item, then it uses the original item to determine whether or not all items are the same. The Substitute Allowed feature equals False for the fulfillment line, and you do not possess the privilege to override this restriction. The fulfillment line references a model. 25
Action Chapter 1 Manage Open Sales Orders Situation Where Order Orchestration Disables an Action The fulfillment line belongs to a shipment set. Release Hold The fulfillment line is not on hold. Split Fulfillment Line Order orchestration disables this action in any the following situations: The fulfillment line belongs to a shipment set. The Split Allowed feature equals False for the fulfillment line, and you do not possess the privilege to override this restriction. You selected more than one fulfillment line. Models: Explained This topic describes the model behavior that occurs during different phases of the order fulfillment lifecycle. The Order Orchestration work area displays the child fulfillment lines of a model in a collapsed state. You can expand the model to view these lines. Note the following model behavior that occurs during different phases of the order fulfillment lifecycle. Order Fulfillment Lifecycle How Order Orchestration Handles Models Schedule Schedules a model like any other fulfillment line, but order orchestrationcan only schedule a model that is complete. Assigns all the fulfillment lines that a model or that a shipment set references to the same orchestration process. Split Allows a split fulfillment line for the model, but not for the child fulfillment lines. If a split occurs, then it cascades this split to these child fulfillment lines. Hold Applies a hold to the model and to the child fulfillment lines. Ship Sends the shippable fulfillment lines that a model contains to the shipping system together as a single shipment set for shipping purposes. 26
Chapter 1 Order Fulfillment Lifecycle Manage Open Sales Orders How Order Orchestration Handles Models A partial shipment of fulfillment lines in a model might result in one of the following situations: Proportional split. A shipped model and an unshipped model. Nonproportional split. A partially shipped model that includes a separated model structure. Return If a partial return occurs, then order orchestration separates the model into the following orchestration groups: One group that includes the fulfillment lines that reference the items that order orchestration received. It will move these lines to invoicing. Another group that includes the fulfillment lines that reference items that order orchestration did not receive or that cannot be returned for some reason. Bill Sends all the fulfillment lines that a model contains to the billing system together. Closing Orchestration Orders: Procedure Order orchestration fulfills orchestration orders and orchestration order lines, but they remain open until the Update or Close Orchestration Orders scheduled process closes them. This scheduled process updates the orchestration order statuses and the order line statuses, and then closes the orchestration orders and orchestration order lines. Order orchestration does not come predefined to run this scheduled process. You must administer it. To close orchestration orders: 1. In the Navigator, click Scheduled Processes. 2. On the Schedule Processes page, click Schedule New Process. 3. In the Schedule New Process dialog, set the following value, and then click OK. Field Value Name Update or Close Orchestration Orders 4. In the Process Details dialog, add a check mark to Notify me when this process ends. 5. Set the following parameters. All parameters are optional except for Entity Name. 27
Chapter 1 Manage Open Sales Orders Parameter Description Entity Name Do one of the following: Enter Header to close orchestration orders and orchestration order lines. Enter Lineto close only orchestration order lines. For brevity, the description for each of the other parameters assumes that you set Entity Name to Header. For example, if you set Entity Name to Line, and if you set the Start Date, then this scheduled process closes only the orchestration order lines that were created on or after the Start Date, not the orchestration orders. Entity ID If you set the Entity Name parameter to: Header, then enter the header ID in the Entity ID parameter. Line, then enter the line ID in the Entity ID parameter. Note the following: To get the identification number, you must run an SQL query on the order orchestration and planning data repository that contains the orchestration order or the orchestration order line that you must close. If you do not set the Start Date, End Date, or Interval Hours, then you must set the Entity ID. You can query the doo_headers_all table to get the header ID. For example, if the source order number is BM1234, then you can use the following query: select header_id from doo_headers_all where source_order_number = 'BM1234' To get the line ID, use the following example: select line_id from doo_headers_all where source_order_number = 'BM1234' Start Date Specify a date. This scheduled process will close orchestration orders and order lines that were created on or after the date and time that you 28
Chapter 1 Parameter Manage Open Sales Orders Description specify. If you specify Interval Hours, then do not specify Start Date. End Date Interval Hours Specify a date. This scheduled process will close orchestration orders and order lines that were created on or before the date and time that you specify. Note the following: If you specify Interval Hours, then do not specify End Date. If you specify Start Date and End Date, then this scheduled process will close orchestration orders and order lines that were created on or after the start date and time, and on or before the end date and time. For example, if you select April 10, 2015, for the Start Date, and April 12, 2015, for the End Date, then this scheduled process will close only the orchestration orders that were created on April 10, April 11, and April 12. Enter the number of hours to specify the interval that occurs between the date that this scheduled process runs and the date when the orchestration orders were created. This scheduled process will close orchestration orders and order lines according to this interval. For example, assume you set Interval Hours to 4, you click the Schedule tab in the Process Details dialog, and then administer this scheduled process to run daily, starting tomorrow at 12 PM. This scheduled process will close orchestration orders and order lines that were created between 8 AM tomorrow and 12 PM tomorrow. If you specify Start Date or End Date, then do not specify Interval Hours. 6. Click Submit. 7. Wait until you receive a notification from the scheduled process that it successfully finished. 8. Verify that the scheduled process closed the orchestration orders: a. In the Navigator, click Order Orchestration. b. In the Order Orchestration work area, search for the orchestration orders that you specified to close. For example, if you set the Start Date parameter to April 10, 2015, and the End Date parameter to April 12, 2015, then use the Advanced Search on the Manage Orchestration Orders page to set the Ordered Date to Between April 10, 2015 and April 12, 2015, and then click Search. c. In the Search Results area, verify the following value. 29
Chapter 1 Manage Open Sales Orders Field Value Status column for the orchestration orders Closed d. In the Orchestration Order Details area, on the Orchestration Order Line tab, verify the following value. Field Value Status column for each order line for each orchestration order Closed Fulfillment Line Closure : Explained A fulfillment line is closed when all steps of the orchestration process have finished. In some situations, an orchestration process step might indicate that fulfillment is complete, such as shipping complete for a shipping step. However, this indicator might mean that your organization considers fulfillment complete when the orchestration process reaches this step, but the fulfillment line is still open. If the Update or Close Orchestration Orders scheduled process did not run since the fulfillment line closed, then orchestration orders and orchestration order lines might display as open even if all the fulfillment lines that they reference are closed. To fix this situation, you can administer this scheduled process in the Scheduled Processes work area. FAQs for Manage Open Sales Orders What happens if I change a fulfillment line? If you modify a fulfillment line, then order orchestration typically modifies the orchestration process that references this fulfillment line. A modification might include a manual change or an automatic change, such as a change order, edit to a fulfillment line attribute, or rescheduling. Order orchestration evaluates these modifications and determines the adjustments that it must make to accommodate them. Why can't I edit some attributes? Your organization might use processing constraints that do not allow you to modify an attribute. It is recommended that you contact your system administrator if must modify an attribute that a processing constraint constrains. 30
Chapter 1 Manage Open Sales Orders How can I search for closed fulfillment lines? You can use an advanced search to search for closed fulfillment lines and return fulfillment lines. Why does my order include negative values? If your order includes an item that someone returned, then Order Management does the following work: Displays this return in a separate order line on the Order page Uses red font to indicate that this order line contains a returned item Subtracts the value of each return from the order total If the values of the returns are greater than the value of the order lines that are not returned, then Order Management uses red font when it displays the value in the Total field. This red font indicates that the value is negative. 31
Chapter 1 Manage Open Sales Orders 32
2 Chapter 2 Process Sales Orders Process Sales Orders Overview Order orchestration uses business rules to transform the sales orders that it gets from an order capture system into an orchestration order. An administrator in your organization defines these rules.. These rules assign an orchestration process to one or more fulfillment lines. Order orchestration does forward planning and backward planning for the orchestration process to identify potential exceptions and problems. Order orchestration also processes change orders according to the change processing rules that an administrator defines. Changes in Order Orchestration: How They Are Processed Order orchestration can incorporate a change that it receives from a variety of sources, such as an order fulfillment system, the Order Orchestration work area, or an order capture system. How Order Orchestration Processes Changes Order orchestration does the following work when it incorporates a change: 1. Receives a change from the fulfillment system. 2. Uses processing constraints to determine whether or not to allow the change. If it allows the change, then order orchestration accepts it, and then determines whether or not to adjust the orchestration process to accommodate the change. 3. Identifies the orchestration process steps that have finished and the steps that it must adjust. 4. Sets the status of the tasks that finished before the change, and the status for the orchestration process to Change Pending. 5. The fulfillment system accepts the request, and order orchestration sets the status of each task to a normal status, such as Completed, when each task that makes the adjustments finishes running. 6. Creates an event when order compensation finishes or when an error occurs during order compensation. 7. Creates an event when order compensation finishes or if an error occurs during order compensation. Tasks that the Gantt chart displays in the Order Orchestration work area might display as canceled. This situation occurs because order orchestration might cancel a task, and then run it again, but you happened to view the task while it was in the canceled state. Order Orchestration Task Layer: Explained The Order Orchestration task layer is a logical module that contains services. Some other order orchestration module or an external module can request one of these services. 33
Chapter 2 Process Sales Orders The following figure illustrates an example of how order orchestration uses the Order Orchestration task layer to fulfill a shipment request during order fulfillment. Explanation of Callouts 1. The Orchestration module receives a request to call a task layer service named Create Shipment Request. The Orchestration module then runs an orchestration process that is designed to handle shipment requests. At some point during processing, this process sends a request to the Task Layer module to run a task layer service named Create Shipment Request. 2. The Task Layer module runs the Create Shipment Request service. This service sends a request to an external interface layer named Create Shipment Request. 3. The Create Shipment Request external interface layer sends a request to the Shipping fulfillment system. 4. The Shipping fulfillment system fulfills the shipment request. 34
Chapter 2 Process Sales Orders Order orchestration uses generally the same process to fulfill other requests. For example, to complete an invoice, the Orchestration module runs an orchestration process that is designed to handle invoice requests, the Task Layer module runs a service that handles invoice completion requests, and so on. How Order Management Uses the Order Orchestration Task Layer Oracle Fusion Order Management Cloud Service does not use the external interface layer. Instead, the task layer communicates directly with the fulfillment systems, and it does not support activity fulfillment. The following figure illustrates an example of how order management uses the Order Orchestration task layer to fulfill a shipment request during order fulfillment 35
Chapter 2 Process Sales Orders Explanation of Callouts 1. The Orchestration module receives a request to call a task layer service named Create Shipment Request. The Orchestration module then runs an orchestration process that is designed to handle shipment requests. At some point during processing, this process sends a request to the Task Layer module to run a task layer service named Create Shipment Request. 2. The Task Layer module runs the Create Shipment Request service, and then sends a request to the Shipping fulfillment system. 3. The Shipping fulfillment system fulfills the shipment request. Shipment Task Layer Services: Explained The shipment task layer service starts the communication with a shipping system and interprets the replies and updates that it receives from this system. Most shipping task layer services start in the orchestration module. The shipment task layer service does the following work. Work That the Shipment Task Layer Service Does More Information Sends a request to the fulfillment system that creates the actual shipment request. If order orchestration receives a change order, then the task layer service changes or cancels the shipment request, if necessary. If someone applies a shipping hold, and if the Hold on Running Task feature is selected, and if the task that is running is a Shipping task, then the task layer service sends a request to the shipping fulfillment system to hold the shipment request that it is currently processing. Consolidates the fulfillment lines of: Not applicable A shipment set, and then sends them to the shipping fulfillment system together. A model, and then sends them to the shipping fulfillment system together. Receive fulfillment line details and status updates from the shipping system and updates business objects in order orchestration. The shipping system might send fulfillment line details to order orchestration at any time when a status update occurs, including before it confirms a shipment. These details might include freight cost, tracking number, way bill number, and so on. Order orchestration interprets the update that it gets from the shipping system, and then uses one of the following predefined values to update the status: Picked Packordered Packed 36
Chapter 2 Work That the Shipment Task Layer Service Does Process Sales Orders More Information Shipped Note the following: The shipment task layer service continues to interpret the updates that it receives from the shipping system even after the shipping system shipped the delivery lines. It sends information about these updates to order orchestration. If the shipping system uses multiple currencies to represent cost, then the shipment task layer service converts them before it sends the update to order orchestration. If the shipping system uses a unit of measure to represent shipping that is different from the unit of measure that order orchestration uses in the sales order, then the fulfillment system converts this unit of measure back to the unit of measure that the sales order uses, and then communicates the shipped quantity to order orchestration. Split a fulfillment line, a shipment set, or a model when only part of a shipment ships. If only part a fulfillment line ships, then the task layer service splits this line into the following lines: One fulfillment line that includes the quantity that was shipped Another fulfillment line that includes the quantity that was not shipped If only some fulfillment lines of a shipment set ship, then the task layer service removes the unshipped lines from the shipment set. If half of the fulfillment lines of a model ship, then the task layer service splits the model into a shipped model and an unshipped model. If the split is not proportional, then a remnant results. Schedule Task Layer Services: Explained The schedule task layer service gets requests from order orchestration, and then sends them to order promising. It includes requests to schedule an order, to unschedule an order, and to check the availability of product. This scheduling applies to fulfillment lines that are waiting for manual scheduling and for fulfillment lines that fail scheduling in the automated or manual process. This scheduling works only for unscheduled fulfillment lines. Order orchestration does not allow automatic rescheduling from the Order Orchestration work area. 37
Chapter 2 Process Sales Orders Reservation Task Layer Services: Explained The reservation task layer service contains the requests for managing reservations of supply from order orchestration to an inventory fulfillment system. A reservation acts as a guarantee of material supply for a specific order line. Invoice Task Layer Services: Explained The invoice task layer service sends a request to the billing system that creates the invoice or credit transactions. It then interprets the replies that it receives from this system. order orchestration does not allow you to modification the fulfillment lines that are involved with these transactions after the task layer service sends this request. The order capture system sends most of the data that is required to complete billing to the fulfillment system. Order orchestration stores this information, and then routes the billing request to the billing system. The invoice task layer service does the following work: Starts the billing for sales orders, returns, shipment sets, and models Receives status updates and other information from the billing system Note Invoices cannot be updated through adjustments from a feeder system, such as order orchestration. Changes to invoices are expected to come in the form of credits from corresponding return orders or due to application of prepayments rather than cancellations. Initiates Billing for Sales Orders and Returns The invoice task layer service sends eligible fulfillment lines to the billing system using the Create Billing Lines request. The billing information from the original sales order or return, such as price amounts, discounts, charges, payments, and sales credit and fulfillment details, is passed to the billing system. Each time a fulfillment line is eligible for billing, the unit list price, unit selling price, discounts, and charge information are passed from the fulfillment line. Discounts at the header level are not supported. Header-level charges are supported and are sent to the billing system with the fulfillment line that is fulfilled first. Payment information is passed from the fulfillment line, if it is present. Otherwise, it is sent from the header. Prepayment information that is stored at the header is passed for every fulfillment line that is sent for billing. Sales credits are passed from the fulfillment line, if they are present. Otherwise, it is passed from the header. Tax attributes are passed from the fulfillment line. Fulfillment details that come from fulfillment systems also are routed to the billing system. For return lines, the invoice line reference to the original sales order line is also sent to the billing system, along with the return reason and received and delivered quantities. Initiates Billing for Shipment Sets and Models The invoice task layer service sends fulfillment lines in a shipment set or model to the billing system together. If only some lines in the shipment set or model have been fulfilled, then only the fulfilled lines are passed on to the billing system. Receives Updates from the Billing System Once the data that is routed to the billing system is processed, the invoice task layer service receives and absorbs invoice and credit memo information, including billing amount, billing date, invoice or credit memo date, number, and legal entity information, from the billing system. 38
Chapter 2 Process Sales Orders The invoice task layer service receives status updates from the billing system. The following statuses are used: Await Billing Billed Pausing Orchestration Processes: Explained A pause task temporarily stops an orchestration process from running so that it can wait for a condition to be met. When the condition is met, the orchestration process releases this pause task and the orchestration process proceeds to the next step. The Pause task layer service controls pause task behavior. You can use it to create a waiting period between tasks and to specify when to release the pause and when to begin the next step in the orchestration process. You can use a pause task to meet the following business scenarios. Scenario Description Pausing an orchestration process until an event occurs Assume your company provides a layaway program that allows a customer to reserve an item, and then pay for it in installments. You can use a pause task to pause the orchestration process. When the customer pays in full, the orchestration process calls the Release Paused Tasks public service, releases the pause task, and then ships the item to the customer. In another example, assume your company must release orders for shipping only if inventory is available at the fulfillment location. You can use a pause task that pauses the orchestration process until the inventory is available. When the inventory is available, the orchestration process calls the Release Paused Tasks public service, releases the pause task, and then ships the item to the customer. Pausing an orchestration process until time elapses Assume a customer cannot receive the goods that they order too early. You can use the requested ship date to prevent early delivery, but the warehouse might not recognize this date. You can set up a pause task to pause the orchestration process until two days before the scheduled ship date occurs. Pausing an orchestration process until a dependency resolves Consider the following examples: A customer requests to receive a shipment that includes coffee, paper cups, sugar, and creamer at the same time. You can use a pause task that pauses each order line until the orchestration process finishes scheduling each of these lines. The orchestration process evaluates the order periodically. When it finishes scheduling all lines, it ships them to the customer at the same time. 39
Chapter 2 Scenario Process Sales Orders Description A customer must receive invoices for all order lines of an order at the same time, regardless of when the orchestration process ships each of these lines. You can use a pause task that pauses the orchestration process until it ships all items. It then sends the invoices for all lines to the customer at the same time. A shipping system cannot handle an early request. It can only handle a request for an order that order orchestration schedules to ship within two days. You can pause the orchestration process so that it does not send a shipping request to the shipping system until two days before the ship date occurs. Assume your company policy requires manual review and approval of any order where the scheduled date occurs after the requested date. You can use a pause task to pause the orchestration process until the this review and approval finishes. Related Topics Pausing Orchestration Processes Until an Event Occurs: Worked Example Pausing Orchestration Processes Until Time Elapses: Worked Example Holds Task Layer Services: Explained The Holds task layer service contains the requests that control holds in order orchestration. The task layer service that handles this communication contains the hold. For example, the HoldShipmentRequest service can send a hold request form order orchestration to a shipping fulfillment system. In this example, the Shipping task layer service contains the hold. Return Task Layer Services: Explained The return task layer service is responsible for initiating communication with receiving systems and interpreting the responses and updates from those systems. Some of the requests originate in order orchestration and involve the creation, update, or cancellation of an receipt advice in the receiving system. The return task layer service performs the following: Support simple return. Support returned models. Receive status updates from the receiving system. Split fulfillment line due to partial delivery or return to customer. 40
Chapter 2 Process Sales Orders Support Simple Return The return task layer service sends a create receipt advice request to the fulfillment system where the actual receipt advice will be created. If any changes to the original returned sales order are received, then the task layer service requests a change to the existing receipt advice. The request may include one or more attribute updates, such as an increase or decrease in the expected receipt quantity or a change in non-quantity attributes. When items are returned, the task layer service creates a change receipt advice or cancel receipt advice, as necessary. If the original returned sales order line is completely canceled, then the task layer service cancels the receipt advice. Generally, cancellation is allowed until the returned items are received. If the expected delivered quantity is greater than the actual delivered quantity on the receipt advice, then partial cancellation can be requested for the remaining quantity. Support Returned Models The return task layer can process partial receipts, such as the return of only some items of a model. Receive Status Updates from the Receiving System The return task layer service receives and absorbs status updates from the receiving system for selective triggering events. For example, the receipt of goods on the receiving desk triggers creation of the receipt advice. The following events in the receiving system can trigger status updates in order orchestration: Receipt of goods on the receiving deck, when the actual receipt is created. Delivery of goods into inventory. Return of goods to a customer. Correction after a receipt transaction. (Deliver transactions cannot be returned.) Split Fulfillment Line Due to Partial Delivery or Return to Customer If only part of the expected returned quantity is received, then the return task layer splits the fulfillment line into a line with a status of Delivered for the expected returned quantity and another line with the undelivered expected quantity. A model or kit group is split into two orchestration groups, one group that will have received fulfillment lines and the other group that has nonreturnable fulfillment lines and unreceived fulfillment lines. Orchestration Process Assignment Failure: Explained After a sales order enters order orchestration, it is transformed to an orchestration order with one or more fulfillment lines. The application then attempts to assign an orchestration process to a fulfillment line or group of fulfillment lines. An orchestration process might not be assigned due to a system failure or a problem with the process assignment rules. For example, a rule that applies to the orchestration order data set might not exist; if a default orchestration process is not designated, then an orchestration process cannot be assigned. You can determine the reason for the process assignment failure by viewing the messages in the Order Orchestration work area. If you have the Error Recovery Manager role, then you can select Assign Lines to Process. If that does not work, then an administrator might need to edit the process assignment rules. FAQ for Process Sales Orders Why doesn't the status icon match what I searched for? You might find that when you search for the results of a mass action by querying by user request number and status that the results are not as you expect because the request might not have completed on some fulfillment lines. For example, you 41
Chapter 2 Process Sales Orders might search for user request number 123 and user request status Completed. The search results will show the fulfillment lines that are completed, but you might see the Processing user request status icon on some of the fulfillment lines because a later user request is processing these fulfillment lines. How can I resume a paused orchestration process? You can manually or automatically release a pause task so that the orchestration process can resume processing. A scheduled process can automatically release all pauses so that the orchestration process can resume. To manually release a pause task, access the Orchestration Process details page, and then click Release Pause Task. You must possess the Order Orchestration Error Recovery Manager role to manually release a pause task. Related Topics Pausing Orchestration Processes Until an Event Occurs: Worked Example 42
3 Orchestration Lookups: Explained You can use a lookup to set a value during processing. Most lookups are system lookups, and you cannot modify them. However, you can modify some predefined user lookups and some predefined, customizable lookups. User Lookups You can use one predefined user lookup to do the following work: Insert new codes. Update the start date, update the end date, and update enabled fields. Delete codes. Update tags. Customizable Lookups You can use the following predefined, customizable lookups: DOO_HLD_RELEASE_REASON DOO_MSG_REQUEST_FUNCTION DOO_RETURN_REASON DOO_SUBSTITUTION_REASON You can use predefined, customizable lookups to do the following work: Insert new codes. Update the start date, update the end date, update enabled fields, and update tags, but only if the code is not seed data. Delete codes, but only if the code is not seed data. You cannot use a customizable lookup to do the following work: Update the module. Delete the lookup type. Orchestration Profile Options: Explained Order orchestration uses predefined profile values that are specific to a product. Some of these values control behavior in the Order Orchestration work area. Some values control how order orchestration receives and transforms sales orders into orchestration orders. Most profiles include predefined values, so you do not need to configure them, unless your organization requires different values. Profile Option Description Currency Conversion Type Specifies the value to use when converting a currency in the Order Orchestration work area. This value is a 43
Profile Option Description conversion type. You can use this profile option at the site level and at the user level. The site level applies to an implementation of the application across a single site. Display Currency Specifies the currency to display in the Order Orchestration work area. You can use this profile option at the site level and at the user level. Required Overview Status Filter Specifies the default customer to use when filtering the summary of status data on the Overview page of the Order Orchestration work area. It allows you to view summary data for only one customer at a time. It removes the All option. No value is provided, by default. To improve performance, you can enter a customer identification number. You can use this profile option at the site level. Retain Sales Order Number for Orchestration Order Number Specifies to use the sales order number as the orchestration order number during sales order transformation. The default value is N. You can use this profile option at the site level and at the user level. User Request Waiting Period in Seconds Specifies the number of seconds to wait after an action finishes. This time allows asynchronous services to complete before displaying a confirmation message or a warning message in the Order Orchestration work area. The default value is 5. You can use this profile option at the site level. To set these values, do the following work: 1. in the Functional Setup Manager, expand Order Orchestration Top Task List, expand Define Sales Order Fulfillment, and then click Go to Tasknext to Manage Orchestration Profiles. 2. On the Manage Orchestration Profiles page, in the Profile Option area, click Search. 3. In the Search Results : Profile Options list, click the profile that you must edit. 4. In the Profile Values list, add or delete values, as necessary. Manage Hold Codes Using Holds to Temporarily Stop Processing: Explained An orchestration process hold pauses an action that is currently running on a business object or business service. You can define a hold code so that you can use it when order orchestration is orchestrating an order. You identify the services where 44
order orchestration applies the hold when you define the hold code. You can also create a hold code that applies a hold to all services. Task layer services determine whether or not order orchestration attaches a hold code to the fulfillment line or to the order for one or more tasks that the orchestration process references. Note the following: You or an orchestration process can release a hold that you apply in order orchestration only in order orchestration. You can use a hold code that you define only for a hold that originates in order orchestration. You cannot use it for a hold that originates in some other application. An orchestration process applies a hold only when a hold request already exists from the order capture system or from the Order Orchestration work area. For example, assume an orchestration process is at the scheduling step when an order capture system sends a request to hold the shipping task. Order orchestration stores the request until the orchestration process reaches the shipping step. It then searches for existing requests, and then applies them. If you cancel an orchestration process, then order orchestration releases any holds that are associated with this process. If you do not cancel an orchestration process, then you must manually release each hold. Order orchestration transforms a hold that it receives from an order capture system or from an order fulfillment system. This hold becomes part of the orchestration order. Only an order capture user can release a hold that is applied in an order capture system. Related Topics Holds Task Layer Services: Explained Manage Orchestration Source Systems Managing Data Collection Source Systems: Explained To populate the order orchestration and planning data repository, you collect data from the Oracle Fusion source system. On the Manage Planning Source Systems page, you manage collections parameters and enable organizations for collections. The Oracle Fusion Source System Order orchestration and order promising processes use data stored in the order orchestration and planning data repository. To collect data from the Oracle Fusion source system, the Oracle Fusion source system is included as a source system for data collection. You manage the data collection parameters for the Oracle Fusion source system, ensure the Collections Allowed check box is enabled, and manage which organizations will be enabled for collections. Defining Data Collection Parameters: Points to Consider For each system from which you intend to collect data to populate the order orchestration and planning data repository, you define and maintain the source system data collection parameters. For each source system, you complete the following for the data collection parameters: Specify the time zone. 45
Specify the version, order orchestration type, and planning type. Define the number of database connections, parallel workers, rows per processing batch, and cached data entries. Enable collections allowed. Enable data cross-referencing. Specify the Time Zone You must specify the time zone for the source system because the time stamps contained in collected data are converted from the time zone used in the source system to the time zone used for all data stored in the order orchestration and planning data repository. Using the same time zone for all data stored in the order orchestration and planning data repository facilitates correct results when calculations are performed using attributes that store dates. For example, if the source system uses the US Eastern time zone, but the order orchestration and planning data repository stores all data in the US Pacific time zone, then a supply with a due date and time of July 10th 04:00 PM in the source system is stored in the order orchestration and planning data repository with a due date of July 10th 01:00 PM. Specify the Version, Order Orchestration Type, and Planning Type You must define one, and only one, source system with the Version attribute equal to Oracle Fusion and the Order Orchestration Type attribute equal to Order Orchestration. You may define many source systems with the Version attribute equal to Other. For the source systems with the Version attribute equal to Other, the Order Orchestration Type attribute can equal Fulfillment or Order Capture and the Planning Type attribute can equal Fulfillment. Any combination of these values is allowed to describe the purpose of the source system, but you must provide a value for at least one of these type parameters. These parameters do not impact the behavior of the collections process. Note Once you have saved a system with the Version attribute equal to Oracle Fusion, you cannot change the value for the Version attribute. Note You cannot change the version of a source system from Others to Fusion. You must delete the planning source system definition by scheduling the Delete Source Configuration and All Related Data process. The Delete Source Configuration and All Related Data process performs multiple steps. First the process deletes all data previously collected from the source system. After deleting the collected data, the process deletes the planning source system definition and collection parameters. After the Delete Source Configuration and All Related Data process completes, you must redefine the planning source system definition on the Manage Planning Source Systems page. Define the Number of Database Connections, Parallel Workers, Rows Per Processing Batch, and Cached Data Entries These parameters affect the usage of system resources. The table below defines what each parameter does and provides guidelines for setting it. Parameter What the Parameter Does A Typical Value for the Parameter Number of Database Connections Defines the maximum number of database connections the source server can create during the collection process. This controls 10 46
Parameter What the Parameter Does A Typical Value for the Parameter the throughput of data being extracted into the Source Java program. Number of Parallel Workers Defines the maximum number of parallel workers (Java threads) used to process the extracted data. The number here directly impacts the amount of CPU and memory used during a collection cycle. 30 Number of Rows per Processing Batch Define the number of records to process at a time. The idea is to allow the framework to process data in byte-size chunks. A batch too small may cause extra overhead while a batch too big might peak out memory or network bandwidth. 10,000 Cached Data Entries in Thousands During data collections, various lookup and auxiliary data are cached in the collection server to support validation. For example, currency rate may be cached in memory. This parameter controls the maximum number of lookup entries cached per lookup to prevent the server from occupying too much memory. 10,000 Enable Collections Allowed Before enabling a source system for collections, ensure your definition of the other parameters are complete for the source system. Ensure you have defined values for all applicable attributes, and where applicable, you have enabled organizations for collections. Enable Data Cross-Referencing When you enable a source system for data cross-reference, the data collections from the source system perform additional processing steps to check for and to cross-reference data during data collections. You must enable cross-referencing for Order Capture source systems. Enabling Organizations for Data Collections: Points to Consider From the list of organizations for each source systems, you designate which organizations will have their data collected when a collections process collects data from the source system. 47
Deciding Which Organizations to Enable for Collections To determine which organizations to enable for collections, analyze the sourcing strategies for your company, the type of organization for each organization in the list, and any other business requirements that would determine whether system resources should be expended to collect data from that organization. If the data from that organization would never be used by order promising or order orchestration, no need to collect the data. For example, consider a scenario where the list of organizations for a source system includes 20 manufacturing plants and 10 distribution centers. Because the business requirements specify that the movements of materials from the manufacturing plants to the distribution centers are to be controlled separately from order orchestration and order promising, there are no sourcing rules that include transferring from one of the manufacturing plants. For this scenario, you would only enable the 10 distribution centers for collections. FAQs for Orchestration Source Systems Can I add a new source system to the list of data collection source systems? No. You cannot add additional source systems when managing source systems for data collections for the order orchestration and planning data repository. Collect Orchestration Reference and Transaction Data Data Collections, Order Orchestration, and Order Promising: How They Fit Together You perform data collections to populate the order orchestration and planning data repository. The collected data is used by order orchestration processes and by Oracle Fusion Global Order Promising. Data Collections You perform data collections to populate the order orchestration and planning data repository with data from the Oracle Fusion source system. Order Orchestration Order orchestration processes use some reference data directly from the order orchestration and planning data repository. You must perform data collections for the order orchestration reference entities even if you are not using Oracle Fusion Global Order Promising. 48
Important Before collecting data from your Oracle Fusion source system, you must define at least one organization for the source system. After you have set up at least one organization, you must update the organization list on the Manage Planning Source Systems page or Manage Orchestration Source Systems page, and then enable at least one of the organizations for collections. If there are no organizations enabled for collections when a collections process runs, the collections process will end with an error. Order Promising The Global Order Promising engine uses an in-memory copy of the data from the order orchestration and planning data repository. When order orchestration processes send a scheduling request or a check availability request to Oracle Fusion Global Order Promising, the order promising engine uses the data stored in main memory to determine the response to send back to order orchestration. After a cycle of data collections is performed, you use the Refresh and Start the Order Promising Server scheduled process to refresh the Global Order Promising data store with the most current data from the data repository and to load the data into main memory for the order promising engine to use. Related Topics Collecting Data for the Order Orchestration and Planning Data Repository: Explained Refreshing the Global Order Promising Engine: Explained Data Collection Entities: Explained When you collect data for the order orchestration and planning data repository, you specify which of the data collection entities to collect data for during each collection. When you plan your data collections, you plan how frequently to collect which entities. One way entities are categorized is as reference entities or transaction entities. You typically collect transaction entities much more frequently than reference entities. When you plan your data collections, you consider the following categorizations: Reference entities Transaction entities Reference Entities Reference entities are entities that define codes and valid values that are then used regularly by other entities. Units of measure and demand classes are two examples of reference entities. Reference entities are typically static entities with infrequent changes or additions. Whether an entity is reference entity or a transaction entity does not impact how it is stored in the order orchestration and planning data repository. You consider whether an entity is a reference entity or a transaction entity when determining which collection method to use to collect data for the entity. You typically used the targeted collection method to collect data for reference entities from the Oracle Fusion source system. Transaction Entities Transaction entities are the entities in the data repository that store demand and supply data. Because the data for transaction entities changes frequently, you typically use the continuous collection method to collect data for transaction entities from the Oracle Fusion source system. Entities You Can Collect From the Oracle Fusion Source System You can collect these entities from the Oracle Fusion source system: Approved supplier lists 49
Calendars Calendar associations Interlocation shipping networks Item costs On hand Organization parameters Purchase orders and requisitions Subinventories Suppliers Units of measure Related Topics Collecting Data for the Order Orchestration and Planning Data Repository: Explained Data Collection Methods for the Oracle Fusion Source System: Explained Manage Orchestration Data Collection Processes Managing Data Collection Processes: Overview For your data collections from the Oracle Fusion source system, you use the Manage Planning Data Collection Processes page or the Manage Orchestration Data Collection Processes page. From these pages you perform the following: Manage your continuous collections from the Oracle Fusion source system. Manage your collections destination server. Perform your targeted collections from the Oracle Fusion source system. Continuous Collection Publish Process: Explained To enable continuous collections, you must set up the publish data processes for the Oracle Fusion source system. The publish process performs the incremental data collections from the Oracle Fusion source system. You can start, stop, and pause the publish process. To review statistics regarding the publish process, view process statistics from the Actions menu on the Continuous Collection - Publish tab on the Manage Planning Data Collection Processes page or the Manage Orchestration Data Collection Processes page. Note Because continuous collections only collects net changes, you must perform at least one targeted collection for an entity before you include the entity for continuous collections. Related Topics Data Collections Daily Monitoring: Explained Publish Process Parameters: Points to Consider You define the publish process parameters to determine the frequency and scope of the continuous collections publish process. 50
You define the frequency and scope of continuous collections by specifying the following: Process Parameters Process Entities Process Parameters You determine how frequently the continuous collections publish process executes by specifying the frequency in minutes. The continuous collections publish process will publish incremental changes based on the frequency that was defined when the publish process was last started. You determine which organizations will be included in the set of organizations for which data is collected by specifying an organization collection group. You can leave it blank if you want data collected from all organizations. Process Entities You determine which entities are collected during the continuous collections cycles by selecting which entities you want included in the collections. The continuous collections publish process collects incremental changes for the business entities that were included when the publish process was last started. Collections Destination Server: Explained The collections destination server is applicable to all of the data collection methods. For the continuous collections method the collections server is the subscriber to the continuous collections publish process. From the Actions menu on the Manage Data Collections Processes page, Collections Destination Server tab you can access a daily statistic report with statistics regarding each of the collection methods. You also can access a data collections summary report. Related Topics Data Collections Daily Monitoring: Explained Destination Server Collections Parameters: Points to Consider The collection parameters are initially set to what was defined for the Oracle Fusion system when your planning source systems or order orchestration source systems were initially managed. You can fine tune the parameters for your data collections. Data Collection Parameters The data collection parameters affect the usage of system resources. This table define what each parameter does and provides guidelines for setting it. Parameter What the Parameter Does A Typical Value for the Parameter Number of Database Connections Defines the maximum number of database connections the source server can create during the collection process. This controls the throughput of data being extracted into the Source Java program. 10 Number of Parallel Workers Defines the maximum number of parallel workers (Java threads) 30 51
Parameter What the Parameter Does A Typical Value for the Parameter used to process the extracted data. The number here directly impacts the amount of central processing units and memory used during a collection cycle. Cached Data Entries in Thousands During data collections, various lookup and auxiliary data are cached in the collection server to support validation. For example, currency rate may be cached in memory. This parameter controls the maximum number of lookup entries cached per lookup to prevent the server from occupying too much memory. 10,000 FAQs for Manage Planning Data Collection Processes Can I use continuous collection to collect item costs? The continuous collection data collection method is partially supported for item costs. Item costs are collected in the next incremental collection cycle for previously existing items when one or more item organization attributes in addition to item cost have changed. When a new item is defined, the item cost for the new item is not collected in the next incremental collection cycle. If an existing item is not changed other than an update to the item cost, the item cost change is not picked up in the next incremental collection cycle. Tip If items are added frequently, item costs are changed frequently, or both, then targeted collection of item costs should be routinely performed, perhaps once a day. Perform Orchestration Data Collections Parameters for the Perform Data Collection Process: Points to Consider To perform a targeted data collection from the Oracle Fusion system, you use the Perform Data Collection process. When you invoke the process, you provide values for the parameters used by the process. The Perform Data Collection Process When you perform a targeted collection, you specify the Oracle Fusion source system to be collected from and the organization collection group to collect for. When you invoke the process, the parameters also include each of the fourteen 52
entities you can collect from the Oracle Fusion source system with yes or no for the parameter options. The table below explains the other two parameters. Parameter Name Parameter Options Source System The source system presented for selection is determined by what system has been defined as the Oracle Fusion source system when the manage source systems task was performed. Organization Collection Group The organization collection groups presented for selection are determined by what organization groups were defined when the manage source systems task was performed for the selected source system. The parameters presented also include a yes-or-no parameter for each of the entities you can collect. If you select yes for all of the entities, the data collections will be performed in the sequence necessary to avoid errors caused by data references from one entity being loaded to another entity being loaded. Important If you do not select yes for all of your entities, you need to plan your load sequences to avoid errors that could occur because one of the entities being loaded is referring to data in another entity not yet loaded. For more information, see the articles regarding order promising or data collections on My Oracle Support at https:// support.oracle.com. Organization Collection Group: Explained When you perform a targeted collection from the Oracle Fusion source system, you use an organization collection group to contain the collections processing to only the organizations with data that is needed for the order orchestration and planning data repository. Organization collection groups limit targeted collections from the Oracle Fusion source system to a specific set of organizations. You perform the following actions for organization collection groups: Define an organization collection group. Use an organization collection group. Define an Organization Collection Group You define organization groups when managing source systems for the source system where the version equals Oracle Fusion. For each organization in the organization list for the Oracle Fusion source system, you can specify an organization group. You can specify the same organization group for many organizations. Use an Organization Collection Group You use an organization collection group when you perform a targeted collection from the Oracle Fusion source system and you want to contain the collections processing to a specific set of organizations. You specify which organization group to collect data from by selecting from the list of organization groups defined for the Oracle Fusion source system. Data will only be collected from the organizations in the organization group you specified. For example, if only certain distribution centers in your Oracle Fusion source system are to be considered for shipments to your customers by the order promising and order orchestration processes, you could create a DC123 organization group 53
and assign the applicable distribution centers to the DC123 organization group when managing source systems. When you perform a targeted collection for the Oracle Fusion source system, you could select DC123 for the organization collection group. Review Orchestration Collected Data Purge Collected Data Processes: Points to Consider You use the Purge Data Repository Tables process to delete all collected data from the order orchestration and planning data repository that was collected from a specific source system. You use the Purge Staging Tables process to remove data that you no longer need in the data collections staging tables. The Purge Data Repository Tables Process You use the Purge Data Repository process to delete all data for a source system from the order orchestration and planning data repository. The process enables you to delete data for a specific source system. You typically use the Purge Data Repository process when one of your source systems becomes obsolete, or when you decide to do a complete data refresh for a set of collection entities. The Purge Data Repository process has only two parameters, both of which are mandatory. This table explains the two parameters. Parameter Name Parameter Options Source System Select a source system for the list of source systems. All data for the selected system will be deleted from the data repository. Purge Global Entities Yes or No If you select yes, in addition to the applicable data being deleted for the source-specific entities, all data from global entities will also be deleted. If you select no, data will be deleted from the sourcespecific entities only. The Purge Staging Tables Process You use the Purge Staging Tables process to delete data from the data collection staging tables. The following table explains the parameters you specify when you run the Purge Staging Tables process. In addition to the five parameters explained below, you specify yes or no for each of the twenty-five data collection entities. Parameter Name Parameter Options Source System Select a source system for the list of source systems. Data will be deleted for this source system only. 54
Parameter Name Parameter Options Record Type The record type specifies which type of records to purge as follows: Error Purge only error records. Warning Purge only warning records. Retry Purge only records marked as retry. Complete Purge only records that have been successfully processed and data stored in the data repository. All Purge all records. Collection Cycle ID Specify a value for the collection cycle identifier to purge data for a specific collection cycle only, or leave blank. From Date Collected Specify a date to purge data from that date only, or leave blank. To Date Collected Specify a date to purge data up to that date only, or leave blank. Related Topics Collections Cycle Identifier: Explained FAQs for Review Planning Collected Data What's an order orchestration reference object? One of the objects in the set of objects used by the orchestration processes to determine the meaning and descriptions for names or codes, such as payment terms names, freight-on-board codes, and mode-of-transport codes. The sales order data passed to the orchestration processes contains the names or codes, but the processes need to display the meanings or descriptions. The data to determine the meanings or descriptions for the names or codes must be collected into the order orchestration and planning data repository. 55
For example, sales order information is passed to the Order Orchestration processes containing a payment term equal to 2/10, Net 30, and the order orchestration and planning data repository contains a record with payment term equal to 2/10, Net 30 The processes use the matching codes to determine that the payment term description is 2% discount earned if paid within 10 days. Tip For the full list of order orchestration reference objects, review collected data for the order orchestration reference objects, and view the list of values for the Lookup Type field. Define Orchestration Define Orchestration Processes Defining Orchestration Processes: Explained You can define a custom orchestration process so that it meets the requirements of your organization. You specify the rules that determine how order orchestration creates the orchestration process at run-time, and then assigns objects to the fulfillment lines that order orchestration creates as part of this order processing. You can use the predefined ShipOrderGenericProcess or ReturnOrderGenericProcess orchestration processes. You must create them and then deploy them. It is not necessary to release them. How Order Orchestration Uses Orchestration Processes to Transform Orders Order orchestration does the following work when it transforms an order: 1. Transforms the orders that it receives into fulfillment lines. 2. Creates and assigns an orchestration process to these lines. 3. Sets the completion date of the final step in this process to the requested date of the sales order. Note that the Last Fulfillment Completion Step specifies the final step of the orchestration process. This final step is not necessarily the last step that order orchestration completes in chronological order. 4. Uses the following attributes to calculate the planned dates for each step and task, starting with the first step that it performs in chronological order: Default Lead Time Lead Time UOM Lead-Time Expression 5. Displays the orchestration process schedule in the Order Orchestration work area. 6. If order orchestration receives an update from the order capture system, then it replans the orchestration process. It does this replanning every time it receives an update. How Order Orchestration Calculates Completion Dates 56
Order orchestration sets the required completion date for the last step of the orchestration process to the Required Fulfillment Date, and then calculates the planned dates for each step and task that the orchestration process contains so that they meet this Required Fulfillment Date. Order orchestration does the following work: Works through the orchestration process from beginning to end, starting with the first step in chronological order, and ending with the Last Fulfillment Completion step. Does not use the last step that occurs in chronological order to identify the completion date. Incorporates lead times in the dates that it calculates. You can define these lead times. Displays the replanned schedule in the Order Orchestration work area after it finishes the calculation. Order orchestration uses the following sequence to set the Required Fulfillment Date. It exits this sequence as soon as it successfully sets this date. For example, if the order capture system provides a date, then it does only step 1, and does not do steps 2 through 5: 1. Sets the Required Fulfillment Date to the date that the order capture system provides. 2. If the order capture system does not provide a date, then order orchestration sets the Required Fulfillment Date to the Requested Ship Date. 3. If the Requested Ship Date does not contain a value, then order orchestration sets the Required Fulfillment Date to the Requested Arrival Date. 4. If the Requested Arrival Date does not contain a value, then order orchestration sets the Required Fulfillment Date to the Order Date. 5. If the Order Date does not contain a value, then order orchestration sets the Required Fulfillment Date to the System Date. The operating system of the computer that runs order orchestration contains this system date. Specifying How to Plan and Replan Orchestration Processes You can specify how order orchestration plans and replans orchestration processes. To specify planning and replanning for each orchestration process step, see Defining Orchestration Process Steps: Points to Consider. Type of Planning Description Process planning Sets and helps meet the completion date for each orchestration process step and task in an orchestration process. Process planning allows you to specify how an orchestration process transforms orders, including planning for each step after it receives an order from the order capture system. Process replanning Updates completion dates when a change occurs to an order at any point in the orchestration process. You can configure replanning in the following ways: Replan an orchestration process immediately after each orchestration process step finishes. For more information, see Defining Orchestration Processes: Points to Consider. Replan an orchestration process according to some event, such as every time it receives an update from the order capture system. To control when it does this replanning, you can use the Plan Orchestration Processes scheduled 57
Type of Planning Description process to schedule an update at regular intervals according to the frequency that your deployment requires. For example, if your orchestration process requires planning data that is current, then you can administer this scheduled process to run the orchestration process and update the planning data each day. To view an example that uses a scheduled process, see Using Scheduled Processes to Recover Errors in Bulk: Procedure. Related Topics Defining Orchestration Processes: Procedure Defining Orchestration Processes: Examples An orchestration process provides a way for you to model a business process. It can include steps that call the task layer service, get planning details, modify change management settings, set status conditions, and so on. The following examples describe some of the ways that you can use an orchestration process to model a business process. Call the Task Layer Service You are an order administrator who works at a company that sells widgets. You identify the steps that your company requires to fulfill an order, and then define an orchestration process that includes these steps so that the orchestration process mirrors your business process. This process must incorporate the following company policy: If an invoice exceeds $100,000, then a representative must phone the customer. You identify the following sequence of calls to the Task Layer service: 1. Plant Acknowledgement. 2. Assemble. 3. Wait for status to equal COMPLETE. 4. Ship. 5. Wait for status to equal SHIPPED. 6. Test for the following conditions: If the invoice exceeds $100,000, then do the following work: Send High Value Invoice. Wait for the status for High Value Invoice to equal BILLED. If the invoice does not exceed $100,000, then do the following work: Invoice. Wait for the status to equal BILLED. 7. End the condition. 58
Get Planning Details You are an order administrator who works at a company that sells carpet. Your company has established the following leadtimes that allow the sales representative to monitor the fulfillment process and to determine when an order will be fulfilled: Step Lead Time Schedule Two days Reservation One day Shipment Six days Invoice Two days To define an orchestration process that includes this information, you add the default lead time to each orchestration process step. If a step is delayed, then a process runs in the background that replans the process and resets the expected completion dates. Set a Status You are an order administrator who works at a company that sells carpet. You have an important customer who requires that you notify the receiving clerk one day before the carpet is shipped. You define an orchestration process that handles the orders for this customer. You define an orchestration process class for this process named Carpet Process. This class includes the following statuses: SHIPPED RESERVED READY TO SHIP SHIPPED INVOICED You use the Orchestration Process Status tab to define the status conditions. For example: If the status of the CreateShipment step is PRESHIP READY, then use the READY TO SHIP status to indicate the orchestration process status. The order manager can use the Order Orchestration work area to determine whether or not the orchestration process status is READY TO SHIP. Related Topics Defining Orchestration Processes: Procedure Defining Orchestration Process Steps: Points to Consider An orchestration process includes the orchestration process steps that order orchestration requires to process a fulfillment line. Each step includes information that order orchestration uses when it runs the step, such as the task type, task, service, dependencies, planning, change management, and so on. 59
To define an orchestration process step, you access the Edit Orchestration Process Definition page, and then use the Step Definition list in the Process Details area. Specify Step Attributes Consider the following fields that you can set when you specify the step attributes. Field Name Description Step Type Specify the behavior of the orchestration process step. You can view these steps in an orchestration process diagram. You can set this field to one of the following values: Conditional. Runs a path in an orchestration process according to the results of a condition. You must specify a branching condition on a step immediately after the conditional step. Merge. Identifies the point where two or more orchestration paths reunite. Service. Allows this step to reference a service. Subprocess. Allows this step to reference another process that includes a set of steps. Task Type Specify the task type. Each task type includes services that you can use to communicate with a type of fulfillment system, such as a billing system. You can use the following predefined task types: Schedule Reservation Shipment Invoice Return Task Specify the task to run. A task can include more than one step. For example, the Ship task calls the Create Shipment service. It also calls the Wait for Shipment service to wait for different status values to occur in the fulfillment system updates. 60
Field Name Description Caution If you use the Functional Setup Manager to migrate an orchestration process instance from a test environment to a production environment, then do not modify the Task field in the test instance or in the production instance. Changing this field might prevent the orchestration process from correctly updating data. Service Identifies the fulfillment task service that this step calls. Manual Specify whether or not to wait for user input. If you define a manual task, then the orchestration process waits until the user manually completes the task in the Order Orchestration work area. It is recommended that you define some tasks as manual tasks. For example, you can define the Schedule task as a manual task so that an order manager can manually schedule all fulfillment lines at the end of the day. Exit Criteria Specify the task status that determines when to exit a wait step. For example, if the status of a shipment task changes to Shipped, then exit the wait step. If your task includes multiple wait steps, then make sure that these steps do not include the same set of exit criteria. Use the Manage Task Status Conditions page to make sure that the last or only wait step uses the exit criterion. Line Selection Criteria Specify an expression that filters the criteria when the orchestration process does not require all of the orchestration order lines or the fulfillment lines when it calls the fulfillment task service that you specify for the step. Specify Dependencies Consider the following fields that you can set when you specify an orchestration process that includes branching. Field Name Description Branching Condition Specify the criteria that must be met to run the steps in a branch. 61
Field Name Description Evaluation Sequence Specify the sequence that the orchestration process uses when it evaluates branch conditions. Otherwise Specify whether or not this step starts the branch that does not meet the branching condition. Specify Planning Consider the following fields that you can set when you specify planning for an orchestration process step. Field Name Description Planning Default Branch Specify the default path that order orchestration uses for planning. Order orchestration uses this setting only if the orchestration process includes one or more conditional branches. Fulfillment Completion Step Add a check mark to this field to indicate that the fulfillment lines are fulfilled when this step finishes. Order orchestration uses this setting when it plans an orchestration process to make sure it meets the request date. The last step that occurs in chronological order in the orchestration process is not necessarily the Fulfillment Completion Step. For example, an orchestration process might use the requested ship date to indicate the completion date as the last step instead of using the shipped date to indicate the completion date. Default Lead Time and Lead Time UOM Specify the duration that order orchestration requires to complete a unit of work. If you do not define a lead-time expression for a step, then it uses the default lead time. Lead-Time Expression Specify to use Oracle Business Rules to define the lead time. This feature provides flexibility if you define a complex lead-time expression. Specify Change Management Consider the following fields that you can set when you specify change management for an orchestration process step. 62
Field Name Description Hold on wait Sends a message to the fulfillment system for each active step when the orchestration process receives a change order. Use Transactional Item Attributes If you enable transactional item attributes, then order orchestration examines the transactional item attributes to help it determine the differences that exists between the change order and the previous version of this order. Use Flexfield Attributes If you enable flexfield attributes, then order orchestration examines the flexfield attributes to help it determine the differences that exists between the change order and the previous version of this order. Compensation Pattern Specifies the set of rules that determine how to handle each step that ran before order orchestration received the change order. For example, assume a change order requests a change from carpet to tiles. In this example, order orchestration must cancel a number of the previous steps that it ran. If the carpet was scheduled for shipping, then order orchestration must cancel the steps that scheduled the shipping. Order orchestration creates a different set of fulfillment lines for tiles when processes the change order, so it must use a different orchestration process because a tile order requires more time to fulfill and it uses a different contractor. Order orchestration must cancel most of the previous steps, but it does not cancel the Measure step because the room dimensions are still accurate. If you do not specify a compensation pattern, then order orchestration might process a step as an update, depending on the context of the operation. Instead, it might rerun some steps. If order orchestration cannot compensate a step for some reason, then it bypasses the step, and then compensates the next step that it encounters. Related Topics Defining Orchestration Processes: Procedure Task Types: Explained You can use a task type to determine how to process an order. It includes the following tasks and services: An internal Web service that communicates with the task layer A task that represents the services that the task type uses 63
Distributed Order Orchestration comes predefined with the following task types: Activity Fulfillment Order Invoice Pause Schedule Reservation Return Shipment Fusion Order Management does not come predefined with the following task types: Activity Fulfillment Order These task types are read-only. You cannot modify or delete them. Note the following: In Distributed Order Orchestration only, you can click Add Activity or Add Custom to create a new task type. You cannot do this work in Fusion Order Management. You can modify the name of a task type that you create, but it is not recommended. In Distributed Order Orchestration only, you can edit the service names of an activity or a custom task type that you create. You cannot do this work in Fusion Order Management. You can add a service from the services that are available, but you cannot edit or delete the services that a custom task type references. You can use a task to represent the services that a task type references. For example, if you create a Ship Goods task that references services from the Shipment task type, then the Order Orchestration work area displays Ship Goods when a Shipment service runs, regardless of whether or not it calls the Create Shipment service or the Update Shipment service. The Order Orchestration work area does not display the service. It displays only the task. You can define several tasks for a task type, such as ShipGoods or ShipWidgets. Subprocesses: Explained You can use a subprocess to increase the efficiency of your design. You can add a subprocess to an orchestration process, and then reuse this subprocess in another orchestration process. You can also use a subprocess to manage a large orchestration process. In general, it is easier to manage a large orchestration process that includes subprocesses than it is to manage a large orchestration process that does not include subprocesses. Pausing Orchestration Processes Until an Event Occurs: Worked Example This example describes how to define an orchestration process that uses a pause task to temporarily stop the orchestration process from running so that it can wait for an event to occur. Assume you work for a publisher who will release a new book at some point in the future, and that you need to provide your Gold customers an opportunity to order the book before your 64
company releases it to the general public. You can define an orchestration process that pauses processing so that it does not attempt to ship these books before the release date occurs. You create the following condition: If the customer demand class is Gold, then use the Release Pause Tasks scheduled process. This process searches for the condition that releases the pause task. You create two rules. One rule pauses the task if the conditions are true. The other rule skips the pause task if the conditions of the first rule are false. If you use an If, Then, or Else condition in a single rule instead of creating two rules, then you must create the Else condition before you add an action in the Then condition. Summary of the Work You do the following work: 1. Define the orchestration process. 2. Create the pause task. 3. Create the If statement for the first rule. 4. Create the Then statement for the first rule. 5. Create the If statement for the second rule. 6. Create the Then statement for the second rule. Define the Orchestration Process Define the orchestration process: 1. In the Navigator, Click Setup and Maintenance. 2. In the Name field, enter Orchestration Process, and then click Search. 3. In the Search Results, in the Manage Orchestration Process Definitions row, click Go to Task. 4. On the Manage Orchestration Process Definitions page, click Actions, and then click Create. 5. On the Create Orchestration Process Definition page, set the following fields, and then click Save. Field Value Process Name Enter a process name. Do not include spaces. Process Display Name Enter any value. Do not include spaces. Set Common Set Process Class Ship Order Class 65
6. On the Step Definition tab, click Actions, and then click Add Row. 7. Set the following fields, and then click Save: Field Value Step Name Schedule Goods Step Type Service Task Type Schedule Task Schedule Service Create Scheduling 8. Repeat steps 6 and 7 for each of the following steps: Create Reservation Create Shipment Wait for Shipment Advice Create Invoice Wait for Invoice Note the following: Set the Step Type for all steps to Service. Set the other fields so that they reflect the step behavior. For example, for the Create Reservation step, set the Task Type to Reservation, the Task to Reserve, and the Service to Create Inventory Reservation. Make sure you set the Exit Criteria field for each wait step. For example, set the Exit Criteria for the Wait for Shipment Advice step to Shipped Create the Pause Step Create the pause step: 1. Click the Create Reservation step, and then click Add Row. 2. In the new row, set the following values, and then click Save. 66
Field Value Step Name Pause Step Type Service Task Type Pause Task Pause Service Pause Process Create the If Statement for the First Rule Next, you create the start-after condition. Create the If statement for the first rule: 1. On the Pause step, in the Start-After Condition column, click Click for Rule. 2. In the Start After Condition dialog, click Add Rule, and then click Expand. 3. Click Left Value. 4. In the Condition Browser dialog, expand DooSeededOrchestrationRules, expand DOOFLine, click demandclasscode, and then click OK. 5. Click Right Value. 6. In the Condition Browser dialog, enter "Gold", and then click OK. You must include the double quotation marks ("). Create the Then Statement for the First Rule Create the Then statement for the first rule: 1. In the Then area, click Add Action, and then click Assert New. 2. Click Select a Target, and then click DooSeededOrchestrationRules.SacResult. 3. Click Edit Properties. 4. In the Properties dialog, in the reevaluateflag row, enter "N". You must include double quotation marks. 5. In the sactype row, click Value. 6. In the Condition Browser dialog, expand DooSeededOrchestrationRules, expand SacResult, click SAC_TYPE_EVENT, and then click OK. 7. In the eventname row, in the Value field, enter "Gold Preorders". You must include double quotation marks. Note that a setting on a scheduled process references this event, but you can also use it in a public service. You can also use other parameters to release a pause task. Note that this event is not related to the events that the event framework in Oracle Fusion Middleware uses. 67
8. Click OK, click Save, and then click Save again. Create the If Statement for the Second Rule Create the If statement for the second rule: 1. On the Pause step, in the Start-After Condition column, click Click for Rule. 2. In the Start After Condition dialog, click Add Rule. Note that the dialog displays a new rule and enters a value of Rule 2 in a field. Make sure you do the rest of this procedure in this rule. 3. In the THEN area, click Expand. 4. Click Left Value. 5. In the Condition Browser dialog, expand DooSeededOrchestrationRules, expand DOOFLine, click demandclasscode, and then click OK. 6. Click Is, and then click Isn't. 7. Click Right Value. 8. In the Condition Browser dialog, enter "Gold", and then click OK. You must include the double quotation marks. Create the Then Statement for the Second Rule Create the Then statement for the second rule: 1. In the Then area, click Add Action, and then click Assert New. 2. Click Select a Target, and then click DooSeededOrchestrationRules.SacResult. 3. Click Edit Properties. 4. In the Properties dialog, in the reevaluateflag row, enter "N". You must include double quotation marks. 5. In the sactype row, click Value. 6. In the Condition Browser dialog, expand DooSeededOrchestrationRules, expand SacResult, click SAC_TYPE_IMMEDIATE, and then click OK. 7. Click Save. 8. On the Edit Orchestration Process Definition page, click Save. Pausing Orchestration Processes Until Time Elapses: Worked Example This example describes how to define an orchestration process that uses a pause task to temporarily stop the orchestration process from running so that it can wait for time to elapse. Summary of the Tasks In this example, you define an orchestration process that pauses before it ships preordered items. You do the following work: 1. Define an orchestration process. 2. Create the pause task. 3. Create the rules. 68
You use the following condition: If the source order system is Legacy, then release the pause on ShipDate minus two. You create two rules. One rule releases the pause on a date if the condition is met. The other rule releases the pause immediately if the condition is not met. To define the orchestration process and to create the pause task for this example, use the instructions in the topic Pausing Orchestration Processes Until an Event Occurs: Worked Example. After you finish this work, proceed to the Create the If Statement for the First Rule heading in this topic. Create the If Statement for the First Rule Create the If statement for the first rule. This rule uses a pause task to temporarily stop processing if the source order system is Legacy: 1. On the Pause step, in the Start-After Condition column, click Click for Rule. 2. In the Start After Condition dialog, click Add Rule. 3. Replace Rule 1with any value that does not include spaces. For this example, enter ResumeShippingMinus2. 4. Click Expand, and then click Show Advanced Settings. 5. Add a checkmark to Advanced Mode, and then add a checkmark to Tree Mode. The Tree Mode maintains the orchestration order hierarchy and the orchestration process hierarchy when order orchestration evaluates the rule. 6. Set the Root to DooSeededOrchestrationRules.DOOHeader. 7. In the IF area, in the left field, delete DooSeededOrchestrationRules.DOOHeader, and then enter Header in this field. 8. In the IF area, click the down arrow that is located next to Right Value, and then click Delete Test. 9. Click Add Pattern. 10. In the left field, under Add Test, enter Line. 11. Set the field that is located to the right of Is A to Header/childFLines. 12. Click Add Test, and then click Simple Test. Make sure you use Add Test that is located immediately below the field that you edited in step 7. 13. Click Left Value. 14. In the Condition Browser dialog, expand Header, click sourceordersystem, and then click OK. 15. In the Right Value field, enter "LEG". LEG is an abbreviation for the term legacy. You must include the double quotation marks. 16. In the Condition Browser dialog, enter "Gold", and then click OK. You must include the double quotation marks. Create the Then Statement for the First Rule Create the Then statement for the first rule. This statement releases the pause task two days before the scheduled ship date occurs: 1. In the Then area, click Add Action, and then click Assign New. 69
2. Click Select a Target, and then click DooSeededOrchestrationRules.Timestamp. 3. In the empty field immediately to the right of the Select a Target field, enter DateTime. Do not include quotation marks. DateTime is the name of a variable that this example uses for the date calculation. 4. Click Expression Value. 5. In the Condition Browser dialog, expand Line, click scheduleshipdate, and then click OK. 6. Click Add Action, and then click Modify. 7. Click Select a Target, and then click DateTime. 8. Click Edit Properties. 9. In the Properties dialog, in the Time row, click Value. 10. In the Condition Browser dialog, expand DateTime, and then click Time. The Condition Browser adds a value of DateTime.time to the Expression field. 11. In the Expression field, append -(2*24*60*60*1000) to the end of DateTime.time. This value calculates the number of milliseconds so that the pause task ends two days before order orchestration schedules the order lines for shipping. 12. Make sure the Expression field includes the following value, and then click OK: DateTime.time-(2*24*60*60*1000). 13. In the Properties dialog, click OK. 14. Click Add Action, and then click Assert New. 15. Click Select a Target, and then click DooSeededOrchestrationRules.SacResult. 16. Click Edit Properties. 17. In the Properties dialog, in the reevaluateflag row, in the Value field, enter "N". You must include the double quotation marks. 18. In the sactype row, click Value. 19. In the Condition Browser dialog, expand DooSeededOrchestrationRules, expand SacResult, click SAC_TYPE_TIMER, and then click OK. 20. In the Properties dialog, in the waitdatetime row, click Value. 21. In the Condition Browser, click DateTime, click OK, and then click OK again. Create the If Statement for the Second Rule Create the If statement for the second rule. This rule releases the pause if the source order system is not Legacy: 1. Scroll to the top of the Start After Condition dialog, and then click Add Rule. 2. Scroll to the bottom of the Start After Condition dialog, and then replace Rule 2 with any value that does not include spaces. For this example, enter ResumeShippingImmed. 3. If necessary, expand the area of the ResumeShippingImmed rule and show the advanced settings. 4. Add a checkmark to Advanced Mode, and then add a checkmark to Tree Mode. 5. Set the Root to DooSeededOrchestrationRules.DOOHeader. 6. In the IF area, in the left field, delete DooSeededOrchestrationRules.DOOHeader, and then enter Header in this field. 7. In the IF area, click the down arrow that is located next to Right Value, and then click Delete Test. 70
8. Click Add Pattern. 9. In the left field, under Add Test, enter Line. 10. Set the field that is located to the right of Is A to Header/childFLines. 11. Click Add Test, and then click Simple Test. 12. Click Left Value. 13. In the Condition Browser dialog, expand Header, click sourceordersystem, and then click OK. 14. In the Right Value field, enter "LEG". Create the Then Statement for the Second Rule Create the Then statement for the second rule: 1. In the Then area, click Add Action, and then click Assert New. 2. Click Select a Target, and then click DooSeededOrchestrationRules.SacResult. 3. Click Edit Properties. 4. In the Properties dialog, in the reevaluateflag row, in the Value field, enter "N". You must include the double quotation marks. This example uses reevaluateflag to specify whether or not to evaluate the rule after the calculated date occurs. 5. In the sactype row, click Value. 6. In the Condition Browser dialog, expand DooSeededOrchestrationRules, expand SacResult, click SAC_TYPE_IMMEDIATE, click OK, and then click OK again. 7. In the Start-After Condition dialog, click Save. 8. On the Edit Orchestration Process Definitions page, click Save. Related Topics Pausing Orchestration Processes: Explained Pausing Orchestration Processes Until All Items Are Ready for Shipping: Worked Example This example describes how to coordinate orchestration processes to make sure that order orchestration invoices all the order lines that an order contains at the same time, even if the shipment dates vary. The orchestration process uses the same sequence of steps to process each fulfillment line, but these lines might not be synchronized. Assume a school district places an order for 600 new history books and requires that they receive the invoice for this order only after order orchestration ships all the books. The orchestration process must get the books from the following warehouses: Fulfillment line 1 gets 80 books from the Atlanta warehouse Fulfillment line 2 gets 400 books from the Dallas warehouse Fulfillment line 3 gets 120 books from the Chicago warehouse You define an orchestration process that processes the order lines, pauses them until all of these lines are shipped, and then sends them to billing. 71
Define the Orchestration Process Define an orchestration process: 1. Create a new orchestration process and define the header. For an example, see Pausing Orchestration Processes Until an Event Occurs: Worked Example. 2. Add the following steps: Schedule Reserve Ship Wait for Shipment Pause Invoice Wait for Billing Create the Default Rule 1. Click Add Rule. 2. Click the Expand button. 3. Click the Show Advanced Settings button. 4. Select Highest Priority. 5. Select Advanced Mode. 6. In the left field below If, enter an alias, such as Header. 7. In the list of values in the If area, select DooSeededOrchestrationRules.DOOHeader. 8. Select the down arrow next to Right Value, and then select Delete Test. Without the test, the actions in the Then region always apply. 9. In the Then area, click Add Action, and then click Assign New. 10. In the Select a Target list of values, click DooSeededOrchestrationRules.SacResult. 11. In the middle field, enter SAC. 12. To the right of the equal sign (=), click Expression Value. 13. In the Condition Browser dialog, expand DooSeededOrchestrationRules, expand SacResult, and then click New, and then click OK. 14. Click the down arrow next to Add Action, and then click Assign. 15. In the Select a Target list, click Header.sacResult. 16. To the right of the equal sign (=), enter SAC. 72
17. Click the down arrow next to Add Action, and then click Assign. 18. In the Select a Target list, click Header.sacResult.sacType. 19. To the right of the equal sign (=), click Expression Value. 20. In the Condition Browser dialog, expand DooSeededOrchestrationRules, expand SacResult, click SAC_TYPE_IMMEDIATE, and then click OK. 21. Click Validate. Create the Rule That Controls the Pause Condition In this section, you create the following rule: If the actual ship date is not null on all fulfillment lines, then release the pause task. Create the rule that controls the pause conditions: 1. Click Add Rule. 2. Click Expand. 3. Click Show Advanced Settings. 4. Keep the default priority setting. 5. Select Advanced Mode, and then select Tree Mode. 6. In Root, select DooSeededOrchestrationRules.DOOHeader. 7. In the If area, in the field to the left of Is A, replace the defaulted value with an alias, such as OrderHeader. 8. Click the down arrow to the right of Right Value, and then click Delete Test. 9. Click Add Pattern to the right of the If statement. 10. To the right of the empty fields, click Surround Pattern with Parenthesis. 11. In the list of values under And, click There is a Case Where. This selection means that if even one line is still not shipped, then all shipped lines must pause. 12. In the field on the left, enter FLine. 13. To the right of Is A, click Header/allFLinesIntheOrder. This selection allow you to coordinate across multiple orchestration processes. 14. Click the down arrow next to Add Test, and then click Simple Test. This is the test for the reason to pause. 15. Click Left Value, expand FLine, click actualshipdate, and then click OK. 16. Make sure that Is is selected. 17. In the field to the right of Is, click Right Value, and then click null. 18. In the Then area, click the down arrow next to Add Action, and then click Assign. 19. Select Header.sacResult.eventName. 20. Click Expression Value on the same line. 21. In the Condition Browser, expand DooSeededOrchestrationRules, expand SacResult, select SAC_SYSTEM_EVENT_IPC_PAUSE, and then click OK. This step forces reevaluation of the associated lines until all are shipped and then releases them. 22. Click the down arrow next to Add Action, and then click Assign. 23. Click Header.sacResult.reevaluateFlag. 24. In the field to the right of the equal sign (=), enter "Y". You must include the double quotation marks. 73
25. Click the down arrow next to Add Action, and then click Assign. 26. Click Header.sacResult.sacType. 27. Click Expression Value on the same line. 28. In the Condition Browser, expand DooSeededOrchestrationRules, expand SacResult, click SAC_TYPE_EVENT, and then click OK. 29. Click Save. Resuming Paused Orchestration Processes Automatically: Explained You can use a scheduled process or a public service to release a pause task so that an orchestration process can automatically resume processing sales orders. Release Pause Tasks Scheduled Process You can use the Scheduled Processes page to run the Release Pause Tasks scheduled process. This scheduled process can release one or more pause tasks. You can use any of the following settings to identify the pause tasks to release: Event Name Inventory Item Sold-to Customer Task Order Number Fulfillment Line Number Warehouse From Order Date To Order Date From Scheduled Ship Date To Scheduled Ship Date From Scheduled Release Date To Scheduled Release Date Source Order System Source Order Number Release Paused Tasks Public Service An external application can call the Release Paused Tasks public service to release a pause task. You can use the settings of this service to identify the pause tasks to release. The event handler calls the service to release the pause tasks according to the settings that you specify. To get the attributes that the sales order references, you can use the order capture service that requests the order details. For more information about this service, see Oracle Enterprise Repository. 74
Processing Changes That Occur During Order Fulfillment: How It Works A change that affects a sales order during order fulfillment can originate from a variety of sources, such as from a user through an order capture system, or from a user who is using the Order Orchestration work area. Order orchestration comes predefined to process these changes. It cross-references, transforms, validates, and orchestrates the change in the same way that it does this work for a new order. If rules that control how to process a change exist, then order orchestration applies them. A system administrator can also use the setup options to modify how order orchestration does this processing. Order orchestration uses the following sequence to process a change order: 1. Receives a request to change a sales order. 2. Performs a lookup to determine whether or not it already received the order key. If it already received this order key, then it exits this sequence. 3. Sends a request to the fulfillment system that is responsible for the task that is running. This request includes information about whether or not to stop processing, whether or not to accept the change, and the current status. 4. Determines whether or not processing constraints on the order header prevent change processing. If these constraints do not allow a change, then order orchestration rejects the entire change and exits this change sequence. 5. Determines whether or not the processing constraints on each fulfillment line allow the change. If any constraint does not allow the change on any fulfillment line, then order orchestration rejects the entire change and exits this change sequence. 6. Calls the delta service. This service identifies the orchestration process steps that reference the attributes that order orchestration uses to identify change. It also analyzes the state of each step that order orchestration records every time it called a task layer service when the orchestration process was running. It uses this state information to determine the processing that order orchestration must perform to incorporate the change. 7. If the delta service determined that the order attributes require compensation, then order orchestration uses the compensation pattern that the step references to compensate each of these steps. You can use the following compensation patterns: Undo Redo Update Cancel None You can also specify a business rule that determines the action to take according to this compensation pattern. 8. The compensating services run, and then finish. These services use the FIFO (first in, first out) sequence to compensate the order, according to the orchestration process sequence, by default. If order orchestration must cancel the entire order, then it uses a LIFO (last in, first out) sequence. 9. If the original orchestration process: Can accommodate the change. Order orchestration uses the original orchestration process to continue processing. 75
Cannot accommodate the change. Order orchestration cancels the original orchestration process, and then starts a new one that can accommodate the change. Managing Changes That Occur During Order Fulfillment: Explained You can administer the following features to manage how order orchestration processes changes that occur during order fulfillment, including how it does order compensation. Feature That You Can Administer Description Change Mode An option that you can set on an orchestration process that determines how frequently order orchestration records the state of this process. It compares these states during order compensation. You can set it to one of the following values: None. Order orchestration does not record the state of the orchestration process, and it does not allow a change. Simple. Order orchestration records the state of the orchestration process when it starts and at the step where the orchestration process receives the change. Advanced. Order orchestration records the state of the orchestration process at each orchestration process step. Cost of Change Rule A rule that you can define on an orchestration process that specifies the business costs that your organization will incur as a result of processing the requested change. Use Flexfield Attributes An option that you can set on an orchestration process or orchestration process step that specifies whether or not to examine flexfield attributes when determining whether or not to do order compensation. For example, if you select Use Flexfield Attributes, then order orchestration examines the flexfield attributes that are associated with a product to determine whether or not it must compensate the orchestration process. Use Transactional Item Attributes An option that you can set on an orchestration process or orchestration process step that specifies whether or not to examine transactional item attributes when determining whether or not to do order compensation. Use Dynamic Attributes An option that you can set that specifies whether or not to examine dynamic attributes when determining whether or not to do order compensation. 76
Feature That You Can Administer Description Compensation Pattern A rule that you can define on an orchestration process step that specifies the adjustments to make to an order when this order changes. For example, if order orchestration receives a change order that specifies to ship a product from a different warehouse for the Create Shipment step, then it runs the Cancel service and the Create service again. If you do not specify a compensation pattern, then order orchestration uses the predefined compensation pattern, by default. A predefined pattern uses the Update service, the Cancel service, or the Create service. Task Type A field that you can set on an orchestration process step. The task type that you select determines the order attributes that order orchestration uses when it determines whether or not it must do order compensation for this step. Order orchestration comes predefined to use a set of attributes for each predefined task type. You cannot modify this predefined configuration, but you can add more attributes. Order orchestration does not add any of these attributes to a new task type that you add, and it does not evaluate this task until you add these attributes. To add them, you must click Add All. Order attribute You can administer order orchestration so that it examines order attributes when it determines whether or not to do order compensation. For more information, see Managing Order Attributes That Identify Change: Procedure. Processing constraints that control change A constraint that you can specify to control the changes that order orchestration makes to an order, such as what data a user can modify, or when the user can modify data. If the user attempts to modify this data, then order orchestration displays an error message. For more information, see Processing Constraints: Explained. Managing Order Attributes That Identify Change: Procedure Order orchestration examines order attributes to identify the changes that a change order contains, and then uses this information to do order compensation. For example, Ordered Quantity is an order attribute. If a user increases the Ordered Quantity of a sales order, then order orchestration must schedule and ship more supply. To do this work, it compensates the Schedule step and the Shipment step when it receives the change order that includes the new quantity. Each step references a task type, and each task type references order attributes that order orchestration uses to determine whether or not to do order compensation. In this example, the Schedule step and the Shipment step each reference a task type that references the Ordered Quantity attribute. 77
In this topic, assume you are creating an orchestration process step that must use the Ordered Quantity attribute to identify change To manage order attributes that identify change: 1. In the Functional Setup Manager, navigate to the Manage Order Attributes That Identify Change page. This page resides in the Order Orchestration product offering. To view an example that describes how to navigate the pages in this offering, see Connecting Fusion Order Management to Oracle CPQ Cloud: Procedure. 2. In the Task Type list, click a task type that looks like it might meet the needs that your orchestration process step requires. Order orchestration comes predefined with a number of task types. To reduce maintenance, it is recommended that you use one of these predefined task types before you create a custom task type. 3. Click Actions, and the click Edit. For this example, click Shipment. 4. On the Edit Order Attributes That Identify Change page, in the Orchestration Components list, click a component that you think might contain the attribute that order orchestration must use to identify the change. For this example, click Order Line. 5. Examine the Attributes list. When your orchestration process step runs, it will examine each attribute that this list contains to determine whether or not to compensate the order when it receives a change order. If this list includes the attributes that your step requires to identify change, then set the Task Type field of your orchestration process step to this task type, and then exit this procedure. For this example, the list does include Ordered Quantity, so you can set the Task Type field to Shipment. If the Predefined column of the Attributes list includes a check mark, then you cannot remove this attribute. 6. If the Attributes list does not include the attributes that your step requires to identify change, then do the following work: Click Actions, and then click Select and Add. In the Change Attributes dialog, click an attribute, such as Scheduled Ship Date. Click Apply, click OK, and then exit this procedure. Note that you can also do the following work on the Manage Order Attributes That Identify Change page: To add an attribute to all tasks that the Task Type list displays, click Actions, and then click Edit All. To add a new task type, click Actions, and then click Create. On the Create Order Attributes That Identify Change page, add attributes, as necessary. If you create a new task type, and if you do not use this page to add at least one attribute to this task type, then order orchestration will not examine any attributes when it identifies change. Orchestration Statuses: Explained Order orchestration displays a separate status for the orchestration order, orchestration order line, fulfillment line, and the orchestration process. Each status indicates the progress of an order from beginning to completion. The statuses of the fulfilment lines, the orchestration processes, and the fulfillment task determines the orchestration order status. The Order Orchestration work area displays these status values. Order orchestration sequentially evaluates each of the status conditions that a fulfillment line contains while it processes an order. The true condition that contains the highest sequence number determines the fulfillment line status. Order orchestration then uses the status of the fulfillment line that has progressed the furthest in the order life cycle to update the orchestration order status. 78
Status of the Orchestration Order The status that order orchestration displays for the orchestration order depends on the following statuses of the orchestration order line. Status of the Orchestration Order Line Status of the Orchestration Order All orchestration order lines are completed. Closed All orchestration order lines are not completed. Open Some, but not all, orchestration order lines are completed. Partial All orchestration order lines are canceled. Canceled Some orchestration order lines are canceled. Order orchestration ignores the canceled orchestration order lines, and sets the status according to the orchestration order lines that are open. Status of the Orchestration Order Line The status that order orchestration displays for the orchestration order line depends on the following statuses of the fulfillment line. Status of the Fulfillment Line Status of the Orchestration Order Line All fulfillment lines are completed. Closed All fulfillment lines are not completed. Open Some, but not all, of the fulfillment lines are completed. Partial All fulfillment lines are canceled. Canceled Some fulfillment lines are canceled. Order orchestration ignores the canceled fulfillment lines, and sets the status according to the fulfillment lines that are open. 79
Related Topics Customizing Fulfillment Lines Statuses: Procedure How Split Fulfillment Lines Affect Status: Explained Order orchestration creates two or more instances of the same fulfillment task when it splits a fulfillment line. These tasks might include different statuses during processing. For example, assume the status of the Schedule task for fulfillment line A1 is Not Scheduled, and the status of the Schedule task for fulfillment line A2 is Scheduled. In this situation, order orchestration examines the split priority of the task statuses, and then sets the status of the orchestration process to the task status that includes the highest split priority. Assume order orchestration splits a fulfillment line that results in two instances of the Schedule task. One of these tasks includes a Complete status, and the other task includes a Pending status. Assume the value of the split priority for Pending is two, and the value of the split priority for Complete is three. In this example, order orchestration sets the status of the orchestration process to Pending. Related Topics Split Fulfillment Lines: Explained Jeopardy Priority: Explained You can modify the predefined range of jeopardy scores for a jeopardy priority. For example, you can specify a minimum jeopardy score of 0, and a maximum score of 100 for the Low jeopardy priority. You cannot add or delete a jeopardy priority. You cannot customize the value of a predefined jeopardy priority, such as Low. Jeopardy Score: Explained Order orchestration maps the jeopardy score to a jeopardy priority, and then displays this score in the Order Orchestration work area. This score provides a quick visual cue to an order manager so that this manager can take appropriate action to reduce the delay. You specify the jeopardy score when you create a jeopardy threshold. Assigning Jeopardy Score to Fulfillment Tasks Order orchestration assigns a jeopardy score to a fulfillment task according to the jeopardy threshold. If a task is delayed, then order orchestration calculates the difference between the required completion date and the planned completion date, and then searches for a threshold that applies to the largest number of fulfillment task entities. It uses the following sequence when it searches for this threshold: 1. Search the process name, process version, task name, and task type. 2. Search the process name, process version, and task name. 3. Search the process name and task name. 4. Search the process name, process version, and task type. 5. Search the process name and task type. 6. Search the process task name. 7. Search the process name and process version. 8. Search the process name. 80
9. Search the task type. For example: 1. Search for a jeopardy threshold that applies to the task type, task name, process name, and process version. If order orchestration does not find a threshold that applies to all of these attributes, then continue to step 2. 2. Search for a jeopardy threshold that applies to the process name, process version, and task name. If order orchestration does not find a threshold that applies to all of these attributes, then continue to step 3. 3. And so on. Order orchestration continues this process until it finds a threshold that applies to one or a combination of attributes, and then sets the jeopardy score according to the threshold that it assigns to the fulfillment task. How Jeopardy Displays in the Order Orchestration Work Area The jeopardy priority that the Order Orchestration work area displays references the fulfillment task that contains the highest jeopardy score. If multiple fulfillment tasks are in jeopardy in an orchestration process, then order orchestration uses the highest jeopardy score when it displays the jeopardy for this orchestration process. For example, assume the supply in the warehouse that the Carpet Processing orchestration process references is not sufficient, and that this insufficient supply causes a delay for the following fulfillment tasks: A three day delay for the Deliver Carpet task that results in a jeopardy score of 100 and a jeopardy priority of Medium A three day delay for the Invoice Carpet task that results in a jeopardy score of 200 and a jeopardy priority of High. Two hundred is the higher score, so order orchestration uses the jeopardy score for the Invoice Carpet task to represent the jeopardy of the Carpet Processing orchestration process. It displays a jeopardy priority of High in the Order Orchestration work area. Customizing Fulfillment Task Statuses: Explained A fulfillment task might include predefined status codes. If you map these codes to your preferred status codes, then the Order Orchestration work area, and other status management areas, such as the Status Conditions tab of an orchestration process definition, displays the preferred status codes. Jeopardy Threshold: Explained You can use a jeopardy threshold to measure and monitor an orchestration process. You can define a set of ranges for each fulfillment task of an orchestration process, and then assign a score that indicates the severity of the delay. Order orchestration uses this information in the indicators that it displays on the Order Orchestration work area. These indicators can help an order manager to quickly determine the severity of a delay, and then to take an appropriate action. Order orchestration uses the lead time of each orchestration process step and the dates from the sales order, such as required completion date, when it plans an orchestration process and assigns it to an orchestration order. Each fulfillment task includes a planned start date and a completion date. If a fulfillment task is delayed, then order orchestration replans the entire process. If order orchestration expects that a fulfillment task will finish after the required completion date of this task, then it assigns a jeopardy score to each fulfillment task according to the jeopardy threshold that you define. You can define a jeopardy threshold for any combination of the following attributes. If you leave these attributes at their default setting of All, then order orchestration applies the jeopardy threshold to all fulfillment tasks: Task type Task name Process name 81
Process version If you apply a jeopardy threshold, then you must first define the orchestration process, fulfillment task, and task type that this threshold must reference so that you can select these objects when you apply the threshold. Defining Orchestration Processes: Points to Consider This topic describes some important points to consider when you define an orchestration process. Caution If you use the Functional Setup Manager to migrate an orchestration process instance from a development environment to a production environment, then do not modify the process name in either environment. Modifying the name might prevent order orchestration from updating references to other data in the orchestration process. Use Predefined Orchestration Processes It is recommended that you use one of the following predefined orchestration processes before you define a custom orchestration process. Using predefined orchestration processes and other predefined objects will help to reduce your development and maintenance effort. If you find that these predefined orchestration processes do not meet your business requirements, then define a custom orchestration process. Predefined Orchestration Process Description Ship Order The Ship Order orchestration process includes the following tasks: Return Order 1. Schedule 2. Reservation 3. Shipment 4. Invoice The Return Order orchestration process includes the following tasks: 1. Return Receipt 2. Invoice Perform the Required Configurations To define an orchestration process that accurately represents your desired business process, it is recommended that you configure the following items, and that you configure them in the same order that the following table lists them. Item That Requires Configuration Work That You Perform Task type Define the task types that arrange fulfillment tasks in groups. Each task type contains a selection of services that communicate with a type of fulfillment system. For 82
Item That Requires Configuration Work That You Perform example, a billing system. For more information, see Task Types: Explained. Orchestration process Define the orchestration process that represents your business process that fulfills a fulfillment line. It includes the sequence of task layer service calls and planning details, change management settings, and status conditions. For more information, see Defining Orchestration Processes: Procedure. Change logic Define the set of rules that determine how the orchestration process handles changes to sales orders. For more information, see Processing Changes That Occur During Order Fulfillment: How It Works. Process planning Define the schedule that displays the completion date of each task and of the orchestration process. For more information, see Order Management Process Planning: How It Works. Jeopardy threshold and jeopardy priority Define the level of risk that is associated with the delay of an orchestration process task as low, medium, or high. For more information, see Jeopardy Threshold: Explained. Statuses and status conditions Define the status of an order or an object, including a task, orchestration process, fulfillment line, orchestration order line, or orchestration order. For more information, see Orchestration Process Status: Explained. Orchestration process deployment You must deploy an orchestration process that you create or update. For more information, see Deploying Orchestration Processes: Procedure. Configure Replanning You can enable the Replan Instantly feature when you define an orchestration process. It replans the orchestration process immediately after this process completes the orchestration process step, and then displays the revised order data according to the replanning work that it does. It is recommended that you use Replan Instantly for high priority orders, or with orders that include a jeopardy threshold of less than one day. For performance reasons, it is recommended that you do not use it for a step that is long or complex. If Replan Instantly does not contain a checkmark, then order orchestration updates the planning data only during the scheduled replanning. For information about how to configure replanning for each orchestration process step, see Defining Orchestration Process Steps: Points to Consider. 83
Related Topics Defining Orchestration Processes: Procedure Creating Orchestration Process Classes: Procedure You can use the orchestration process class as a way to group orchestration process statuses so that they are meaningful in an orchestration process. For example, the Ship Order Class includes statuses that are meaningful when shipping an order, such as Scheduled, Awaiting Shipping, and Shipped. This topic includes example values. You might use different values, depending on your business requirements. To create an orchestration process class: 1. In the Navigator, click Setup and Maintenance. 2. In the Setup and Maintenance work area, locate your implementation project, and then open it. 3. On the Implementation Project page, expand Order Orchestration Top Task List, expand Define Sales Order Fulfillment, expand Define Orchestration, and then click Go to Task next to Manage Status Values. 4. On the Manage Status Values page, click Orchestration Process Classes. 5. In the Orchestration Process Classes list, click Actions, click Create, and then set the following values. Field Value Code Standard_Class Name Standard_Class Description Class for standard orders 6. Click Save. 7. In the Status Values area, click Actions, click Add Row, and then add the following value. Field Value Status Value Scheduled 8. Repeat step 7 for each of the following values: Shipped Reserved Billed 84
Returned to Customer 9. Click Save and Close. You can now set the Standard_Class class in the Process Class field on the Edit Orchestration Process Definitions page. The class that you set determines the values that you can select when you set the Status Value of the Status Conditions tab on this page. For example, if you set the Process Class to Standard_Class, then the Status Value field allows you to select the statuses that the Standard_Class class references, such as Shipped. Related Topics Defining Orchestration Processes: Procedure Measuring the Cost of Change: Explained Cost of change is a numerical value that measures how much a change impacts an orchestration process. For example, the monetary cost to a company, or the difficulty that is associated with incorporating the change. If the order capture system requests a determination for a cost of change, then order orchestration calculates this value, and then returns it to the order capture system so that the customer service representative can choose whether or not to proceed with the change. The order capture system can request this value before it submits an order. Order orchestration also calculates this cost after it finishes order compensation. You use a business rule to assign the cost of change to an orchestration process. If you choose not to use values for the cost of change, then order orchestration uses a value of zero to calculate the cost. Selecting Fulfillment Lines to Run for Orchestration Process Steps: Procedure The example in this topic describes how to create a line selection rule that makes sure order orchestration does not attempt to ship a nonshippable item. Assume you work for a company that sells DVRs. The orchestration order includes multiple fulfillment lines for each of the following items: DVR Remote control Instruction manual Extended warranty Your customers can purchase the extended warranty as a contract online, but it is not a shippable item, so order orchestration must not send it to the fulfillment system during the Shipment task. To meet this requirement, you create a rule that includes the following statements when you define the SetUpShipment step. Type of Statement Description If Determines whether or not order orchestration can ship the item Then Selects the fulfillment line 85
This example includes a simple rule that you can use with an orchestration process that includes only one fulfillment line. To write a rule that includes multiple lines, it is recommended that you use advanced rules. For more information, see the topic that describes Usage of Oracle Business Rules (OBR) in DOO Order Fulfillment in Article ID 1536633.1 on My Oracle Support at https://support.oracle.com. Summary of the Work To select the fulfillment lines that run for an orchestration process step, do the following work: 1. Create the If statement. 2. Create the Then statement. Create the If Statement Create the If statement: 1. In the Navigator, click Setup and Maintenance. 2. In the Name field, enter Orchestration Process, and then click Search. 3. In the Search Results, in the Manage Orchestration Process Definitions row, click Go to Task. 4. On the Manage Orchestration Process Definitions page, locate the CallCustomerWhenLargeInvoice orchestration process, click Actions, and then click Edit. For this example, you edit the CallCustomerWhenLargeInvoice orchestration process. For information about how to create this process, see Branching Orchestration Processes: Procedure. 5. On the Edit Orchestration Process Definitions page, in the Process Details area, in the Step Definition list, locate the Ship Product row. 6. In the Ship Product row, in the Line-Selection Criteria column, click Click for Rule. 7. In the Line-Selection Criteria dialog, click Add Rule, and then click Expand. 8. In the If area, click Left Value, expand DOOSeededOrchestrationRules, expand DOOFline, click ShippableFlag, and then click OK. 9. In the Right Value field, enter "Y". You must include the double quotation marks. Create the Then Statement Create the Then statement: 1. In the Then area, click Add Action, and then click Assert New. 2. Click Select a Target, and then click DooSeededOrchestrationRules.Result. 3. Click Edit Properties. 4. In the Properties dialog, in the ResultObjKey row, click Value. 5. In the Condition Browser, enter DOOFLine, wait a moment, expand DooSeededOrchestrationRules.DOOFLine, click FulfillLineId, click OK, and then click OK again. 6. In the Line-Selection Criteria dialog, click Validate, make sure the Validation Log that displays does not contain any errors, and then click Save. 7. On the Edit Orchestration Process Definition page, click Save. 86
Related Topics Branching Orchestration Processes: Procedure Branching Orchestration Processes: Explained You can add an orchestration process branch that includes a sequence of orchestration process steps that the orchestration process runs only if a condition is met. For example, assume your company sells laptop computers. You define an orchestration process that allows a customer to purchase a laptop and then sends an invoice to this customer. You create a branch that runs only if this customer purchases a service agreement with the laptop computer. This branch creates an asset so that your company can track the computer as a durable good. The following diagram illustrates the orchestration process flow for this scenario. Each step in this flow includes the step number, task name, task type, and service name. The Conditional Node indicates that an orchestration process is about to branch. The first step of the branch contains the condition. 87
If the condition is: Met. The orchestration process runs the steps on the branch that includes the Create Assets step. Not met. The orchestration process runs the steps on the branch that includes the Send Invoice step. Order orchestration adds an empty default branch when it runs the orchestration process. If the orchestration process includes only one branch, then it is not necessary to set an Otherwise condition. Lead-Time: Explained Order orchestration uses lead-time to plan an orchestration process and to predict the completion date for this process. If actual completion dates are available, then the orchestration process uses actual dates instead of estimated dates. The Gantt chart in the Order Orchestration work area displays the planned orchestration process. Order orchestration uses the number of days that are past the lead time when it calculates jeopardy. Defining Lead-Times for Orchestration Process Steps: Procedure This topic describes how to define a rule that sets the lead-time for an orchestration process step according to a set of conditions. Assume the order administrator of a flooring company requires an orchestration process that handles carpet orders. The lead-time that is required to ship the carpet if the inventory organization: Resides in Denver, is two days Does not reside in Denver, is four days Summary of the Work To define the lead-time for an orchestration process step, do the following work: Create the If statement for the first rule. Create the Then statement for the first rule. Create the If statement for the second rule. Create the Then statement for the second rule. This topic includes example values. You might use different values, depending on your business requirements. Create the If Statement for the First Rule Create the If statement for the first rule: 1. In the Navigator, click Setup and Maintenance. 2. In the Name field, enter Orchestration Process, and then click Search. 3. In the Search Results, in the Manage Orchestration Process Definitions row, click Go to Task. 4. On the Manage Orchestration Process Definitions page, locate the CallCustomerWhenLargeInvoice orchestration process, click Actions, and then click Edit. For this example, you edit the CallCustomerWhenLargeInvoice orchestration process. For information about how to create this process, see Branching Orchestration Processes: Procedure. 5. On the Edit Orchestration Process Definitions page, in the Process Details area, in the Step Definition list, click Planning. 6. In the Ship Product row, set the following value. 88
Field Value Lead-Time UOM Days 7. In the Lead-Time Expression column, click Click for Rule. 8. In the Lead-Time Expression dialog, click Add Rule, and then click Expand. If you write a rule for an orchestration process that includes multiple fulfillment lines, then it is recommended that you use Advanced Mode. However, in this example, all lines are treated the same way, so Advanced Mode is not required. To use Advanced Mode, click Show Advanced Settings, add a check mark to Advanced Mode, and then edit the rule. 9. In the If area, click Left Value, expand DOOSeededOrchestrationRules, expand DOOFline, click InventoryOrganizationId, and then click OK. 10. Make sure the operator equals is, and then, in the Right Value field, enter 1234440. For this example, assume the inventory organization ID for Denver is 1234440. Create the Then Statement for the First Rule Create the Then statement for the first rule: 1. In the Then area, click Add Action, and then click Assert New. 2. Click Select a Target, and then click DooSeededOrchestrationRules.Result. 3. Click Edit Properties. 4. In the Edit Properties dialog, in the ResultObjKey row, enter the following value, and then click OK. Field Value Value BigDecimal. valueof(2) Create the If Statement for the Second Rule Create the If statement for the second rule: 1. In the Lead-Time Expression dialog, in the Lead-Time Expression Set area, click Add Rule. 2. In the lower portion of the dialog where order orchestration added Rule 2, click Expand. 3. In the If area for Rule 2, click Left Value, expand DOOSeededOrchestrationRules, expand DOOFline, select InventoryOrganizationId, and then click OK. Tip In some fields, you can copy the value from one field to another instead of using the dropdown list. For example, you can copy DooSeededOrchestrationRules.DOOFLine.inventoryOrganizationId from the Left Value field of the first rule, and then paste it into the Left Value field of the second rule. 89
4. Click the down arrow for the operator, and then click isn't. 5. In the Right Value field, enter 1234440. Create the Then Statement for the Second Rule Create the Then statement for the second rule: 1. In the Then area for Rule 2, click Add Action, and then click Assert New. 2. Click Select a Target, and then click DooSeededOrchestrationRules.Result. 3. Click Edit Properties. 4. In the Edit Properties dialog, in the ResultObjKey row, enter the following value, and then click OK. Field Value Value BigDecimal. valueof(4) 5. Click Save. 6. On the Edit Orchestration Process Definition page, click Save. Related Topics Branching Orchestration Processes: Procedure Compensating Orders That Change: Procedure You can create a compensation pattern that specifies the adjustments to make when processing a fulfillment task in reply to a requested change to an order. In this topic, assume you are an order administrator who requires a compensation pattern that allows sufficient time to reschedule an orchestration process when a customer requests to change the ship date. You create the following rule: If the requested ship date is less than or equal to the current date plus three days, then cancel, and then redo the Ship Product step. This example includes a simple rule that you can use with an orchestration process that includes only one line. To write a rule for an orchestration process that includes multiple lines, it is recommended that you use advanced rules. For more information, see the topic that describes Usage of Oracle Business Rules (OBR) in DOO Order Fulfillment in Article ID 1536633.1 on My Oracle Support at https://support.oracle.com. Summary of the Work To compensate orders that change, do the following work: 1. Open the orchestration process for editing. 2. Create the If statement. 3. Create the Then statement. 90
Open the Orchestration Process for Editing Open the orchestration process for editing: 1. In the Navigator, click Setup and Maintenance. 2. In the Name field, enter Orchestration Process, and then click Search. 3. In the Search Results, in the Manage Orchestration Process Definitions row, click Go to Task. 4. On the Manage Orchestration Process Definitions page, locate the CallCustomerWhenLargeInvoice orchestration process, click Actions, and then click Edit. For this example, you edit the CallCustomerWhenLargeInvoice orchestration process. For information about how to create this process, see Branching Orchestration Processes: Procedure. Create the If Statement This statement specifies the following condition: If the requested ship date is less than or equal to the current date plus three days Create the If statement: 1. On the Edit Orchestration Process Definitions page, in the Process Details area, in the Step Definition list, click Change Management. 2. In the Ship Product row, in the Compensation Pattern column, click Click for Rule. 3. In the Compensation Pattern dialog, click Add Rule, and then click Expand. 4. In the If area, click Left Value, expand DOOSeededOrchestrationRules, expand DOOFline, expand requestshipdate, click time, and then click OK. 5. In the Is list, click is, and then click same or less than. 6. Click Right Value, expand CurrentDate, expand date, expand time, and then click timeinmillis. Do not click OK. 7. In the field near the top of the Condition Browser, add +3*24*60*60*1000 after CurrentDate.date.timeInMillis. Make sure this field now contains the following value: CurrentDate.date.timeInMillis+3*24*60*60*1000 The equation 3*24*60*60*1000 calculates the total number of milliseconds that three days contains. 8. Click OK. Create the Then Statement This statement cancels, and then restarts the Ship Product step so that order orchestration can reschedule the shipment. Create the Then statement: 1. In the Then area, click Add Action, and then click Assert New. 91
2. Click Select a Target, and then click DooSeededOrchestrationRules.Result. 3. Click Edit Properties. 4. In the Properties dialog, in the ResultObj row, enter the following value. You must include the double quotation marks ("). Field Value Value "CANCEL_ CREATE" 5. Click OK. 6. Click Validate, make sure the Validation Log that displays does not contain any errors, and then click Save. 7. On the Edit Orchestration Process Definition page, click Save. Orchestration Statuses: Explained Order orchestration displays a separate status for the orchestration order, orchestration order line, fulfillment line, and the orchestration process. Each status indicates the progress of an order from beginning to completion. The statuses of the fulfilment lines, the orchestration processes, and the fulfillment task determines the orchestration order status. The Order Orchestration work area displays these status values. Order orchestration sequentially evaluates each of the status conditions that a fulfillment line contains while it processes an order. The true condition that contains the highest sequence number determines the fulfillment line status. Order orchestration then uses the status of the fulfillment line that has progressed the furthest in the order life cycle to update the orchestration order status. Status of the Orchestration Order The status that order orchestration displays for the orchestration order depends on the following statuses of the orchestration order line. Status of the Orchestration Order Line Status of the Orchestration Order All orchestration order lines are completed. Closed All orchestration order lines are not completed. Open Some, but not all, orchestration order lines are completed. Partial All orchestration order lines are canceled. Canceled Some orchestration order lines are canceled. Order orchestration ignores the canceled orchestration order lines, and sets the status according to the orchestration order lines that are open. 92
Status of the Orchestration Order Line The status that order orchestration displays for the orchestration order line depends on the following statuses of the fulfillment line. Status of the Fulfillment Line Status of the Orchestration Order Line All fulfillment lines are completed. Closed All fulfillment lines are not completed. Open Some, but not all, of the fulfillment lines are completed. Partial All fulfillment lines are canceled. Canceled Some fulfillment lines are canceled. Order orchestration ignores the canceled fulfillment lines, and sets the status according to the fulfillment lines that are open. Related Topics Customizing Fulfillment Lines Statuses: Procedure Orchestration Process Status: Explained An orchestration process status indicates the status of an orchestration process throughout order orchestration. The value Started is an example of this status. This value indicates that order orchestration has started the orchestration process. Order orchestration completes the fulfillment tasks of an orchestration process sequentially according to each orchestration process step when it processes an orchestration order Order orchestration comes predefined to use a default set of statuses for fulfillment tasks. You can create custom statuses and sequences. For example, you can create a custom orchestration process that uses a set of statuses and rule logic for textbooks for a college, and another custom orchestration process that uses a different set of statuses and rule logic for textbooks for a primary school.if you customize the orchestration process status, then note the following: You must specify the status that order orchestration must assign to an orchestration process at each orchestration process step. For example, if a Schedule Carpet task includes a status of Unsourced, then you must specify the status that order orchestration must assign to the orchestration process for this step. You must specify a status that indicates when a task is complete. You can select only a status that is defined to indicate that a task is complete. If you customize the name of the default status, then order orchestration displays this custom name throughout the Order Orchestration work area. If you do not customize the status for an orchestration process, then order orchestration uses the predefined statuses, by default. 93
Status Conditions for Orchestration Processes You can create a status condition that determines the orchestration process status. For example, you can create the following condition: If the status of the Schedule task is Not Started, then set the orchestration process status to Unscheduled. Order orchestration evaluates the status conditions that you create sequentially at run time. The condition that evaluates to true, and that includes the highest sequence number, determines the orchestration process status. Related Topics Defining Orchestration Processes: Procedure Adding Status Conditions to Orchestration Processes: Procedure You can add status conditions that specify when to set statuses for an orchestration process. Assume your company requires an orchestration process that can fulfill orders for company t-shirts. You must specify the statuses that this process uses throughout the order life cycle according to the status of the fulfillment tasks. You can create the condition that determines the status of the orchestration process. In this topic, you create the following example status condition: If the Schedule task status is Scheduled, then set the orchestration process status to Scheduled. You must decide which orchestration process class to use and the statuses to use when you add a status condition to an orchestration process. Summary of the Work To add a status condition to an orchestration process, do the following work: Select the process class. Add the status condition. You typically add more than one status condition to an orchestration process. For brevity, in this topic you add only one status condition. This topic includes example values. You might use different values, depending on your business requirements. Select the Process Class Select the process class: 1. In the Navigator, click Setup and Maintenance. 2. In the Name field, enter Orchestration Process, and then click Search. 3. In the Search Results, in the Manage Orchestration Process Definitions row, click Go to Task. 4. On the Manage Orchestration Process Definitions page, locate the CallCustomerWhenLargeInvoice orchestration process, click Actions, and then click Edit. For this example, you edit the CallCustomerWhenLargeInvoice orchestration process. For information about how to create this process, see Branching Orchestration Processes: Procedure. 94
5. On the Edit Orchestration Process Definitions page, set the following value. Field Value Process Class Standard_Class Standard_Class is a custom class. You must define it before you can select it. For more information about how to do this, see Creating Orchestration Process Classes: Procedure. 6. Click Save. Add the Status Condition Add the status condition: 1. In the Process Details area, click Status Conditions. 2. In the Orchestration Process Status Values list, click Actions, and then click Add Row. 3. In the new row, set the following values. Field Value Sequence 1 Status Value Scheduled 4. Add the expression: In the new row, in the Expression column, click the icon. In the Expression Builder dialog, click CallCustomerWhenLargeInvoice - Schedule, and then click Insert Into Expression. Make sure you do not expand CallCustomerWhenLargeInvoice - Schedule. Notice that the dialog added a value of "Schedule" in the Expression window of the Expression Builder. In the Expression window, click anywhere after "Schedule", and then enter an equal sign (=). Expand CallCustomerWhenLargeInvoice - Schedule, click SCHEDULED, and then click Insert Into Expression. Notice that the Expression window contains "Schedule"="SCHEDULED", and then click OK. 5. Click Save. 95
Related Topics Branching Orchestration Processes: Procedure How Split Fulfillment Lines Affect Status: Explained Order orchestration creates two or more instances of the same fulfillment task when it splits a fulfillment line. These tasks might include different statuses during processing. For example, assume the status of the Schedule task for fulfillment line A1 is Not Scheduled, and the status of the Schedule task for fulfillment line A2 is Scheduled. In this situation, order orchestration examines the split priority of the task statuses, and then sets the status of the orchestration process to the task status that includes the highest split priority. Assume order orchestration splits a fulfillment line that results in two instances of the Schedule task. One of these tasks includes a Complete status, and the other task includes a Pending status. Assume the value of the split priority for Pending is two, and the value of the split priority for Complete is three. In this example, order orchestration sets the status of the orchestration process to Pending. Related Topics Split Fulfillment Lines: Explained Customizing Fulfillment Task Statuses: Explained A fulfillment task might include predefined status codes. If you map these codes to your preferred status codes, then the Order Orchestration work area, and other status management areas, such as the Status Conditions tab of an orchestration process definition, displays the preferred status codes. Customizing Fulfillment Line Statuses: Explained Order orchestration fulfills each fulfillment task when it processes each orchestration process step that is associated with a fulfillment line. It uses these statuses to represent the fulfillment line status throughout order orchestration. You can specify the status that it assigns to this fulfillment line at each step when you define an orchestration process. For example, you can specify that if a Schedule Carpet Installation task includes a status of Pending Scheduling, then set the fulfillment line status to Unscheduled. You can specify different sets of statuses and rule logic for different items that a fulfillment line references. For example, you can specify one set of status conditions for a textbook, and another set of status conditions for a paperback book. If you do not create these conditions, then order orchestration uses the status rule set that it assigns to the default category. Using Status Catalogs and Categories with Fulfillment Lines Your organization might require different fulfillment lines that reside in the same orchestration process to use different statuses. For example, an item that includes shippable fulfillment lines might require statuses that are different from the statuses that an item that includes nonshippable fulfillment lines uses. A status catalog allows you to group items that are similar so that they can achieve the same statuses at the same time. You can select a status catalog when you define an orchestration process only if this catalog meets following requirements: An item exists in only one category in the catalog. The category contains items or subcategories, but not items and subcategories. Order orchestration controls the catalog only at the master level, and not at the organization level. You can use catalogs and categories in multiple orchestration process definitions. Use a category to make sure that order orchestration applies the same set of status conditions to specific sets of fulfillment lines. It applies the same status conditions to all fulfillment lines that reference the item that resides in this category. 96
You can use the Oracle Fusion Product Model to define a custom status catalog. Using Status Rule Sets with Fulfillment Lines A status rule set allows you to use a single set of rules with multiple fulfillment lines instead of specifying separate rules for each fulfillment line. For example, you can specify the following rules: If an item includes a status of Unsourced, then set the fulfillment line status to Unscheduled. If the Schedule Carpet fulfillment task reaches a status of Completed, then set the fulfillment line status to Scheduled. You can use a single status rule set with multiple categories. If a parent category and a child category each reference a different status rule set, then order orchestration uses the status rule set that the child references. This configuration allows you to define an All category to handle all items in one orchestration process. It also allows you to add a subcategory for a subset of products that must use a different status rule set. Caution If you use the Functional Setup Manager to test migrating an instance from a development environment to a production environment, then do not modify the status rule set name in either environment. Modifying this name might prevent order orchestration from updating references to other data that the orchestration process contains. Adding Status Conditions to Fulfillment Lines: Procedure You can add status conditions to a fulfillment line that includes multiple items, and where each of these items requires a different status. If different fulfillment lines must use different statuses, then you must determine how you will use catalogs and categories to group these fulfillment lines. You do this work when you create an orchestration process. In this topic, assume you must set up orchestration processes that can handle orders for different types of t-shirts. You could use the same orchestration process for multiple types of merchandise, but you prefer to define statuses for each type of clothing separately because each clothing type requires a different status. To do this, you select the status catalog, and then add the status conditions for a single category of items in an orchestration process. Summary of the Work To add status conditions to a fulfillment line, do the following work: Select the status catalog. Add the status condition for defaults. Add the status condition for an item. You typically create multiple status conditions for a fulfillment line. For brevity, in this topic you create only one status condition for the default category and another status condition for an item. This topic includes example values. You might use different values, depending on your business requirements. Select the Status Catalog Select the status catalog: 1. In the Navigator, click Setup and Maintenance. 2. In the Name field, enter Orchestration Process, and then click Search. 3. In the Search Results, in the Manage Orchestration Process Definitions row, click Go to Task. 97
4. On the Manage Orchestration Process Definitions page, locate the CallCustomerWhenLargeInvoice orchestration process, click Actions, and then click Edit. For this example, you edit the CallCustomerWhenLargeInvoice orchestration process. For information about how to create this process, see Branching Orchestration Processes: Procedure. 5. On the Edit Orchestration Process Definitions page, set the following value. Field Value Status Catalog Retail_ Merchandising_ Catalog Retail_ Merchandising_ Catalog is an example catalog. You must use the Oracle Fusion Product Model to define it and the values that it references before you can specify it for this orchestration process. If a warning displays that advises you that changing the status catalog will delete status conditions, then click OK. 6. Click Save. Add the Status Condition for Defaults Add the status condition that this orchestration process will use, by default: 1. In the Process Details area, click Status Conditions, and then click Fulfillment Line Status Values. 2. In the Default row, in the Status Rule Set field, click the arrow, and then click Create. You will select the statuses that order orchestration uses, by default. Every row in the Fulfillment Line Status Values list must reference a status rule set that contains at least one status condition. 3. In the Create Status Rule Set dialog, set the following values, and then click Save and Close. Field Value Code LargeOrders Name Large Orders Create New Chosen 4. Click Save. 5. In the Default row, click Edit Status Rule Set. 6. On the Edit Status Rule Set page, click Actions, and then click Add Row. 7. In the Sequence field, enter 1. 98
8. Set the status value: In the Status Value field, click the arrow, and then click Search. In the Search and Select dialog, in the Status Code field, enter SCHED, and then click Search. In the list, click Scheduled, and then click OK. 9. Add the expression: On the Edit Status Rule Set page, in the Expression column, click the icon. In the Expression Builder dialog, click CallCustomerWhenLargeInvoice - Schedule, and then click Insert Into Expression. Make sure you do not expand CallCustomerWhenLargeInvoice - Schedule. Notice that the dialog added a value of "Schedule" in the Expression window of the Expression Builder. In the Expression window, click anywhere after "Schedule", and then enter an equal sign (=). Notice that the Expression window contains "Schedule"="SCHEDULED", and then click OK. Expand CallCustomerWhenLargeInvoice - Schedule, click SCHEDULED, and then click Insert Into Expression. 10. On the Edit Status Rule Set page, add a checkmark to Notify External Systems, and then click Save and Close. Notify External Systems allows order orchestration to communicate the status to an integrated external system. Add the Status Condition for an Item Add the status condition for an item: 1. In the Process Details area, in the Fulfillment Line Status Values list, click Actions, and then click Select and Add: Category. 2. In the Select and Add: Category dialog, select Retailer, and then click Save and Close. 3. In the Fulfillment Line Status Values list, in the Retailer row, click the arrow in the Status Rule Set column, and then click Create. 4. In the Create Status Rule Set dialog, set the following values, and then click Save and Close. Field Value Code Shirts Name Shirts Create New Chosen 99
5. Click Save. 6. In the Fulfillment Line Status Values list, in the Retailer row, click Edit Status Rule Set. 7. Repeat steps 6 through 10 of the Add the Status Condition for Defaults topic, above. Related Topics Branching Orchestration Processes: Procedure Assigning Orchestration Processes: Explained Order orchestration creates an orchestration order, and then assigns an orchestration process to fulfillment lines according to process assignment rules. The Oracle Business Rules engine runs these rules. Order orchestration creates process assignment rules according to orchestration groups and orchestration order attributes. You do not need to specify versions or effectivity dates in the process assignment rules because the orchestration process controls these versions and dates. You must define orchestration processes or at least know the names that you will use for them before you create a process assignment rule. You add the orchestration process name to bucket sets that allow you to select them when you create a process assignment rule. Orchestration Groups A fulfillment line resides in an orchestration group. Order orchestration uses the following predefined orchestration groups: Shipment Set. Model/Kit. Standard. Used for standard items or finished items. Note the following: If a fulfillment line resides in a shipment set group or a model group, then order orchestration assigns this line to the same orchestration process. You can assign a process for each set of unique conditions. You can use the Otherwise construct to set up a default orchestration process for each orchestration group. Related Topics Assigning Orchestration Processes: Examples Assigning Orchestration Processes: Procedure This topic describes how to assign an orchestration process to a fulfillment line. Assume you are an order administrator for a company that receives a large quantity of orders each day for laptop computers. You must create an assignment rule that assigns an orchestration process for each bulk order according to the ordered quantity. You create the following rule: If the ordered quantity is large, then assign the CallCustomerWhenLargeInvoice orchestration process to the fulfillment line. Summary of the Work To assign orchestration processes for this example, do the following work: 1. Add a rule to a decision table. 100
2. Add an assignment condition. 3. Add the buckets. 4. Add the bucketset to the assignment condition. 5. Configure the action to take. This topic includes example values. You might use different values, depending on your business requirements. Add a Rule to a Decision Table Add a rule to a decision table: 1. In the Navigator, click Setup and Maintenance. 2. On your implementation project, expand Order Orchestration Top Task List, expand Define Sales Order Fulfillment, expand Define Orchestration, and then click Go to Task next to Manage Orchestration Process Assignment Rules. 3. In the View list, click AssignProcess. AssignProcess is a predefined decision table that you customize in this topic. It uses Advanced Mode, which allows you to do the following work: Set variables and aliases for objects. Declare variables so that you can access them through simple names. Explicitly declare a hierarchy, which can improve performance. Arrange fulfillment lines in a group. AssignProcess comes predefined with the following aliases. An alias simplifies the text that order orchestration displays. For example, the Group alias references the assignlaunchrules.responsegl object. So, you can specify Group instead of assignlaunchrules.responsegl in some fields when you define an assignment rule. You can also add custom aliases. Take a moment to examine the following predefined aliases, and then click Collapse Pane so that you can more easily view the decision table. Alias Object That the Alias References Group assignlaunchrules. ResponseGL fline assignlaunchrules. FulfillLineVO Header assignlaunchrules. HeaderVO 4. In the decision table, immediately above the Conditions section, click Add, and then click Add Rule. Notice that the decision table includes a new rule in the R1 column. 101
Add an Assignment Condition In this section, you create the following part of the If statement: If ordered quantity is equal to quantity Add an assignment condition: 1. In the decision table, immediately above the Conditions section, click Add Rule, and then click Add Condition. Notice that the Condition Browser includes the Group, fline, and Header aliases that you noticed earlier. 2. In the Condition Browser dialog, expand fline, click OrderedQty, and then click OK. Notice that the Conditions section of the decision table includes a new fline.orderedqty row. Add Buckets In this section, you create the buckets that you can select to complete the If statement. You create three buckets. Add the buckets: 1. In the decision table, in the Conditions area, click fline.orderedqty. When you click fline.orderedqty, notice that the Local List of Ranges list and a pencil icon display immediately above the Condition table. 2. Click Edit Bucklist immediately to the right of Local List of Ranges. 3. In the Bucketset Editor, specify the following values for the bucketset. Field Value Name Bulk Ranges You can enter any text. Description Set of ranges to use for bulk orders. Data Type int 4. Create the small bucket. Click Add Bucket, and then set the following value in the row that contains an End Point value of 1. Field Value Description Small 5. Create the medium bucket. Click Add Bucket, and then set the following values in the row that contains an End Point value of 2. You modify this End Point value to 100. Notice that the Bucketset Editor updates the values in the Range and Alias fields when you modify the End Point. 102
Field Value End Point 100 Description Medium 6. Create the large bucket. Click Add Bucket, and then set the following values in the row that contains an End Point value of 101. You modify this End Point value to 1000. Field Value End Point 1000 Description Large 7. Click OK, and then click Save. Add Bucketset to Assignment Condition Add the bucketset to the assignment condition: 1. In the Conditions section of the decision table, in the R1 column, set the following values. Double-click each cell to add a value. Row Value in R1 Column Group. grouptype Standard fline. CategoryCode Order Header.value The header might contain more information, depending on your configuration. For example, it might contain Header. Orig. Sys. Document.Refnull. True fline. OrderedQty >=1000 2. Click Save. 103
Configure the Action to Take Configure the action to take if the condition is true: 1. In the decision table, scroll down to the Actions area. 2. In the R1 column, set the following values. Double-click each cell to add a value. Row Value Modify Group Contains a checkmark. processname: String AssignLaunchRules.ProcessName.process_name where: process_name identifies the name of the orchestration process where order orchestration applies this assignment rule. For this example, use the following value: AssignLaunchRules.CallCustomerWhenLargeInvoice This code references the CallCustomerWhenLargeInvoice orchestration process. For information about how to create this process, see Branching Orchestration Processes: Procedure. Call Print Contains a checkmark. 3. Click Save. Related Topics Branching Orchestration Processes: Procedure Getting Data from Different Product Models When Using Oracle Business Rules: Explained To optimize performance, data from the Oracle Fusion Product Model is not part of the data model that order orchestration uses. If you encounter a situation where you must use item data from this product model in an Oracle Business Rule, then you can call the getitemdata function to get this data. For example, if you require a rule that assigns an orchestration process to a fulfillment line if it contains a specific item category, then you can call the getitemdata function to get this item category data. Using the getitemdata Function To use the getitemdata function, you do the following work: 1. Navigate to the page where you write the business rule, such as the Manage Orchestration Process Assignment Rules page. 2. Add a rule that calls the getitemdata function. 3. Select Highest priority for this rule. At run time, order orchestration will run this rule before it runs any other rule that uses the data that getitemdata returns. 104
4. Click Edit Properties to specify the arguments of the getitemdata function. You use these arguments to specify the data that you require. 5. Add another rule that uses the data that getitemdata returns. Arguments of the getitemdata Function You can use the following arguments of the getitemdata function. Argument Name Description inventoryitemid Identifies the inventory item. inventoryorganizationid Identifies the organization that includes the inventory item. fetchitemdefinition Gets the item definition. Use one of the following values: "Yes". Get the definition. "No". Do not get the definition. You must include the double quotation marks. fetchitemcategory Gets the item category. Use one of the following values: "Yes". Get the category. "No". Do not get the category. You must include the double quotation marks. fetchrelateditem Gets related items. Use one of the following values: "Yes". Get related items. "No". Do not get related items. You must include the double quotation marks. customkey Makes sure duplicate data does not exist. It is recommended that you use the following value for this argument: FulfillLineId viewrowimpl Use this argument with an assignment rule for an orchestration process or with a transformation rule for a product. You use the following value for this argument: FulfillLineVO. viewrowimpl 105
You can use the DOOFline argument rules for an orchestration process definition. You use the following value for this argument: DooSeededOrchestrationRules.DOOFLine Using a Custom Template to Get More Data Only a subset of the Item Definition is available. If you require data that is not available in this subset, then you can use the getfusionappsdata function to get the data that you require. You can use the following arguments. The first five arguments are required. You can use the last five arguments to populate the attributes that you require. Argument Name Data Type Value inputattributename1 String "InventoryItemId" inputattributevalue1 String RuleType. FulfillLineVO. AttributeYouWanttoPopulate inputattributename2 String "InventoryOrganizationId" inputattributevalue2 String RuleType. FulfillLineVO. AttributeYouWanttoPopulate viewobjectname String "ItemPVO" outputattributename1 String "AttributeYouWanttoPopulate" outputattributename2 String "AttributeYouWanttoPopulate" outputattributename3 String "AttributeYouWanttoPopulate" outputattributename4 String "AttributeYouWanttoPopulate" outputattributename5 String "AttributeYouWanttoPopulate" The Condition Browser displays the data type for each attribute at run time. You must specify the correct data type for this attribute when you write your rule. For information about the data types and other columns that are available, see Oracle Enterprise Repository. Log in as guest, and then search for Item SDO. Getting Data from Different Product Models When Using Oracle Business Rules: Procedure This topic describes how to create an assignment rule that assigns an orchestration process to a group of one or more fulfillment lines that are associated with a customer if the item category on the fulfillment line equals a value that you specify. 106
For this example, you create the following rules: If the fulfillment lines are associated with a specific customer, then get the item data. If the item category ID is 3574, then assign the ManualShipOrderGeneric123 orchestration process to a group. Summary of the Work To get data from a different product model, do the following work: 1. Create the If statement of the rule that gets the data. 2. Create the Then statement of the rule that gets the data. 3. Create the If statement of the rule that assigns the orchestration process. 4. Create the Then statement of the rule that assigns the orchestration process. This example assumes the following: You already created an orchestration process named ManualShipOrderGeneric123. A product model is installed for the organization and this model includes an item category named 3574. This topic includes example values. You might use different values, depending on your business requirements. Create the If Statement of the Rule That Gets Data In this section, you create the following condition: If the ship-to customer ID is 1304523 Create the If statement of the rule that gets the data: 1. In the Navigator, click Setup and Maintenance. 2. On your implementation project, expand Order Orchestration Top Task List, expand Define Sales Order Fulfillment, expand Define Orchestration, and then click Go to Task next to Manage Orchestration Process Assignment Rules. 3. Cick Add Rule. 4. Replace Rule 1 with any descriptive text. For this example, enter GetItemData. 5. Make sure order orchestration runs this rule first: Next to GetItemData, click Expand, and then click Show Advanced Settings. Set the following value, and then click Collapse Pane. Field Value Priority Highest 107
6. Specify the attribute: Click Left Value. In the Condition Browser, expand AssignLaunchRules, expand FulfillLineVO, click ShipToCustomerId, and then click OK. 7. Specify the value for the attribute. In the Right Value field, enter 1304523. 8. Click Save. Create the Then Statement of the Rule That Gets Data In this section, you create the Then statement of the rule that gets data: Call the getitemdata function to get the data for the category. Create the Then statement of the rule that gets the data: 1. Call the getitemdata function: In the Then area, click Add Action, and then click Call. In the Select a Target list, enter AssignLaunchRules.getItemData. If a small list displays after you enter this value, then click AssignLaunchRules.getItemData in this list. 2. Specify the arguments of the getitemdata function: Click Edit Properties. In the Arguments dialog, specify the following values. Do not include a space before or after each period (.). You must include the double quotation marks ("). Name Value inventoryitemid AssignLaunchRules. FulfillLineVO. inventoryitemid inventoryorganizationid AssignLaunchRules. FulfillLineVO. inventoryorganizationid fetchitemdefinition "No" fetchitemcategory "Yes" fetchrelateditem "No" 108
Name Value customkey AssignLaunchRules. FulfillLineVO. FulfillLineId. tostring() viewrowimpl AssignLaunchRules. FulfillLineVO. ViewRowImpl 3. Click OK, and then click Save. 4. Click Collapse next to GetItemData. Create the If Statement of the Rule That Assigns the Orchestration Process In this section, you create the following condition: If the ID of the item category that the getitemdata function returns is 3574 When you complete this section, the If statement that you create must resemble the following configuration. Create the If statement of the rule that assigns the orchestration process: 1. Cick Add Rule. 2. Replace Rule 1 with any descriptive text. For this example, enter AssignShipOrderGenericIf3524Category. 3. Add a check mark to Advanced Mode. 4. Create the condition for the Group alias: In the If area, in the field to the left of "is a", enter Group. In the If area, in the field to the right of "is a", click AssignLaunchRules.ResponseRL. 109
In the If area, next to the Right Value field, click the down arrow, and then click Delete Test. 5. Create the condition for the FLine alias: In the If area, click Add Pattern. In the field below "and", enter FLine. To the right of "is a", click AssignLaunchRules.FulfillLineVO. 6. Add a test for the FLine alias: Below the field that contains FLine, click Add Test. Click Left Value. In the Condition Browser dialog, expand FLine, click ShipToCustomerId, and then click OK. In the Right Value field, enter 1304523. 7. Create the condition for the ItemCategory alias: To the right of the field that contains AssignLaunchRules.FulfillLineVO, click Add Pattern. In the left value field below "and," enter an alias, such as ItemCategory. To the right of "is a", click AssignLaunchRules.ItemCategory. Click Save. 8. Add a test for the ItemCategory alias: Below the field that contains ItemCategory, click Add Test. In the field below the field that contains ItemCategory, enter ItemCategory. In the list of operators to the right of the field that contains ItemCategory, click Isn't. Click Right Value. In the Condition Browser, click null, and then click OK. 9. Add another test for the ItemCategory alias: Click the arrow next to Right Value, and then click Simple Test. Below the field that contains ItemCategory for the isn't condition, click Left Value. In the Condition Browser, expand ItemCategory, click categoryid, and then click OK. 110
In the Right Value field, enter 3524L. 10. Add another test for the ItemCategory alias: Click the down arrow next to Right Value, and then click Simple Test. Below the field that contains ItemCategory.categoryId, click Left Value. In the Condition Browser, expand ItemCategory, click customkey, and then click OK. Click Right Value. In the Condition Browser, expand FLine, expand FulfillLineId, click tostring, and then click OK. Create the Then Statement of the Rule That Assigns the Orchestration Process Create the Then statement of the rule that assigns the orchestration process: 1. In the Then area, click Add Action, and then click Modify. 2. Click Select a Target, and then click Group. 3. Click Edit Properties. 4. In the Properties dialog, set the following value, and then click OK. You must include the double quotation marks. Name Value processname "ManualShipOrderGeneric123" 5. Click Save. Define Processing Constraints Managing Processing Constraints: Explained If a user attempts to change an orchestration order, orchestration order line, or order fulfillment line, and if a processing constraint does not allow this change, then order orchestration rejects it and displays a message. If an order capture system attempts to make this change, then order orchestration rejects it and sends a return message. Order orchestration also uses the processing constraint to make sure each fulfillment request includes the attributes that it requires. The processing constraint uses the following logic: If the validation rule set that order orchestration applies to a record set is true, then apply the processing constraint to the constraint entity. 111
For example, the following processing constraint prevents a change to any order fulfillment line for a specific customer that is part of an orchestration process that is in the shipping stage: If the Status Code attribute of an order is equal to Awaiting Shipment (validation rule set) for the customer that the Bill-to customer ID attribute of the order fulfillment line identifies (record set), then do not allow an update (processing constraint) on any of these order fulfillment lines (constraint entity). You can use the Manage Processing Constraints page to manage predefined constraint objects, such as predefined record sets, validation rule sets, and constraint entities, or to create custom ones. You can use the Manage Constraint Entities page to view existing constraint entities. If you create a processing constraint that does not use a condition, then the constraint is always true. For example, the predefined processing constraint that prevents a user from deleting an order prevents deletion in all situations. In general, you use the following objects when you define a processing constraint. Item Description Validation Rule Set A group of one or more If statements. For example, you can use the following rule to reject a change on a closed order: 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 or not the value is N. Note the following: You cannot modify or delete a predefined validation rule set, but you can create a custom one. You can invert a validation rule set, which means to apply the processing constraint when the condition is not true. Record Set A set of records that order orchestration groups according to common attribute values so that it can evaluate a constraint. For example, to evaluate all orders for a customer, you can specify to evaluate one of the following entities when you create a 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 orders for a customer, select the Order Header entity, and then select the Sold-to Customer attribute. Constraint Entity The business object that a processing constraint affects. For example, if you specify Order Fulfillment Line as 112
Item Description the constraint entity when you create a processing constraint, then the constraint constrains changes to order fulfilmment lines. In general, you can choose one of the following: Order Fulfillment Line Order Line Order Header You can also create a custom constraint entity. You can create a process task entity, but you cannot create a view entity. Constraint Package A set of triggers that order orchestration applies to a table in an Oracle database. A background process sets these triggers when you create a constraint package. A constraint package can activate a new or modified: Validation rule set that is of a table type Record set for a processing constraint To create a constraint package, you can do the following: Use the Manage Processing Constraints page or run the Generate Constraint Packages scheduled process at the beginning of an implementation. Create or modify a record set or a validation rule set that is of a table type. You do not need to create a constraint package for any validation that is not of a table type. Managing Processing Constraints: Examples This topic includes examples of some of the ways that you can use a processing constraint. Reject Changes at the Shipping Stage Assume an orchestration process achieves the shipping stage for an orchestration order, and a user submits a change for this order. Because the shipping stage occurs late in the orchestration process, it is expensive and not practical to change this order. You can create a processing constraint that rejects the change if the orchestration process has achieved the shipment step. 113
Reject Orders That Do Not Include Required Attributes Assume your company does not deliver items to an address that does not include a ship-to contact, but a user submits an order that does not include a ship-to contact. You can create a processing constraint that rejects the order if it does not include a ship-to contact. Reject Changes That Require Approval Assume your company does not allow a customer service representative to submit a change if the transaction value exceeds $100, and if a manager has not approved the change. You can create a processing constraint that rejects a change if the user possesses the customer service representative role, and if the transaction exceeds $100, and if a manager has not approved the change. Managing Processing Constraints: Procedure This example describes how to define a processing constraint that prevents a change to any order fulfillment line that is part of an orchestration process that is in the shipping stage. Summary of the Work To create a processing constraint, do the following work: Create a record set. Create a validation rule set. Create a processing constraint. Test your work. This topic includes example values. You might use different values, depending on your business requirements. Create a Record Set To create a record set: 1. On your implementation project, expand Order Orchestration Top Task List, expand Define Sales Order Fulfillment, expand Define Processing Constraints, and then click Go to Task next to Manage Processing Constraints. 2. On the Manage Processing Constraints page, click Record Sets, click Actions, click Add Row, and then enter the following values. Field Value Name Fulfillment Lines That Belong to Same Customer Description A record set created on fulfillment lines that belong to the same customer. Short Name FCST 114
Field Value Entity Order Fulfillment Line 3. In the Fulfillment Lines That Belong to Same Customer area, click Actions, click Add Row, and then set the following value. Field Value Attribute Name Bill-to customer ID 4. Click Save, and then click Generate Packages. 5. In the Confirmation dialog, click OK. Create a Validation Rule Set To create a validation rule set: 1. On the Manage Processing Constraints page, click Validation Rule Sets. 2. Click Actions, click Add Row, and then enter the following values. Field Value Name Shipment VRS Description The validation rule set for lines with status Awaiting Shipment. Short Name SHIP Validation Type Table Entity Order Fulfillment Line 3. In the Shipment VRS area, click Actions, click Add Row, and then set the following values. Field Value Attribute Name Status Code 115
Field Value Validation Operation Equal to Value String "Awaiting shipment" You must include the double quotation marks. 4. Click Save, and then click Generate Packages. 5. In the Confirmation dialog, click OK. Create a Processing Constraint To create a processing constraint: 1. On the Manage Processing Constraints page, click Constraints. 2. Click Actions, click Add Row, and then enter the following values. Field Value Constraint Name Shipping Constraint Display Name Shipping Constraint Constraint Entity Order Fulfillment Line Constrained Operation Update Enabled Does not contain a check mark. If Enabled contains a check mark, then your constraint might affect other activities. 3. In the Shipping Constraint area, in the Conditions list, click Actions, click Add Row, and then set the following values. Field Value Group Number 1 116
Field Value Validation Entity Order Fulfillment Line Validation Rule Set Shipment VRS Record Set Fulfillment Lines That Belong to Same Customer Message The fulfillment line cannot be updated because it is in the shipping stage. 4. In the Shipping Constraint area, click Applicable Roles, make sure All Roles is chosen, and then click Save. Test Your Work To test your work: 1. In the Order Orchestration work area, access a fulfillment line that includes a Status of Awaiting Shipment. 2. Attempt to change any attribute. 3. Verify that order orchestration does not allow you to make the change, and displays the following message: The fulfillment line cannot be updated because it is in the shipping stage. 117
118
Glossary Glossary backordered Indicates that an item is not available in sufficient quantity in inventory to satisfy immediate customer demand, but it is recorded for future fulfillment. compensation pattern A rule that you can set on an orchestration process step that specifies the adjustments to make when an order changes. Undo, Redo, Update, Cancel, and None are each an example of a compensation pattern. For example, assume the compensation pattern for a Create Shipment step is Redo, and that this step calls the Cancel service and the Create service. If order orchestration receives a change order that includes a new warehouse for this step, then it runs the Cancel service and the Create service again. continuous collection An incremental, entity-specific method of collecting data from the Oracle Fusion source system into the order orchestration and planning data repository. extensible flexfield Customizable expansion space, as with descriptive flexfields, but able to capture multiple sets of information within a context and multiple contexts grouped to appear in a named region of a user interface page. Some extensible flexfields let you group contexts into categories. fulfillment line An entity that can communicate requests to a fulfillment system that contains attributes that are related to order fulfillment. fulfillment line exception A condition that causes a delay for a fulfillment line. Past Due, In Jeopardy, Backordered, and On Hold are each an example of a fulfillment line exception. fulfillment task A type of task that order orchestration must perform to fulfill a request in a fulfillment system. Schedule and Ship are each an example of a fulfillment task. Order orchestration might use multiple orchestration process steps to complete a single fulfillment task. global entity An entity for which a single value is stored for all source systems when instances of the entity are collected and stored in the order orchestration and planning data repository. in jeopardy Measures the level of risk that is associated with the delay of an orchestration process task as low, medium, or high. 119
Glossary item organization Item definition where inventory balances are not stored and movement of inventory is not tracked in the applications. Item attributes that carry financial and accounting information are hidden. jeopardy priority A value that describes the level of risk that is associated with delaying a fulfillment task. The Order Orchestration work area displays a jeopardy priority value of Low, Medium, or High. jeopardy score A numeric ranking that indicates the severity of a delay in completing a fulfillment task jeopardy threshold The range of time that a task is delayed. lead-time The amount of time that order orchestration requires to complete an orchestration process step, including wait steps and pause steps. line selection rule A type of rule that determines whether or not an orchestration process step runs a fulfillment line. For example, a line selection rule can specify not to ship a nonshippable item, such as a contract that a customer completes online. model A fulfillment line that includes child fulfillment lines. A desktop computer that includes a monitor, keyboard, mouse, and external speakers is an example of a model. In this example, the desktop computer is the model, and the peripherals are the child fulfillment lines. OLTP Abbreviation for online transaction processing, which refers to real-time processing of large amounts of relatively short database transactions. on hold Indicates that a hold was not released. orchestration order A sales order that order orchestration has transformed so that it can fulfill the order according to the fulfillment requirements that are specific to this order. orchestration planning The process of orchestrating and planning the fulfillment of a sales order. For example, planning dates, shipments, and so on. Orchestration replanning is the process of updating orchestration planning for a sales order to accommodate a change that occurs to the order or fulfillment environment. For example, when a customer changes the quantity of an existing order. 120
Glossary orchestration process A process that includes a sequence of steps. These steps process one or more fulfillment lines during order fulfillment. An orchestration process coordinates the orchestration of physical goods and activities in a single order, and it automates order orchestration across fulfillment systems. It contains the instructions that describe how to process an order, such as the steps and services to use, step dependencies, conditional branching, lead-time information, how to handle change orders, and the status values to use. It describes how to schedule, reserve, ship, return, and invoice a sales order. orchestration process branch A path in an orchestration process that order orchestration runs when a condition is met. orchestration process class A set of statuses that you can assign to an orchestration process. orchestration process step A step of an orchestration process that specifies the task layer service that order orchestration calls or the subprocess to start. Each step references a task type, task, and service. A step might also specify branching. A task includes one or more orchestration process steps. order compensation The process of modifying an order so that it accurately reflects the changes that have occurred to the order. For example, assume order orchestration receives a change order that specifies to ship a product from a different warehouse. In this example, it adjusts the order so that this order uses the different warehouse, updates delivery dates so that these dates accurately reflect the time required to ship the product from the different warehouse, and so on. order orchestration An automated sequence of fulfillment steps that processes an order across multiple order capture systems and order fulfillment systems. The Oracle Fusion Distributed Order Orchestration application provides order orchestration capabilities for some Oracle applications. For example, the Oracle Fusion Order Management Cloud Service application uses order orchestration to help manage the orders that it receives from a source system, such as Oracle CPQ Cloud, and then process these orders with various order fulfillment systems. order orchestration and planning data repository The set of data collected from source systems and stored for use by order orchestration and order promising processes. predefined object An object that comes already defined with an Oracle product and is ready to use with little or no modification. processing constraints Rule that controls which changes can be made to an orchestration order, by whom, and when. scheduled process A program that you run to process data and, in some cases, generate output as a report. source order A sales order that comes from an order capture system or fulfillment system that is external to order orchestration. 121
Glossary source system A system that provides business application information to an Oracle application. Oracle can use this information to extract fulfillment data and planning data into data files. source-specific entity An entity for which a record is stored for each instance in each source system when data is collected and stored in the order orchestration and planning data repository. The stored data includes which source system the record was collected from. split fulfillment line A supply chain technique that fulfills an order in a timely and efficient way. For example, assume a fulfillment line includes a quantity of 30 items, but the preferred warehouse, Warehouse A, only has 20 items in stock. Warehouse B has 15 items in stock. To avoid a delay, you can split the fulfillment line so that it gets the items it requires from both warehouses. start-after condition Rules that govern whether the Pause task establishes a pause and how the pause can be released. status condition A rule that determines when a sales order or object reaches a status. The following rule is an example of a status condition: If the Schedule task status equals Scheduled, then set the orchestration process status to Scheduled. subprocess A set of sequential steps. This set of steps is an orchestration process that another orchestration process can reference. targeted collection A periodic, full-refresh, entity-specific method of collecting data from an Oracle Fusion source system into the order orchestration and planning data repository. A targeted collection completely replaces all data in the data repository for each entity included in the collection cycle. task type A group of services that order orchestration uses to perform a fulfillment task. It represents a common business function that order orchestration uses so that it can process an order from the time that it receives the order from an order capture system, to the time that it runs the order in the order fulfillment application. 122