You are on page 1of 1732

Oracle SCM Cloud

Implementing Order Management

20B
Oracle SCM Cloud
Implementing Order Management

20B
Part Number F27656-02
Copyright © 2011, 2020, Oracle and/or its aliates.

Author: carl casey

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 permied 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 nd 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, then
the following notice is applicable:

U.S. GOVERNMENT END USERS: Oracle programs (including any operating system, integrated software, any programs embedded, installed or
activated on delivered hardware, and modications of such programs) and Oracle computer documentation or other Oracle data delivered to or
accessed by U.S. Government end users are "commercial computer software" or "commercial computer software documentation" pursuant to
the applicable Federal Acquisition Regulation and agency-specic supplemental regulations. As such, the use, reproduction, duplication, release,
display, disclosure, modication, preparation of derivative works, and/or adaptation of i) Oracle programs (including any operating system,
integrated software, any programs embedded, installed or activated on delivered hardware, and modications of such programs), ii) Oracle computer
documentation and/or iii) other Oracle data, is subject to the rights and limitations specied in the license contained in the applicable contract. The
terms governing the U.S. Government's use of Oracle cloud services are dened by the applicable contract for such services. 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 aliates 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 and/or its aliates. Other names may be trademarks of their respective owners.

Intel and Intel Inside 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, Epyc, and the AMD 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 about content, products, and services from third parties. Oracle
Corporation and its aliates are not responsible for and expressly disclaim all warranties of any kind with respect to third-party content, products, and
services unless otherwise set forth in an applicable agreement between you and Oracle. Oracle Corporation and its aliates 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, except as set forth in an applicable
agreement between you and Oracle.
Oracle SCM Cloud
Implementing Order Management

Contents

Preface i

1 Hello 1
Overview .......................................................................................................................................................................................... 1
Details ............................................................................................................................................................................................ 25

2 Implement Business Process Flows 35


Order-to-Cash .............................................................................................................................................................................. 35
Business-to-Business Messaging .......................................................................................................................................... 108
Drop Ship ..................................................................................................................................................................................... 118
More ............................................................................................................................................................................................. 155

3 Integrate 193
Introduction ................................................................................................................................................................................ 193
Web Services .............................................................................................................................................................................. 214
Upstream Source Systems ..................................................................................................................................................... 290
Downstream Fulllment Systems ......................................................................................................................................... 306
Cross-References ...................................................................................................................................................................... 445
eBusiness Suite ......................................................................................................................................................................... 464
Oracle Applications ................................................................................................................................................................... 501

4 Import and Transform 643


Import .......................................................................................................................................................................................... 643
Transform .................................................................................................................................................................................. 690
Oracle SCM Cloud
Implementing Order Management

5 Orchestrate Fulllment 711


Overview ....................................................................................................................................................................................... 711
Create .......................................................................................................................................................................................... 726
Deploy ......................................................................................................................................................................................... 738
Subprocess and Branch ........................................................................................................................................................... 741
Assign .......................................................................................................................................................................................... 753
Pause ........................................................................................................................................................................................... 758
Hold ............................................................................................................................................................................................. 806
Fulllment Task ........................................................................................................................................................................ 826

6 Business Rules 847


Overview ..................................................................................................................................................................................... 847
Oracle Business Rules ............................................................................................................................................................. 882
Visual Information Builder ...................................................................................................................................................... 912

7 Features 929
Approvals .................................................................................................................................................................................... 929
Credit Check .............................................................................................................................................................................. 960
Projects ........................................................................................................................................................................................ 991
Agreements .............................................................................................................................................................................. 1007
Accounting and Tax ............................................................................................................................................................... 1024
Trade Compliance ................................................................................................................................................................... 1028
Coverage and Subscription .................................................................................................................................................. 1054

8 Order Processing 1085


Application Behavior .............................................................................................................................................................. 1085
Sales Order Status .................................................................................................................................................................. 1100
Sales Order Values ................................................................................................................................................................... 1110
Sales Order Constraints .......................................................................................................................................................... 1126
Change Orders ......................................................................................................................................................................... 1138
Return Orders ........................................................................................................................................................................... 1187
Delays ......................................................................................................................................................................................... 1222
Oracle SCM Cloud
Implementing Order Management

9 Congure-to-Order 1229
Overview .................................................................................................................................................................................... 1229
Main Setup ............................................................................................................................................................................... 1246
Other Setups ............................................................................................................................................................................ 1295
Web Services ............................................................................................................................................................................. 1351

10 Extend 1383
Extensions ................................................................................................................................................................................. 1383
Flexelds ................................................................................................................................................................................... 1526

11 Email, Reports, Aachments, Social Media 1627


Email ........................................................................................................................................................................................... 1627
Reports ...................................................................................................................................................................................... 1629
Aachments .............................................................................................................................................................................. 1641
Social .......................................................................................................................................................................................... 1647

12 Troubleshoot 1649
Tools and Techniques ........................................................................................................................................................... 1649
Details ......................................................................................................................................................................................... 1671
Oracle SCM Cloud
Implementing Order Management
Oracle SCM Cloud Preface
Implementing Order Management

Preface
This preface introduces information sources that can help you use the application.

Using Oracle Applications

Help
Use help icons to access help in the application. If you don't see any help icons on your page, click your user image
or name in the global header and select Show Help Icons. Not all pages have help icons. You can also access the Oracle
Help Center to nd guides and videos.

Watch: This video tutorial shows you how to nd and use help.
 
You can also read about it instead.

Additional Resources
• Community: Use Oracle Cloud Customer Connect to get information from experts at Oracle, the partner
community, and other users.

• Training: Take courses on Oracle Cloud from Oracle University.

Conventions
The following table explains the text conventions used in this guide.

Convention Meaning

boldface Boldface type indicates user interface elements, navigation paths, or values you enter or select.

monospace Monospace type indicates le, folder, and directory names, code examples, commands, and URLs.

> Greater than symbol separates elements in a navigation path.

i
Oracle SCM Cloud Preface
Implementing Order Management

Documentation Accessibility
For information about Oracle's commitment to accessibility, visit the Oracle Accessibility Program website.
Videos included in this guide are provided as a media alternative for text-based help topics also available in this guide.

Contacting Oracle

Access to Oracle Support


Oracle customers that have purchased support have access to electronic support through My Oracle Support. For
information, visit My Oracle Support or visit Accessible Oracle Support if you are hearing impaired.

Comments and Suggestions


Please give us feedback about Oracle Applications Help and guides! You can send an e-mail to:
oracle_fusion_applications_help_ww_grp@oracle.com.

ii
Oracle SCM Cloud Chapter 1
Implementing Order Management Hello

1 Hello

Overview
What's New in Implementing Order Management
Get details about help topics that are new or signicantly revised for each release.
To get details about.
• Each release, see the Order Management in Oracle Cloud Release Readiness page at hps://cloud.oracle.com/
saas/readiness?oering=order-management.
• Known issues for each release, see Oracle Supply Chain Management Cloud Functional Known Issues and
Maintenance Packs (Doc ID 1563075.1) on My Oracle Support.

Release 20B

Topic Description

Modify Report Templates New. The Reports and Analytics work area comes predened with several reports that you can
  use. You can modify a template to meet your needs.
 

Import Shipping Method New. If you import a shipping method through REST API or FBDI, you must make sure the
  method is valid.
 

Guidelines for Seing Up Units of New. Use guidelines to help you set up the units of measure that you use in Order
Measure Management.
   

Guidelines for Managing Shipment Revised. Includes some new guidelines. Includes new details about importing a shipment set.
Sets  
 

Use Extensions to Get Values for Revised. Get purchase order details from the order header and order line of the original order,
Return Orders then copy them to the return order and return order line.
   

Use Diagnostics to Troubleshoot Revised. Use the Order Management Health Check test to scan through your database and
Sales Orders identify problems across sales orders.
   

Drop Ship section New and revised. Read the new topics and revised topics that clarify how to set up drop ship.
   

Guidelines for Importing Orders into Revised. If you import an order, revise it, submit it, then import it again in a subsequent import,
Order Management then you must import the most recent aribute values in the subsequent import.
   

Quick Start for Seing Up Order-to- Revised. You must deploy the predened Update Shipping Request Validation processing
Cash constraint.

1
Oracle SCM Cloud Chapter 1
Implementing Order Management Hello

Topic Description

   

Set Up Messages in Order Revised. Read up on some new details about how to set up messages.
Management  
 

Use Order Proles to Control Order Revised. Specify the number of minutes for the hold operation to wait before timing out while
Management Behavior aggregating order lines.
   

Use SQL to Query Order Revised. Find the reservations that have nished for an item in your sales order.
Management Data  
 

Overview of Seing Up Sales Revised. Learn about new date aributes you can use when you import or integrate an
Agreements in Order Management agreement.
   

Guidelines for Seing Up Approval Revised. You can use the order type aribute on the order header in an approval rule.
   

Troubleshoot Order Management Revised. Write an order management extension that won't error out when your sales order
Setup doesn't use the English language.
   
Examine predened processing constraints to see if that's the cause of an error you're
encountering.
 

Guidelines for Seing Up and Using Revised. If the quantity on the advance shipment notice (ASN) exceeds the ordered quantity,
Drop Ship then Oracle Fusion Receiving rejects the fulllment request regardless of how you set the
  Over-Receipt Action aribute.
 

Use Order Proles to Control Order Revised. If you use OPS as your source system in a channel, then you must set Retain Sales
Management Behavior Order Number to N.
   

Allow Users to Return Items Without Revised. Requirements for what you can return depend on whether the item is pick-to-order or
Original Sales Order assemble-to-order.
   

Guidelines for Seing Up Revised. Make sure you specify the value Canceled as an exit criteria status to exit the wait task
Orchestration Process Steps in your orchestration process.
   

Release 20A

Topic Description

B2B Messaging Section moved. This content is now in the Conguring and Managing B2B Messaging for
  Oracle Applications Cloud book on Oracle Help Center.
 

Code Examples and Snippets for New. Use these code examples and code snippets to help you create order management
Order Management Extensions extensions in your implementation.

2
Oracle SCM Cloud Chapter 1
Implementing Order Management Hello

Topic Description

   

Guidelines for Seing Up Shipment New. Prepare for and set up shipment tolerances.
Tolerances  
 

Hold section of Orchestrate New and revised. New guidelines topic and other revised content.
Fulllment chapter  
 

Import Your Project Details New and revised. Get details about some of the new things you can do in this release.
   
Overview of Seing Up Projects in
Order Management
 

Use Diagnostics to Troubleshoot New. Use a diagnostic tool to troubleshoot problems you have with a sales order.
Sales Orders  
 

Import Returns When Original Order New. Create a return for a line in a source order that you split in Order Management.
Lines Are Split  
 

Troubleshoot Problems With Order Revised. Fix problems during import, such as taking too long, unable to edit aributes after you
Import import, and so on.
   

Overview of Assigning Orchestration Revised. If a group of fulllment lines are part of a shipment set, then you can't assign dierent
Processes orchestration processes to each line.
   

Guidelines for Integrating Order Revised. Order Management needs SourceOrderSystem so it can send a reply to your order
Management fulllment system.
   

Set Up Extensible Flexelds in Order Revised. You must publish your extensible exeld each time you change the set up for your
Management extensible exeld.
   

Guidelines for Seing Up Revised. The way you set up your orchestration processes and orchestration process steps can
Orchestration Process Steps directly aect performance in your environment.
   

Aributes You Can Use With Order Revised. Get new details about ItemSubTypeCode, ShippableFlag, and using use the public
Management Extensions view object before the user clicks Submit.
   

Various Revised. You must create a sand box so you can edit a service mapping.
   

Release 19D

3
Oracle SCM Cloud Chapter 1
Implementing Order Management Hello

Topic Description

Filter Lines In Your Extensions, Rules, Make sure you lter out lines that you don't want to process when you create an order
and Constraints management extension, business rule, or processing constraint.
   

Use Extensions to Cancel Order Lines New. Create an extension that uses an extensible exeld to cancel order lines in a sales order.
   

Use Extensions to Get Values for New. A return order doesn't include values from the original order on some order line
Return Orders aributes. Use an extension to get the value from the original order line.
   

Convert Shipment Costs to Freight New. Use your own task to convert shipment costs to freight charges.
Charges  
 

Manage Shipment Sets New. Apply guidelines when you use shipment sets.
   

Import Price Details New. Specify how to use price details when you import a sales order.
   

Guidelines for Reserving Inventory New. Reserve inventory to make sure its available for your sales order when its time to pick
  your item in the warehouse.
 

Prevent Orchestration Process from New. Create a line selection rule that makes sure the predened ShipOrderGenericProcess
Shipping Return Lines doesn't aempt to ship a return line.
   

Control Explosion Dates for New. Specify the date when order fulllment explodes a conguration model.
Conguration Models  
 

Map Extensible Flexelds to New. Use a service mapping to map an extensible exeld to a descriptive exeld on the
Descriptive Flexelds purchase requisition header in Procurement.
   

Approvals Revised section with new topics. Study up on guidelines to help you create your approval rule.
  Set up your approval task.
 

Task Services Revised. If you expect a task might go on hold at some point during run time, then you must
  do some set up on the task type.
 

Transformation Rule Revised. You can't edit, revise, or price an order line that a transformation rule creates.
   

Overview of Drop Ship in Order Revised. Get details about purchase order changes that aren't allowed during drop ship.
Management  
 

Use Web Services to Import Orders Revised. You can't use the Order Import web service to update the quantity on a split
  fulllment line.
 

Overview of Creating Extensions That Revised. Use an extension to get the value from the original line order.
Modify Order Management  

4
Oracle SCM Cloud Chapter 1
Implementing Order Management Hello

Topic Description

Set Up Sequences for Sales Order Revised. You must use the predened ORA_ FOM_ DOC_ SEQUENCE_ AUTO number
Numbers sequence.
   

Modify How Aributes Display Revised. Display hidden aributes and modify the display name of aributes.
   

Set Up Extensible Flexelds in Order Revised. You must use Single Row for any extensible exeld that you use in Order
Management Management.
   

Overview of Business-to-Business in Revised. Order Management doesn't support updates to ship dates during fulllment for some
Order Management ows.
   
Overview of Drop Ship in Order
Management
 

Release 19C

The following topics are new or signicantly revised.

Topic Description

Set Up Congure-to-Order New chapter. Get details about the front-to-back set up you need to do, including in Product
  Information Management, Oracle Fusion Pricing, Global Order Promising, Order Management,
Inventory, and so on.
 

Set Default Value for Scheduled Ship New topic. Set the default value for the Schedule Ship Date aribute on the fulllment line.
Date  
 

Overview of Seing Up Projects in Revised topic. Import sales orders that include project details into Order Management Cloud.
Order Management  
 

Troubleshoot Problems with Web Revised topic. Release a credit check hold through a web service, but the service returns a
Services failed status.
   

Aributes You Can Use with Web Revised topic. Update the Subinventory aribute through a web service but not in the Order
Services Management work area. Other processing is limited.
   

Transformation Rules Revised topic. Order Management runs transformation and posransformation rules only
  under specic conditions.
 

Release 19B

The following topics are new or signicantly revised.

5
Oracle SCM Cloud Chapter 1
Implementing Order Management Hello

Topic Description

Set Business Units for Selling Prot New topic. Set the selling prot center on a sales order line that's dierent from the business
Centers unit on the order header so you can sell items that belong to more than one prot center in a
  single sales order.
 

Set Up Sequences for Sales Order New topic. Set up the starting value for your sales order numbers.
Numbers  
 

Return Sales Orders Without Credit New topic. Set up Order Management so your users can request to return a sales order without
Memo creating a credit memo.
   

Set Default Values on Sales New topic. Learn how to set the default value for an aribute on on a sales order when you get
Orders from Product Information the value from Product Information Management.
Management  
 

Update Extensible Flexelds During New topic. Call the FulllmentResponse web service to update an extensible exeld on a sales
Fulllment order after your user already submied the sales order to fulllment.
   

Send Charges from Order Revised topic. Includes new details about how to manage the service mapping.
Management to Oracle Receivables  
 

Guidelines for Integrating Order Revised topic. Includes new details about how to use the DOO_ TransportationPlanning task
Management with Transportation and the Shipment task in your set up to manage a change order.
Management  
 

Troubleshoot Problems with Your Revised topic. Includes new details about how to troubleshoot problems with sales
Order Management Implementation agreements.
   

Manage Order Management Revised topic. Use the Compare Change Order to Fulllment Values parameter to allow a web
Parameters service or le-based data import to change fulllment line values even after the Order Entry
  Specialist revises the sales order in the Order Management work area.
 

Guidelines for Controlling Customer Revised topic. Use a web service to set Ship-to Address.
Details in Order Management  
 

Release 19A

The following topics are new or signicantly revised.

Topic Description

Agreements New section. Set up Order Management so it uses a sales agreement that applies pricing terms
  when your customer buys from your company, such as oering a reduced price when buying a
specic quantity of an item over time.
 

6
Oracle SCM Cloud Chapter 1
Implementing Order Management Hello

Topic Description

Projects New section. Create and fulll sales orders that include project aributes, such as Project
  Number, Task Number, and Expenditure Organization.
 

Integrating Order Management with New topic. Use a service mapping and integration algorithm to extend your Order
Other Oracle Applications: Guidelines Management integration with another Oracle application.
   

Using Functions in Integration New topic. Use a function in your integration algorithm to implement specialized behavior.
Algorithms: Procedure  
 

Extending Credit Check: Procedure New topic. Use an order management extension to modify credit check behavior.
   

Geing Customer, Ship-To, and Bill- New topic. Its important the data you import or integrate is compatible with the Order
To Details Management database. Use SQL to get customer, ship-to, and bill-to details from the Order
  Management database.
 

Using SQL to Query Order New topic. Use SQL to get data from the Order Management database to help you do a variety
Management Data: Procedure of administration tasks.
   

Creating Lookups in Order New topic. Learn how to dene the values that Order Management displays in a list of values.
Management: Explained  
 

Using Your Own Payload to Import New topic. You can modify a predened, example payload that imports an extensible exeld.
Extensible Flexelds: Procedure However, you might prefer to create your own payload to meet your specic requirements.
   

Troubleshooting New chapter. Consolidates existing troubleshooting content and adds new content to help you
  x problems in your Order Management implementation.
 

4 Import and Transform Orders Revised chapter. Includes new topics that help you import sales orders.
   

Integrating Order Management with Revised topic. Get new details about how it works.
Other Oracle Applications: Overview  
 

Integrating Order Management Revised topic. Pause an orchestration process so Transportation Management can validate the
with Transportation Management: planning request before the orchestration process creates the shipment request.
Procedure  
 

Integrating Order Management with Revised topic. Use SCM - Abstract Roles for the role category.
Source Systems: Procedure  
 

Implementing Order-to-Cash: Points Revised topic. Set the implementation status to display data in infolets.
to Consider  
 

Pausing Orchestration Processes: Revised topic. Use scheduled process Recover Errors and scheduled process Release Pause
Guidelines Tasks to resume a paused orchestration process.

7
Oracle SCM Cloud Chapter 1
Implementing Order Management Hello

Topic Description

   

Managing Order Management Revised topic. Specify values that the Order Entry Specialist can select for aribute Ship-to
Parameters: Procedure Customer and aribute Bill-to Customer.
   

Using Drop Ship with Order Revised topic. Allow the Order Entry Specialist to change a fulllment line for a drop ship that's
Management: Overview awaiting shipment.
   

Fixing Problems That Occur During Revised topic. Search messages to get a status update for your imported order.
Order Import: Explained  
 

Seing Up Extensible Flexelds in Revised topic. Includes a new troubleshooting section. Don't include spaces in the Code
Order Management: Guidelines aribute of an extensible exeld segment.
   

Release 13 (update 18C)

The following topics are new or signicantly revised.

Topic Description

Allowing Users to Return Items New topic. allow your users to return an item when your customer doesn't have the original
Without Original Sales Order: sales order.
Overview  
 

Dening Extensions That Modify New topic. Apply guidelines when you create an order management extension.
Order Management: Guidelines  
 

Using Extensible Flexelds in Order New topic. Apply guidelines when you set up an extensible exeld in your Order Management
Management: Guidelines Cloud deployment.
   

Controlling Customer Details in Order New topic. Learn how to control the way Order Management Cloud displays customer details,
Management: Guidelines such as ship-to address, bill-to address, contacts, or payment terms.
   

Integrating Order Management: New topic. You can use a variety of technologies to integrate Order Management Cloud with a
Guidelines fulllment system that resides outside of Oracle Fusion.
   

Managing Trade Compliance: New topic. Apply guidelines when you set up trade compliance screening in Order
Guidelines Management Cloud.
   
 

Managing Credit Check Revised section. Includes several new topics to help you manage credit check.
   

Change Orders Revised section. Includes new details that clarify how to manage change orders, including new
  topic Managing Change That Occurs During Order Fulllment: Guidelines.

8
Oracle SCM Cloud Chapter 1
Implementing Order Management Hello

Topic Description

Integrating Order Management with Revised section. You can now use Visual Information Builder to route sales orders to eBusiness
eBusiness Suite Suite. Other content in this section has also been revised.
   

Routing Requests from Order Revised topics. You can now use Visual Information Builder to create an assignment rule,
Management to Fulllment Systems: pretransformation rule, or routing rule. We revised these topics so they describe how to use
Procedure Visual Information Builder.
   
Routing Requests from Order
Management to Fulllment Systems
Without Cross-References: Procedure
 
Creating Cross-References in Order
Management: Procedure
 
Integrating Order Management
to Fulllment Without Cross-
Referencing Customer Aributes:
Procedure
 
Integrating Order Management with
eBusiness Suite: Procedure
 
Geing Data from Product
Information Management: Procedure
 
Assigning Orchestration Processes:
Procedure
 
Using Extensible Flexelds in
Transformation Rules: Procedure
 
Using Extensible Flexelds in
Assignment Rules: Procedure
 

Using Extensible Flexelds in Order Revised topic. Includes new details about how you structure and set up an extensible exeld.
Management: Explained  
 

Calling Web Services from Order Revised topic. You must use a synchronous service with an order management extension.
Management Extensions: Procedure  
 

Managing Connector Details That Revised topic. Use the Response Processing Option aribute to specify how to handle errors.
Integrate Order Management with  
Fulllment Systems: Procedure
 

Managing Order Management Revised topic. Filter the addresses that the Order Entry Specialist can choose when seing the
Parameters: Procedure Ship-to Address aribute on the order header.
   

Using Extensions to Access Data Revised topic. To get details about the view objects you can use, see Public View Objects in
Outside of Order Management: Oracle Applications Cloud (Document ID 2386411.1) on My Oracle Support.
Procedure  
 

9
Oracle SCM Cloud Chapter 1
Implementing Order Management Hello

Topic Description

Integrating Order Management with Revised topic. If you connect to Congure, Price, and Quote, then you must enable trigger
Source Systems: Procedure point Fulllment Line Status Update.
   

Assigning Orchestration Processes: Revised topic. It is no longer necessary to use bucket sets and Oracle Business Rules. You can
Procedure now use a simplied rule builder.
   

Importing Orders into Order Revised topic. It is recommended that you include details in DOO_ ORDER_ ADDRESSES_INT
Management: Explained table.
   

Using Order Proles to Control the Revised topic. If the source order that you import from the source system isn't unique in the
Order Management Work Area: source system, then you must set Retain Sales Order Number to N.
Procedure  
 

Fixing Problems That Occur During Revised topic. If your order import includes a coverage item, and if your import data already
Order Import: Explained denes pricing for the item before the import occurs, then you must make sure the extended
  amount for the charge components on the coverage line contains a value.
 

Integrating Order Management with Revised topic. To avoid an SQL exception, make sure the web service you use to send
Other Oracle Applications: Overview fulllment lines from Receivables to Order Management includes no more than 10,000
  fulllment lines in each invoice response.
 

Release 13 (update 18B)

The following topics are new or signicantly revised.

Topic Description

Sending Charges from Order New section. Specify how Order Management Cloud sends charges and charge lines to Oracle
Management to Oracle Receivables Receivables.
   

Managing Sales Order Holds Across New topic. Use a web service to manage sales order holds across channels, including to your
Systems: Explained source systems and fulllment systems.
   

Managing Feature Opt In: Procedure New topic. Enable or disable some of the features and oerings that Order Management uses.
   

Migrating Approval Rules Between New topic. Migrate the approval rules that you dene in one instance of Order Management to
Instances of Order Management: another instance of Order Management.
Procedure  
 

Guidelines for Pausing Orchestration New topic. It is recommended that you apply the guidelines described in this topic when you
Processes: Explained pause an orchestration process.
   

How Order Management Handles New section. Order Management uses Coordinated Universal Time (UTC) to provided more
Time Zone Dierences section in accurate values in date elds.
Order-to-Cash: How It Works  

10
Oracle SCM Cloud Chapter 1
Implementing Order Management Hello

Topic Description

Cross-References section in the New section. Create cross-references between your source system, fulllment system, and
Integrating Order Management Order Management.
chapter  
  This content previously appeared in Document ID 2051639. 1 (White Papers for Order
Management Cloud) on My Oracle Support. It has been rewrien and updated to support the
current release.
 

Parameters You Can Use When New topic. Use parameters in your business rules to specify how to route a request to your
Routing Requests to Fulllment fulllment system.
Systems: Explained  
 

Dening Messages in Order Dene your own message, and then display it in the Order Management work area.
Management: Procedure  
 

Integrating Order Management with Revised section. Includes new topics that describe how to set up the connector and perform
Downstream Fulllment Systems other work when you integrate Order Management with your fulllment system.
   
This content previously appeared in Document ID 2123078. 1 (Integrating Non-Fusion
Fulllment System With Oracle Fusion Order Management Cloud) on My Oracle Support. It has
been rewrien and updated to support the current release.
 

Guidelines for Coding Order Revised topic. Includes new sections Techniques and Troubleshooting Order Management
Management Extensions: Explained Extensions.
   

Methods You Can Use with Order Revised topic. New details for the ExecutionContext method.
Management Extensions: Reference  
 

Copying Setups Between Instances of Revised topic. Migrate your hold code denitions between instances of Order Management.
Order Management: Procedure  
 

Managing User Roles and Privileges Revised topic. Manage authentication and authorization to secure order management
in Order Management: Procedure processing, including web service usage. Includes new content and examples that support the
  current release.
 

Using Business Rules With Order Revised topics. Contains new details about how to use business rules, such as what they do,
Management: Overview and when and where you can use them. Also contains revised guidelines, such as making sure
  each rule evaluates to a single result.
How Business Rules Work: Explained  
 
Guidelines for Creating Business
Rules: Explained
 
Transforming Source Orders to Sales
Orders: How It Works
 

Migrating Business Rules in Order Revised topic. Contains new details about how to migrate rules in this release.
Management: Procedure  
 

11
Oracle SCM Cloud Chapter 1
Implementing Order Management Hello

Topic Description

Using Holds to Pause Orchestration Revised topic. Specify who can apply or release a hold according to job role.
Processes: Procedure  
 

Pausing Orchestration Processes: Revised topic. Includes new details about how to pause an orchestration process.
Explained  
 

Compensating Sales Orders That Revised topic. Changed the example in this topic so it references an extensible exeld.
Change: Procedure  
 

Integrating Order Management with Revised topic. You must make sure the aribute names you dene in the service mapping and
Other Oracle Applications: Overview the aribute names you dene in the integration algorithm match each other exactly.
   

Dening Orchestration Process Steps: Revised topic. If you dene more than one wait step for a task, then make sure you set the exit
Points to Consider criteria for each wait step that occurs before the nal wait step to Mark as Complete.
   

New subtopic Seing Default Revised topic. Write your own rules that set default values in the Order Management Work
Aribute Values in the Order Area.
Management Work Area in topic  
Transformation Rules: Explained
 

Using Integration Cloud Service to Revised topics. It is recommended that you use the Sales Order Notication event instead of
Integrate Order Management topics the Order Status Updated event.
   

Managing Change That Occurs Revised topic. Starting in Release 13 (update 18B), Order Management disables Use Flexeld
During Order Fulllment: Explained Aributes and Use Transactional Item Aributes on each predened orchestration process, by
  default. You can't enable these aributes on a predened orchestration process. However you
can create a copy of a predened orchestration process, and then enable them on the copy.
 

Managing Processing Constraints:


Explained Order Management added the following processing constraints, you can disable them, as
  necessary.

• Fulllment Line Supplier Update


• Fulllment Line Supplier Site Update
• Fulllment Line Shipment Set Update
• Fulllment Line Payment Method Update
• Fulllment Line Contract Start Date Update
• Fulllment Line Contract End Date Update
• Fulllment Line Sales Credits Update
• Order Header Sales Credits Update

Managing Approval Rules for Sales Revised topic. You can't reference the order status aribute in an approval rule.
Orders: How It Works  
 

Release 13 (update 18A)

The following topics are new or signicantly revised.

12
Oracle SCM Cloud Chapter 1
Implementing Order Management Hello

Topic Description

Migrating Business Rules: Procedure New topic. Migrate business rules that you dene across dierent instances of Order
  Management Cloud.
 

Exposing Hidden Aributes: New topic. Order Management Cloud comes predened with hidden aributes that you can
Procedure expose so the Order Entry Specialist can display them in the Order Management work area.
   

Using Reports and Analytics with New topic. Use the Reports and Analytics work area to get detailed reports for some aspects of
Order Management: Procedure Order Management Cloud.
   

Using Descriptive Flexelds to New topic. Use a descriptive exeld to integrate Order Management Cloud with Oracle
Integrate Order Management with Receivables, Oracle Shipping, Oracle Receiving, or Oracle Procurement.
Other Oracle Applications: Overview  
 

Using Extensions to Process and New section. Use the Manage Extensions page in the Setup and Maintenance work area to
Display Your Data write your own Groovy script that modies your Order Management deployment, and to
  specify the extension point that determines when to run this script.
 
This content previously appeared in Document ID 2252683. 1 (Dening Extensions That Modify
Order Management Cloud) on My Oracle Support at hps: //supportoracle.com. It has been
rewrien and updated to support the current release.
 

Managing User Roles and Privileges New topic. Manage the authentication and authorization that Order Management Cloud uses
in Order Management: Procedure to secure order management processing, including web service usage.
   
This content previously appeared in Document ID 2051639. 1 (White Papers for Order
Management Cloud) on My Oracle Support. It has been rewrien and updated to support the
current release.
 

Using Flexelds to Process and New section. Use an extensible exeld to add your own aribute to Order Management Cloud.
Display Your Data Dene and capture order details that are unique to your business, and then allow other uses
  for these details during order fulllment.
 
This content previously appeared in Document ID 2051639. 1 (White Papers for Order
Management Cloud) on My Oracle Support. It has been rewrien and updated to support the
current release.
 

Using Web Services to Integrate New section. Use web services to integrate Order Management with other systems, such as
Order Management channel systems, legacy systems, quoting systems, contract systems, service request systems,
  inventory systems, or purchasing systems.
 
This content previously appeared in Document ID 2051640. 1 (Using Web Services with Oracle
Fusion Order Management Cloud) on My Oracle Support. It has been rewrien and updated to
support the current release.
 

Seing Up Business Rules New section. Use a business rule to implement a dynamic decision at run time that automates
  a company policy, computation, or logic.
 
This content previously appeared in Using Business Rules with Order Management Cloud in
Document ID 2051639.1 (White Papers for Order Management Cloud) on My Oracle Support. It
has been rewrien and updated to support the current release.
 

13
Oracle SCM Cloud Chapter 1
Implementing Order Management Hello

Topic Description

Copying Setup Data Between New section. Copy your setup from one instance of Order Management Cloud into another
Instances of Order Management instance during the lifecycle of your Order Management deployment.
   
This content previously appeared in Importing and Exporting Setup Data in Document ID
2051639.1 (White Papers for Order Management Cloud) on My Oracle Support.
 

Integrating Order Management with New section. Use a predene connector to test an example integration between Order
Oracle eBusiness Suite Management Cloud and Oracle eBusiness Suite (EBS).
   
This content previously appeared in Document ID 2132744. 1 (Integrating Order Management
with eBusiness Suite) on My Oracle Support. It has been rewrien and updated to support the
current release.
 

Integrating Aachments in Order New section. Integrate Order Management so it can receive aachments as part of a source
Management order from a source system to sending one to your order fulllment system.
   
This content previously appeared in Integrating Aachments in Order Management in
Document ID 2051639.1 (White Papers for Order Management Cloud) on My Oracle Support. It
has been rewrien and updated to support the current release.
 

Identifying the Host and Port for Your New topic. Identify the host and port that your Order Management implementation uses.
Order Management Implementation:  
Procedure
 

Returning Sales Orders: Procedure Revised topic. If the sales order uses recurring billing, and if you must return all paid invoices,
  then make sure you set the Cancellation Eective Date.
 

Order-to-Cash: How It Works Revised topic. Order Management uses Coordinated Universal Time (UTC) to handle time
  zone dierences when the Order Entry Specialist sets the Requested Date. It also uses this
processing when a source order includes details for fulllment options, such as the available
date of shipment, warehouse, shipping method, fulllment cost, and so on.
 

Assigning Job Roles in Order Revised topic. To integrate social objects from Order Management into Oracle Social Network,
Management: Explained you must use the Order Manager or the Order Orchestration error recovery role.
   

Integrating Order Management with Revised topic. Order Management only sends statuses Scheduled, Shipped, Awaiting Billing or
Source Systems: Procedure Billed.
   

Administering Email Format in Order Revised topic. Use BI Publisher Enterprise to modify the email template that Order
Management: Procedure Management uses when it sends an email notication.
   

Managing Approval Rules for Sales Revised topic. Use the Manage Order Approval Rules page to dene an approval rule according
Orders: How It Works to status, then make sure you don't dene the rule to run according to status Credit Check
  Failed.
 

Task Layer: Explained Revised topic. Includes new details about how to use AGGREGATOR_ WAIT_TIME and
  AGGREGATOR_ MAX_FLINES to minimize problems that might occur with fulllment requests.
 

14
Oracle SCM Cloud Chapter 1
Implementing Order Management Hello

Topic Description

Entities and Aributes You Can Use Revised topic. Replaced the previous listing of aributes with new lists categorized according to
When Integrating Order Management entity.
with Other Oracle Applications:  
Reference
 

Release 13 (update 17D)

The following topics are new or signicantly revised.

Topic Description

Controlling Decimal Precision: New topic. Use the Quantity Decimal Precision prole to control decimal precision for aributes
Procedure that store numeric values.
   

Specifying Transaction Types to Send New topic. Dene a business rule that sets the value for the AR Transaction Type aribute
from Order Management to Oracle according to details from the sales order, such as business unit, order type, line type, or item.
Receivables: Procedure  
 

Revised topics. These topics previously described only how to integrate Order Management
The following topics describe how to with Oracle Receivables. They now also describe how to integrate Order Management with
integrate Order Management with Oracle Shipping, Oracle Receiving, and Oracle Procurement.
other Oracle applications:  

• Integrating Order Management


with Other Oracle Applications:
Overview
• Integrating Order Management
with Other Oracle Applications:
Procedure
• Using Descriptive Flexelds to
Integrate Order Management
with Other Oracle Applications:
Procedure
• Using Extensible Flexelds to
Integrate Order Management
with Other Oracle Applications:
Procedure

Using Files to Import Orders into Revised topic. You must make sure you correctly set up the rank for each customer item
Order Management: Explained relationship before you import source orders.
   

Pausing Orchestration Processes: Revised topic. You must make sure to release a paused orchestration process. If you don't,
Explained then the orchestration process will remain in a paused state, which might result in failed sales
  orders, failed order fulllment, and so on.
 

Managing Approval Rules for Sales Revised topic. It is recommended that you dene your approval rule so it evaluates to True
Orders: How It Works only one time for the same sales order, and then creates only one approval request.
   

Order Management Cloud: Overview Revised topic. Includes a new Geing Details section with references to technical
  documentation for Order Management.

15
Oracle SCM Cloud Chapter 1
Implementing Order Management Hello

Topic Description

Managing Change That Occurs Revised topic. The compensation paern for the Shipping task uses the Cancel and Create
During Order Fulllment: Explained paern for item substitution during shipping but doesn't support the Update paern. If you
  require dierent behavior, then you can write a compensation rule according to an item
change.
 

Release 13 (update 17C)

The following topics are new or signicantly revised.

Topic Description

Dening Extensions That Modify New topic. Use the Manage Extensions page in the Setup and Maintenance work area to write
Order Management Cloud: Overview your own Groovy script that modies your Order Management deployment, and to specify the
  extension point that determines when to run this script.
 

New topics. Use a descriptive exeld or an extensible exeld to communicate details


The following topics describe how to between Order Management Cloud and Oracle Receivables.
integrate Order Management with  
Oracle Receivables:

• Integrating Order Management


with Oracle Receivables:
Overview
• Integrating Order Management
with Oracle Receivables:
Procedure
• Using Descriptive Flexelds to
Integrate Order Management
with in Oracle Receivables:
Procedure
• Using Extensible Flexelds to
Integrate Order Management
with in Oracle Receivables:
Procedure

The following topics describe how to New topics. These topics describe how to do the following work:
set up coverage and subscriptions:
• Set up and manage coverage items. For example, you can set up a coverage, such as a
• Seing Up Coverage for Sales warranty for laptop support that includes a daily, weekly, monthly or yearly duration.
Orders: Procedure • If you set up an orchestration process that processes a covered item or a coverage item,
• Seing Up Orchestration then you can you use the same orchestration process instance for the covered item and
Processes for Coverage Items: for the coverage item, depending on your business requirements. If you use dierent
Explained instances, then you can coordinate these instances.
• Seing Up Subscriptions for • Set up subscriptions for sales orders.
Sales Orders: Procedure • Set up a subscription for a covered item. In this example, you dene a covered item for
• Seing Up Subscriptions for cloud up time, and then dene a subscription that allows the Order Entry Specialist to
Covered Items: Procedure add this up time.
• Importing Source Orders • Import a source order that includes covered items, coverage items, or subscriptions into
That Include Coverage or Order Management.
Subscriptions: Procedure

16
Oracle SCM Cloud Chapter 1
Implementing Order Management Hello

Topic Description

Specifying How to Track Items as New topic. Specify how to track an item as an asset, and then allow the Order Entry Specialist
Assets: Procedure to monitor it during order fulllment.
   

Implementing Order-to-Cash: Points Revised topic. Includes a new subtopic, Consider Which Scheduled Processes You Must Run.
to Consider  
 

Release 13 (update 17B)

The following topics are new or signicantly revised.

Topic Description

New topics. Use Order Management in conjunction with your trade management solution to
The following topics describe how to create and manage trade transactions that comply with import global trade rules, export global
set up trade compliance: trade rules, and other trade regulations that the country or region requires.
 
• Managing Trade Compliance:
Overview
• Managing Trade Compliance:
How it Works
• Managing Trade Compliance:
Procedure
• Managing Trade Compliance
During Order Fulllment:
Procedure
• Constraining Compliance
Screening: Procedure
• Managing Trade Control
Types: Procedure

New topics. Integrate Order Management with Oracle Transportation Management so that it
The following topics describe how to sends sales orders to a transportation management system for transportation planning, and to
integrate Order Management with receive updates at fulllment milestones, such as plan completion or proof of delivery.
Transportation Management:  

• Integrating Order Management


with Transportation
Management: Overview
• Integrating Order Management
with Transportation
Management: How it Works
• Integrating Order Management
with Transportation
Management: Procedure

New topics. Congure Order Management to route each sales order for sales order approval.
The following topics describe how to You can congure sales order approval to accept or reject the sales order according to a variety
manage approval rules: of approval rules, and on a variety of sales order aributes.
 
• Managing Approval Rules for
Sales Orders: How it Works
• Managing Approval Rules for
Sales Orders: Procedure

17
Oracle SCM Cloud Chapter 1
Implementing Order Management Hello

Topic Description

New topics. Use credit check in Order Management to minimize the nancial risk that your
The following topics describe how to organization assumes during day-to-day operations. You can use credit check to validate each
manage credit check: sales order and verify that your customer has credit available that's sucient to cover the cost
of the purchase, and to allow Order Management to process the sales order through order
• Managing Credit Check in fulllment before receiving payment.
Order Management: Overview  
• Managing Credit Check in
Order Management: Procedure
• Importing Source Orders That
Include Credit Check Details:
Described

Calling Order Management Cloud New topics. Oracle Fusion Applications exposes its interfaces as web services, and deploys
from Client Applications them on a service-oriented architecture (SOA) container, secured through layers of web service
  policy, authentications, and other protocols. This document describes how to set up a client
application so it can call secure web services on Order Management Cloud.
 
For details, search for Document ID 2051639.1 (White Papers for Order Management Cloud)
on My Oracle Support, and then download the aachment that describes how to call Order
Management Cloud from a client application.
 

Using Web Services with Order New topics. You can use web services to interact with Order Management. For example, you
Management Cloud can use the Order Import web service to create an integration that sends order requests from
  your upstream system to Order Management. This web service processes the request, and
then creates a sales order in Order Management. Various types of upstream systems and
applications can use this service, such as channels, legacy systems, quoting systems, contract
systems, service request systems, inventory systems, or purchasing systems.
 
This content was moved to this implementation guide in Release 18A. For details, see Using
Web Services with Order Management Cloud: Overview.
 

Integrating Order Management Cloud New topics. Get help if you already own applications that are part of Enterprise Resource
with Oracle eBusiness Suite Planning in Oracle E-Business Suite, and you plan to migrate to Order Management Cloud
  in phases and will continue to use E-Business Suite to perform some of the fulllment
functionality.
 
For details, search for Document ID 2132744.1 (Integrating Order Management Cloud with
Oracle eBusiness Suite) on My Oracle Support.
 

Managing Order Types: Procedure New topic. An order type is an optional aribute on the order header that you can administer
  to arrange sales orders into groups that you dene. You can also use it to control order
processing. This content previously appeared in Document ID 2051639. 1 (White Papers for
Order Management Cloud) on My Oracle Support.
 

Managing Order Management Revised topic. Includes parameters that you can set for credit check, trade compliance, and
Parameters: Procedure order approvals.
   

Using Business Rules to Get Data Revised topics. Starting in Release 12, you use a dierent set of objects in your business rule.
from Dierent Product Models:  
Procedure
 
Routing Requests from Order
Management to Fulllment Systems:
Procedure
 

18
Oracle SCM Cloud Chapter 1
Implementing Order Management Hello

Topic Description

Routing Requests to Fulllment


Systems When Cross-Reference Data
Doesn't Exist: Procedure
 

Creating Transformation Rules: Revised topics. These topics include revised procedural instructions and screen captures.
Procedure  
 
Creating Advanced Product
Transformation Rules: Procedure
 
Assigning Orchestration Processes:
Procedure
 

Integrating Order Management with Revised topic. Set the Invocation Mode to determine how Order Management calls the
Fulllment Systems: Procedure connector when an orchestration process requires an interface to a system that resides outside
  of Order Management.
 

Implementing Order-to-Cash: Points Revised topic. Includes content that describes whether new features in this release come
to Consider predened or require setup.
   

Implementing Order-to-Cash: Quick Revised topic. Includes revised setup details.


Start  
 

Assigning Job Roles in Order Revised topic. Includes details about predened job roles.
Management: Explained  
 

Using Drop Ship with Order Revised topic. Includes a list of setups that are required to implement drop ship.
Management: How it Works  
 

Overview of Order Management Cloud


Order Management Cloud is a supply chain management application that improves order fulllment for your business
processes. It includes predened integration, centrally managed orchestration policies, global availability, and fulllment
monitoring that can help increase customer satisfaction and order protability.

19
Oracle SCM Cloud Chapter 1
Implementing Order Management Hello

Capture Orders and Fulll Them


Use Order Management as your order hub to capture customer demand and fulll sales orders.

Note.

• Capture. Capture demand from channels, such as web, mobile, call center, direct sales, or partners. Provide the
functionality that your users need during order capture, such as price items, determine availability, get order
status, and so on.
• Orchestrate and monitor fulllment across channels. Coordinate with other Oracle Supply Chain
Management Cloud applications during fulllment, such as purchasing, manufacturing, inventory
management, and other solutions.
• Fulll. Integrate Order Management with systems that reside outside of Order Management.

20
Oracle SCM Cloud Chapter 1
Implementing Order Management Hello

Manage Multichannel Orders


Order Management can support your global, order-to-cash process that uses more than one channel. Centralize and
manage order capture channels, do order promising, orchestrate fulllment policies, monitor order status, and manage
exceptions. Enter, price, and congure each sales order directly in Order Management.
• Enter sales orders directly in Order Management. Enter details for a new sales order, revise a sales order,
modify order lines, view change history, place a sales order on hold, or cancel a sales order. Create a return
order for an existing sales order.
• Import source orders from an external capture system, such as an e-commerce system, edit them in Order
Management, and then fulll them in your fulllment system.
• Use a common denition of sales orders across channels so you can view and search them in a consistent way.
For example, search for Item A across sales orders that other users created in Order Management, and across
sales orders that an administrator imported from an e-commerce site, call center, or through electronic data
interchange (EDI).
• Use an orchestration process to route and manage each sales order across more than one fulllment system.
For example, use a schedule, ship, and bill process to route order lines to two dierent enterprise resource
planning (ERP) systems.
• Send status updates from more than one fulllment system to a capture system that resides outside of Order
Management.
For example, return a SHIPPED order status to an e-commerce system even if one warehouse system returns a
Shipped status for an order line, but another warehouse returns an SHP status for the same line.
• Get a summary of statuses and exception orders. For example, view a graph that displays sales orders that are
at risk of missing a promise date.
• Use Oracle Fusion Global Order Promising to collect supply data from more than one source and to congure
business rules that select the best fulllment location for demand from any channel.
Select according to future availability, expected delivery date, and preferred delivery method. Allocate scarce
supply according to customer, channel, or to resolve order exceptions.
• Use heterogeneous deployment. Use a mixture of cloud and on-premise environments for your capture and
fulllment systems.
For example, import source orders from a cloud capture system, then fulll them in an external, on-premise
ERP system.
• Use a predened integration with other Oracle cloud services to centrally manage orchestration policies, get
global availability, monitor status, and manage exceptions.

For details about how Order Management integrates channels with other systems, see the Overview of Integrating
Order Management topic.

Monitor Progress and Manage Exceptions


Use the Order Management work area to monitor progress and manage exceptions.
• Get a summary of statuses and exceptions according to customer, item, or supplier, and drill into data to get
more detail.
• Filter sales orders according to customer, item, fulllment location, supplier, status, or age.
• View order status.

21
Oracle SCM Cloud Chapter 1
Implementing Order Management Hello

• Use a Gan chart to monitor processes.


• View and x exceptions on one or more order lines.
• If a sales order is at risk of not meeting fulllment dates, then use a jeopardy feature to identify issues and take
corrective action.
• Use embedded intelligence to resolve exceptions. Use analytic details to make informed choices.

Simplify Change Orders


Use change order management to set up compensation paerns and roll back steps so you can consistently control
change orders. Use change order logic to make sure Order Management processes and revises sales orders consistently
across all sales orders.
For example, if Order Management receives a quantity change from a source order, and if it hasn't shipped the item,
then use change logic that allows the change, and roll back the fulllment process so it can reschedule and send a new
ship request to your fulllment system.
• Specify aributes that aect the change order and that automatically recognize a change order.
• Create rules that automatically handle changes so the user isn't required to intervene in every change that
occurs.
• Coordinate change order tasks with your fulllment system.
• Set up tasks in the orchestration process that the change order aects.
• Adjust fulllment steps that the change aects.
• Cancel orders, add lines to orders, and change quantity.
• Revise existing sales order.

Set Up Processing
Set up the orchestration process that Order Management uses to fulll each sales order. Create a new orchestration
process or modify an existing one that comes predened with Order Management and that already meets most of your
business requirements.
• Use common, conditional, parallel, or interrelated ows for order lines.
• Create change order rules that automatically modify order fulllment.
• Create rules that calculate order completion date according to requested date.
• Create common statuses to use across your business process.
• Create draft orders in Order Management that you can later submit for processing.

Create an orchestration process that plans fulllment processes, calculates lead times, modies order compensation
steps, and so on.

You can also write your own Groovy script in an order management extension to modify your Order Management
deployment. Create the extension point that determines when to run this script. For details, see the Overview of
Extensions That Modify Order Management topic.

Enrich Source Orders For Fulllment


• Create a business rule that transforms each source order into a sales order, modies order aributes, and
creates order lines.

22
Oracle SCM Cloud Chapter 1
Implementing Order Management Hello

• Add details to improve fulllment. For example, add or modify aributes or add more items so Order
Management can eciently fulll the sales order.

Manage Problems and Recover from Errors


• Use a jeopardy feature to help you monitor each sales order against a fulllment date, predict whether the sales
order is on schedule to meet the fulllment date and, if not, take corrective action.
• Use a central work area to recover sales orders that are in an error state.
• Locate the problem, identify the root cause, then adjust order fulllment parameters to x the problem.
• Modify dates and aributes that aect process planning.
• Query and examine a subset of sales orders according to a criteria that you specify.
• Take action on a single sales order, or on more than one sales order at the same time.
• Schedule a background process that automatically recovers errors according to parameters and lters that you
set up.

23
Oracle SCM Cloud Chapter 1
Implementing Order Management Hello

Use Oracle Fusion Work Areas


Move each of your sales orders from capture, to promise, fulllment, and nally receivables.

Capture orders from your channels in an order capture system, such as the Order Management work area, or Congure,
Price and Quote. You can also import orders from your source system, such as a legacy order capture system.

• Web sales
• Call centers
• Direct sales
• Partners

24
Oracle SCM Cloud Chapter 1
Implementing Order Management Hello

• Legacy order capture systems and other systems


• Electronic data interchange or business-to-business ows
• Mobile platforms

Use work areas in supply chain management to set up and capture your item.

• Set up your item in Product Information Management


• Determine availability for your item in Global Order Promising
• Price the item in Pricing Administration.
• Congure congured items in Congurator.
• Set default values and do other setups in Setup and Maintenance.
• Capture orders in Order Management.

Use work areas to orchestrate order fulllment across sources, such as suppliers, nance, and distribution centers.

• Track and revise sales orders in Order Management.


• Set up schedules, shipping and do other setups in Setup and Maintenance
• Procure the item you will ship in Procurement.
• Reserve and track the item in Inventory Management.
• Get details about the item in Reports and Analytics.
• Receive the item into accounting in Receivables.

Get Details

What Where

Go to Oracle Supply Chain Management Cloud on Oracle Help Center at hps://docs. oracle.
Use these books. com/ en/ cloud/ saas/ supply-chain-management/ 18b/indexhtml
 
• Implementing Order
Management
• Using Order Management
• Administering Pricing
• Tables and Views for Oracle
Supply Chain Management
Cloud
• REST API for Oracle Supply
Chain Management Cloud

Technical details not covered in Search for Document ID 2051639.1 (White Papers for Order Management Cloud) on My Oracle
books Support at hps: / / supportoraclecom
   

What's New in each release and Oracle Cloud Release Readiness at hps://cloud. oracle. com/ saasreadiness/ scm
release content documents  
 

25
Oracle SCM Cloud Chapter 1
Implementing Order Management Hello

Details
How Order-to-Cash Works in Order Management
Use Order Management Cloud to order and fulll an item, such as a printer, a congured item, such as a desktop
computer, or a service, such as monthly maintenance for a network of desktop computers.
Here's how Order Management fullls a sales order when the user creates it in the Order Management work area.

26
Oracle SCM Cloud Chapter 1
Implementing Order Management Hello

Note.

1. A user, such as the Order Entry Specialist, clicks Create Order in the Order Management work area to create a
new sales order.

◦ The user searches the Customer aribute on the order header. Order Management gets details about the
customer from Trading Community Architecture, then displays them in the order header.
◦ The user searches for an item on the catalog line of the sales order. Order Management gets details
about the item from the Product Information Management work area and the Pricing Administration
work area, then displays them on the catalog line.
◦ The user clicks Add to move the line to the order line area, then clicks Submit.
◦Order Management validates the order, converts order lines to fulllment lines, then an assignment rule
identies the orchestration process that Order Management runs to fulll each fulllment line. You can
set up this rule. For details, see the Assign Orchestration Processes topic.
2. An orchestration process contains steps that fulll the order. Examples of steps include schedule, reserve, ship,
invoice, and so on.

The steps vary so they optimize order fulllment according to the needs of each order. The orchestration
process determines process logic, such as statuses to use for the order, how to do forward planning and
backward planning, how to compensate for change to the order, and so on.

Here's more detail about what the orchestration process does.

◦ References data in Product Information Management to determine how to orchestrate the order
according to the item. You can specify this data. For details, see the Get Data from Product Information
Management topic.
◦ References Supply Chain Planning to cross-reference and validate data.

You can set up data collection parameters, enable data for collections, and so on. For details, see the
Quick Start to Implementing Order-to-Cash topic.
◦ Uses business rules to orchestrate each order. You can set up a variety of rules.

For example, set up a rule that uses a dierent lead time depending on whether the inventory
organization resides in Denver or San Francisco, or a rule that makes sure Order Management doesn't
aempt to ship a nonshippable item, such as a video that your customers can only stream from the cloud.
For details, see the Overview of Using Business Rules With Order Management topic.

27
Oracle SCM Cloud Chapter 1
Implementing Order Management Hello

3. To orchestrate fulllment, each orchestration process step calls a service that does a fulllment task.

For example.

◦ The Create Scheduling service communicates with Order Promising. Order Promising determines
availability and promises the order.

• Cross-references items before it sends the fulllment request to your fulllment system.
• Gets supply and demand data from Supply Chain Planning Cloud to determine availability in the
supply chain, such as inventory levels in warehouses.
• Schedules the best fulllment options for each fulllment line. Your users can also manually use
the Order Management work area to choose some options.

28
Oracle SCM Cloud Chapter 1
Implementing Order Management Hello

Most predened orchestration processes include a scheduling step that calls Order Promising. You
can also set up an orchestration process that doesn't include a scheduling step and that doesn't use
Order Promising. For example, if your organization sells downloadable literature that doesn't require a
warehouse or shipping.
◦ Task services interpret replies and updates from fulllment systems, such as Inventory Management. For
example, the orchestration process calls.

• The Create Inventory Reservation service to reserve inventory for your item, then waits until
Inventory Management sends conrmation that it reserved inventory.
• The Create Shipping service to create a shipment, and Wait for Shipment to wait for conrmation
from Inventory Management that the carrier successfully delivered the item.
• The Create Billing Lines service and the Wait for Billing service to call Receivables and nish the
order-to-cash process. It makes sure you get paid.

For details about how to use task services, see the Task Types topic.

You use the Setup and Maintenance work area to set up an orchestration process.
4. The External interface communicates order details between Order Management and the fulllment system. It
primarily routes the fulllment request and converts data so the fulllment system can correctly use the data.

You can also use the external interface to send a request to your fulllment system that resides outside of
Oracle Fusion to fulll the order. The external system processes the request and sends completion updates
through the external interface so the orchestration process can move to the next step. For details, see the
Integrate chapter in the Implementing Order Management book.
5. Here's what happens during fulllment.

◦ Inventory Management manages logistics and inventory for the order, including schedule, reserve,
receive, and ship each item.
◦ Receivables processes billing details, including one-time charges and recurring charges, then sends them
to Oracle Financials Cloud.
◦ Oracle Financials Cloud does nancial transactions for the order. It creates an invoice, manages accounts
receivable, processes payments, and manages revenue.

The fulllment system communicates updates through the external interface to task services throughout
fulllment.
Note.

• This topic describes one way to fulll orders. You can set up Order Management to do fulllment dierently,
according to your unique fulllment environment.
• You can import orders into Order Management from an upstream order capture system. For details, see the
Overview of Importing Orders into Order Management topic.
• For details about other fulllment ows, such as drop ship, back-to-back shipping, or internal transfer, see
Oracle SCM Cloud, Implementing Manufacturing and Supply Chain Materials Management.

Related Topics
• Overview of Drop Ship in Order Management
• Orchestration Processes

29
Oracle SCM Cloud Chapter 1
Implementing Order Management Hello

How Data Flows Through Order Management


Order Management Cloud uses processes and tasks to fulll each source order that it receives from a source system.

Note.

1. Capture orders. A source system that resides outside of Order Management sends a source order to Order
Management.

The terminals and databases in step 1 in the diagram represent dierent channels that your deployment can
use as source systems. For example, a legacy system, or some other channel.

The ow for a sales order that the Order Entry Specialist creates in the Order Management work area is similar,
except it typically starts with orchestration at step 3.
2. Transform orders. Transformation rules separate the source order into a hierarchy that Order Management
can use and process.

30
Oracle SCM Cloud Chapter 1
Implementing Order Management Hello

Transformation nishes, then assignment rules assign an orchestration process to the sales order.
3. Orchestrate orders. One or more orchestration processes contain steps that do fulllment tasks. Each
fulllment request starts here.
4. Do tasks. Task services send a request to the fulllment system to run the fulllment task, such as ship the
item or invoice the item. A system that resides outside of Order Management can also send a request to a task
service.
5. Integrate. Here's what the external interface does.

◦ Cross-references data that the request contains.


◦ Uses routing rules to identify the fulllment system to use to fulll each fulllment line. For details about
these rules and how to create them, see the Route Requests from Order Management to Fulllment
Systems topic.
◦ A connector sends the request to the fulllment system.
6. Fulll. The fulllment system processes the request.

◦ The fulllment system accepts the request then sends a reply.


◦ The external interface converts the reply from the fulllment system.
◦ The task service processes the reply from the fulllment system.
◦ The orchestration process runs the next orchestration process step.

External Interface
The external interface manages communication between Order Management and your fulllment system.
• The fulllment system doesn't communicate directly with the orchestration process. Instead, the external
interface provides an intermediary that Order Management uses to route requests.
• Order Management uses a web service to route each request from the task service to the fulllment system,
and then from the fulllment system to the task service.
• The connector modies the structure and content of the outbound message so it matches the inbound
interface that the fulllment system uses.
• You can set up each web service and routing rule, then register the connector web service. This set up
integrates the fulllment system with the external interface.

The external interface provides benets.


• Keeps the source system or fulllment system that resides outside of Order Management separate from the
orchestration process so it isn't necessary to modify the orchestration process every time you integrate another
source system or fulllment system.
• Provides a exible integration that you can use in a Service Oriented Architecture (SOA) with a system or
application that resides outside of Order Management.
• Provides a complete, open, and integrated solution that lowers cost of ownership.

Related Topics
• Task Services
• Manage Connector Details Between Order Management and Your Fulllment System
• Integrate Order Management with Source Systems

31
Oracle SCM Cloud Chapter 1
Implementing Order Management Hello

How Order-to-Cash Works with Order Capture Systems


Use an order capture system that resides outside of Order Management Cloud, such as Oracle Congure, Price and
Quote Cloud, to send a source order to Order Management.

Order Management uses the ow described in the How Order-to-Cash Works topic, but with these important
dierences.

1. An order capture system that resides outside of Order Management captures a source order. For example, a
user might use your legacy application to enter a source order.

32
Oracle SCM Cloud Chapter 1
Implementing Order Management Hello

2. You set up a connector that the capture system can use to send the source order to Order Management. If
the source system and Order Management use dierent domain values, then the connector transforms the
structure and values from the domain that the source system uses to the domain that Order Management uses.

For details, see the Integrate Order Management with Source Systems topic.
3. Supply Chain Planning collects data about the source order, then uses it to create cross-references and
planning data.

Use a cross-reference help to manage the representation of data across systems. A cross-reference relates
business data between your order capture system, order fulllment system, and Order Management. For
example, an item cross-reference can create a relationship between an item, such as Widget x, that resides in
your source system, and a representation of Widget x in Order Management.

You can cross-reference across warehouses, units of measure, carriers, currencies, shipping methods, payment
terms, accounting rules, invoicing rules, service levels, tax classication codes, and so on.
4. An orchestration process references business rules to transform each source order into a sales order that Order
Management can understand and fulll.
5. Order Promising gets item details from Product Information Management, customer details from Trading
Community Architecture, and planning data from Supply Chain Planning to promise the sales order.
6. Order Management uses the order-to-cash ow to continue processing.
Note.

• Order Management updates the order status, fulllment line status, and invoice status during the ow, and
communicates each update to your order capture system.
• Order Management can use an order capture service to communicate updates to the source system. To receive
these updates, the source system must subscribe to the events. If Order Management receives an update from
the source system, then it replans the orchestration process. It replans every time it receives an update.
• Here's the aributes that Order Management uses to calculate the planned dates for each step and task,
starting with the rst step it does in chronological order.

◦ Default Lead Time


◦ Lead Time UOM
◦ Lead-Time Expression

• Order Management doesn't do the same amount of transformation for a sales order that a user creates in the
Order Management work area because these orders already include the data and use the structure that Order
Management requires.
• A single source order might contain order lines that include one-time charges, and other order lines that
include recurring charges. If Order Management receives a source order that includes a recurring charge, then
Oracle Receivables creates a recurring billing invoice for these lines.
• Order import typically uses the same ow that this topic describes, except you import source orders from a
spreadsheet or through a web service.

Related Topics
• Import Orders into Order Management
• Integrate Order Management with Source Systems
• How the Order Orchestration and Order Promising Processes Use the Collected Planning Data

33
Oracle SCM Cloud Chapter 1
Implementing Order Management Hello

34
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

2 Implement Business Process Flows

Order-to-Cash
Roadmap for Seing Up Order-to-Cash
Use this road map as the high-level procedure you use to implement order-to-cash.
• Do the tasks that this topic references in the same sequence that the topic displays them.
• Steps after step 3 primarily reference tasks in the Orders functional area. Do each of these tasks depending on
your business requirements.
• To do a task, click each one in the Orders area. If the Orders area doesn't display a task, then search for it in the
Search Tasks eld.
• The set up you do depends on your business requirements. You typically do most or all of the tasks that
integrate Order Management. Other tasks depend on your requirements, such as tasks that control order
status, constrain changes, or modify an orchestration process.
• The Topic column references topics in Oracle SCM Cloud, Implementing Order Management. Use these topics
to get help with the task.
• The Prepare column describes what you do to prepare for implementation. Do this set up before you
administer order-to-cash. It will help to avoid interruption and downtime during administration. Use the
Prepare column to check o preparation work as you nish it.
• To monitor progress, add a check mark to the Done column when you nish each functional area or task.
• To implement drop ship, see the Implement Drop Ship section in the Implementing Order Management book.

Implement order-to-cash.
1. Read the Guidelines for Implementing Order-to-Cash topic. It contains details that help to make the
implementation go smoothly.
2. In the Navigator, click Setup and Maintenance.
3. On the Setup page, click Order Management.
This topic assumes you will modify the predened implementation that's available through Setup. For details
about seing up a new implementation, see Points to Consider When Implementing Order-to-Cash.
4. Set up these functional areas.

Functional Area Done

Initial Users _____


   

Enterprise Prole _____


   

Organization Structures _____


   

Users and Security _____

35
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Functional Area Done

   

Items _____
   

Catalogs _____
   

Customers _____
   

These areas reference common tasks. A typical implementation requires that you complete most or all
common tasks. For details about how to set them up, see the book titled Oracle SCM Cloud, Implementing
Common Features for Oracle SCM Cloud.
5. In the Functional Areas list, click Orders.
6. In the Orders area, click Required Tasks > All Tasks
7. Integrate Order Management. For details, see the Integrate chapter in the Implementing Order Management
book.

Task Topic Prepare

Manage Web Service Details Create User Credential Keys _____Gained access to the administrator
    privilege and administrator role so we
can use Oracle Wallet Manager.
 

Manage Trading Community Source Integrate Order Management with Source _____Located the time zone where the
Systems Systems server that the source system uses is
    located.
Manage Upstream and Fulllment Source  
Systems _ ____Identied the URL that locates the
  connector that resides on the source
Manage External Interface Web Service system.
Details  
  _ ____Identied the User Name and
Password that the Status Update service
requires.
 

Manage Trading Community Source Using Web Services to Integrate Order _ ____Identied source system details
Systems Management chapter, including Dene  
  Your Source System, and Create Cross- _ ____Identied role and privilege
  References in Order Management requirements
Manage Item Relationships    
  _ ____Identied cross-reference
requirements
 

Manage External Interface Web Service Integrate Order Management with _ ____Identied an integrated
Details Fulllment Systems development environment we can use to
    create a transformation style sheet.
 
_____Acquired the user credentials that
the service provider needs when calling
their web service.
 

36
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Task Topic Prepare

_____Acquired contact details for the IT


administrator who works for the service
provider.
 
_ ____Identied the URL that locates the
web service that resides on the fulllment
system.
 
_____Acquired the security certicate
from the service provider.
 

Manage External Interface Routing Rules Route Requests from Order Management _____Created a list that includes the
  to Fulllment Systems names of the items we must route
  to fulllment systems, the unique
identier for each item, and the name
of each fulllment system where Order
Management must route the request.
 

8. Control application behavior. For details, see the Application Behavior section in the Implementing Order
Management book.

Task Topic Prepare

Manage Order Management Parameters Manage Order Management Parameters _____ Determined whether our business
    requirements will allow or disallow
the Congurator to choose items
in a conguration and to modify a
conguration after the user adds a
congured item.
 
_____ Determined the date that
Order Management must use when it
determines the congure options that it
displays for a congured item.
 
_____ Determined how Order
Management will display the Ship-to
Address and the Bill-to Location for each
customer during order entry.
 
_____ Determined whether the
Congurator stops processing when it
encounters an error.
 
_____ Identied the item validation
organization that Order Management
must use to validate and display items.
 
_____ Identied an Order Management
user that the buyer can contact to resolve
a problem that occurs with a drop ship.
 
_____ Determined whether the
Congurator validates each order that
includes a congured item during order
import.

37
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Task Topic Prepare

Manage Order Proles Manage Order Proles _____ Identied the value to use when
    converting a currency.
 
_____ Identied the currency to display in
the Order Management work area.
 
_____ Identied the customer to use
when ltering status data on the
Overview page.
 
_____ Determined whether use the
source order number as the order
number during transformation.
 
_____ Determined the number of seconds
to wait after an action nishes.
 

9. Administer pricing. For details, see the book titled Oracle SCM Cloud, Administering Pricing.
10. Import source orders. If you use a source system, then you must import source orders. For details, see the
Import section in the Implementing Order Management guide.

Task Topic Prepare

Not applicable Import Orders into Order Management ____ Acquired access to our source order
    data.
 
____ Identied a tool we can use to
manipulate source order data, such as
SQL (Structured Query Language), or ODI
(Oracle Data Integrator).
 

Create Source System Use Web Services to Import Source ____ Determined whether we will use the
  Orders product model or the product hub.
Manage Upstream and Fulllment Source    
Systems ____ Identied the aributes we will use
  in the Request Payload.
Manage Standard Lookups  
 
Manage Item Relationships
 

11. Transform source orders. If you use a source system, then you must transform source orders. For details, see
the Transform section in the Implementing Order Management book.

Task Topic Prepare

Manage Product Transformation Rules Set Up Transformation ____ Acquired user and password we
    need to sign into the Product Information
Management work area.
 

38
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Task Topic Prepare

Manage Product Transformation Rules Create Transformation Rules ____ Described the structure of the
    source order data.
 
____ Identied the type of transformation
that must occur so Order Management
can support our source data.
 
____ Described requirements for
pretransformation rules.
 
____ Described requirements for
transformation rules.
 
____ Described requirements for
posransformation rules.
 

Manage Product Transformation Rules Create Advanced Product ____ Described requirements for
  Transformation Rules advanced posransformation rules, if
  necessary.
 

12. Set up statuses. For details, see the Sales Order Status section in the Implementing Order Management book.

Task Topic Prepare

Manage Task Status Conditions Manage Task Status Conditions ____ Described our requirements
    for managing the statuses that our
fulllment systems provide.
 

Manage Status Values Set Up Fulllment Lines Statuses ____ Described our requirements
    for managing the statuses for each
Manage Orchestration Process Add Status Conditions to Fulllment fulllment line.
Denitions Lines  
   

Manage Status Values Create Orchestration Process Classes ____ Described our requirements for
    grouping orchestration process statuses
so they're meaningful.
 

Manage Orchestration Process Add Status Conditions to Orchestration ____ Described our requirements
Denitions Processes that specify when to set statuses for
    orchestration processes.
 

13. Set up processing constraints. For details, see the Constrain Sales Orders section in the Implementing Order
Management book.

Task Topic Prepare

Manage Processing Constraints Manage Processing Constraints ____ Described requirements regarding
    who can change a sales order, what can

39
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Task Topic Prepare

change in the sales order, and when the


change can occur.
 

Manage Constraint Entities Constrain Changes to Aributes ____ Described requirements regarding
    the order aributes that can change.
 

14. Control change orders. For details, see the Change Orders section in the Implementing Order Management
book.

Task Topic Prepare

Manage Order Aributes That Identify Manage Order Aributes That Identify ____ Described our requirements
Change Change regarding what changes Order
    Management will allow on an existing
sales order, and when it allows the
change, including order aributes, users,
and timing.
 

Manage Orchestration Process Measure the Cost of Change ____ Estimated the business cost
Denitions   associated with each change.
   

Manage Orchestration Process Compensate Sales Orders That Change ____ Described our requirements
Denitions   regarding the order compensation we will
  allow Order Management to do.
 

15. Notify systems when orders change. For details, see the Notify Systems section in the Implementing Order
Management book.

Task Topic Prepare

Manage Business Event Trigger Points Send Notications from Order ____ Described our requirements
  Management to External Systems regarding when Order Management must
  notify external systems that a sales order
changed.
 

16. Use jeopardy to manage delays. For details, see Delays section in the Implementing Order Management book.

Task Topic Prepare

Manage Jeopardy Priorities Set Up Jeopardy and Lead Time to ____ Described our requirements
  Manage Delay regarding when Order Management
Manage Orchestration Process   must notify an order manager that a
Denitions sales order is in jeopardy, including the
  threshold when to notify for each step in
Manage Jeopardy Thresholds an orchestration process.
   

40
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Task Topic Prepare

____ Described requirements regarding


the amount of lead time that Order
Management must use to nish each
orchestration process step.
 

17. Manage task types. For details, see the Task Types section in the Implementing Order Management book.

Task Topic Prepare

Manage Task Types Set Up Task Types ____ Described our requirements
    regarding seing up task types.
 

18. Set up exelds. For details, see the Flexelds section in the Implementing Order Management book.

Task Topic Prepare

Manage Order Extensible Flexelds Deploy Extensible Flexelds in Order ____ Described our requirements
  Management regarding what details we must display in
  elds, including the data and location in
the user interface.
 

19. Set up orchestration processes. For details, see the Orchestration Processes chapter in the Implementing Order
Management book.

Task Topic Prepare

Manage Orchestration Process Guidelines for Seing Up Orchestration ____ Conrmed that the predened
Denitions Processes orchestration processes don't meet our
    requirements.
 
____ Identied conguration details
for each orchestration process that we
must create, such as task type to use,
change logic, process planning, jeopardy,
statuses, and so on.
 

Manage Orchestration Process Set Up Orchestration Processes ____ Described the IF/THEN rules that we
Denitions   need for each orchestration process.
   
____ Described orchestration planning
and replanning that we need for each
orchestration process.
 
____ Specied the behavior that we need
for each orchestration process step, such
as the task type to use, the service to call,
lead-times, and so on.
 

41
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Task Topic Prepare

____ Created a owchart mock-up for


each orchestration process.
 

Manage Orchestration Process Deploy Orchestration Processes Not applicable.


Denitions    
 

Manage Orchestration Process Set Up Lead-Times for Orchestration ____ Described the IF/THEN rules and
Denitions Process Steps conditions that determine the lead-time
    to use for each orchestration process
step.
 

Manage Orchestration Process Select the Fulllment Lines That Run for ____ Described the IF/THEN rules that
Denitions Orchestration Process Steps select the fulllment line to run for each
    orchestration process step.
 

Manage Orchestration Process Add Branches to Orchestration Processes ____ Specied subprocesses and parallel
Denitions   processing that our orchestration process
  requires.
 

Manage Orchestration Process Pause Orchestration Processes ____ Specied the IF/Then rules that
Denitions   Order Management must use when
  it pauses each of our orchestration
processes and each orchestration
process step.
 

Manage Orchestration Process Assign Orchestration Processes ____ Specied the IF/Then rules that
Assignment Rules   Order Management must use when
  it assigns each of our orchestration
processes and each orchestration
process step.
 

Not applicable Automatically Resume Paused ____ Identied the pause tasks we will
  Orchestration Processes release to resume a paused orchestration
  process.
 

Related Topics
• Overview of Order Management Cloud

Guidelines for Seing Up Order-to-Cash


Identify the features you must set up to support the order-to-cash ow in your business environment, then estimate the
eort required to set them up.

42
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Consider Features You Must Set Up


Do the preparation described in the Roadmap to Implementing Order-to-Cash topic. This preparation will provide a
solid understanding of the features you must implement, and the set up involved.

Estimate Eort Required to Set Up Features


Create a rough estimate of the amount of eort your set up will require. A predened feature usually needs less set up
than a feature that isn't predened. For example, if you need the congurator and order import, then include the setup
eort for them in your project plans, and consider whether you must administer job roles to support them.

Feature Comes Predened Setup Required

Dashboard Yes No
     

Create Order Yes Yes


     

Revise Order Yes No


     

Return Order Yes Yes


     

Search and View Orders Yes No


     

Congurator No Yes
     

Order Import No Yes


     

Order Transformation No Yes


     

Order Status No Yes


     

Constraints No Yes
     

Change Order No Yes


     

Notications No Yes
     

Jeopardy No Yes
     

Flexeld No Yes
     

Orchestration Process No Yes


     

43
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Feature Comes Predened Setup Required

Process Orders from Trading Partners No Yes


     

Advanced Shipment Notice No Yes


     

Collaboration Messaging Framework No Yes


     

Approve Sales Orders No Yes


     

Screen Orders for Trade Compliance No Yes


     

Integrate Order Management with No Yes


Transportation Management    
 

Credit Check No Yes


     

Credit Cards Yes No


     

Internal Sales Orders Yes No


     

Aachments No Yes
     

Modify the Predened Oering or Set Up a New One


Modify the Predened Oering

Order Management comes predened with most setup tasks already done for you, but you can modify the predened
oering.

1. In the Navigator, click Setup and Maintenance.


2. In the Setup and Maintenance work area, go to the oering.

◦ Oering: Order Management


3. Notice the functional areas that display above functional area Orders, such as Initial Users, Enterprise Prole,
and so on. These areas are common areas. For details about how to set them up, see the Oracle SCM Cloud,
Implementing Common Features for Oracle SCM Cloud book.
4. In the Functional Areas list, click Orders.
5. In the Orders area, click Required Tasks > All Tasks.
6. In the Orders list, drill into and nish each task as necessary, depending on your business requirements.

If you nd that modifying the predened oering doesn't meet your business requirements, then create a new
implementation.
Create a New Implementation Project

44
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

If the predened oering doesn't meet your business requirements for some reason, then create a new implementation
project.
1. In the Navigator, click Setup and Maintenance.
2. On the Setup page, click Tasks > Edit Implementation Projects.
3. On the Implementation Projects page, click Actions > Create.
4. On the Create Implementation Project page, modify the aribute values, as necessary, then click Next.
5. On the Select Oerings to Implement page, in the Name list, expand Order Management.
6. In the Order Management row, and in the Pricing row, enable the Include option, then click Save and Open
Project.
You can create one or more implementation projects for the oerings and options. Each Oracle application
creates the task list you must nish for each project you create. An Application Implementation Manager can
set up these task lists, and assign and track each task that these lists contain.
7. On the Implementation Project page, in the Task list, expand Order Management, then do the tasks that your
business ow requires.

Consider Which Scheduled Processes You Must Run

Scheduled Process Description Help Topic

Perform Data Load from Staging Tables You collect organization parameters from Collect Data section in the Quick Start for
  your source system and load them into Seing Up Order-to-Cash topic
staging tables. You use Perform Data Load  
from Staging Tables to process data in
these tables.
 

Refresh and Start the Order Promising Updates the Global Order Promising data. Set Up Global Order Promising section in
Server   the Quick Start for Seing Up Order-to-
  Cash topic
 

Load Interface File for Import Use these scheduled processes when you Import Orders into Order Management
  import source orders.  
Import Sales Order  
 
Delete Orders From Interface Tables
 

Transfer Invoice Details to Supply Chain Send details about validated invoices, Specify Events That Indicate an Ownership
Financial Flow Orchestration canceled invoices, and corrected invoices Change
  to Financial Orchestration.  
Transfer Ownership Change Events to  
Receiving Send details about the AP Invoice Match
  from Financial Orchestration to the
receiving process.
 

Update or Close Sales Orders Order Management might display sales Close Fulllment Lines That Remain Open
  orders and fulllment lines as open even  
if it closed all fulllment lines that these
orders and lines reference. You can use
Update or Close Sales Orders to x this
problem.
 

Generate Constraint Packages Constrain changes your users can make. Manage Processing Constraints

45
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Scheduled Process Description Help Topic

     

Publish Extensible Flexeld Aributes Publish and deploy an extensible exeld. Deploy Extensible Flexelds in Order
    Management
 

Plan Orchestration Processes Update an orchestration process plan Set Up Orchestration Processes
  at regular intervals according to the  
frequency that your deployment requires.
 

Release Pause Tasks Release a pause task so processing can Pause Orchestration Processes Until an
  continue. Event Occurs
   
Automatically Resume Paused
Orchestration Processes
 

Generate Bucket Sets Automatically keep bucket sets up to date Use Decision Tables and Bucket Sets in
  with reference data and transactional data. Business Rules
   

Import AutoInvoice Import and validate transaction data from AutoInvoice Import: How Data Is
  Order Management or nancial systems Processed
that reside outside of Oracle to create  
invoices, debit memos, credit memos,
and account credits in Oracle Fusion
Receivables.
 

Consider How Processing Constraints Aect Your Setup


Order Management comes predened with a variety of processing constraints that limit the changes you can make
to aributes or what you can do in the Order Management work area. Examine them to make sure they won't cause
problems with your custom set ups. For example, you can't write an order management extension that updates a
fulllment line after Order Management already interfaced the line to billing.

Here are a few more examples of predened constraints that might aect your custom set up.

Constraint Description

Ordered Date Update Prevent updates to the Ordered Date aribute on the order header.
   

Order Line Deletion Prevent deleting an order line.


   

Fulllment Line Bill-to Customer Prevent updates to the Bill-to Customer aribute on the fulllment line.
Update  
 

Payment Terms Are Missing Prevent submiing a fulllment line when the line doesn't have payment terms.
   

46
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

There are many predened constraints, but you can lter them to reduce the ones you must examine.
1. In the Setup and Maintenance work area, go to the task.

◦ Oering: Order Management


◦ Functional Area: Orders
◦ Task: Manage Processing Constraints
2. On the Manage Processing Constraints page, use Query by Example to lter the constraint entity. For example,
if your set up aects something that happens.

◦ On the order header before the user clicks Submit, set the lter for Constraint Entity to Order Header.
◦ On the order line before the user clicks Submit, set the lter for Constraint Entity to Order Line.
◦ After the user clicks Submit, set the lter for Constraint Entity to Order Fulllment Line.
3. Rene the search results. Use Query by Example to lter the constrained operation. For example, if your set up.

◦ Updates the value of an aribute, set the lter for Constrained Operation to Update.
◦ Deletes something, set the lter for Constrained Operation to Delete.
4. Rene the search results. If you know the name of the aribute that your set up manipulates, use Query by
Example to lter for it. For example, if your set up updates the value of the Ship-to Customer on the fulllment
line, then.

◦ Set the lter for Constraint Entity to Order Fulllment Line.


◦ Set the lter for Constrained Operation to Update.
◦ Set the lter for the Aribute Name to Ship-to Customer.
5. In the Details area, examine the conditions to determine whether one of them applies to the behavior you're
encountering.
Assume you create an order management extension that updates the Bill-to Customer aribute on the
fulllment line when the status is Awaiting Billing. At run time you encounter an error that prevents you from
updating the line. You decide to examine the constraints.

◦ Set the lter for Constraint Entity to Order Fulllment Line.


◦ Set the lter for Constrained Operation to Update.
◦ Set the lter for the Aribute Name to Bill-to Customer.

The Message aribute in the Details area describes that you can't update the Bill-to Customer because Order
Management already fullled the fulllment line.

Quick Start for Seing Up Order-to-Cash


Do the minimum steps needed to set up Order Management Cloud when you don't use all the tasks that are available in
the Order Management oering, such as seing up a test instance of Order Management.
Caution: This topic doesn't include all the steps and security tasks that are required to fully set up Order
Management. It includes only the steps needed so you can receive and fulll test orders.

For details about how to use the predened set up, see the Guidelines for Seing Up Order-to-Cash topic.

47
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Summary of the Steps

1. Prepare.
2. Set up common components.
3. Set up item organizations and product models, and import items.
4. Connect source systems and set up customers.
5. Collect data.
6. Set up Global Order Promising.
7. Set up Order Management and Pricing, and test your set up.

Prepare
1. Consider the data you will use in your test environment.

For example.

◦ Items you will add to a sales order


◦ Customers who will order the items
◦ Item Organization you will use as the source to fulll each item
◦ Units of measure (UOM) you will use
◦ Currency you will use in each sales order
◦ Users who will create sales orders

As part of planning your test, create a list for each of these data, such as a list of items, list of customers, and so
on. You can then use these details later during set up.
2. Get the URLs, User IDs, and passwords you need to access Order Management Cloud and other applications,
such as Oracle Identity Manager, Oracle Authorization Policy Manager, Security Console, and Oracle Cloud
Applications.

Get these details from the Oracle provisioning team.


3. Get the location of the Oracle home directory in the Oracle Identity Management environment.

Here's the format that the location uses.

IDM_ORACLE_HOME

For example, here's the URL for Oracle Cloud Applications.

http://host/homePage/faces/AtkHomePageWelcome

where:

host is the name of the host location, such as abc.yourCompanyName.com.

For example.

http://abc.yourCompanyName.com/homePage/faces/AtkHomePageWelcome

If you don't know the URLs, contact the person who installed the systems at your company. The summary page
displays URLs when the provisioning process that Oracle Cloud Applications uses nishes.

48
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

The default le name of the le that stores these URLs is Provisioning Summary. The person who installs the
software can choose a dierent le name. This le resides in the same folder where the provisioning plan
resides.

Here are the formats that your URLs will resemble.

Authorization Policy Manager Oracle Identity Manager

https://host/apm https://host/oim

4. Get the user name and password for each user. Contact the person who installed the systems to get the user
names and passwords they used or specied when they installed and provisioned the application.

User Description

Super user for Oracle Cloud The default user name is FAADMIN.
Applications  
 

System administrator for the Not applicable.


Security Console  
 

System administrator for Oracle The default system administrator is XELSYSADM.


Identity Manager  
 

5. Identify details for your test orders.

◦ Identify the items that the test orders will contain and the customers who will order them.
◦ Identify the item organizations that you will associate with these items.
◦ Identify the units of measure (UOMs) and currencies that these test orders will use.

Security Tasks You Might Need to Do

Authorization Policy Manager Oracle Identity Manager

Do one or more tasks. Do one or more tasks.

• Manage Duties • Import Users


• Manage Data Security Policies • Create Implementation Users
• Manage Role Templates • Provision Roles to Implementation Users
• Manage job to duty role • Manage Job Roles
hierarchies • Manage User Principal

Here are the tasks you can do in the Setup and Maintenance work area after you acquire the super user.

• Manage Role Templates

49
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

• Manage Job Roles

Set Up Common Components


Do the implementation steps that are common to an Oracle application. For details, search for Document ID 1387777.1
(Geing Started with Oracle Fusion Applications, Common Implementation) on My Oracle Support at hps://
support.oracle.com, then see the table that the step mentions. For example, for step 1, see Table 1 in Geing Started with
Oracle Fusion Applications.

1. Prepare the super user for user management and conguration.


2. Prepare the IT Security Manager Role.
3. Create the setup task list for the Order Management oering.

This oering includes the tasks you must do.

A large task list displays when you create the list for the Order Management oering. Make sure you do step 5,
Set Up Enterprise Structures. Also do step 3, Set up Item Organizations, through step 10, Set up Pricing, then
create or import orders.
4. Set up implementation users.

Do the set up described in Document ID 1387777.1. Also, assign roles to users.

Role Description

Pricing Administrator- All Business Use this role you to administer pricing. Add it when you do the Set up Pricing task.
Units, which is QP_ PRICING_  
ADMINISTRATOR_ ALL_ BUSINESS_
UNITS_DATA
 

Product Manager, which is EGP_ Use this role to set up organizations and items so you can add items to your sales orders.
PRODUCT_ MANAGER_JOB  
 

You might need to use Authorization Policy Manager to modify data security for these roles. For details, see
these topics.

◦ Data Security Privileges for Creating Items: Explained


◦ Adding Data Security Policies to Duty Roles in Authorization Policy Manager: Procedure
5. Set up the enterprise structure.

◦ Use the default enterprise structure for a pilot set up.


◦The Order Management work area displays sales orders for the business units that the current user can
access. You must create a separate business unit for each business unit that will receive sales orders.
◦ A set is a collection of business units. Order Management uses sets to restrict access to holds and
orchestration processes. You must specify a default set when you create a business unit. You can use the
predened Common Set for the default set.
6. Set up users who will do functional testing.

An implementation user can access a wide range of privileges. To test with users who have fewer privileges, set
up users with roles that are specic to Order Management.

50
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Role Name

Job Order Entry Specialist


   

Job Order Manager


   

Job Order Administrator


   

Job Supply Chain Application Administrator


   

Abstract Error Recovery


   

Examine how these roles implement security. Create at least one user for each of these roles.

◦ Only the Order Manager role


◦ The Order Manager role and the Error Recovery role
◦ The Order Administrator role and the Supply Chain Application Administrator role

The Supply Chain Application Administrator role provides the Order Administrator role.

For details about job roles, see the Job Roles in Order Management topic.

Set Up Organizations and Product Models, and Import Items


1. Set up item organizations.

◦ In the Setup and Maintenance work area, go to the task.

• Oering: Order Management


• Functional Area: Organization Structures
• Task: Manage Item Organizations
◦ On the Manage Item Organizations page, set up your item organizations so the Oracle Product Model can
use them.

• You need at least one organization that represents a warehouse where your implementation can
collect the supply data it uses to fulll each order.
• You must set up each warehouse from a fulllment system as an item organization in Oracle.
• You must not associate an item organization with a business unit.

For details, see these topics.

• Item Organization
• Item Master Organization

51
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

2. Set up your units of measure.

◦ In the Setup and Maintenance work area, go to the task.

• Oering: Order Management


• Functional Area: Items
• Task: Manage Units of Measure
◦ Use the Manage Units of Measure page to set up your Units of Measure so the Product Information
Management work area can use them.

For details, see topic How Units of Measure, Unit of Measure Classes, and Base Units of Measure Relate
to Each Other.
◦ Set up Product Information Management.

Product Information Management must contain the items that each test order references. For details,
see the Dene Product Information Management section in the Using Product Master Data Management
book.
3. Dene item classes, items, and catalogs according to your test requirements.
4. Optional. Use an order import template to import the items that your test orders will reference. Transform
orders, as necessary.

For details, see these references.

◦ The Import and Transform chapter in the Implementing Order Management book.
◦ The Item Imports topic.
◦ The Dene Product Information Management section in the Using Product Master Data Management
book.

Connect Source Systems and Set Up Customers


1. Optional. Set up and connect the source system.

Here's when you must set up and connect the source system.

◦ You plan to use a source system. For details, see the Integrate Order Management with Source Systems
topic.
◦ You plan to import customer data from a source system.
◦ You plan to use cross-references. For details, see the Cross-References in Order Management topic.

If you will use only the Order Management work area to create sales orders, then you don't need to set up a
source system.
2. Optional. Import customers.

◦ In the Setup and Maintenance work area, go to the task.

• Oering: Order Management


• Functional Area: Customers
• Task: Import Person and Organization
◦ On the Manage Data Import Batches page, click Actions > Create to create an import batch.
◦ Use an Extract, Transform, and Load tool to load your data into the interface tables.

52
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

You can use this import process to import a batch from the interface tables into Trading Community
Architecture. The batch you import must include the customers your orders will reference. For details, see
topics Dening the Import Process for Customers and Consumers: Points to Consider, and Dening the Import
Process for Customers and Consumers: Worked Example.
Get Customer Details when Not Integrating or Importing

If you don't integrate with a source system or fulllment system, or if you don't import customers, then create
customers in one of these ways.
• Create them in Oracle Fusion Financials.
◦ In the Setup and Maintenance work area, go to the task.
• Oering: Financials
• Functional Area: Customers
• Task: Create Customer
For details, click the help icon on the Create Organization Customer page. Also, see the user book for
Oracle Trading Community Architecture.
• Synchronize them in Trading Community Architecture. If the customer and customer entities that Order
Management needs to fulll the sales order don't exist, then Trading Community Architecture synchronizes the
customer master with customer details from the sales order. Important details include sold-to party, ship-to
party, and bill-to account.

Collect Data and Set Up Global Order Promising


For details, see the Collect Data and Set Up Global Order Promising section in Implementing Order Management.

Set up Order Management and Pricing, and Test Your Set Up


You must set up connections to order capture systems and fulllment systems, then deploy the predened data that
species how Order Management fullls each order.
1. Set up order management parameters according to your testing requirements.
For details, see the Manage Order Management Parameters topic.
2. Do the minimum setup tasks that a test environment requires.
◦ In the Setup and Maintenance work area, go to the functional area.
• Oering: Order Management
• Functional Area: Orders
◦ Do the setup tasks.

Task Description

Manage Order Proles


  Set up values for these prole options.

• Display Currency
• Currency Conversion Type

For details, see the Set Orchestration Prole Options topic.

53
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Task Description

Manage Orchestration Process


Denitions Set up and deploy these predened orchestration processes.
 
• ShipOrderGenericProcess
• ReturnOrderGenericProcess

For details, see the Seing Up Orchestration Processes topic.

For a complete list of tasks, see the Roadmap to Seing Up Order-to-Cash topic.
3. Deploy the required processing constraints.

◦ In the Setup and Maintenance work area, go to the task.

• Oering: Order Management


• Functional Area: Orders
• Task: Manage Processing Constraints
◦ On the Manage Processing Constraints, search for the constraint, then verify that the Enabled aribute
for it contains a check mark.

Aribute Value

Constraint Name UPDATE SHIPPING REQUEST VALIDATION


   
You must deploy this constraint.
 

The validation rule sets in this constraint prevent Order Management from aempting to update the
validation for each shipping request when certain conditions are true.

Validation Rule Set Makes Sure That

Ordered Quantity Isn't Zero The ordered quantity on the fulllment line isn't zero. If its zero, then the line is in
  Canceled status and we don't want to process it.
 

Update Shipping Request Data validation doesn't fail for the Update Shipping fulllment service because the ow
Validation doesn't provide values for all the required aributes.
   

Fulllment Organization ID Is Null The Warehouse aribute on the fulllment line contains a value. Order Management
  uses the Warehouse aribute to populate the fulllment organization ID.
 

Fulll Line Request Dates are Null The requested ship date or the requested arrival date on the fulllment line contains
  a value. We can't calculate shipping dates if we don't have a value in one of these
aributes.
 

Scheduled Ship Date on the The scheduled ship date on the fulllment line contains a value. We can't calculate
Fulllment Line Is Empty shipping dates if we don't have a value in this aribute.

54
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Validation Rule Set Makes Sure That

   

◦ Enable or add other constraints to meet your needs, as necessary. For details, see the Manage Processing
Constraints topic.
◦ Click Generate Packages.

This action deploys all enabled constraints into your implementation.


4. Optional. Set up the orchestration that your test environment requires.

◦ Set up and deploy orchestration processes.


◦ Set up status codes.
◦ Manage change orders.
◦ Set up jeopardy and planning.
◦ Release and deploy orchestration processes.
◦ Create processing constraints.

For details, see the chapters that describe controlling order processing and seing up orchestration processes
in the Implementing Order Management book.
5. Set up pricing.

If you use Order Management to create sales orders, and don't import them or integrate to a source system
that contains price details, then you must set up pricing. Order Management requires details about pricing
entities, such as the pricing strategy, to determine price for each item that you add to the sales order.

You can't submit a sales order in Order Management without the price. For details about how to set up pricing,
see the Oracle SCM Cloud, Administering Pricing book.

In addition, it might be necessary to do this.

◦ Set up the Item Validation Organization order management parameter.


◦Get access to pricing_mgr_operations, which is the job role you need to administer pricing segments,
pricing strategies, price lists, and so on.
6. Test your set up.

◦ Use a tool of your choice, such as SOAP (Simple Object Access Protocol), to simulate sending a test order.
Note the order number.
◦ In the Order Management work area, use the order number to search for the order.
◦ Conrm that Order Management received the order and is processing it.

Seing Up Other Features

Feature Description

Drop Ship The set up for drop ship depends on your business requirements. For details, see the Drop
  Ship section in the Implementing Order Management book.
 

55
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Feature Description

Internal Material Transfer Internal Material Transfers comes predened as available. The predened job roles include this
  feature. No setup is required except that an option in Supply Chain Orchestration determines
whether inventory routes the transfer order to Order Management. For details, see Supply
Chain Orchestration: Overview
 

Back-to-Back Shipping
  Back-to-back shipping can create supply only after Order Management successfully submits
the sales order to order fulllment. Back-to-back shipping can then create supply in these
ways.

• Procure supply from a supplier that resides outside of your organization.


• Produce or assemble supply at an in-house manufacturing location.
• Transfer material from another warehouse.
• Reserve on-hand supply.

The fulllment warehouse receives the supply, then back-to-back shipping ships it to the
customer.

For details, see Back-to-Back Fulllment: Overview.

Congure to Order
  Use Congure to Order to eciently fulll each congured item. Here are the order
management parameters you can set to control the congurator.

• Allow Changes Through Congurator Validation


• Conguration Eective Date
• Halt Congurator Validation on First Error
• Use Congurator for Order Import Validation

You can also use Congure to Order to set up a kit. A kit is a congured item that includes one
or more congure options, but the Order Management work area doesn't allow the Order Entry
Specialist to modify the congure options of a kit.

• You set the subtype for a kit to KIT-SMC when you set up the conguration model.
• Order Management sends the shippable lines of a kit as a shipment set to Global Order
Promising.
• The Order Management work area doesn't display values for On Hand and Item
Availability for kits because Global Order Promising doesn't support the quick
availability check feature for kits.

For details, see these resources.

• Congurator Modeling Guide


• Manage Order Management Parameters topic

Integrate Order Management with


Upstream Source Systems You use a le or web service to import source orders from a source system. For details, see
  these sections in the Implementing Order Management book.

• Import
• Web Services
• Upstream Source Systems

56
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Feature Description

Integrate Order Management with Use a web service to allow Order Management to communicate with a fulllment system. Use
Downstream Fulllment Systems a predened web service or create a new one. For details, see the Downstream Fulllment
  Systems section of the Implementing Order Management book.
 

Related Topics
• How the Order Orchestration and Order Promising Processes Use the Collected Planning Data
• Overview of Security Console
• How Units of Measure, Unit of Measure Classes, and Base Units of Measure Relate to Each Other

Details
Overview of Implementing Order Management Cloud
Get started with your Order Management Cloud implementation. Sign in with the Application Implementation
Consultant role (ORA_ASM_APPLICATION_IMPLEMENTATION_CONSULTANT_JOB), then opt into the oerings that
meet your business requirements.
For details about how to manage the opt-in and set up oerings, see the Oracle Applications Cloud Using Functional
Setup Manager book on My Oracle Support.

Order Management Cloud Oering


Use the Order Management Cloud oering to automate order fulllment and process your sales orders so they're
timely, complete, and accurate.
Here's the functional areas you can use with the oering.

Functional Area Description

Orders Do a wide variety of set up tasks for Order Management, from managing how you import your
  source orders, transforming source orders, integration, application behavior, business rules,
orchestration, and so on.
 

Pricing Set up pricing for Order Management. For example, dene pricing parameters, totals,
  elements, bases, messages, matrix types, lookups, and so on.
 

To get the complete list of functional areas and features, use the Associated Features report when you plan your
implementation.
Upgrade or Update
To upgrade or update your release, go to Performing Your Quarterly Update (Doc ID 2337485.1) on My Oracle Support
to get important details.

Related Topics
• Plan Your Implementation

57
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

• Overview of Functional Setup Manager

Opt In To Features in Order Management


Get details about features you can enable or disable according to your business requirements.
For details about how to opt in to features, see the Congure Oerings topic.

Feature Description Detail

Maintain Common Reference Objects Support common functionality, such as Overview of Common Reference Objects
  data security, reference data sets, and topic
other preferences. Leave this feature  
enabled for most deployments.
 

Governance, Risk, and Compliance Manage governance, risk, and compliance Governance, Risk, and Compliance
  across processes and systems. Management at hp://www. oracle. com/
  us/ solutions/ corporate-governance/
018760htm
 

Local Installation of Help Write your own help. Dene Help Conguration section in
    Implementing Common Features for SCM.
 

Transformation Rules Transform source orders that you create Transformation Rules topic
  in Order Management or that you import  
from a source system to optimize order
fulllment.
 
For most implementations, leave this
feature enabled.
 

Order Holds Allow the Order Entry Specialist to place a Manage Hold Codes topic
  hold on a sales order.  
 
For most implementations, leave this
feature enabled.
 

Drop Ship Leave this feature disabled unless you Implementing Drop Ship section in
  implement drop ship. Implementing Order Management book
   

Enterprise Structures Guided Flow Leave this feature disabled unless you Dene Enterprise Structures chapter in
  implement enterprise structures. Implementing Common Features for SCM
   

Application Toolkit Component Leave this feature disabled unless you Dene Application Toolkit Conguration
Maintenance use Application Toolkit to modify various chapter in Implementing Common
  components, such as application help, Features for SCM
reports and analytics, the Watchlist, and so  
on.
 

Click to Dial Use Click to Dial to place a call to a contact Not applicable
  from a hyperlink on the phone number or  
phone icon.

58
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Feature Description Detail

Enterprise Scheduler Job Denitions and Leave disabled unless you run scheduled Dene Custom Enterprise Scheduler
Job Sets processes according to Oracle Enterprise Jobs chapter in Implementing Common
  Scheduler Services. Features for SCM
   

Enable Custom Payloads for Downstream Use view objects to integrate with Integrate Order Management with Other
Integration systems that reside downstream of Order Oracle Applications topic
  Management.  
 

Specify Business Unit for Selling Prot Set the selling prot center on a sales Set Business Units for Selling Prot
Center for Goods and Services Tax order line that's dierent from the Centers topic
  business unit on the order header.  
 

Enable Coverage and Subscription Include coverage items and subscription Set Up Coverage for Sales Orders topic
  items in sales orders.  
 

Update Selected Lines in Sales Order Allow the Order Entry Specialist to select Update More Than One Order Line topic
  one or more order lines in a sales order,  
specify the aributes and values to
update, then update all selected lines.
 
You must make sure the role that your
users use, such as Order Entry Specialist,
contains the privilege Update Selected
Lines on Sales Orders.
 

Return Items or Cancel Services Without a Allow the Order Entry Specialist to return Allow Users to Return Items Without
Reference Order an item without specifying the sales order Original Sales Orders topic
  that originally ordered the item.  
 

Enable or disable other features.

Feature Description Details

Pricing Use the set up in the Pricing Administering Pricing book on Oracle Help
  Administration work area to price items Center
in Order Management. Leave this feature  
enabled unless you plan to use some
other way to price your sales orders.
 

Order Management Business Intelligence Enable analytic reporting in the Order Use Reports and Analytics with Order
Analytics Management work area. Leave this Management topic
  feature enabled.  
 

Related Topics
• Plan Your Implementation

59
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

• Overview of Common Reference Objects


• Congure Oerings

Identify Hosts and Ports for Order Management


Identify the hosts and ports that Order Management Cloud uses to communicate data. You use these details during
setup and maintenance.
1. In the Navigator, click Setup and Maintenance.
2. On the Setup page, click Tasks > Review Topology.
3. On the Review Topology page, click Detailed.
4. Get details for your service oriented architecture (SOA).
◦ Expand SCMDomain.
◦ In the SCM-SOA row, examine the values for External Server Host and External Server Port.
5. Get details for services you can use with Oracle Fusion Applications.
◦ Expand FADomain, then examine values.

Name Values

FSCMServices Host and port for ADF services (Oracle Application Development Framework).
   

FASOA Host and port for SOA services.


   

◦ In the SCM-SOA row, examine the values for External Server Host and External Server Port.

Collect Planning Data for Order Management


Collect planning data at various points of your set up process, and also after you nish set up.
Global Order Promising promises orders that it receives from Order Management Cloud. It uses data from your supply
chain network and supplies that you collect. You set up rules in Promising that specify how to plan and promise.

You collect data into the Global Order Promising repository. The repository also stores setups that you make in the
Global Order Promising work area, such as rules for sourcing, available-to-promise, and supply allocation. Promising
and sourcing work together to determine what to deliver to your customer within the time frame that the sales order
requests.

Collect Setup Data


Collect your set ups from various Oracle Fusion applications into Global Order Promising. Collect organizations, items,
structures, routings, suppliers, transit times, and so on. For example, collect the catalog you assign on you item in
Product Information Management so you can use it in an available-to-promise rule in Global Order Promising.

You must collect data several times during setup. Collect each time you.
• Create or modify an item.
• Modify the item, item structure, catalog, or work denition.
• Set up a new item in the Product Information Management work area.

For details, see the Overview of Data Collections for Supply Chain Planning topic.

60
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Try it.

1. In the Navigator, click Plan Inputs.

Don't use the Plan Inputs task that's available in the Setup and Maintenance work area. Use the Plan Inputs
work area instead.
2. In the Plan Inputs work area, click Tasks > Collect Planning Data.
3. In the Collect Planning Data dialog, set the value.

Templates are available, such as Static Data for Supply Planning. For this set up, do the steps instead so you
can more clearly visualize the ow.

Aribute Value

Source System GPR


   
Your source system will be dierent.
 

Collection Type Automatic Selection


   
This value gives the server the choice. If targeted collections haven't run, you don't get an
error.
 

4. On the Reference Data tab, move entities from the Supply Entities list to the Selected Entities list.

Aribute Value

Items You must include this entity for each item.


   

Work Denitions You must include this entity for a make ow. If you don't, then Global Order Promising won't
  provide a recommendation for the make ow, and Supply Orchestration won't create a
supply order.
 
Order Management still processes the order but fulllment won't benet from the
recommendation and supply order.
 

Collect Data From Source Systems


Order Management uses units of measure, currency, and currency conversions from the Order Orchestration and
Planning Data repository. You must collect data for these entities so your set up can receive source orders. Sourcing
rules in Global Order Promising reference the Organization Parameter entity. You must collect organization parameters
before you set up your sourcing rules.

1. Collect data from your source system.

◦ In the Setup and Maintenance work area, go to the task.

• Oering: Supply Chain Planning


• Functional Area: Supply Chain Planning Conguration
• Task: Manage Planning Source Systems

61
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

◦ On the Manage Planning Source Systems page, in the Source Systems list, locate your Oracle system,
then set values.

Aribute Value

Version Fusion
   

Collections Allowed Contains a check mark


   

Order Orchestration Type Order Orchestration


   

Enable Data Cross-Reference Contains a check mark


   

◦ Set values for each system that your set up must integrate, such as an order capture system or fulllment
system.

Aribute Value

Version Others
   

Collections Allowed Contains a check mark


   

Enable Data Cross-Reference Contains a check mark


   

For details, see the Manage Planning Source Systems for Data Collections topic.
2. Cross-reference data for your currencies and units of measure. Use the Manage Planning Source Systems
page.

For details, see the How You Collect Dierent Data Types for Supply Chain Planning topic.
3. Collect organization parameters from your source system.

To identify your organization, the collected data concatenates the source system to the organization ID. Other
entities, such as Sourcing Rules, also use this identication.
4. Collect units of measure, currencies, and currency conversions from your order capture system.

◦ Order Management validates the units measures and currencies against data that it already collected
from your order capture system when it receives source orders from this system.
◦ You must collect calendars from your fulllment system so Order Management can use them during
scheduling. A calendar species when a facility, such as a warehouse, is open or closed.
◦ To collect data, you load it into staging tables, then use the Perform Data Load from Staging Tables
scheduled process.
◦ Use the review pages to verify the data you collect.
◦ A pilot set up expects your test orders to use the same values for the unit of measure, currency, and
currency conversion you collect into the data repository.

62
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

During a full set up, if more than one order capture system uses dierent values for these entities, then
you must do more set up. For example, if one order capture system uses Ea for each item, and if another
order capture system uses Each for each item, then you must set up cross-references for these order
capture systems.
◦ Your set up can collect reference data from more than one system. However, a reference data entity is a
global object, so Order Management and Global Order Promising use the most recent data that your set
up collects.
So, identify the source system that contains the master data list, then collect data from the source
system after you collect data from all other source systems. For example, if source system x contains the
master list of currencies, then collect currencies from source system y so Order Management can cross-
reference currencies to system y, then collect currencies from system x.
◦ If Order Promising must consider the transit time that occurs during shipping between the warehouse
and a destination, then you must collect shipping methods. If you don't, then Order Management uses a
transit time of zero days.

Collect Runtime Data


Collect dynamic data at run time, such as on-hand supply and purchase orders.

Global Order Promising makes availability-to-promise and sourcing decisions when your user creates a sales order at
run time. It allows the user to explore dierent scenarios to increase margin, improve delivery, and so on. Promising
needs the most up-to-date supply and demand data to make these decisions.

Its important to periodically collect data for each new item your users add when they create a sales order because
collection gets the on-hand quantity for return orders and canceled order. The quantity aects planning.

Try it.
1. Click Supply Planning Data, then move entities from the Supply Entities list to the Selected Entities list.

Aribute Value

On Hand Promising uses this entity to get the inventory that's in stock for the item.
   

Purchase Orders and Requisitions Add these entities so Global Order Promising can get availability across the entire supply
  chain.
Transfer Orders  
 
Work Order Supplies
 

2. Click Submit.
3. Refresh the server.

Refresh the Server


You must refresh the server each time you collect data. You must also refresh each time you create or update a
promising rule or sourcing rule.

For details, see the Refreshing the Global Order Promising Engine: Explained topic.

Try it.
1. Go to the Scheduled Processes work area, then click Action > Schedule New Process.

63
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

2. In the Schedule New Process dialog, set the value.

Aribute Value

Name Refresh and Start the Order Promising Server


   

3. Add a check mark to the parameters you must update, then click Submit.

Here are the parameters you refresh for most set ups.

◦ On Hand. You need the on-hand inventory to replenish each item in an inventory transaction or to
process a return order.
◦ ATP Rules.
◦ Sourcing.
◦ Items.
◦ Organizations. Include only when you create a new inventory organization.
◦ Resources. Include only when you create a new resource.
4. Click Actions > Refresh, then verify the status is Succeeded. Repeat, as necessary.

Related Topics
• Refresh the Global Order Promising Server
• Overview of Data Collections for Supply Chain Planning
• Manage Planning Source Systems for Data Collections
• How You Collect Dierent Data Types for Supply Chain Planning

64
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Set Up Promising and Sourcing Rules for Order Management


Use an available-to-promise (ATP) rule and sourcing rule to promise your sales order in dierent ways.
Global Order Promising uses sourcing rules, assignment sets, and available-to-promise rules when it determines
availability and schedules an order line for Order Management.

Note.

1. Your customer places a sales order that includes the item and requested delivery date.
2. You create an available-to-promise rule, which is a set of instructions you specify that tells Order Promising
how to analyze supply that's available in your supply chain so it can promise the item and meet the delivery
date. You specify the supply type to consider, such as supply that's on hand or in transit, supply that various
documents create, such as purchase orders, requisitions, or work orders.

65
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

3. You create a sourcing rule that species the supply sources to consider when promising, such as whether to
consider make, buy, or transfer sources. You can also specify the optimal location that can supply the demand.
Summary of the Setup
1. Create your sourcing rule.
2. Assign your sourcing rule.
3. Create your available-to-promise rule.
4. Manage the administrator prole.
5. Refresh the server.
This topic includes example values. You might use dierent values, depending on your business requirements.

Create Your Sourcing Rule


In this example, you set up a relatively simple sourcing rule for the AS54888 item. You transfer it from an organization
that stores inventory, such as Vision Manufacturing. For details about how to set up sourcing in other contexts, see the
Manage Sourcing Rules section in the Set Up Drop Ship in Order Management topic and the Create Sourcing Rules for
Congured Items topic.
1. Go to the Global Order Promising work area, then click Tasks > Manage Sourcing Rules.
2. On the Manage Sourcing Rules page, Click Actions > Create, then set values.

Aribute Value

Name Sourcing Rule for the AS54888 Item


   
You can use any text.
 

Organization Assignment Type


  Global

Set to.

Global when you must specify where to fulll and ship the sales orders. You don't
◦ specify an organization to create supply. Instead, you specify a transfer or buy source.
Local when you must specify how to create supply and the organization that creates
◦ it.

You create a global sourcing rule that species the warehouse that Order Management uses
when it fullls the sales order. For details, see the Overview of Sourcing Rules and Bills of
Distribution topic.

3. In the Sourcing Rule Eective Dates area, click Actions > Add Row, then set the start date.
4. In the Sources area, Click Actions > Add Row, then set values.

Aribute Value

Type Transfer From


   
Use Transfer From to transfer from an inventory organization.
 
Global Order Promising enables Make At only when you set assignment type to Local.
 

66
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Aribute Value

Organization Vision Manufacturing


   

Allocation Percent 100


   
In this example, you add only one source, so specify 100%.
 
If you add more than one source, then you can allocate demand across sources. For
example, if you add a row for Vision Manufacturing and set allocation to 70%, add another
row for Vision Distribution and set allocation to 30%, then Promising will use Vision
Manufacturing to promise 70% of the orders.
 

Rank 1
   
If you add more than one source, then you can specify the rank order to use for sources.
For example, if you add a row for Vision Manufacturing and set Rank to 1, add another row
for Vision Distribution and set Rank to 2, then Promising will use Vision Manufacturing to
promise the order rst. If Promising determines that Vision Manufacturing can't fulll the
order, then Promising will consider Vision Distribution.
 

Shipping Method Global Order Promising disables Shipping Method for a local rule. You can't edit it. Leave it
  empty for a global rule.
 
If you set a value for a global rule, you might get an error.
 
Don't set shipping method in this context because it species where supply originates, not
how to ship it to the customer.
 

Exclude for Options and Option Exclude options and option classes when promising a sales order. Exclude them for a Make
Classes At or Buy From sourcing type.
   
For example, exclude an item from planning when you know your source can't make it
because it includes toxic chemicals that the source isn't authorized to handle, or your
company limits production to only one specic site.
 
For another example, assume you know Seale Manufacturing created a large oversupply
of the CTO_474100 screen option class from a prior marketing campaign. You already
know supply is available. To improve planning performance, you decide to exclude it from
planning.
 

5. Click Save > Save and Close.

Assign Your Sourcing Rule


1. Click Tasks > Manage Assignment Sets.
2. On the Manage Assignment Sets page, click Actions > Create.
3. On the Create Assignment Set page, set values.

Aribute Value

Name Assignment Set for Sourcing Rules


   

67
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Aribute Value

Catalog GOP_Catalog
   
Use the same catalog that you use for your item in Production Information Management and
in your available-to-promise rule.
 

4. In the Sourcing Assignments area, click Actions > Add Row, then set values.

Aribute Value

Assignment Level
  Item

Note.

◦ Promising fullls your sales order only from the source that you assign to the
assignment set.
◦ Assign at least one sourcing rule at the global level so Global Order Promising can
use it to identify a ship-from location. If you don't, then your users must specify the
warehouse in every sales order.

Item AS54888
   

Sourcing Type Sourcing Rule


   

Sourcing Rule or Bill of Distribution Sourcing Rule for the AS54888 Item
   

For details, see the Sourcing Assignment Levels topic.

Create Your Available-To-Promise Rule


1. Click Tasks > Manage ATP Rules.
2. On the Create ATP Rule page, set values.

Aribute Value

Name ATP Rule for the AS54888 Item


   

Description Rule that species how to determine availability for the AS54888 item.
   

Promising Mode Innite Availability


   

3. Click ATP Rule Assignment, click Actions > Add Row, set values, then click Save.

68
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Aribute Value

Assignment Basis Item and Organization


   

Assigned-to Organization Vision Manufacturing


   
Use the same value that you use in the Organization aribute in your sourcing rule.
 

Assigned-to Item AS54888


   

Manage the Administrator Prole


1. In the Setup and Maintenance work area, click Search, search for, then open the Manage Administrator Prole
Values page.
2. On the Manage Administrator Prole Values page, set value, then click Search.

Aribute Value

Application Global Order Promising


   

3. In the search results, click that row that has MSP_DEFAULT_ASSIGNMENT_SET in the Prole Option Code
column.
4. In the Prole Values area, click Actions > New, set values, then click Save and Close.

Aribute Value

Prole Level Site


   

Prole Value Pick the name of the assignment set that you created earlier in this topic. In this example,
  pick Assignment Set for Sourcing Rules.
 

Refresh the Server


For details see the Collect Planning Data for Order Management topic.

Related Topics
• How the Order Orchestration and Order Promising Processes Use the Collected Planning Data
• Overview of Security Console
• How Order Promising Rules Work Together
• Create Sourcing Rules for Congured Items

69
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Manage Order Management Parameters


Set up order management parameters that aect behavior across Order Management Cloud.
1. In the Navigator, click Setup and Maintenance.
2. In the Setup and Maintenance work area, go to the task.

◦ Oering: Order Management


◦ Functional Area: Orders
◦ Task: Manage Order Management Parameters
3. On the Manage Order Management Parameters page, set values.

Parameter Description

Activate Credit Check on Order Specify whether to run credit check when the Order Entry Specialist submits the sales order.
Submit  
  For details, see the Manage Credit Check in Order Management topic.
 

Allow Changes Through Congurator


Validation Allow the congurator to choose items in a conguration and to modify conguration options
  after the Order Entry Specialist adds a congured item to a sales order, and then save the sales
order as a draft, but before the Order Entry Specialist submits the sales order.

For example.

1. The Order Entry Specialist adds a congured item to a sales order, then saves the sales
order as a draft.
2. A conguration manager modies the conguration model and conguration rules for
the congured item in such a way that it aects the conguration that the Order Entry
Specialist added.
3. The Order Entry Specialist returns to the draft several days later, then submits the sales
order.

In this example, if you set Allow Changes Through Congurator Validation to.

• Yes. The congurator uses the modied conguration model and conguration rules to
update the conguration that the Order Entry Specialist specied. It allows the submit to
proceed. It doesn't report these modications to the Order Entry Specialist.
This seing is useful when your business process doesn't require the Order Entry
Specialist to understand and agree to modications that the congurator makes.
• No. The congurator doesn't modify the conguration that the Order Entry Specialist
specied. Instead, it doesn't allow the submit to proceed, and displays a validation error
when the Order Entry Specialist aempts to submit or validate the sales order.
This seing is useful when your business process requires that the Order Entry
Specialist understand and agree to modications that the congurator makes.

Note.

• This parameter doesn't apply to a source order that includes a congured item. For
details about importing source orders, see the Use Files to Import Orders into Order
Management topic.
• This parameter aects all business units.

70
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Parameter Description

For details about the congurator, see the Oracle SCM Cloud, Congurator Modeling book on
My Oracle Support.

Automatically Set Values on Sales


Agreement Aributes Control default values that Order Management sets for sales agreement aributes when the
  user creates or updates the sales order.

If you set this parameter to Yes.

• If only one sales agreement exists for the customer and business unit, then Order
Management sets the agreement on the order header to this one sales agreement.
• If more than one agreement exists, then Order Management leaves the agreement on
the order header empty.
• If the agreement on the order header is empty, and if only one sales agreement exists
for the item on the order line, then Order Management sets order line aributes Sales
Agreement, Sales Agreement Line, and Sales Agreement to the order line agreement.
Otherwise, it leaves these order line aributes empty.

If you set this parameter to No, then Order Management doesn't set any default values. It
leaves them all empty.

Order Management constrains the customer, business unit, and currency on the order header.
It also constrains the item on the order line.

Business Unit for Selling Prot Center See the Set Business Units for Selling Prot Centers topic.
   

Check for Trade Compliance When


User Submits Sales Order Set a value.
 
• Yes. Order Management will verify each sales order that the Order Entry Specialist
submits in Order Management or that you import from a source system.
• No. Order Management won't verify any sales orders.

For details, see the Manage Trade Compliance topic.

Compare Change Order to Fulllment See the section at the end of this topic.
Values  
 

Conguration Eective Date


  Specify the date that Order Management uses to determine the congure options to display for
a congured item. The congure options might vary depending on the ones that exist in the
conguration model on a given date.

Set a value.

• Ordered Date. Use the options that exist according to the Ordered Date aribute that
displays on the Create Order page.
• Conguration Date. Use the options that exist when you create the model.
• Current Date. Use the options that exist as of today.
• Requested Date. Use the options that exist according to the requested date.

If you don't set a value, then Order Management uses Current Date.

71
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Parameter Description

Conguration Eective Date for Use this parameter with or without seing Conguration Eective Date. For details, see the
Exploding Included Items Control Explosion Dates for Conguration Models topic.
   

Coverage Start Date


  Specify how to set the service start date of each coverage item.

• Delivery Date. Set the service start date to the delivery date of the covered item.
• Shipment Date. Set the service start date to the shipment date of the covered item.

For details, see the Set Up Coverage for Sales Orders topic.

Credit Check Failure at Order Submit


  Specify how to proceed if credit check fails.

• Save Order in Draft Status. Save the sales order in Draft status and don't proceed to
fulllment.
• Submit the Order with Hold on Lines That Failed Credit Check. Save the sales order
in Submied status, place a hold on each order line that fails credit check, then proceed
with fulllment for order lines that aren't on hold.

For details, see the Manage Credit Check in Order Management topic.

Customer Relationship Type


  Specify values that the Order Entry Specialist can set for the Ship-to Customer aribute and
the Bill-to Customer aribute.

Set a value.

• Single Customer. Allow the Order Entry Specialist to select only the bill-to customer
and ship-to customer that's the same as the sold-to customer.
For example, if the Order Entry Specialist creates a sales order for Company x, then
Order Management sets Ship-to Customer and Bill-to Customer to Company x. The
Order Entry Specialist can't modify these values.
• All Customers. Allow the Order Entry Specialist to select any bill-to customer or ship-to
address, regardless of sold-to customer.
For example, if the Order Entry Specialist creates a sales order for Company x, then
Order Management sets Bill-to Customer and Ship-to Customer to Company x, by
default, and allows the Order Entry Specialist to search and select any bill-to customer,
or any ship-to customer and address.

Enable Orchestration Process Specify whether to do orchestration process planning and to calculate jeopardy on each sales
Planning and Calculate Jeopardy order during order processing.
   
For details, see the Orchestration Processes topic.
 

Filter Ship-To Addresses


  Filter addresses that the Order Entry Specialist can choose when seing the Ship-to Address
aribute on the order header.

Set a value.

• Yes. Display only ship-to addresses.


• No. Display all addresses. Order Management comes predened to use No, by default.

72
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Parameter Description

Examine the behavior when Filter Ship-To Addresses is No.

1. Create a sales order in the Order Management work area.


2. On the order header, click Ship-To Address, then click Search.
3. In the Search and Select dialog, don't set any values, then click Search.
Notice that the search returns addresses that include Ship-to and Bill-to values in the
Usage aribute.

Note.

• In some situations, you might need to prevent the Order Entry Specialist from using
a Ship-to Address when Usage for the address is Bill-to. For example, if you use
Oracle Fusion Receivables, then you must set Filter Ship-To Addresses to Yes because
Receivables comes predened to ship only to a ship-to address.
In another example, it might not be appropriate for a bill-to location in your deployment,
such as an accounting center, to receive shipment.
• If you import a source order, and if the Filter Ship-To Addresses parameter is Yes, and
if the value of the Site Usage aribute for the ship-to address in Trading Community
Architecture isn't Ship-to, then the import will fail.
• To specify the value that the Usage aribute displays, navigate to Trading Community
Architecture, then set the Site Usage aribute to one of these values.

◦ Ship-to

◦ Bill-to

◦ Ship-to and Bill-to

For details, see the Oracle Trading Community Architecture book.

From Address for Email Messages Specify the From email address that the Universal Messaging Service uses when it sends an
  email from the order document or from an automatic notication.
 
The From address comes predened as no-reply@orderreport. com. You can modify this value
to use an address in the domain that your company uses. You must use a valid email address
format. For example, something@somethingelse. xxx.
 
For details, see the Email Formats in Order Management topic.
 

Halt Congurator Validation on First


Error Set a value.
 
• True. Stop processing on the rst error that the congurator encounters during order
entry.
• False. Don't stop processing if the congurator encounters an error during order entry.
Instead, allow the congurator to continue to run until it nishes processing. This seing
allows the congurator to identify and report all errors that the conguration contains.

Halt Congurator Validation on First Error aects only order entry. It doesn't aect order
import.

Item Validation Organization


  Specify the item validation organization that Order Management uses to validate and display
items for each sales order the Order Entry Specialist creates, according to business unit. Order
Management will display only the items that it associates with the item validation organization
you specify.

73
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Parameter Description

For example, assume you create a record in the Item Validation Organization list, you set the
Business Unit aribute for this record to Vision Operations, and the Organization aribute
to Denver Manufacturing. Order Management will display only the items that it associates
with Denver Manufacturing when the Order Entry Specialist creates a sales order for Vision
Operations. It displays these items when the Order Entry Specialist searches for items on the
Order Lines tab of the Create Order page.

• You must specify an item validation organization for each business unit. If you don't,
then Order Management disables search for the item in each sales order that references
a business unit that you don't specify.
As an alternative, if you use the same master organization for every business unit, then
you can specify this organization in the Item Validation Organization parameter, then
set the Business Unit aribute for this parameter to All Business Units.
• You can set Item Validation Organization only for business units that Order
Management associates with your sign in responsibility. If it associates your sign in
responsibility with only one business unit, then it uses this business unit as the item
validation organization.
• The Product Information Management work area associates inventory organizations
with business units. If you don't set Item Validation Organization, and if Product
Information Management associates more than one inventory organization with the
same business unit, then Order Management does one of these actions.

◦ If Product Information Management associates the same item master


organization with these inventory organizations, then Order Management sets
Item Validation Organization to this item master organization, then informs the
Order Entry Specialist of this seing. The Order Entry Specialist can accept this
value and continue entering the sales order, or reject it and contact the order
administrator with a request to use Item Validation Organization to set up the
inventory organization.
◦ If Product Information Management associates dierent item master
organizations with these inventory organizations, then Order Management
informs the Order Entry Specialist that the order administrator must rst set up
the inventory organization before the Order Entry Specialist can enter the sales
order.
• Order Management displays only inventory organizations in the Organization aribute
that Product Information Management associates with the business unit you choose in
the Business Unit aribute. You can use Product Information Management to set up an
inventory organization and create these associations.

For details, see topic Inventory Organizations: Explained.

Notify Frequency Specify an integer that represents the number of hours to wait before consolidating, and then
  sending a notication.
 
Notify Frequency comes predened with a value of 1. You can set it to any value that's
greater than or equal to 0 (zero). If you set it to 0, then Order Management won't consolidate
notications, and will send each notication when the event that it references occurs.
 
For details, see the Send Notications from Order Management to External Systems topic.
 

Number of Processes for Order Set the maximum number of scheduled processes that can run concurrently for one set of
Import source orders. Adjust this value as necessary depending on how it impacts performance.
   
For details, see the Import Orders into Order Management topic.
 

Number of Times to Retry Pause Specify the number of times to retry a pause task that pauses until time elapses. Adjust this
  value according to performance.

74
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Parameter Description

 
For details, see the Pause Orchestration Processes Until Time Elapses topic.
 

Preparer for Procurement Specify an Order Management user who the buyer can contact to help resolve a problem that
  occurs with a fulllment line that involves a drop ship supplier. The buyer is a procurement
application user. Order Management sends these details to purchasing.
 
If you don't specify Preparer for Procurement, and if an error occurs, then the procurement
system will reply with an error that the preparer is missing.
 
You can dene a preparer for each selling business unit. You can also dene a preparer as
the default value for all business units. Order Management will use this default value only for
business units where you don't dene a preparer.
 
For details, see the Drop Ship topic.
 

Send Discount Details to Billing Specify whether to send the list price and discounts, or only the net price, to your downstream
Systems billing system.
   

Start Approval Process for Sales


Orders Specify whether to get sales order approval.
 
• If you must enable approval, then you must set this parameter to Yes even if you must
enable approval only for Order Management.
• If you set this parameter to No, then Order Management won't route sales orders for
approval even if you dene and activate an approval rule.
• If you set this parameter to Yes but you don't dene and activate an approval rule, then
Order Management won't route the sales order for approval, but will instead send it to
order fulllment.

For details about this parameter, see the How Managing Approval Rules for Sales Orders
Works topic.

Use Congurator for Order Import


Validation Set a value.
 
• True. The congurator will validate each source order that includes a congured item
during order import.
• False. The congurator won't validate.

Compare Change Order to Fulllment Values


Set a value.
• Yes. Allow a web service or le-based data import to change fulllment line values even after the Order Entry
Specialist revises the sales order in the Order Management work area.
• No. Don't allow.

If you set it to Yes.


• Order Management compares aribute values in the revision to aribute values in the import data to determine
whether the user revised the order.
• If the user revised the order, then Order Management will replace the user's revisions with values from the
imported data.

75
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

• Make sure your import data includes values for aributes the user didn't revise. You must get these values from
the orchestration process that's currently processing the order.

Use the getOrderDetails operation of web service Order Information Service or use Oracle Transactional
Business Intelligence (OTBI) to get aribute values from the sales order that Order Management is currently
processing. Create a new payload for the order revision, change aribute values in the payload to reect the
revision, then send the payload to Order Management.

Set the value for this parameter only one time. For example, if you set it to Yes during set up, then don't set it to No
after you deploy your set up.

Example

Assume you set this parameter to Yes.

Step 1. Your user creates a sales order, doesn't set a value for the Warehouse aribute, submits the order, and Order
Promising schedules it.

Order Number Order Line Quantity Warehouse

37564 1 10 Not applicable


       

Step 2. Your user creates an order revision, sets the Warehouse to M1, then submits the order.

Order Number Order Line Quantity Warehouse

37564 1 10 M1
       

Step 3. Here's the original payload.

Order Number Order Line Quantity Warehouse

37564 1 10 Not applicable


       

Here's how Order Management processes the change.

• Compares the payload in step 3 to the payload in step 2 to identify aributes that changed.
• The warehouse in step 2 is M1 buts its empty in step 3, so Order Management detects a change on the order
line.
• Order Management updates your fulllment system to process the change.

Note.

• If the line already shipped, then Order Management rejects the change.
• If your user makes another revision before step 3, then you can use a web service or order import to process it.

76
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Related Topics
• What You Can Do in Product Master Data Management
• Inventory Organizations
• Administer Email Format in Order Management
• Overview of Sending Notications from Order Management to Other Systems
• Overview of Seing Up Trade Compliance

Guidelines for Controlling Customer Details in Order Management


Control how Order Management displays customer details, such as ship-to address, bill-to address, contacts, and
payment terms.
For example.

• Set the default value that the Order Management work area displays for each customer aribute and address
aribute.
• Use an address from a related customer to set the default value for ship-to address.
• Use data from the customer master to set the default value for preferences on each sales order.

Overview
Order Management gets customer details from Oracle Trading Community Architecture (TCA). Trading Community
Architecture is a data model you can use to manage details about customers who belong to your community, such as
organizations, locations, and the relationships that dene your community. For details, see Oracle Trading Community
Architecture User Guide on My Oracle Support.

Party Object

77
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

The party object in Trading Community Architecture contains customer data. Order Management uses it to get the
customer data it displays.

Note.

Object Description

1. Party. A trading partner. Each party can reference one or more party usages.
   

2. Party Usage. How you use the party, such as customer, supplier, prospect, and so on. Order Management
  uses only the customer party usage. For example, searches and lists of values in the Order
Management work area display only customer party usage.
 

78
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Object Description

3. Party Site. An address that the party uses. Each party can reference one or more party sites.
   

4. Party Site Use. How the party uses the address. For example, ship-to, bill-to, and so on. Each party site can
  reference one or more party site usages.
 

5. Location. Physical address where the party site resides. Each party site can reference only one location.
   

6. Party Relationship. Each party can reference one or more other parties. You can use the party relationship to
  establish a relationship between two dierent parties.
 

Account Object

Order Management uses the customer account object from Trading Community Architecture.

79
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Note.

Object Description

1. Customer Account. The customer account is a child of the party. It includes nancial details that Order
  Management uses to communicate with a nancial application. Each party can reference
one or more customer accounts, however each party typically references only one customer
account.
 

80
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Object Description

2. Account Site. Set of party addresses that the account uses. Each customer account can reference one or
  more account sites.
 

3. Account Site Use. How the account site uses the address. Each account site can reference one or more account
  site usages.
 

4. Account Contact. Person in the account. Each account can reference one or more contacts. Account contact is a
  subset of party contacts.
 

Where Order Management Displays Customer Details

Here's how Order Management displays customer data.


• Uses the party object to display data for customer aributes, such as Customer, Bill-to Customer, or Ship-to
Customer.
• Uses the account object to display data for account aributes, such as Bill-to Account or Bill-to Address.

If the user sets the value for the Customer aribute on the order header, then Order Management automatically sets the
value for other aributes to the data it gets from the party and account, such as contact, ship-to customer, address, bill-
to customer, account, payment terms, and so on.

81
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Note.

• In Oracle Fusion, the party object contains data for each customer, and the account object contains data for the
bill-to account and bill-to address.
• In Oracle eBusiness Suite, the account object contains data for each customer. For example, the account
contains the ship-to address, sold-to address, and bill-to address.

Set Up Account Details

1. Get the license you need to use Oracle Fusion Financials.


2. In the Navigator, click Setup and Maintenance.
3. In the Setup and Maintenance work area, open the task.

◦ Oering: Financials
◦ Functional Area: Customers
◦ Task: Manage Customers
4. On the Manage Customers page, search for a customer or create a new one.

If you create a new account site, then the application also creates a party site that includes objects from the
account site. This behavior helps to maintain the relationship between the party and the account.

82
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Note.

• Don't delete a contact or address or set the end date for a contact or address. If you delete a contact or address,
then sales orders that already exist might not display the correct data.
• Each account is a child of a party. If you add a contact, account site, or account site usage in the account, then
Manage Customers adds objects in the party that correspond to the contact, account site, or account site usage
that you added.
• If you delete or end date an object in a child contact, account site, or account site usage, then Manage
Customers doesn't update the corresponding object in the parent party.

For example, if you delete the ship-to address of a contact, then Manage Customers doesn't delete the
corresponding ship-to address of the party. Manage Customers uses this functionality to maintain the

83
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

relationship between party and customer account, which is one to many. Some other account might reference
the ship-to address of the party.

Set Up Party Details

You can't use the Manage Customers page to manage the parent party. Instead, do these steps.

1. Get the license you need to use Oracle CX Sales.


2. Sign in with a user you can use to administer customer data, such as TC_DATA_STEWARD.
3. In the Navigator, click Organizations > Customer Data Management.
4. On the Organizations page, search for your party according to organization name.
5. Use the Organization Details page to manage the party prole, party address, and party usage.

84
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Note.

• Modify the value in the Purpose aribute to control site usage. For example, Order Management uses Ship-to
purpose to lter the list of values that it displays for ship-to address.
• Add a check mark to the Primary aribute to specify the address that Order Management displays as the
default value.
• You can't use the Manage Organization page to manage accounts.

To get details about how to manage an organization, go to Oracle Help Center at hps://docs.oracle.com/en/cloud/
saas/index.html. Under Customer Experience, click Customer Data Management > Books, then nd Implementing
Customer Data Management or Using Customer Data Management.

Control Default Values for Customer Aributes


If the user sets the Customer aribute on the order header, then Order Management automatically sets Bill-to Customer
and Ship-to Customer to the same value that Customer contains, by default.

To control the values that the user can choose, set the Customer Relationship Type order management parameter.

85
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Value Description

All Customers Allow the user to choose any customer for Bill-to Customer and Ship-to Customer.
   

Single Customer Allow the user to choose only the same value that the Customer aribute references for Bill-to
  Customer and Ship-to Customer.
 

Business Unit Specify the business unit where this behavior applies. Use All Business Units to apply behavior
  to all sales orders.
 

86
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Note.

• Order Management applies the behavior you specify to sales orders in the Order Management work area and to
sales orders that you import.
• Order Management doesn't use relationships that you set up in Trading Community Architecture. If you must
create a relationship, then set Customer Relationship Type to All Customers, and write an order management
extension that enforces ship-to or bill-to customer for each party that Trading Community Architecture denes.
For details, see the Dene Extensions That Modify Order Management topic.
• For other relevant details, see the Manage Order Management Parameters topic.

87
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Control Addresses
Set Default Value for Ship-to Address

If the user sets the value for Customer on the order header, then Order Management sets the value for Ship-to Address
to the party site of the ship-to customer, by default.

Use the Organization Details page to set the default value for Ship-to Address.

88
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Note.

• Add a check mark to the Primary aribute on the address.


• If you don't specify the Purpose on the Organization Details page, and if you do specify a Primary, then Order
Management sets ship-to address to the primary, by default.

Use a Web Service to Set Ship-to Address

The Organization Details page restricts the sites you can set as the primary according to the party object hierarchy.
Instead, you can use the OrganizationService web service to specify the ship-to address. For example.
https://server:port/crmService/FoundationPartiesOrganizationService
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:typ="http://
xmlns.oracle.com/apps/cdm/foundation/parties/organizationService/applicationModule/types/"
xmlns:org="http://xmlns.oracle.com/apps/cdm/foundation/parties/organizationService/" xmlns:par="http://

89
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

xmlns.oracle.com/apps/cdm/foundation/parties/partyService/" xmlns:sour="http://xmlns.oracle.com/apps/cdm/
foundation/parties/flex/sourceSystemRef/" xmlns:con="http://xmlns.oracle.com/apps/cdm/foundation/parties/
contactPointService/" xmlns:con1="http://xmlns.oracle.com/apps/cdm/foundation/parties/flex/contactPoint/"
xmlns:org1="http://xmlns.oracle.com/apps/cdm/foundation/parties/flex/organization/" xmlns:par1="http://
xmlns.oracle.com/apps/cdm/foundation/parties/flex/partySite/" xmlns:rel="http://xmlns.oracle.com/apps/cdm/
foundation/parties/relationshipService/" xmlns:org2="http://xmlns.oracle.com/apps/cdm/foundation/parties/
flex/orgContact/" xmlns:rel1="http://xmlns.oracle.com/apps/cdm/foundation/parties/flex/relationship/">
<soapenv:Header/>
<soapenv:Body>
<typ:mergeOrganization>
<typ:organizationParty>
<org:PartyId>300100178657728</org:PartyId>
<org:PartySite>
<par:PartySiteId>300100178657747</par:PartySiteId>
<par:PartySiteUse>
<par:PartySiteUseId>300100178657752</par:PartySiteUseId>
<par:PrimaryPerType>Y</par:PrimaryPerType>
</par:PartySiteUse>
</org:PartySite>
</typ:organizationParty>
</typ:mergeOrganization>
</soapenv:Body>
</soapenv:Envelope>

where

Code Description

server:port Address to the server that hosts your Oracle Fusion deployment.
   

PartyId Value that uniquely identies the party, such as 300100178657728.


   

PartySiteId Value that uniquely identies the party site, such as 300100178657747.
   

PartySiteUseId Value that uniquely identies the party site use, such as 300100178657752. You specify the Id
  of the ship-to site use.
 

PrimaryPerType Y Sets the site use to the primary site.


   

You replace the values for PartyId, PartySiteId, and PartySiteUseId with values that identify the party, the address, and
the site use Id that identies the address to set as the default ship-to address on each sales order for the party.

To set the primary ship to site, use ndOrganization to get the identiers for mergeOrganization.
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body xmlns:ns1="http://xmlns.oracle.com/apps/cdm/foundation/parties/organizationService/
applicationModule/types/">
<ns1:findOrganization>
<ns1:findCriteria xmlns:ns2="http://xmlns.oracle.com/adf/svc/types/">
<ns2:fetchStart>0</ns2:fetchStart>
<ns2:fetchSize>-1</ns2:fetchSize>
<ns2:filter>
<ns2:conjunction>And</ns2:conjunction>
<ns2:group>
<ns2:conjunction>And</ns2:conjunction>
<ns2:upperCaseCompare>false</ns2:upperCaseCompare>

90
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

<ns2:item>
<ns2:conjunction>And</ns2:conjunction>
<ns2:upperCaseCompare></ns2:upperCaseCompare>
<ns2:attribute>PartyNumber</ns2:attribute>
<ns2:operator>=</ns2:operator>
<ns2:value>1001</ns2:value>
</ns2:item>
</ns2:group>
</ns2:filter>
<ns2:excludeAttribute>false</ns2:excludeAttribute>
</ns1:findCriteria>
<ns1:findControl xmlns:ns3="http://xmlns.oracle.com/adf/svc/types/">
<ns3:retrieveAllTranslations>false</ns3:retrieveAllTranslations>
</ns1:findControl>
</ns1:findOrganization>
</soap:Body>
</soap:Envelope>

For details about how to use web services with Trading Community Architecture, see SOAP Web Services for Oracle
Sales Cloud on My Oracle Support at hps://docs.oracle.com/en/cloud/saas/sales/r13-update17d/oesws/toc.htm.

Control Drop Down for Ship-to Address

On the Organization Details page, set Purpose to Ship-to for each address you must display in the Ship-to Address drop
down in Order Management.

91
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Control Search for Ship-to Address

Order Management returns all party sites in Ship-to Address regardless of usage when the user clicks Search, by
default. For example, it returns ship-to usages and bill-to usages.

If you use Oracle Fusion Financials, then set order management parameter Filter Ship-to Address According to Ship-
to Usage to Yes. This seing makes sure your users select only ship-to sites to avoid an error from occurring when the
import automatically invoices the transaction.

92
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Allow Users to Search Ship-to Address According to Party Site

Your users can use advanced search in the Search and Select dialog to search for ship-to addresses according to the
name of the ship-to party site. This dialog displays the name you specify when you set up your ship-to party site. This
feature is useful when your deployment uses a large set of addresses. It allows your users to search when they don't
know the mailing address of the site.

For example, assume you support a retailer named Computer Service and Rentals who sells at 200 separate physical
locations. You can allow your users to search on the text Computer Service to return all locations that begin with the text
Computer Service.

93
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Set Default Value for Bill-to Address

Order Management can set the Bill-to Address to the account site that the bill-to account references. You can edit the
site to control this behavior.

94
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Navigate to the Manage Customers page, then edit the site.

If . . . . . . Then

Only one site species bill-to usage. Order Management defaults the address to this one site.
   

More than one site species bill-to Use the Address Purposes area to set the Primary. Order Management will use the primary as
usage. the default value for Bill-to Address.
   

95
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Display Only Bill-to Usages in Bill-to Address

Order Management includes each account site that uses bill-to usage in the drop down for Bill-to Address, by default.
Bill-to Address lters account sites according to the business unit that the sales order references. The user can't search
this aribute. The user can only choose values from the list.

To control the addresses that display, set the Purpose on the account site to bill-to usage when you set up your account.

96
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Control Contacts
Set Default Value for Contact on Order Header

97
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

The user can choose a contact from the sold-to customer or the ship-to site in aribute Contact on the order header, by
default.

If the user clicks Search, then the Contact aribute displays all contacts that reference a sold-to or ship-to contact.

Note that Contact on the order header displays party contacts. It doesn't display account contacts.

If you set the primary contact on the account site, then Order Management populates the Contact aribute on the order
header to this primary when the user sets the Customer aribute on the order header.

Set the primary contact on the account site.

1. On the Manage Customers page, search for the party you must modify.
2. In the Sites area, click the Site Number for an account site.
3. On the Edit Site page, click Communication.
4. In the Account Site Contacts area, click Edit Contacts.

98
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

5. On the Edit Contacts page, click Actions > Set Primary Contact.

6. Click Save and Close.


Set Default Value for Contact in Billing and Payment Details

If you specify the primary account during set up, then Order Management populates the Contact aribute in the Billing
and Payment Details area to the primary contact for this account when the user sets Customer on the order header.

If the user clicks Search, then the drop down for Contact displays each contact that references a bill-to address.

Note that Contact in the Billing and Payment Details area displays account contacts. It doesn't display party contacts.

99
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Control Payment Terms


Set Default Value for Payment Term

The payment term is a nancial aribute on the account and account site. Order Management populates the Payment
Term aribute when the user sets one of the following aributes in the Billing and Payment Details area.

Aribute Description

From Bill-to Address Get and display the payment term that you dene on the bill-to address for the bill-to site
  during set up.
 

100
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Aribute Description

From Bill-to Contact Get and display the payment term that you dene on the bill-to account during set up.
   

Note.
• If you don't specify the payment term on the bill-to address or the bill-to account in Trading Community
Architecture, then Order Management doesn't set any default value for the payment term, and the user must
manually set it.
• The user can click Payment Terms to view all values that you collect during data collection, including values
from Oracle Fusion, Oracle Advanced Supply Chain Planning, your channel systems, and so on. For details
about data collection, see the How Order-to-Cash with Order Capture Systems Works topic.

Set Default Value to Payment Term from Account Site

Specify to use the payment term from the account site as the default value.
1. On the Manage Customers page, search for the party you must modify.
2. In the Sites area, click the Site Number for an account site.
3. On the Edit Site page, click Prole History.
4. In the Prole History area, click Actions > Correct Record.
5. On the Site Prole tab, in the Terms area, choose a value for the Payment Terms aribute.
6. Click Save and Close.

101
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

For example.

Make Sure User Sets Payment Term

If you use Oracle Fusion Financials, then Payment Term must contain a value. To meet this requirement, you can enable
the Fulllment Line Payment Term Update predened constraint. If you enable it, and if Payment Term is empty, then
the constraint prevents the Submit action.

This requirement helps to avoid problems when Financials invoices the fulllment line. This constraint comes
predened as disabled. You can enable it.

102
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Set values on the Managing Processing Constraints page. For details, see the Manage Processing Constraints topic.

Aribute Description

Constraint Name Search for DOO_ FULFILLMENTLINE_ PAYMENTTERMS_ MISSING.


   

Enabled Add a check mark.


   

Here's the logic that the constraint.

103
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Aribute Description

Constraint Name DOO_ FULFILLMENTLINE_ PAYMENTTERMS_ MISSING.


   

Constraint Entity Prevent Order Management from performing the operation that Constrained Operation
  species on Order Fulllment Line.
 

Constrained Operation Submit.


   

Validation Entity Species to perform the validation on Order Fulllment Line.


   

Validation Rule Set Species to use the Fulllment Line Payment Term Is Null rule set to determine whether the
  Payment Term aribute on the fulllment line contains a value.
 

Set Default Values for Other Aributes


Here are some techniques you can consider when you set the default value for other aributes.

• Dene a pretransformation rule. For example, set the default value for the customer contact according to
business unit and customer.

If business unit is y, and if customer is x, then set contact to z.

• Order Management runs pretransformation rules each time the user modies the Customer aribute. This
conguration makes sure Order Management updates default values according to rules you dene. For details,
see the Use Business Rules With Order Management topic.
• Dene an order management extension. For example, get data from a customer entity on the sales order, and
then use this data as the default value.

If customer class is x, then set order type to z.


If descriptive flexfield on customer contains a, then set attribute b to c.

Import Customer Data


Set Default Values During Order Import

Order import doesn't set the default value for an address, contact, or payment term. Your import payload or the order
import template must specify them.

If you use order import template SourceSalesOrderImportTemplate.xlsm, then do these tasks.

• Use the DOO_ORDER_ADDRESSES_INT worksheet to specify default values for the order header and order
lines.
• Set values depending on whether your import creates or updates.

Create or Update Description

Create a new sales order Send addresses on the order header, and the import will cascade order header data to the
  new order line.

104
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Create or Update Description

Update a sales order


  To set the order header, leave these columns empty.

◦ Source Transaction Line Identier

◦ Source Transaction Schedule Identier

To set order lines, make sure these columns contain values. An update must contain data for
each order line.

105
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

• Use the instructions in the worksheet to set ship-to and bill-to values.

For details, see the Import Orders into Order Management topic.

Import Payment Terms

106
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Note.
• Use the DOO_ORDER_LINES_ALL_INT worksheet of the order import template to import payment terms.
• Use the Payment Term Code or the Payment Term column.
• If you use Oracle Fusion Financials, then make sure you send payment terms for each order line in each
imported order that you must invoice.
• Order import doesn't support payment terms on the order header so you can't cascade payment terms from
the order header to order lines.

Create New Customers

Order Management doesn't provide an administrative interface you can use to create a new customer, but you can use
the order import template instead.
1. Open the DOO_ORDER_HEADERS_ALL_INT worksheet.

107
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

2. Set the Create Customer Information Flag column to Y.


3. Position the cursor over the column header to view details.
4. Fill in all customer data on these worksheets.

◦ DOO_ORDER_HEADERS_ALL_INT
◦ DOO_ORDER_ADDRESSES_INT

Other Ways to Create Customer Data

Use the customer import services in Trading Community Architecture to bring customer data into Oracle from your
channel system or legacy system.

108
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Business-to-Business Messaging
Overview of Business-to-Business Messaging in Order
Management
Use Order Management Cloud as your central location when you interact with more than one channel.

Improve order capture and order fulllment in the order-to-cash ow when you communicate a sales order between
businesses.

The business-to-business ow uses Collaboration Messaging Framework to automate message ow so Order
Management can receive and process each source order from a trading partner, then reply with an advance shipment
notice after shipping successfully nishes.

Web services use Open Applications Group Integration Specication (OAGIS) messages in the payload that it uses to
handle interactions that occur between Oracle Cloud Applications and each trading partner. You can use your existing
Electronic Data Interchange (EDI) infrastructure with OAGIS. Use this conguration to receive each source order, then
your trading partner and supplier can process it through order fulllment.

Use the business-to-business ow to achieve results.

• Process purchase order


• Change purchase order
• Cancel purchase order
• Acknowledge purchase order
• Acknowledge a change in the purchase order

Use the business-to-business ow to realize benets.

• Reduce cost
• Increase processing speed and accuracy
• Improve relationships between business partners
• Simplify setup and management

Calculate Ship Dates

If a delay in supply occurs, then Supply Orchestration might send an update for the scheduled ship date to Order
Management. Order Management updates the scheduled ship date but doesn't update the scheduled arrival date on the
fulllment line.

Order Management updates the scheduled ship date, scheduled arrival date, and shipping method only if you set up
Global Order Promising to calculate shipping, such as how to calculate transit time. If you don't set it up, the scheduled
dates and shipping method might not contain a value.

This behavior aects fulllment, including choices that your end-users make when they override the schedule. For
details, see the Schedule Fulllment Lines Manually topic.

109
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

How Business-to-Business Messaging Works in Order


Management
Collaboration Messaging Framework uses a web service to communicate sales order details between your trading
partner and Order Management Cloud. It communicates these details in XML payloads.

110
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Note.
1. A trading partner uses a web service endpoint that they set up and enabled on their server to send an XML
document that contains source orders to the CollaborationMessage web service on Collaboration Messaging
Framework.
2. Collaboration Messaging Framework converts each source order to a CSV format (comma separated value) that
Order Management supports.
3. Collaboration Messaging Framework uses a web service to upload the CSV les to a folder in Oracle WebCenter
Content.
4. You use the order import template and a scheduled process to convert CSV les into sales orders.
5. Collaboration Messaging Framework subscribes to a business event that the scheduled process raises when it
nishes. Order Management recognizes the event, then sends an order acknowledgment in an OAGIS message
(Open Applications Group Integration Specication) through Collaboration Messaging Framework to the
trading partner.
6. Order Management processes the sales order, then sends it to shipping for order fulllment.
7. Oracle Fusion Shipping creates and processes the shipment.
8. Shipping nishes delivery, then sends the ship conrm and advanced shipment notice in an OAGIS message,
through Collaboration Messaging Framework, then in a reply to the trading partner.

Types of Messages That Collaboration Messaging Can Send and Receive

Collaboration Message Description

OAGIS_ 10.1_ ACK_ PO_ COLLAB_ Send acknowledgment to the trading partner that Collaboration Messaging received the
MSG_OUT purchase order.
   

OAGIS_ 10.1_ ACK_ CHANGE_ PO_ Send acknowledgment to the trading partner that Collaboration Messaging received the
COLLAB_ MSG_OUT purchase order change.
   

OAGIS_ 10.1_ PROCESS_ SHIPMENT_ Send details to the trading partner about shipments.
COLLAB_ MSG_OUT  
 

OAGIS_ 10.1_ PROCESS_ RCV_ DEL_ Send details to the trading partner about purchase order deletions.
COLLAB_ MSG_OUT  
 

Here are the types of messages that Collaboration Messaging can receive from the trading partner.

Collaboration Message Description

OAGIS_ 10.1_ PROCESS_ PO_ Process purchase orders.


COLLAB_MSG_IN  
 

OAGIS_ 10.1_ CHANGE_ PO_ Change purchase orders.


COLLAB_MSG_IN  
 

OAGIS_ 10.1_ CANCEL_ PO_ Cancel purchase orders.


COLLAB_MSG_IN  

111
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Collaboration Message Description

Set Up Business-to-Business Messaging in Order Management


Use the Collaboration Messaging work area to set up the business-to-business ow in Order Management.
Assume you must create a relationship between customer Computer Service and Rentals, who resides in Oracle Cloud
Applications, and trading partner Computer Associates.

• Allow Computer Service and Rentals to receive sales orders, updates, and cancellations from Computer
Associates
• Allow Computer Service and Rentals to send acknowledgments and shipments to Computer Associates

Summary of the Steps

1. Identify the trading partner and messages to send and receive.


2. Create a relationship between trading partner and customer.
3. Simulate collaboration messaging.
4. Import source orders.
5. Process the sales order in shipping.
6. Examine the results.
This topic includes example values. You might use dierent values, depending on your business requirements.

Identify the Trading Partner and Messages to Send and Receive


1. Sign into Oracle Cloud Applications with a job role that includes the B2B Messaging Administration Duty role.

Here are the job roles you can use.

◦ Order Entry Specialist


◦ Order Manager
◦ Order Administrator
◦ Supply Chain Application Administrator
◦ Warehouse Manager
2. In the Navigator, click Collaboration Messaging.
3. Click Tasks > Manage Trading Partners.
4. On the Manage Trading Partners page, click Actions > Create.

Use Manage Trading Partners to communicate with a trading partner directly or through a service provider. For
example, communicate through a service provider to set up a solution where the trading partner must use EDI
(Electronic Data Interchange), a modied XML format, a proprietary format, and so on.

In this example, you set up the conguration to communicate directly with the trading partner.
5. In the Create Trading Partner dialog, set values, then click Save and Close.

112
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Aribute Value

Service Provider None


   
Computer Service and Rentals will communicate directly with Computer Associates instead
of going through a service provider, so set this aribute to None.
 

Trading Partner ID ComputerAssociates


   

Partner ID Type Generic


   

6. Specify how to send messages to the trading partner.

In the Delivery Methods tab, click Actions > Add Row, set values, then click Save and Close.

Aribute Value

Name CMKDelivery00
   

Delivery Method Web Service


   

Service Name CollaborationMessage. Process


   

Not applicable This integration uses the Process method of the CollaborationMessage web service. Make
  sure the trading partner already deployed this web service on their server.
 

Security Policy None


   

Endpoint Enter the URL that locates the server and port that the trading partner uses at their location
  as the end point for their web services.
 
For example.
 
hp: / / ComputerAssociatescom7012
 

User Name Enter the user name that the trading partner server requires to access the endpoint.
   

Password Enter the password that the trading partner server requires to access the endpoint.
   

7. Set up the messages that Collaboration Messaging sends to the trading partner.

Click Outbound Collaboration Messages, then add these rows.

113
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Name Collaboration Message

CMKORDERACK001 OAGIS_ 10.1_ ACK_ PO_ COLLAB_ MSG_OUT


   

CMKORDERACK002 OAGIS_ 10.1_ ACK_ CHANGE_ PO_ COLLAB_ MSG_OUT


   

CMKSHIPCONFIRM001 OAGIS_ 10.1_ PROCESS_ SHIPMENT_ COLLAB_ MSG_OUT


   

Note.
◦ Set the Status to Active for each message.
◦ Enter text that describes the message contents.
8. Click Save
9. Set up the messages that Collaboration Messaging receives from the trading partner.
Click Inbound Collaboration Messages, then add these messages.

Name Collaboration Message

CMKORDERIN001 OAGIS_ 10.1_ CANCEL_ PO_ COLLAB_MSG_IN


   

CMKORDERIN002 OAGIS_ 10.1_ CHANGE_ PO_ COLLAB_MSG_IN


   

CMKORDERIN003 OAGIS_ 10.1_ PROCESS_ PO_ COLLAB_MSG_IN


   

Set the Status to Active for each message.


10. Click Save and Close.

Create a Relationship Between Trading Partner and Customer


You will create a relationship between customer Computer Service and Rentals and the trading partner, Computer
Associates. You also identify the documents that you must enable for the partner.
1. On the Overview page, click Tasks > Manage Customer Collaboration Conguration.
2. On the Manage Customer Collaboration Conguration page, search for the customer who will receive
communications from the trading partner.
For this example, enter Computer Service and Rentals. Assume you already set up Computer Service and
Rentals as a customer. If you haven't, then you must do so now. For details, see Customer Data Management
Oering: Overview.
3. In the search results, if more than one row exists for this customer, then click the row that includes a check
mark in the Ship to Party option and the Collaboration Congured option, then click Edit Collaboration
Conguration.
4. On the Edit Customer Collaboration Conguration page, in the Associated Service Providers area, click Actions
> Add Row, then set values.

114
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Aribute Value

Service Provider None


   

Trading Partner ID ComputerAssociates


   
Note that you specied this ID earlier in this topic when you identied the trading partner.
 

Order Processing Business Unit


  Specify the business unit that processes each sales order that Order Management Cloud
receives. For this example, Computer Service and Rentals resides in the Vision Operations
business unit, so choose Vision Operations.

Application Partner Code Accept the default value.


   

5. In the Collaboration Documents for Service Provider area, add these documents.

◦ PROCESS_PO_IN
◦ CHANGE_PO_IN
◦ CANCEL_PO_IN
◦ ACKNOWLEDGE_PO_OUT
◦ ACKNOWLEDGE_CHANGE_PO_OUT
◦ PROCESS_SHIPMENT_OUT

Note.

◦ You use this area to specify the documents that this customer will communicate with the trading partner.
◦ Set the Association Status to Enabled for each document.
6. Click Save and Close, then click Done.

The customer can now communicate with the trading partner.

Simulate Collaboration Messaging


1. Click Tasks > Validate Inbound Collaboration Messaging Setup.
2. On the Validate Inbound Collaboration Messaging Setup page, set values.

Aribute Value

Service Provider None


   

From Partner ID ComputerAssociates


   

Not applicable You will be testing a ow that sends a new source order from the trading partner, Computer
  Associates, so you use the Partner ID that you specied earlier in this topic.

115
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Aribute Value

External Message ID Enter the number that identies the message you're testing, such as 08192016_001.
   

External Message Name OAGIS_ 10.1_ PROCESS_ PO_ COLLAB_MSG_IN


   

Processing Service CollaborationMessage. Process


   

3. Click Create Message Payload.


Notice that the Message Payload area uses the seings that you specied in step 2 to create, then display the
XML that this test will use to communicate the message. You can modify the XML, if necessary.
4. Click Process.
A separate web service in Collaboration Messaging simulates communication from the trading partner. It
receives the XML document, validates it, then displays a Processing Conrmation dialog that includes the XML
result of the test. If the test is successful, then the XML will include this code.
<ProcessingResultCode><Success>/<ProcessingResultCode>
5. Make a note of the line that includes the message ID, such as.
<BODID>IN_8001</BODID>
In this example, IN_8001 is the message ID.

Import Source Orders


The simulation created a simulated source order. Next, you import it order into Order Management and view it.
1. Use a scheduled process to import the source orders. For details, see the Import Orders into Order Management
topic.
◦ When you run the Load Interface File for Import scheduled process, set the Data File to the le that
Messaging Framework created when you simulated collaboration messaging. The data le will include a
concatenation of the document name plus the message ID. For example.

PROCESS_PO_IN-1.0-IN_8001

◦ Set the Source System to ORA_ELECTRONIC_DOCUMENTS when you run the Import Sales Order
scheduled process. Order Management uses this predened source system for each source order it
receives from the trading partner.
◦ As an option, in the Batch Name parameter, specify the unique ID of the message you received, such as
08192016_001.
◦ Order Management uses the setup from the Pricing work area to determine pricing. It will ignore any
pricing data that the source order contains.
◦ When the Import Sales Order scheduled process nishes, Order Management can process the sales
orders through order fulllment.
2. In the Order Management work area, on the Overview page, search for the simulated order, such as
Demo_Order.

116
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

3. In the search results, note that the value in the Source Order aribute includes the order number you simulated,
such as Demo_Order_0819_001.
4. In the Order column, click the order number.
5. On the Order page, notice that the order status is Processing, and the fulllment line status is Awaiting
Shipping, which indicates that Order Management released the sales order to order fulllment.
The messaging framework creates an acknowledgment message, then publishes it to the trading partner.

Process the Sales Order in Shipping


1. In the Shipments work area, on the Overview page, search for the sales order you noted in the Source Order
aribute earlier, such as Demo_Order_0819_001.
2. On the Edit Shipment Line page, click Cancel.
3. On the Manage Shipment Lines page, click Actions > Pick Release, then click Save and Close.
4. On the Overview page, search for Demo_Order_0819_001.
5. On the Edit Shipment Line page, notice that the Line Status is Staged, then click the link next to Shipment.
6. On the Edit Shipment page, click Ship Conrm, then click Save and Close.
Shipping creates an event. Collaboration Messaging subscribes to this event.
7. On the Manage Shipments page, in the row for your shipment, notice that the ASN Status is Sent.
This status indicates that Shipping sent the ASN status to Collaboration Messaging.

Examine the Results in Collaboration Messaging


1. In the Collaboration Messaging work area, click Tasks, then click Manage Collaboration Messaging History.
2. In the Search area, set the value, then click Search.

Aribute Value

Document PROCESS_PO_IN
   

3. In the Messages area, in the External Message ID column, click the row that references the message you
simulated earlier, such as 08192016_001.
4. Click Actions, then click a menu item.

Menu Item Description

View Source Document View the input XML that Collaboration Messaging received from the trading partner.
   

View Output Document View the output XML that Collaboration Messaging converted from the input XML, and then
  sent to Order Management.
 

5. Click Done.
6. Click Tasks > Manage Collaboration Messaging History.
7. Examine the results of the acknowledgment.
In the Search area, set the value, then click Search.

117
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Aribute Value

Document ACKNOWLEDGE_ PO_OUT


   

8. Examine the results of the shipment.

In the Search area, set the value, then click Search.

Aribute Value

Document PROCESS_ SHIPMENT_OUT


   

Related Topics
• Import Orders into Order Management

Drop Ship
Overview of Drop Ship in Order Management
Drop ship is a supply chain management technique where the seller relies on a supplier or contract manufacturer to
build, store, and ship an item to your customer. You can use Order Management Cloud to automate this process.

118
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Note.

• Assume your customer places a sales order with you and you want to drop ship it.
• Order Management sends a purchase request to Oracle Procurement Cloud, which places a purchase order
with your supplier, then your supplier ships directly to your customer.
• You provide a purchase order for the item and instructions that describe how to ship directly to the customer.
• The supplier or contract manufacturer ships the item, and your company earns a prot.

Use drop ship to get results.

• Reduce costs for holding inventory.

119
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

• Let you supplier manage part of the supply chain, such as fullling and shipping the item, instead of you having
to do it.
• Forecast and plan for future demand.
• Let your customer place an order with you, and let you promise a ship date.
• Automatically place an order with your supplier.
• Let your supplier ship directly to your customer.
• Receive notication from your supplier when your shipment has shipped.
• Let the buyer modify the purchase order.
• Combine more than one sales order into a single purchase order, then fulll them together.
• Modify a sales order after you create the purchase order.
• Manage change orders.

Note.

• You can drop ship a standard item, congured item, kit, conguration model, pick-to-order item, or assemble-
to-order item.
• You can't drop ship an item that isn't shippable, such as a coverage item, subscription, or warranty.
• Your customer can return a drop ship order only to your warehouse. Your customer can't return a drop ship
order directly to the supplier.
• You can't use a third party application in your drop ship ow.

Related Topics
• Schedule Fulllment Lines Manually

120
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

How Drop Ship Works in Order Management


Use Order Management to manage your drop ship ow.

Note.

1. An order capture system captures a source order.

◦ Each horizontal row in the diagram represents a system or application.


◦ The drop ship ow is a variation of the order-to-cash ow.

121
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

◦ Order Management comes predened to capture sales orders in the Order Management work area. You
can also capture source orders in an order capture system that resides outside of Order Management.
2. Order Management assigns an orchestration process to the sales order, uses the Schedule Order task to start
scheduling the sales order, then sends a scheduling request to Global Order Promising.
3. Global Order Promising considers sourcing rules, supplier calendar, capacity, and so on to identify the supplier
and supplier site that can fulll the order in the most ecient way. If the sales order species a supplier, then
Global Order Promising uses this supplier.
4. The orchestration process gets the requisition organization from Supply Chain Financial Orchestration so it can
create a purchase request.
5. Order Management sends a purchase request to Oracle Procurement.

122
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

6. Procurement creates a purchase requisition, approves the requisition, creates a purchase order, then sends the
purchase order to the supplier.

Note.

◦ The Customer Sales Order aribute in the Purchase Requisitions work area references the sales order
number in the Order Management work area.
◦ The Requisition aribute in the Purchase Orders work area references the requisition number in
Purchase Requisitions.
◦ The Drop Shipment PO aribute on the Supply Details tab of the fulllment line references the purchase
order.

123
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

◦ The Requisition aribute on the Supply Details tab of the fulllment line references the purchase
requisition.
◦ Order Management sets the order line status when Procurement creates the requisition and the purchase
order.

What Procurement Does Order Line Status

Creates the requisition. Requisition Created


   

Creates the purchase order.


  Awaiting Shipping

• Receiving can send advance shipment notice (ASN) details to Order


Management after the status goes to Awaiting Shipping.
• Receiving can create an ASN for the entire quantity or for only part of the
quantity.

◦ If a blanket purchase agreement exists, then Procurement might source the requisition from the
agreement.
◦ Procurement sends responses to Order Management while the purchase order moves through its
lifecycle.

Response What Procurement Did

PO_IMPLEMENTED Created the purchase order.


   

PO_ CO_ IMPLEMENTED Added a change to an existing purchase order.


   

PO_ CO_RESCINDED Rejected a change in the purchase order.


   

REQ_ LINE_CANCEL Canceled a line in the purchase requisition.


   

7. The supplier examines the purchase order and uses your shipping fulllment system to ship the item to the
customer. The enterprise supplier also communicates with the receiving part of Inventory Management to cost
the shipment.
8. The supplier uses a supplier portal to enter an ASN. Order Management sends the notice to interested parties
and Financial Orchestration. For details about the supplier portal, see the Supplier Portal topic.
9. The receiving part of Inventory Management creates a logical receipt in the receiving organization. It doesn't
create a physical receipt because the supplier ships the item directly to your customer.
10. Financial Orchestration runs a nancial ow that comes predened to handle drop ships, and that species how
to handle the ow that runs from the supplier to the customer.
11. Cost Management does receipt accounting and cost accounting.
12. Order Management waits to receive the advance shipment notice from receiving. The notice indicates that the
item shipped and that the customer acknowledged receipt.
13. Order Management communicates with Oracle Receivables to create an invoice and process payments.
You can modify some of these steps. For example, use Manage Sourcing Rules to modify how Global Order Promising
considers sourcing rules, or use Manage Drop Ship Financial Flows to modify how Supply Chain Financial Orchestration

124
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

sets up a relationship between the selling business unit and the requisition organization. For details, see the Set Up
Drop Ship in Order Management topic.

Related Topics
• How Order-to-Cash Works in Order Management
• How Order-to-Cash Works with Order Capture Systems
• Supplier Portal

Guidelines for Seing Up and Using Drop Ship


Use guidelines to help you set up drop ship in Order Management.

Set Up Features
Each feature comes predened as already available except for Fulll a Customer Order Through Drop Shipment and
Handle Landed Cost Charges for Drop Ship Receipts. Each feature includes a predened job role.

Feature Setup Required

Fulll a Customer Order Through Yes


Drop Shipment  
 

Automatic Change Management on No


Drop Ship Orders  
 

Change Drop Ship Orders from Check No


Availability Page  
 

Partial Shipment on Drop Ship Orders No


   

Analytics with Supplier Source No


   

Create Relationship between Selling Yes


Business Unit and Requisition  
Business Unit
 

Automate Financial Flow Yes


   

Order Promising for Drop Ship Yes


   

Create ASNs for Drop Ship Receipts Yes


   

Create Accounts Payable Invoices for Yes


Drop Ship Receipts  
 

125
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Feature Setup Required

Process Accounting for Drop Ship No


Transactions  
 

Handle Landed Cost Charges for Yes


Drop Ship Receipts  
 

Report Gross Margins for Drop Ship No


Orders  
 

Report In-transit Inventory for Drop No


Shipments  
 

126
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Create Sales Orders


You can use dierent technologies to provide supplier details when you create the sales order, depending on your
implementation requirements.

Note.

• Specify a value in the Supplier aribute to implicitly start the drop ship ow.
• Manually set Supplier and Supplier Site aributes on the sales order, or create a sourcing rule that does it
automatically.

Use REST API, le-based data import, or a web service to create the order.

127
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Dierent technologies use dierent aribute names to represent the same data.

Technology Description

Sales order in the Order Management • As an option, set the Order Type aribute to Drop Ship Orders on the order header.
work area
 

128
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Technology Description

• Set the Supplier aribute and Supplier Site aribute on the Supply tab of the order line.
If you don't specify a value for supplier site, then Procurement sets it according to rules
in Procurement.

Sourcing rule in the Order Promising


work area Use the Manage Sourcing Rules page in the Order Promising work area. Set the aributes.
 
• Supplier
• Supplier Site

REST API
  Use the salesOrdersforOrderHub REST resource. In the request payload, provide.

• SupplierId
• SupplierName (optional)
• SupplierSiteId
• SupplierSiteName (optional)
• TransactionType or TransactionTypeCode

For example.

{
"SourceTransactionNumber":"87956",
"SourceTransactionSystem":"GPR",
"SourceTransactionId":"87956",
"BusinessUnitName":"Vision Operations",
"BuyingPartyName":"Computer Service and Rentals",
"BuyingPartyContactName":"Brian Smith",
"TransactionType":"Standard Orders",
"RequestedShipDate":"2019-10-19T20:49:12+00:00",
.
.
.
"SupplierId" : 11176859,
"SupplierName" : "Green Bytes Inc.",
"SupplierSiteId" : 76846573869,
"SupplierSiteName" : "Denver Distribution Center"
"TransactionType" : "Dropship Orders"
"TransactionTypeCode" : "STD_DS"

.
.
.
}

File-Based Data Import


  Use the SourceSalesOrderImportTemplate.xlsm le.

On the DOO_ORDER_HEADERS_ALL_INT worksheet, set the Transaction Type Code to


STD_DS.

On the DOO_ORDER_ADDRESSES_INT worksheet.

• Set the Address Use Type aribute to SUPPLIER.


• Specify a value for at least one of these aributes.

◦ Requested Supplier Code

129
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Technology Description

◦ Requested Supplier Number

◦ Requested Supplier Name

• Specify a value in the Requested Supplier Site Identier aribute.

Web Service • Specify TransactionType or TransactionTypeCode on the order header in a web service
  payload.
• Specify RequestedSupplierName and SupplierSiteCode on the order line.
• Use the Create Order Operation of the OrderImportService web service.

For example.

<ns2:Order>
.
.
.

<ns2:TransactionType>Dropship Orders</ns2:TransactionType>
.
.
.
<ns2:Line>
.
.
.
<ns2:RequestedSupplierName>Green Bytes Inc.</ns2:RequestedSupplierName>
<ns2:SupplierSiteCode>76846573869</ns2:SupplierSiteCode>
.
.
.

Note.

• If you don't specify the supplier and supplier site in a sourcing rule, then you must include the Schedule Ship
Date on the order line in the payload or FBDI template.
• To verify the values you must use for TransactionType or TransactionTypeCode, in the Navigator,
click Setup and Maintenance, open the Manage Order Lookups task, then search for lookup type
ORA_DOO_ORDER_TYPES. Use a value from the.

◦ Meaning column for the TransactionType aribute.


◦ Lookup Code column for the TransactionTypeCode aribute.

Integrate with Procurement


Send Shipping Instructions and Packing Instructions

If you use the predened drop ship ow, then note these points.

• Order Management sends shipping instructions and packing instructions in one or more aachments on the
fulllment line because Procurement only accepts instructions in an aachment.
• Procurement only processes aachments that include an aachment category of MISC (Miscellaneous) on the
fulllment line. It ignores an aachment that contains any other value.

130
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

• An Order Entry Specialist can use the Create Order page in the Order Management work area to set the
Category aribute in the Aachments dialog to any value that the drop down for the aribute displays when
adding an aachment to an order line. However, Order Management sends a value of MISC to Procurement
regardless of the value of Category.
• The user can enter text in the Shipping Instructions aribute and the Packing Instructions aribute in the
Shipping Details area of the Create Order page. However, Order Management doesn't send this text to
Procurement because Procurement only accepts them in an aachment.
• You must set the aachment category to MISC on the order line of each source order that you import.

For details about aachment categories and how to set them up, see the Overview of Integrating Aachments in Order
Management topic.

Calculate Ship Dates

If a supplier sends updates to Procurement, then Procurement might send an update for the scheduled arrival date to
Order Management. Order Management updates the scheduled arrival date but doesn't update the scheduled ship date
on the fulllment line.

Order Management updates the scheduled ship date, scheduled arrival date, and shipping method only if you set up
Global Order Promising to calculate shipping, such as how to calculate transit time. If you don't set it up, the scheduled
dates and shipping method might not contain a value.

This behavior aects fulllment, including choices that your users make when they override the schedule. For details,
see the Schedule Fulllment Lines Manually topic.

Send Your Own Aribute

Use an extensible exeld to send your own aribute to a descriptive exeld on the purchase order in Procurement.

131
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Here's an example payload that sends an extensible exeld named ComplianceDetails to Procurement.

Note.

• Use web service Request Fulll Order Orchestration Task Service to send your payload. For details, see the
Overview of Using Extensible Flexelds in Order Management topic.
• Set up prole options in Procurement.

◦ Copy the requisition for the purchase order to a descriptive exeld.


◦ Copy the requisition line for the purchase order to a descriptive exeld.
◦ Copy the order header for the purchase order to a descriptive exeld.

132
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

For details, see these topics.

◦ Overview of Prole Options


◦ Overview of Flexelds

Use Service Mappings

Use a service mapping to send data to Procurement, such as the supplier price or a note. For details, see the Use Service
Mappings to Send Data to Procurement topic.

Manage Change
If the Order Entry Specialist changes a fulllment line during a drop ship that's awaiting shipment, then Order
Management waits for Procurement to accept the change. The buyer or supplier might reject the change because they
can't fulll it. For example, the supplier can't meet a revised requested ship date, shipping method, quantity, and so on.

Order Management assumes Procurement will accept the change and uses the change order to update the sales order.
However, if Procurement rejects the change, then the sales order in Order Management and the purchase order in
Procurement are no longer synchronized. For example, if the user changes the quantity on a fulllment line, and if the
ship date is imminent, then Order Management might accept the change but your supplier might reject it because the
supplier already prepared the item for shipping.

To avoid this problem, Order Management uses predened constraints to prevent the Order Entry Specialist from
changing the fulllment line.

Constraint Display Name Description

Update Fulllment Line That Drop Prevents the Order Management user from updating or canceling the fulllment line when the
Ships purchase request in Procurement is at the Purchase Order stage.
   
Cancel Fulllment Line That Drop
Ships
 

Cancel Fulllment Line When Prevents the Order Management user from canceling a fulllment line for the drop ship when
Purchase Order Isn't Available the purchase order for the line is closed for receiving, is locked, or is on hold.
   

Update Purchase Request Validation


  Makes sure.

• The ordered quantity on the fulllment line is greater than zero.


• The Record Set contains the values that the Update Purchase Request fulllment task
requires.
• The requested arrival date or the scheduled arrival date on the fulllment line contains a
value.

If you disable these constraints to meet your business requirements, then you must create your own constraints that
prevent Order Management from accepting a sales order revision that Procurement rejects. For example, create a
constraint that implements this logic.

• If the supplier can fulll the change when it occurs two days or more before the ship date, then reject the
change only if it occurs within two days before the ship date.

133
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

For details, see the Processing Constraints topic.

Modify Purchase Orders


Here's what you can and can't do.

Modication Description

Ship a congured item, pick-to-order, • If your sales order includes a congured item or a shipment set, and if your supplier
or shipment set already shipped some order lines but other lines are awaiting shipment, then you can
  cancel only the lines that the supplier hasn't shipped.
• Don't revise the purchase order in Procurement Cloud even if you intend to cancel the
purchase order schedule.
• Don't change a congured item, pick-to-order item, or shipment set in Procurement
Cloud.
• Don't use a shipment set to group sales order lines into a single purchase order.
Procurement doesn't support shipment sets for this usage.

Modify purchase requisition


  The buyer must not.

• Modify or split a requisition line.


• Modify a pick-to-order or assemble-to-order congured item.
• Modify a kit.

Assign supplier Don't assign a new supplier on the requisition, then split the schedule on the draft purchase
  order.
 

Change on-hand ow to drop ship


ow If you scheduled a sales order line so your warehouse fullls it, and you want to change the
  order to a drop ship.

1. Go to the Order Management work area.


2. Use the Edit Fulllment Line action to remove the value from the Warehouse aribute.
3. Add a value to the Supplier aribute and Supplier Site aribute.
4. Enter a value in the Scheduled Arrival Date aribute.

Removing a value from the warehouse and adding a value to the supplier and supplier site
creates a drop ship ow. The ow needs the date so it can create the requisition.

Cancel order line If the order line is in Requisition Created status, then you can cancel it in the Order
  Management work area, but you can't make any other changes.
 
If Order Management sends a purchase request to Procurement Cloud, and if Procurement
creates a purchase requisition for the request but hasn't created a purchase order for it,
then you can only cancel the order line, and you can cancel the line only if it isn't part of a
congured item or shipment set.
 

Change other aributes The buyer can change values in aributes that don't aect the drop ship ow.
   

Here's what you can and can't do regarding combining and spliing.

134
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Modication Description

Ship part of a fulllment line or part


of a sales order If you drop ship.
 
• Part of an order line, then you can only cancel the quantity you haven't shipped. You
can't cancel the quantity you already shipped.
• Part of a sales order, then you can cancel only the fulllment lines you haven't shipped.
• And if you must cancel the shipment, then you must start the cancel from the upstream
system, such as your order capture system or Order Management. Don't start the cancel
from Procurement Cloud.
• Don't revise the purchase order in Procurement Cloud.

Split the schedule The buyer can split the schedule, but don't split the schedule and also change the quantity or
  supplier at the same time.
 

Combine sales orders into one If the ow creates one purchase order for requisition lines that reference more than one sales
purchase order order, and if you revise these sales orders, then the ow places a hold on one of the sales
  orders and revises the purchase order. It doesn't revise the other sales orders and they fail.
 
To x this problem, go to the Order Management work area, delete the sales order revisions
that failed, wait for Order Management to nish processing the sales order it placed on hold,
then revise the other sales orders.
 
You can only combine sales orders for the same customer or for the same supplier site. You
can't consolidate sales orders across customers or across supplier sites.
 

Combine sales order lines into Manually combine sales order lines into one or more purchase orders. You can create one
purchase orders purchase order for each order line, resulting in several purchase orders for one sales order.
   

Here's what you can and can't do regarding quantity.

Modication Description

Modify quantity If you split the purchase order schedule across more than one delivery date, then make sure
  the total quantity across your split schedules equals the ordered quantity on the fulllment
line.
 
If shipping has received the ASN, then you can't modify the quantity.
 

Set quantity for advance shipment Make sure you use a single order line to specify the quantity for an Advance Shipment Notice.
notice Don't split the quantity across more than one line.
   

Modify receipt quantity The drop ship ow creates a receipt when it receives an invoice from accounts payable or an
  advance shipment notice. The ow then moves to the next orchestration process step in Order
Management. Order Management won't display a subsequent change you make to the receipt
quantity.
 

135
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Other Setups
Here are some other set ups you can do.
• Create a separate requisition and purchase order for each order line.
• To improve performance, aggregate fulllment lines before you send them to Procurement. For details, see the
Actions You Can Set When Routing Requests to Fulllment Systems topic.

Reports

Add drop ship details to a report.


1. In Oracle Transactional Business Intelligence, on the Catalog page, click New > Analysis.
2. In the Select Subject Area dialog, click Order Management - Fulllment Lines Real Time.
3. On the Untitled page, in the Subject Areas tree, expand Drop Shipment Details.
4. Drag aributes from the Subject Areas tree and drop them onto the Selected Columns area.
For details, see the Create Your Own Report section in the Use Reports and Analytics with Order Management topic.

Reject an Over-Receipt

If the quantity on the advance shipment notice (ASN) exceeds the ordered quantity, then Oracle Fusion Receiving will
reject the fulllment request and display a message requesting the user to modify the quantity regardless of how you
set the Over-Receipt Action aribute on the Manage Receiving Parameters page in the Setup and Maintenance work
area. If receiving rejects the request, you must correct the quantity on the ASN or in receiving.

For details about this aribute, see the General Receiving Parameter Options topic.

Related Topics
• Processing Constraints
• Overview of Integrating Aachments in Order Management
• Schedule Fulllment Lines Manually
• Overview of Using Extensible Flexelds in Order Management
• Overview of Prole Options

Set Up Drop Ship in Order Management


Set up Order Management so it supports your drop ship ow.
Summary of the Set Up
1. Set up Oracle Applications.
2. Enable features.
3. Manage items.
4. Manage sourcing rules.
5. Manage nancial ows. For details, see the Set Up Financial Flows for Drop Ship topic.
6. Manage order management parameters.
7. Manage suppliers and supplier sites.
8. Manage agreements.
9. Manage orchestration processes.
10. Manage agreements, orchestration processes, and test.

136
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Note.
• Each of these set ups are required except for Manage Agreements and Manage Orchestration Processes, which
are optional.
• In this example, you enable the AS54888 Sentinel Desktop Computer for drop ship.
• This topic includes example values. You might use dierent values, depending on your business requirements.

Set Up Oracle Applications


Set up various Oracle applications so they support drop ship. For example, the Order Management oering references
Global Order Promising to collect supply data from more than one source.

Here are the tasks you do to get started with seing up drop ship.
1. Dene Blanket Agreement and ASL in Procurement. Sign in with a privilege that you can use to set up
Procurement.
2. Create Drop-Ship Validation Org in Inventory Management. Sign in with a privilege that you can use to set up
Inventory Management.
3. Do tasks in Global Order Promising.
◦ Sign in with a privilege that you can use to set up Global Order Promising.
◦ Manage Data Collections.
◦ Dene Item Processing Lead Times.
◦Manage Sourcing Rules and Manage ATP Rules. Set up sourcing rules and ATP rules so they support
drop ship. For details, see the How Order Promising Rules Work Together topic.
4. Do tasks in the Manufacturing and Supply Chain Materials Management oering.
◦ Manage Trade Operations
◦ Dene Shipping Network
◦ Dene Transit Lead Times
◦ Manage Assignment Sets
◦ Maintain Supply Network Model

For details, see the Implementing Common Features for Oracle SCM Cloud topic.

Enable Features
1. Implement the Order Management oering.
For details, see the Implement chapter in the Implementing Order Management book.
2. Sign into Order Management with administrative privileges.
3. In the Navigator, click Setup and Maintenance.
4. In the Setup and Maintenance work area, go to the Order Management oering.
5. Click Actions > Change Feature Selection.
6. On the Edit Features page, in the Drop Ship row, add a check mark to Enable, then click Done.
Enabling this feature lets you access various aributes and to do the setup tasks you need to implement drop
ship, such as in Financial Orchestration.
7. Click Actions > Go to Oerings.
8. In the Setup and Maintenance work area, go to the Procurement oering.
9. Click Actions > Change Feature Selection.

137
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

10. On the Edit Features page, in the Customer Sales Order Fulllment row, add a check mark to Enable, then click
Done.
This feature allows Oracle Procurement to accept purchase requests for sales orders that a drop ship supplier
fullls, and to display some of the aributes that you use to set up drop ship.

Manage Items
Set up items so they can participate in drop ship.
1. Sign in with a privilege that you can use to set up Product Information Management.
2. In the Navigator, click Product Information Management.
3. On the Overview page, click Tasks > Manage Items.
4. On the Manage Items page, search for the item you want to drop ship, such as Sentinel Desktop Computer.
5. In the search results, in the Item column for the item you must manage, click the link .
For example, in the Sentinel Desktop Computer row, click AS54888.
6. On the Edit Item page, click Specications, then click Purchasing.
7. In the Item Organization: Purchasing area, set the aribute.

Aribute Description

Purchasable Set to Yes. Allow this item to participate in a drop shipment.


   

8. If a blanket purchase agreement doesn't exist for the item, then, in the Pricing area, enter a number in the List
Price aribute.
9. Click Save.
Note.
◦ You specify the item as purchasable in the organization that's responsible for purchasing the item.
◦ The Product Information Management work area comes predened to set the Purchasable aribute to
Yes, so you modify it only if you previously set it No.
◦ For details about how to make a large number of items purchasable, see the Implementing Product
Management book.

Manage Sourcing Rules


Specify a sourcing rule that already includes details for the supplier and the supplier site. Global Order Promising
evaluates the sourcing rule and considers the supplier calendar, supplier capacity, and supplier lead times when it
promises the order.
1. Sign in with a privilege that you can use to access the Order Promising work area.
2. In the Navigator, click Order Promising.
3. On the Overview page, click Tasks > Manage Sourcing Rules.
4. On the Manage Sourcing Rules page, search for the sourcing rule you must modify, such as DOO-DS-Rule.
5. In the search results, click the sourcing rule, then click Actions > Edit.
6. On the Edit Sourcing Rule page, verify the value.

Aribute Description

Organization Assignment Type Make sure the type is Global. If it isn't Global, then you can't use this sourcing rule.

138
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Aribute Description

   

7. In the Eective Start Date area, to add a sourcing rule for your drop ship ow, click Actions > Add, then set
values.

Aribute Description

Organization Leave empty. The Organization is typically the warehouse that stores inventory for a ow
  that doesn't include a drop ship.
 

Type Choose Buy From. Global Order Promising interprets Buy From to indicate that this value
  must come from a drop ship supplier.
 

Supplier Choose the supplier who will drop ship the item.
   

Supplier Site Choose the site that the supplier uses to store the drop ship item. The supplier ships the item
  from this site.
 

8. Click Save and Close.


9. Click View Assignment Sets.
10. In the Assignment Sets dialog, choose an assignment set, such as AYY-OP-ASET, then click Done.
11. On the Edit Assignment Set page, in the Sourcing Assignments area, click Actions > Add Row, then assign an
item to the sourcing rule.

Aribute Description

Assignment Level Set to Item. This seing assigns the sourcing rule to the item.
   

Item Choose the item that the supplier you specied in step 6 supplies. For this example, choose
  AS54888.
 

Sourcing Type Set to Sourcing Rule. This value associates the sourcing rule with the assignment set so
  Order Management can use the rule to assign the item.
 

Sourcing Rule or Bill of Distribution Set to Drop Ship.


   

You can also specify other aributes for the supplier.

139
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Aribute Description

Supplier Calendar
  Specify the working days for the supplier.

• Modify the calendar for each supplier site.


• The calendar you specify can be dierent from the calendar that the Supplier Site uses.
• Global Order Promising considers only working days when it calculates and incorporates
lead times.

Supplier Capacity Specify the supplier capacity according to item, supplier, and supplier site. Order Promising
  measures the supplier capacity that exists on the arrival date.
 

Supplier Lead Times You specify and collect the lead times for item processing on the item master in Oracle Fusion
  Product Model. You can specify a lead time for each supplier in Global Order Promising.
 

Manage Order Management Parameters


Specify an Order Management user who the buyer can contact to help resolve a problem that might occur with a
fulllment line that involves a drop ship supplier.

1. In the Setup and Maintenance work area, go to the task.

◦ Oering: Order Management


◦ Functional Area: Orders
◦ Task: Manage Order Management Parameters
2. On the Manage Order Management Parameters page, click Preparer for Procurement.
3. In the Preparer for Procurement list, add a preparer, then click Save and Close.
You must specify at least one value so Order Management can successfully send a purchase request to Oracle
Procurement Cloud. The default value applies across all business units. You can add a separate preparer for each
business unit. For details, see the Manage Order Management Parameters topic.

Manage Suppliers and Supplier Sites


Specify the client business unit that Procurement will use to requisition and process invoices for the supplier site. For
details, see Supplier Sites and Supplier Site Assignments topic.

1. Sign in with a privilege that you can use to access the Suppliers work area.
2. In the Navigator, click Suppliers.
3. On the Overview page, click Tasks > Manage Suppliers.
4. On the Manage Suppliers page, search for the supplier you must manage, such as GVR_DS_SUPPLIER1.
5. In the search results, click the supplier you must manage, such as GVR_DS_SUPPLIER1.
6. On the Edit Supplier page, click Sites.
7. In the Site column, click a site, such as GVR_SUP1_SITE1.

The supplier site you select must reference a procurement business unit. This business unit authorizes
procurement services for the site.
8. On the Edit Site page, verify the value.

140
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Aribute Value

Purchasing Contains a check mark.


   

This option species that the supplier site fullls a purchasing role for the client business unit.
9. Click Site Assignments, then set the value.

Aribute Value

Client BU Choose the client business unit that will requisition and process invoices for the supplier site.
   

If necessary, click Actions > Create to add a client business unit.


10. Repeat step 9 for each requisition business unit that resides at the site that might request to purchase a drop
ship item.
11. Click Save and Close.
12. Repeat steps 4 through 10 for each supplier that you must manage.

Manage Agreements, Orchestration Processes, and Test


Manage Agreements

Oracle Fusion Purchasing allows your buyer to create a blanket purchase agreement for items it will drop ship from the
supplier. You must dene an agreement for each supplier and supplier site, and associate one or more items with the
agreement. You do this work when you set up purchasing.

This topic describes how to modify the setup so it supports drop ship. Purchasing uses the prices that the agreement
species to set default values in the purchase documents. For details, see Blanket Purchase Agreement Lines topic.

You manage agreements dierently for a drop ship that includes a congured item. For details, see the Set Up Drop
Ship for Congured Items topic.

Manage agreements.

1. Sign in with a privilege that lets you access the Purchasing work area.
2. In the Navigator, click Purchasing.
3. Click Tasks > Manage Agreements.
4. On the Manage Agreements page, choose a value in the Procurement BU aribute, such as Vision Operations,
then click Search.
5. In the search results, in a row that includes an agreement with a supplier who will drop ship your item, in the
Agreement column, click the link.
6. On the Agreement page, click Actions > Edit.
7. On the Edit Document page, click Controls, then set values.

141
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Aribute Description

Automatically Generate Orders


  Set to a value.

◦ Contains a check mark. Purchasing will automatically convert each requisition that
it sources from the blanket purchase agreement. It will convert each requisition to a
purchase order.
◦ Doesn't contain a check mark. Your buyer must do the conversion manually in the
Purchasing work area.

Purchasing examines eligibility according to the requisition to purchase order even if


Automatically Generate Orders doesn't contain a check mark. For example, it makes sure
each aribute is valid.

◦ Buyer

◦ Supplier

◦ Supplier site

◦ Source agreement

◦ Item is purchasable in the inventory organization of the procurement business unit

Automatically Submit for Approval Make sure this option contains a check mark. If it doesn't, then Order Management will
  create the order with an incomplete status, and the buyer must manually submit it for
approval.
 

Use Customer Sales Order


  Set the value.

◦ Contains a check mark. Purchasing will group requisition lines that reference the
same sales order number. It will group them on a single purchase order.
◦ Doesn't contain a check mark. Purchasing won't group.

8. Click Save > Save and Close.


9. Repeat steps 5 through 8 for each supplier who participates in your drop ship ow.
Manage Orchestration Processes

Order Management comes predened with the DOO_OrderFulllmentGenericProcess orchestration process.

It contains branches that run under conditions.

• If the shipment is a drop shipment, then run the Create Shipment Request branch.
• If you enable the item in the inventory organization for back-to-back shipping, then run the back-to-back
branch.
• If the rst two conditions are false, then run the Create Reservation branch.

Use this orchestration process as the default process assignment in your Assign and Launch rule. You can also create
your own orchestration process that meets your business requirements. For details, see the Set Up Orchestration
Processes topic.

Examine the predened orchestration process.

1. Sign in with the Order Administrator privilege.

142
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

2. In the Setup and Maintenance work area, go to the task.

◦ Oering: Order Management


◦ Functional Area: Orders
◦ Task: Manage Orchestration Process Denitions
3. On the Manage Orchestration Process Denitions page, search for DOO_OrderFulllmentGenericProcess.
4. Examine the steps and branches.
5. If necessary, make a copy of this process, then modify it so it meets your business requirements, or create a
new orchestration process and use DOO_OrderFulllmentGenericProcess as a starting point.
Test Your Set Up

Create a sales order that uses drop ship.

Related Topics
• How Order Promising Rules Work Together
• Supplier Sites and Supplier Site Assignments

Set Up Financial Flows for Drop Ship


Set up your nancial ow to create cost accounting distributions that track costs and ownership liability each time a
transfer occurs between parties, including the supplier, one or more internal organizations, and the customer.
Financial Orchestration Cloud controls the change in ownership for each item that it processes during a drop ship ow.
For example, to transfer ownership from the selling business unit to the requisition business unit. It also creates an
intercompany invoice for each internal ownership transfer, when necessary.

You can specify more than one requisition business unit to manage and own more than one transaction that requests
the item. You can also specify the selling business unit in the legal entity that sells the item.

Here's how it works.

1. Receive events. Financial Orchestration captures the physical supply chain event each time one occurs in
the drop ship ow. For example, when the supplier sends the Advance Shipment Notice to indicate that they
shipped the item.
2. Identify the nancial ow to run. Financial Orchestration uses your set up details to identify the nancial ow to
use.

◦ Purchase order for the drop ship


◦ Sales order details that it gets from source documents
◦ Selling business unit and buying business unit
◦ Financial orchestration qualiers
◦ Priority of the nancial orchestration ow
3. Run the nancial ow.
The ows that Financial Orchestration runs depends on the number of business units that are involved.

143
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Number of Business Units Description

One The selling business unit and the requisition business unit are the same unit, and Financial
  Orchestration uses only one nancial ow for the drop ship.
 

More than one Financial Orchestration might run through more than one business unit that involves
  procurement nancial ows and shipment nancial ows.
 

Set it Up
1. Sign in with Order Administrator privileges.
2. In the Navigator, click Setup and Maintenance.
3. In the Setup and Maintenance work area, go to the task.
◦ Oering: Manufacturing and Supply Chain Materials Management
◦ Functional Area: Supply Chain Financial Flows
◦ Task: Manage Drop Ship Financial Flows
4. On the Manage Drop Ship Financial Flows page, in the search results, click Actions > Create.
5. On the Create Drop Ship Financial Flow page, set values.

Aribute Description

Name Drop Ship Flow for Vision Operations


   
You can use any text.
 

Priority 1
   

6. Set the aribute.

Aribute Description

Supplier Ownership Change Event


  Specify when to start the ownership change.

◦ ASN From Supplier. Change ownership when the supplier sends an advance
shipment notice (ASN) to the nancial ow for the drop ship order.
◦ AP Invoice Match. Change ownership when the supplier sends an invoice to the
nancial ow for the drop ship order.

For details, see the Indicate an Ownership Change During Drop Ship topic.

7. In the Selling BU to Receiving BU Relationships area, click Actions > Add Row, then specify the relationship.
For details, see the Specify Business Units for Drop Ship Flows topic.
8. Repeat these steps for each selling business unit that your enterprise contains.
9. Click Save and Close.

144
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Related Topics
• Financial Orchestration Flows

Specify Business Units for Drop Ship Flows


Specify the relationship between the selling business unit, requisition business unit, supplier, and customer when you set
up a nancial ow that includes a drop ship.

Note.
• Red text indicates example values.

145
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

• Vision Operations is a legal entity. It contains a selling business unit that takes sales orders directly from your
customer in its North American call center.
• Singapore Distribution Center.

◦ Is the receiving trade organization. It receives the item from your supplier. The receiving trade
organization also owns the requisition and receives the purchase order on behalf of the selling business
unit.
◦ Is the requisition business unit.
◦ Supplies the item to customer Computer Service and Rentals, which is located in China.

• The supplier is a separate company and is also a legal entity.

The Create Drop Ship Financial Flow page sets the Receiving BU aribute and the Receiving Legal Entity aribute
according to the value you set in the Receiving Trade Organization aribute.

Assume you set Receiving Trade Organization to Vision Operations, and you set up the application to create a
requisition in the Vision Operations inventory organization for each sales order you drop ship that Vision Operations
creates. Here are the aributes that will contain a value of Vision Operations.

• Selling BU
• Selling Legal Entity
• Receiving Trade Organization
• Receiving BU
• Receiving Legal Entity
• Requisition BU

Order Management Cloud gets the value for the Requisition Organization aribute and the Requisition BU aribute
from the purchase requisition it creates for each drop ship order that involves a supplier, and that requires a requisition
organization.

Specify the Receiving Trade Organization


Specify the Receiving Trade Organization aribute on the Create Drop Ship Financial Flow page. Choose the
organization that does these tasks.

• Places the requisition for the goods


• Receives the purchase order for the drop ship
• Does the receipt accounting and shipment accounting for the drop ship

Set the Selling Business Unit and the Receiving Business Unit
Use Financial Orchestration to set up and run the nancial ow according to the ownership transfer that occurs between
the parties that are involved in the drop ship ow. Set up the relationship that exists between the selling business unit
and the receiving business unit. Financial Orchestration uses this relationship when it creates a purchase requisition for
the drop ship.

If you set the value for the Selling BU aribute to a value that's dierent from the value in the Receiving BU aribute,
then Financial Orchestration determines whether it must do more nancial and accounting transactions according to
the procurement and shipping ows.

146
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Set Up Dierent Requisition Trade Organizations


If you set the value in the Selling BU aribute to a value that's dierent from the value in the Receiving BU aribute,
then a shipment nancial ow must exist between the receiving business unit and the selling business unit. Financial
Orchestration determines whether this ow exists when you create the relationship. If it doesn't, then Financial
Orchestration displays an error message.

If a procurement nancial ow exists in Financial Orchestration, and if Financial Orchestration can use it for the
purchase order that the drop ship references, then Financial Orchestration uses the procurement nancial ow when it
orchestrates the drop ship.

For example, assume you must create a requisition that references the China inventory organization for each Metal
item, and create a requisition that references the United States inventory organization for each Plastic item. Here's your
set up.

Drop Ship Financial Flow Inventory Organization Financial Orchestration Qualier

Flow 1 Resides in China as the receiving trade Use Metal as the item category.
  organization.  
 

Flow 2 Resides in the United States as the Use Plastic as the item category.
  receiving trade organization.  
 

Indicate an Ownership Change During Drop Ship


Specify when to change ownership during a drop ship ow.
• When Order Management receives the advanced shipment notice (ASN) from the supplier
• Or when Financial Orchestration receives the accounts payable invoice from the supplier

147
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

You use the Supplier Ownership Change Event aribute on the Manage Drop Ship Financial Flows page to specify when
to change ownership.

ASN From Supplier


If the supplier sends an advanced shipment notice (ASN), then set Supplier Ownership Change Event to ASN From
Supplier.

Here's the ow.

1. The supplier sends the ASN to Order Management.


2. Order Management copies the advanced shipment notice into receiving, which creates a type of drop ship ow
known as receipt and delivery that records the event.

148
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

3. Order Management starts the downstream processes that cost and bill the shipment, including creating the
drop ship receipt, starting the billing process, and starting the nancial orchestration process for the drop ship
order.
4. Receiving sends status and event details to Financial Orchestration and Order Management.

◦ Financial Orchestration processes the trade transactions in costing, processes the receivable invoices
between companies, processes payable invoices between companies, and so on.
◦ Order Management sends status and event details to billing and order orchestration.

How to Communicate the ASN

The supplier can use actions on the supplier portal to create the advanced shipment notice.
• Create ASN
• Create ASBN
• Upload ASN
• Upload ASBN

If the supplier uses an informal communication, such as email, to report the shipment of a purchase order that
references a drop shipment, then the warehouse manager can also use these features on the Receipts page in the
Warehouse Operations work area to manually enter the advanced shipment notice. You can also upload an advanced
shipment notice electronically through XML or EDI. For details, see these topics.
• Supplier Portal
• Overview of Creating ASNs and ASBNs

AP Invoice Match
What happens if the supplier doesn't send an advanced shipment notice, but instead sends an invoice?
1. The supplier sends an invoice to accounts payable in Financial Orchestration.
2. Financial Orchestration starts orchestration to receive costs and bill the shipment.

The receiving process works the same way it does for ASN From Supplier, except the process doesn't create an
advanced shipment notice.
3. Order Management receives and delivers the drop shipment when it creates the accounts payable invoice for
the purchase order. Its the same purchase order that the drop ship references.
Scheduled processes automatically do the hard work for you.

Scheduled Process Description

Transfer Invoice Details to Supply Send details about validated invoices, canceled invoices, and corrected invoices to Financial
Chain Financial Flow Orchestration Orchestration.
   

Transfer Ownership Change Events Send details about the AP invoice match from Financial Orchestration to the receiving process.
to Receiving  
 

Related Topics
• Supplier Portal

149
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

• Overview of Creating ASNs and ASBNs

Set Up Drop Ship for Congured Items


Set up an agreement for the conguration model that species the congured item and the congure options that are
part of the drop ship.
1. Sign in with a user role that you can use to edit values in the Procurement work area.
2. In the Navigator, click Purchasing.
3. Click Tasks > Manage Agreements.
4. Click Actions > Create.
5. In the Create Agreement dialog, set values, then click Create.

Aribute Value

Style Congure to Order Blanket Purchase Agreement


   
You must use this value for an assemble-to-order conguration model. For details, see
Supplier Agreement Creation: Points to Consider.
 

Supplier Select the supplier who will drop ship the congured item.
   

6. On the Edit Document page, in the Lines area, add at least one line, then click Submit.
Note.
• A hybrid conguration model is a type of conguration model that includes an assemble-to-order conguration
model as the child and a purchase-to-order conguration model as the parent.
Order Management Cloud uses one blanket purchase agreement to source the assemble-to-order options,
and a dierent blanket purchase agreement to source the purchase-to-order options. So, Order Management
issues separate purchase orders to the supplier.
• Use File-Based Data Import to import more than one agreement.

Related Topics
• How File-Based Data Import Works

Use a Service Mapping to Integrate Order Management with


Procurement
Use a service mapping to send data from Order Management Cloud to Procurement Cloud.
Assume you need to send details about a sales order to Procurement so Procurement can process a purchase request.
• Indicate to Procurement that we negotiated the price when we created the sales order. We will use the
NegotiatedByPreparerFlag aribute to send the indication as a Boolean value.
• Text note that we can send to the buyer. It includes details about the negotiated price, such as any discounts we
provided, and why we provided them. We will use an extensible exeld to capture these details.

150
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

• The price that we negotiated with the customer when we created the sales order. We will use the Price aribute
to capture the negotiated price.

Summary of the Set Up

A. Add your entity to the integration service mapping.

B. Map your entity to the source.

C. Map entities to the service.

D. Modify the integration algorithm.

E. Test your set up.

A. Add Your Entity to the Integration Service Mapping


1. Sign in as the order administrator.
2. Create a sand box. For details, see the Create a Sandbox So You Can Edit Service Mappings topic.
3. In the Navigator, click Pricing Administration.
4. On the Overview page, click Tasks, and then, under Order Management Conguration, click Manage Service
Mappings.
5. Open the FulllmentIntegration service mapping for editing.

For details, see the Integrate Order Management with Other Oracle Applications topic.
6. Add an entity. On the Entities tab, click Actions > Add Row, set values, then click Save.

Aribute Value

Entity FLinePackShip_ EFF_Custom


   

Description Entity for an extensible exeld that stores details on the fulllment line. It describes the
  price we negotiated.
 

7. Add an aribute. In the Details area, click Actions > Add Row, then set values.

Aribute Value

Aribute FullllLineId_ Custom


   

Type Long
   

Primary Key Contains a check mark


   

Alternate Key Empty


   

Allow Null Contains a check mark


   

151
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

8. Add another aribute. In the Details area, click Actions > Add Row, set values, then click Save.

Aribute Value

Aribute ShippingCost_ Custom


   

Type Double
   

Primary Key Empty


   

Alternate Key Empty


   

Allow Null Contains a check mark


   

9. On the Entities tab, in the Entity column, click PurchaseRequestLine.


10. In the Detail area, verify that the list contains the Price aribute.

Aribute Value

Aribute Price
   

Type Decimal
   

Allow Null Contains a check mark.


   

B. Map Your Entity to the Source


1. Click Sources.
2. In the Source column, click PurchaseRequestSource.
3. In the PurchaseRequestSource Details area, click View > Columns, then display columns.
◦ Joined Entity
◦ Joined Entity Aribute
4. Click Actions > Add Row, set values, then click Save.

Aribute Value

Entity FLinePackShip_ EFF_Custom


   
Its the entity you added earlier in this procedure.
 

Type View Object

152
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Aribute Value

   

View Object FulllLineEBPackShipInstructionprivateVO


   

Query Type Unique Identier


   

Query Aribute FulllLineId


   

5. Click Save, set values, then click Save again.

Aribute Value

Joined Entity FulllLine


   

Joined Entity Aribute FulllLineId


   

6. In the FLinePackShip_EFF_Custom Details area, add new aributes, then click Save.

Aribute View Object Aribute

FulllLineId_ Custom FulllLineId


   

ShippingCost_ Custom _ ShippingCost


   

7. Map aributes to the PurchaseRequestLine entity.

◦ In the PurchaseRequestSource Details area, in the Entity column, click PurchaseRequestLine.


◦ In the PurchaseRequestLine Details area, add aributes, then click Save.

Aribute View Object Aribute Expression

NegotiatedByPreparerFlag Empty True


     

NoteToBuyer Empty Empty


     

Price Empty Empty


     

153
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

C. Map Entities to the Service


1. Click Services.
2. Click Actions > Add Row, set values, then click Save.

Aribute Value

Service PriceRequestService_ Custom


   

Implementation Type Algorithm


   

Implementation Dropship Price Mapping Custom


   

3. In the Details area, add entities, then click Save.

◦ FLinePackShip_EFF_Custom
◦ Header
◦ FulllLine
◦ PurchaseRequestCong
◦ PurchaseRequestHeader
◦ PurchaseRequestLine

Note.

◦ Click Actions > Add Row to add each entity.


◦ Make sure the Read aribute and Write aribute contain a check mark for each entity.
◦ Leave the other aributes empty.
4. Add aributes to the FLinePackShip_EFF_Custom entity.

Aribute Alias

FulllLineId_ Custom FulllLineId


   

ShippingCost_ Custom Leave Empty


   

5. Add aributes to the PurchaseRequestLine entity.

◦ FulllLineId
◦ NegotiatedByPreparerFlag
◦ NoteToBuyer
◦ Price

154
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

When you add aributes to these entities.

◦ Make sure the Read aribute and Write aribute contain a check mark for each aribute.
◦ Leave the other aributes empty.

D. Modify the Integration Algorithm


Modify the integration algorithm so it calls Procurement.
1. Click Tasks, and then, under Order Management Conguration, click Manage Algorithms.
2. On the Manage Algorithms page, in the Name column, click the row that contains the highest version of
Dropship Price Mapping Custom.
3. Click Actions > Create Version.
4. In the Name column, click the row that contains the In Progress version of Dropship Price Mapping Custom.
5. On the Edit Algorithm page, click Step 1.
6. In the Step Details area, in the Default Action area, click Edit.
7. In the Edit Actions dialog, delete all the contents, then enter code.
PRCLine.Price = PRCLineEff!= null? PRCLineEff.ShippingCost_Custom: null
/*def LPurchaseRequestPrice = PRCLineEff!= null? PRCLineEff.ShippingCost_Custom: null
if (LPurchaseRequestPrice != null) {
PRCLine.Price = LPurchaseRequestPrice;
PRCLine.NegotiatedByPreparerFlag=true;
} */

E. Test Your Set Up


Assume you're on a call with a preferred, long-term customer who orders a quantity of 10, A54888 desktop computers.
To beat your competitor's price, you agree to provide a 20% discount on the order line. As part of the deal, you convince
your customer to add 4 printers to the order.
1. Create a sales order in Order Management.
2. Add an order line, then set the aribute on it.

Aribute Value

Your Price Enter the negotiated price.


   

3. Submit the sales order.


4. Examine the details in Procurement.

Related Topics
• Integrate Order Management with Other Oracle Applications
• Create a Sandbox So You Can Edit Service Mappings
• Guidelines for Integrating Order Management with Other Oracle Applications

More

155
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

General
Time Zone Dierences in Order Management
Global Order Promising uses the time zone where the inventory organization resides when it calculates promising
for the supply that Order Management requires to fulll each sales order, then sends the scheduled ship date and
scheduled arrival date to Order Management.
Global Order Promising uses date aributes from Order Management to optimize supply. For example.
• Requested ship date or requested arrival date
• Earliest acceptable ship date or earliest acceptable arrival date
• Latest acceptable ship date or latest acceptable arrival date

Using the time zone where the inventory organization resides provides more accurate values in date elds, and helps
to avoid undesirable time shifts between demand and supply. For example, to prevent the scheduled ship date from
occurring before the requested date or the ordered date.

Note.
• Order Management applies this behavior for sales orders that the Order Entry Specialist creates in work area
Order Management and for source orders that you import order from a source system.
• This behavior doesn't apply for drop ship.

Example of Calculating Time Zone Dierences


Here's the scenario.
• The Order Entry Specialist is located in Denver, Colorado, USA, in Mountain Standard Time (MST), which is UTC
(Coordinated Universal Time) minus 7.
• The inventory organization also uses UTC minus 7.
• The scheduling calendar that the warehouse uses is open Monday through Friday, so Global Order Promising
can set the Scheduled Ship Date aribute for the shipment on any weekday, but not on the weekend.
• The on-hand supply is always available.

For example.
1. The Order Entry Specialist sets the requested date on the sales order to 3/2/18 5:00 PM, which is a Friday, then
submits the sales order.
2. Order Management interacts with Global Order Promising in UTC, so it sends 3/3/18 00:00AM (UTC) as the
requested date.
3. Global Order Promising converts the requested date to the time zone where the inventory organization resides,
which is 2/3/18, Friday, 05:00 PM (UTC minus 7).
4. Global Order Promising schedules the shipment at the inventory organization to the end of the day, which is
2/3/18, 11:59 PM local time (UTC minus 7), because this day is a working day.
5. Global Order Promising sends schedule details to Order Management as Saturday, 3/3/18, 6:59 AM (UTC).
06:59 is a seven hour oset from UTC. The calculation is Friday, 11:59 PM local time (UTC minus 7) plus
seven hours equals Saturday, 3/3/18 06:59 AM (UTC).
6. The Order Management work area now displays the scheduled ship date in UPTZ, which is UTC minus 7.
The scheduled ship date in UTC was 3/3/18 minus 06:59AM (UTC). The time and date in UPTZ is 2/3/18 minus
11:59 PM (UTC-7).

156
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Global Order Promising uses UTC. Order Management displays dates in UPTZ (User Preference Time Zone) so
they're meaningful to the person who uses the Order Management work area.

Handling Time Zone Dierences During Order Import


Use the DooDecompReceiveOrderComposite web service to import a source order from your source system. Use
various date aributes in the web service payload, such as requested ship date, requested arrival date, expected arrival
date, and so on.

Here's the format for each date aribute.


yyyy-mm-ddTHH:mi:ssZ

Requirements for how you format dates are dierent depending on how you import your source order.

How You Import Description

You use web service ReceiveOrder. Dates in your import payload can use UTC with or without a negative or positive oset.
For details, see the Overview of  
Using Web Services with Order
Management topic.
 

You use the order import template. Dates in your import payload must use UTC.
For details, see the Use Files  
to Import Orders into Order
Management topic.
 
You use the business-to-business
ow. For details, see the Overview
of Business-to-Business in Order
Management topic.
 

157
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Here's an example payload of the ReceiveOrder web service. It includes a UTC oset for the Earliest Acceptable Ship
Date aribute. This value indicates that the end of day is April 3, 2018, and the time is 1:10:10 AM in the time zone that's
8 hours behind UTC.

You must use this date format.


yyyy-mm-ddThh:mi:ssz

where

This Variable Species This Value

yyyy Calendar year.


   

mm Month of the calendar year.


   

dd Numeric day of the month.


   

T Time designator.
   

hh Number of hours after midnight, in the 24 hour format.


   

mi Minutes after the beginning of the hour.

158
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

This Variable Species This Value

   

ss Seconds after the beginning of the minute.


   

z Time zone indicator with or without a UTC oset. For example, 0-8.00 is eight hours behind
  UTC.
 

Consider an example.
2018-04-03T01:10:10.0-08:00

where

Value Variable

2018 Calendar year.


   

04 Month of the calendar year, which is April.


   

03 Numeric day of the month, which is April 3rd.


   

t Time designator.
   

01 One hour after midnight.


   

10 Ten minutes after the beginning of the hour.


   

10 Ten seconds after the beginning of the minute.


   

0-08:00
  where

• 0. Species 0 UTC.
• -. Delimiter between 0 UTC and the UTC oset.
• 08:00. Species 8 hours after 0 UTC.

Guidelines for Seing Up Units of Measure


Use guidelines to help you set up the units of measure that you use in Order Management.
• Set the Primary Unit of Measure aribute and Secondary Unit of Measure aribute when you create the item in
the Product Information Management work area. Order Management uses the values you specify to set default
values for each aribute during order capture.

159
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

• Make sure the unit of measure is appropriate for the item. For example, Quart is appropriate for a liquid, but
Amperage isn't because amperage measures electrical current.

Import
If you import a source order through FBDI or a web service.
• Collect units of measure from your order capture system so Order Management can validate the units of
measure it receives later when you import source orders from your capture system. For details, see the Collect
Data subtopic in the Quick Start for Seing Up Order-to-Cash topic.
• Use the Ordered UOM aribute to specify the unit of measure. Use the OrderedUOMCode aribute to specify
the abbreviation for the measure. For example, Ea is an abbreviation for Each.
• The import uses the value you import instead of the value you specify in Product Information Management.
• If you use the Pricing Administration work area to set up pricing for your item, then the import validates the
unit of measure according to how you set up the price list. For example, if you set the Pricing UOM aribute for
the item on the price list to Ea, and if your import doesn't use Ea for the unit of measure, then the import fails
and displays an error message.
• If you encounter an error during order import, like Cross-Referenced Value Not Found for UOM_CODE, see the
Cross-Reference Error subtopic in the Troubleshoot Problems With Order Import topic.

Fulll
• If you don't encounter an error during import but the order gets stuck during fulllment, then create a
conversion rule.
• If your shipping system uses a unit of measure to represent shipping that's dierent from the unit of measure
that Order Management uses in the sales order, then the shipment service converts the unit of measure back to
the unit of measure that the sales order uses, then communicates the shipped quantity to Order Management.
For details, see the Task Services topic.
• If you use the Create Inventory Reservations fulllment task to reserve supply, then you must provide the item,
quantity, unit of measure, and warehouse. For details, see the Guidelines for Reserving Inventory topic.
• If you use an Oracle Fusion inventory system, then create a conversion rule that converts the UOM from the
sales order into a UOM that the inventory system can understand. If you use your own fulllment system, then
make sure it accepts the UOM that the sales order species.

Related Topics
• Troubleshoot Problems With Order Import
• Task Services
• Guidelines for Reserving Inventory
• How Units of Measure, Unit of Measure Classes, and Base Units of Measure Relate to Each Other

Display Data from Dierent Oerings


Display data from dierent oerings on the Overview page in the Order Management work area.
The Overview page displays data in infolets. An infolet is a graphic representation of data, such as a bar chart or pie
chart. It displays order status, such as the number of orders on backorder, orders past due, orders on hold, orders in
jeopardy, and so on.

The Overview page comes predened to only display data from the Order Management oering. However, you can set
it up so it displays data from other oerings.
1. In the Setup and Maintenance work area, go to the Order Management oering.
2. Click Actions > Edit Implementation Status, set status to Implemented, then click Done.

160
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

3. Repeat steps 1 and 2 for each oering that must display data in infolets.

For example.

◦ Order Promising is part of Supply Chain Planning. To display promising data, in step 1, go to Supply
Chain Planning.
◦ Shipping is part of Manufacturing and Supply Chain Materials Management. To display ship data, in step
1, go to Manufacturing and Supply Chain Materials Management.
Your users must sign in with the FOM_VIEW_ORDER_TO_CASH_INFOLET_PAGE privilege to view infolets.

Here are more privileges you need to view infolets from each oering.

Infolet Oering Privilege

Order Exceptions Order Management FOM_ VIEW_ ORDERS_PRIV


     
Orders in Process
 
Order Billing Status
 

Scheduling Performance Supply Chain Planning MSP_ VIEW_ PLANNING_ SUPPLY_


    AVAILABILITY_ PRIV
 

Inventory Valuation Manufacturing and Supply Chain CST_ RUN_ INVENTORY_ VALUATION_
  Materials Management REPORT_PRIV
   

Open Shipments Manufacturing and Supply Chain WSH_ MANAGE_ DELIVERY_PRIV


  Materials Management  
Open Shipments by Priority  
 
Shipment Exceptions
 

Apply Changes to Workow Notications Immediately After Upload


Congurable workow notications are refreshed every 24 hours so that they perform beer for your users. But when
you're making changes to reports, subtemplates, or data models, you can apply your changes immediately so they're
available for testing. Create prole options to turn o the refresh so that notications reect your changes immediately
after you upload them to the BI catalog, instead of after the next refresh. When you're done conguring notications,
use the same prole options to turn the refresh back on, to optimize performance.
Note: The refresh applies only to changes uploaded to the BI catalog. You can always preview changes to
layout templates while you're editing in Microsoft Word.

Create Prole Options to Control the Refresh


Your prole options can apply to all workow tasks, a product family, product, or single workow task. Based on the
scope you want, your prole option must have a prole option code that follows a certain format.

161
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Scope Prole Option Code Example

Global BIP_ CLIENT_ DISABLE BIP_ CLIENT_ DISABLE


     

Product Family BIP_ CLIENT_ DISABLE_ <FAMILY> BIP_ CLIENT_ DISABLE_FIN


     

Product BIP_ CLIENT_ DISABLE_ <FAMILY>_ BIP_ CLIENT_ DISABLE_ FIN_AP


  <PRODUCT>  
 

Workow Task BIP_ CLIENT_ DISABLE_ <FAMILY>_ BIP_ CLIENT_ DISABLE_ FIN_ AP_
  <PRODUCT>_ <WORKFLOW> FINAPINVOICEAPPROVAL
   

The prole options with a smaller scope take precedence. For example, you have prole option A with a global scope
and prole option B with a workow task scope. You're currently conguring notications for that workow task, so you
use prole option B to turn the refresh o just for that task. But based on prole option A, the refresh is still on for all
other congurable notications in all product families. Prole option B takes precedence over prole option A for that
one workow task.

Tip: To nd the product family or product code, go to the Setup and Maintenance work area, and then the
Manage Taxonomy Hierarchy task in the Application Extensions functional area. In the hierarchy, expand
the Oracle Fusion node and look in the Module Key column. To nd the workow task name, go to the Task
Conguration tab in BPM Worklist and look in the Tasks to be congured pane.

Now you're ready to create your prole options!

1. In the Setup and Maintenance work area, go to the Manage Applications Core Prole Options task in the
Application Extensions functional area.
2. On the Manage Applications Core Prole Options page, click the New icon.
3. On the Create Prole Option page, enter the prole option code in the format that corresponds to the scope
you want.
4. Enter a display name that you can easily remember to help you nd the prole option later.
5. From the Application list, select Oracle Middleware Extensions for Applications.
6. From the Module list, select Application Core.
7. In the SQL Validation eld, enter this:

select meaning, lookup_code from fnd_lookups where lookup_type='FND_TRUE_FALSE_TYPE'

8. Click Save and Close.


9. On the Manage Applications Core Prole Options page, make sure your new prole option is selected in the
Search Results: Prole Options subsection.
10. In the <Prole Option>: Prole Option Levels subsection, select the Enabled and Updatable check boxes for
the Site level.
11. Save your work.

Disable or Enable the Refresh


In the Setup and Maintenance work area, go to the Manage Applications Core Administrator Prole Values task in
the Application Extensions functional area. Set your prole option at the Site level to True to turn o the refresh. When
you're done making and testing your changes, set the prole option to False to turn the refresh back on.

162
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Related Topics
• Update Existing Setup Data
• Set Prole Option Values
• Modules in Application Taxonomy

Security
Set Up User Roles and Privileges in Order Management
Set up user roles and privileges to manage the authentication and authorization that Order Management uses to secure
order management processing, including web service usage.
Here's how Order Management implements security.
• Uses authentication through a user name and password during sign in to allow each user to access the Order
Management work area
• Uses authorization through user roles and privileges to allow each user to do dierent tasks according to job
outcome in the Order Management work area

This topic describes how to examine privileges and job roles that come predened to use with Order Management, and
how to add an Order Management user. For background details, go to Oracle Help Center at hps://docs.oracle.com/
en/cloud/saas, click SCM Core, then read the books.

Book Details

Securing Oracle SCM Cloud Job roles, privileges, duty roles, and how to set up security, including values you set for each
  user.
 

Security Reference for Order Job roles that come predened to use with Order Management.
Management  
 
Job roles that come predened to use
with Order Management.
 

Summary of the Set Up

Manage user roles and privileges in Order Management.


1. Create users and assign job roles.
2. Create a job role.
3. Manage data access for users.
This topic includes example values. You might use dierent values, depending on your business requirements.

Create Users and Assign Job Roles


Create two users and assign job roles. One user can use administrative privileges. The other user can use only view
privileges.
1. In the Setup and Maintenance work area, go to the task.
◦ Oering: Order Management

163
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

◦ Functional Area: Initial Users


◦ Task: Create Implementation Users
2. On the User Accounts page, click Add User Account, enter values, then click Add Role.

Aribute Value

First Name Diane


   

Last Name Cho


   

Email diane. cho@yourComany. com


   

3. In the Add Role Membership dialog, enter Order Manager, then click Search.
4. In the search results, click the row that contains the values.

Aribute Value

Name Order Manager


   

Code ORA_ DOO_ ORDER_ MANAGER_JOB


   

5. In the Conrmation dialog, click Add Role Membership > OK, then click Done
6. On the Add User Account page, add passwords for the user, then click Save and Close.

Each user can use these passwords the rst time the user signs in. Instruct your users to change passwords
immediately after sign in.
Create another user and assign a job role so the user can only view sales orders, but not create, update, or delete them.

1. Identify the role that provides only view access to sales orders.

◦ On Oracle Help Center, locate the Security Reference for Order Management book.
◦ Examine the roles, duties, privileges, and policies until you locate one that meets your needs. For this
example, the Order Entry Specialist is the most likely role.
◦ In the Order Entry Specialist section, scroll down through the Privileges area until you locate the Item
Inquiry granted role.

Granted Role Description Privilege

Item Inquiry Queries and views items in the Manage Item Aachment
  enterprise.  
 

Item Inquiry Queries and views items in the Manage Item Catalog
  enterprise.  
 

164
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Granted Role Description Privilege

Item Inquiry Queries and views items in the Manage Item Global Search
  enterprise.  
 

Item Inquiry Queries and views items in the Manage Trading Partner Item
  enterprise. Reference
   

Item Inquiry Queries and views items in the View Item


  enterprise.  
 

Item Inquiry Queries and views items in the View Item Organization Association
  enterprise.  
 

Item Inquiry Queries and views items in the View Item Relationship
  enterprise.  
 

◦ For this example, you must provide only read access, so you will use the View Item privilege.
2. On the User Accounts page, click Add User Account, set values, then click Add Role.

Aribute Value

First Name Yu
   

Last Name Li
   

Email yu. li@yourComany. com


   

3. In the Add Role Membership dialog, enter the role you located earlier in this procedure, Order Entry Specialist,
then click Search.
4. In the search results, click the row that contains the values.

Aribute Value

Name Order Entry Specialist


   

Code ORA_ FOM_ ORDER_ ENTRY_ SPECIALIST_ JOB


   

5. In the Conrmation dialog, click Add Role Membership > OK , then click Done.
6. On the Add User Account page, add passwords for this user, then click Save and Close.

165
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Create Job Role


As an option, you can create a job role to meet your specic business requirements. In this example, you create a job
role that allows Yu to view sales orders but not edit them.

1. On the User Accounts page, click Roles.


2. On the Roles page, in the Search window, enter Order Entry, then click Search.
3. In the search results, in the row that contains these values, click Actions > Copy Role.

Aribute Value

Name Order Entry Specialist


   

Code ORA_ FOM_ ORDER_ ENTRY_ SPECIALIST_ JOB


   

Tip: Reduce your work load. Modify the copy of a predened role rather than create a new one.

4. In the Copy Options dialog, choose Copy Top Role, then click Copy Role.
5. On the Basic Information page, enter values, then click Next.

Aribute Value

Role Name Order Entry Specialist View Only


   

Role Code FOM_ ORDER_ ENTRY_ SPECIALIST_ JOB_VIEW_ONLY


   

Description Search for and view sales orders, including sales order header, order lines, price details, and
  price totals. Don't allow user to create, update, or delete any part of the sales order.
 

6. On the Function Security Policies page, delete all rows except rows that contain these privileges.

◦ Monitor Sales Order


◦ View Customer Account
◦ View Customer Account Contact
◦ View Customer Account Contact Responsibility
◦ View Customer Account Information
◦ View Customer Account Site
◦ View Customer Account Site Use
◦ View Fulllment Line Freight Charges and Cost
◦ View Fulllment Line Shipping and Tracking Details
◦ View Item
◦ View Item Organization Association

166
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

◦ View Item Relationship


◦ View Orchestration Infrastructure Messages
◦ View Orchestration Order Fulllment Line Hold
◦ View Orchestration Order Hold
◦ View Orchestration Order Line Hold
◦ View Orchestration Process Details
◦ View Orchestration Process Hold
◦ View Order Orchestration Request Messages
◦ View Orders
◦ View Planning Supply Availability
◦ View Supply Availability Report
◦ View Supply Chain Financial Orchestration System Options
◦ View Supply Orders

For example.

Note.

◦ If you must add a privilege, then click Add Function Security Policy.

167
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

◦If you must add all privileges, for example you choose to not copy a predened role, then, in the Add
Function Security Policy dialog, enter the rst characters that are similar across a group of privileges,
such as View Customer, click Search, then add each privilege from the search results.
7. On the Data Security Policies page, delete each row that includes these values.

Aribute Values

Policy Name
 
◦ Grant on Collaboration Document Header

◦ Grant on Business Unit

To delete a row, click the down arrow in the row, then click Remove Data Security Policy.
8. Verify that the Data Security Policies page displays these policies.

Policy Name Policy Description Privilege

Grant on Trading Community Customer Order entry specialist can view customer Read, View Customer Account Site Use
Account Site Use account site use.  
   

Grant on Trading Community Order entry specialist can view trading Read, View Trading Community
Relationship community relationship. Relationship
     

Grant on Trading Community Order entry specialist can view trading Read, View Trading Community
Organization Party community organization. Organization
     

Grant on Application Reference Data Set Order entry specialist can view customer View Customer Account Site Use
  account site use.  
 

Grant on Application Reference Data Set Order entry specialist can view customer View Customer Account Site,
  account site.  
 

Grant on Trading Community Party Order entry specialist can view trading Read, View Trading Community Person
  community person.  
 

Grant on Trading Community Customer Order entry specialist can view customer Read, View Customer Account
Account account.  
   

Grant on Application Reference Data Set Order entry specialist can view customer View Customer Account Relationship
  account relationship.  
 

Grant on Trading Community Customer Order entry specialist can view customer Read, View Customer Account Site
Account Site account site.  
   

Specifying Create, Read, Update, and Delete Actions

168
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Specify the actions that each policy allows. For example.

◦ In the Policy Name column, in the row that contains this value, click Actions > Edit Data Security Policy.

Aribute Value

Policy Name Grant on Trading Community Customer Account Site Use


   

◦ In the Edit Data Security Policy dialog, next to Actions, click the down arrow, then add or remove the
check mark next to each of the actions you will allow or disallow the user to do.

For example, View Customer Account Site, Manage Customer Account Site, Read, Delete, Update, and
so on. For this example, you're dening a read-only view, so make sure only the view actions and read
actions contain a check mark.

Specifying Access According to a Group of Business Units

A business unit set as a group of business units that you can use for a specic setup. For example, assume you
add business unit 1 and business unit 2 to business unit set x, and then aach Payment Term NET30 to set x. You
can then use this payment term for business unit 1 and business unit 2.

The Set Id identies the business unit set. For details about the business unit set, see the Overview of Multiple
Business Units in Sales topic.

You can specify the actions that each policy allows according to Set Id. For example.

◦ In the Policy Name column, in the row that contains this value, click Actions > Edit Data Security Policy.

Aribute Value

Policy Name Grant on Application Reference Data Set


   

◦ In the Edit Data Security Policy dialog, next to Actions, click the down arrow, then notice you can specify
a wide range of views and manage actions that the user can perform.

Specifying Access According to Business Unit

You can specify the actions that each policy allows according to business unit. For example.

◦ Click Create Data Security Policy.


◦ In the Create Data Security Policy dialog, click Search.
◦ In the Search Database Resources dialog, enter Business Unit, click Search, wait for the results to display,
then click OK.
◦ Set values.

169
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Aribute Value

Policy Name Grant on Business Unit


   

Data Set Select by Instance Set


   
You can also use Select by Key to specify the business unit according to BU_ID.
 

Condition Name
  Specify how to lter according to business unit. For most situation, choose Access the
Business Unit for Which the User is Explicitly Authorized.

Actions Choose the actions that you must allow the user to do for the business unit.
   

9. Click Next.
10. On the Role Hierarchy page, delete all role hierarchies except for these.

Role Name Role Code

Item Inquiry ora_ egp_ item_ inquiry_duty


   

Item Inquiry ora_ egp_ item_ inquiry_ duty_hcm


   

Item Inquiry ora_ egp_ item_ inquiry_ duty_obi


   

Item Inquiry ora_ egp_ item_ inquiry_ duty_crm


   

Manage Item Catalog egp_ manage_ item_ catalog_ priv_obi


   

Print Order fom_ print_ order_ priv_obi


   

Use the Role Hierarchy page to specify other job roles that the job role you're creating can access. A role
hierarchy is a hierarchy that species other job roles that a job role references.

For example, here's the predened role hierarchy that the Order Entry Specialist job role uses.

Order Entry Specialist

B2B Messaging Administration

Collaboration Messaging Manager

Collaboration Messaging Setup

SOA Infra Designer

170
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

FSCM Load Interface Administration

Item Inquiry

Upload data for Source Sales Order Import

For details about the role hierarchy that each predened job role uses, see the Security Reference for Order
Management book.
11. Click Next.
12. On the Users page, click Add User.
13. In the Add User dialog, search for Yu Li, wait for the results to display, click Add User to Role > OK in the
conrmation dialog, then click Cancel.
14. Click Next > Save and Close.

Manage Data Access for Users


Manage data access for Yu.
1. In the Navigator, click Setup and Maintenance.
2. On the Setup page, click Tasks, click Search, search for, then open Manage Data Access for Users.
For details about this task, see book SCM Cloud, Implementing Common Features for Oracle SCM Cloud.
3. On the Manage Data Access for Users page, enter a value, then click Search.

Aribute Value

User Name li.yu


   
You must search according to dot notation, which is rstName. lastName.
 

The search results display the data access you set up for Yu, including for the Order Entry Specialist role where
you added Yu as a user on the User Accounts page, and the other job roles you specied when you created the
Order Entry Specialist View Only job role, and then assigned to Yu.
4. Click Authorize Data Access.
5. In the Opening SecurityDataAccessTemplate.xls dialog that displays, accept the Open With option, then click
OK.
Microsoft Excel opens.
6. Edit in Microsoft Excel.
◦ In Microsoft Excel, in the Connect dialog, click Yes.
◦ On the Login page, sign in with the IT Security Manager job role (ora_fnd_it_security_manager_job).
◦ In the Authorize Data Access for Users template that displays, verify that the template includes the
security contexts that Yu needs for view access.

Security Context User Name Role

Business unit li. yu@yourComany. com Order Entry Specialist


     

Data access set li. yu@yourComany. com Order Entry Specialist View Only

171
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Security Context User Name Role

     

Asset book li. yu@yourComany. com Order Entry Specialist View Only
     

Business unit li. yu@yourComany. com Order Entry Specialist View Only
     

Control budget li. yu@yourComany. com Order Entry Specialist View Only
     

Cost organization li. yu@yourComany. com Order Entry Specialist View Only
     

Intercompany organization li. yu@yourComany. com Order Entry Specialist View Only
     

Ledger li. yu@yourComany. com Order Entry Specialist View Only


     

Manufacturing plant li. yu@yourComany. com Order Entry Specialist View Only
     

Inventory organization li. yu@yourComany. com Order Entry Specialist View Only
     

Project organization classication li. yu@yourComany. com Order Entry Specialist View Only
     

Reference data set li. yu@yourComany. com Order Entry Specialist View Only
     

◦ In the Security Context Value column, in the rst row that contains data, right-click the cell, then click
Invoke Action.

Caution: Use this action instead of manually entering text. This action searches the Oracle
database for the data access sets you can use. If you manually enter text, and if your text
doesn't exactly match text that the database contains, then the upload will fail.

◦ In the Select Security Context Value dialog, set the value, then click Search.

Aribute Value

Business Unit Vision Operations


   

◦ In the search results, click the row that includes Vision Operations, then click OK.

Notice that Excel adds Vision Operations to the cell you selected in the Security Context Value column.
◦ Repeat the above steps for each of the other rows that contain data.

For example, for the row that contains Asset Book, set value Security Context to an asset book.

172
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

◦ In the command ribbon that displays across the top of Excel, click Authorize Data Access for Users >
Upload.
◦ Wait for the upload to nish, then verify that the Status column displays Successfully Uploaded for each
row.

◦ Click Status Viewer, then verify that the Status View displays No Error.
◦ Sign out.
7. Sign into Order Management with the IT Security Manager job role.

In the Navigator, click Scheduled Processes.


8. On the Scheduled Processes page, click Schedule New Process, then run the scheduled process.

Scheduled Process Name Description

Retrieve Latest LDAP Changes Synchronizes users, roles, and role grants with the denitions that exist in LDAP (Lightweight
  Directory Access Protocol ) that Order Management uses to determine who can access the
Order Management work area.
 

Examine Role Usage in Your Implementation Project


Your implementation project species the roles that can do each task in the project. You will examine how a predened
implementation project allows the Order Administrator role to manage source systems where you typically use web
services to communicate data.

1. In the Navigator, click Setup and Maintenance.


2. On the Setup page, click Tasks, then click Manage Implementation Projects.
3. On the Manage Implementation Projects page, click Actions > Create.
4. On the Create Implementation Project page, click Next.
5. In the Order Management row, add a check mark in the Include column, then click Save and Open Project.
6. In the Task list, expand Order Management > Dene Orders, then, in the Manage Upstream and Fulllment
Source Systems row, in the Authorized Roles column, click Details.
7. Notice that the Authorized Roles dialog includes the Order Administrator role.

Related Topics
• Overview of Multiple Business Units in Sales

Assign Job Roles in Order Management


A duty role allows Order Management Cloud to access the web services it uses to communicate with an external system
according to the user currently logged in. You must make sure any job roles you create can reference the duty roles that
Order Management requires.
• A job role is the sign in that allows each user to access the application features that the user needs to do their
job in their organization, and to access the data that these features reference. Example job roles in Order
Management include Order Entry Specialist, Order Manager, Order Administrator, Supply Chain Application
Administrator, and so on.
• A duty role is a group of function and data privileges that represent one duty of a job. Each duty role is specic
to an application, stored in the policy store, and shared in an application instance.

173
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Assume one of your users release a sales order for shipping. The job role that this user uses must reference the duty
roles that allow Order Management to call the shipping system and to receive details about the shipment from the
shipping system. In this example, you must assign a job role that references these duty roles.

• Shipment Request Processing Web Service Duty


• Orchestration Order Shipping Web Service Duty

For details about job roles, duties, and how to set them up, see Oracle SCM Cloud Security Reference for Order
Management on Oracle Help Center at hps://docs.oracle.com/en/cloud/saas.

Predened Job Roles


Here are the job roles that come predened with Order Management.

Job Role Responsibilities

Order Entry Specialist • Create new sales orders, update existing sales orders, and create return sales order.
  • Create sales orders in the Order Management work area or modify sales orders that you
import from a source system.
• Monitor order fulllment.
• Work directly with customers who purchase items.

This job role includes these duty roles.

• FSCM Load Interface Administration Duty


• Item Inquiry Duty

Order Manager • Manage sales orders created in the Order Management work area or that you import
  from a source system. Makes sure Order Management books sales orders so they can
proceed to order fulllment.
• Approve sales orders that require approval.
• Work with other professionals in the organization, such as pricing administrator,
customer contract manager, credit manager, and accounts receivable manager, to help
determine set up requirements and troubleshoot problems.

This job role includes these duty roles:

• Orchestration Order Monitoring Duty


• Orchestration Order Management Duty
• Orchestration Order Scheduling Duty

Order Administrator • Set up and maintain Order Management Cloud so it supports order entry and order
  fulllment.
Supply Chain Application • Set up rules, policies, constraints, and so on. For example, set up defaulting rules, order
Administrator entry preferences, order entry privileges, orchestration processes, change order rules,
  process planning, jeopardy conditions, order statuses, and hold denitions.
• Set up orchestration.

Each of these job roles include these duty roles.

• Orchestration Order Administration Duty


• Orchestration Infrastructure Administration Duty

174
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Duty Roles
Here are the duty roles that allow Order Management to communicate with a system that resides outside of Order
Management Cloud. The Description column describes the communication that the web service provides.

Duty Role Description

Order Orchestration Decomposition Communicate with source systems so Order Management can separate source orders during
Web Service Duty transformation.
   

Orchestration Order Activity Communicate with a fulllment system that can process an activity.
Management Web Service Duty  
 

Orchestration Order Billing Web Communicate with a system that processes the billing for each sales order.
Service Duty  
 

Orchestration Order External Allow a system that resides outside of Order Management Cloud to call Order Management
Integration Web Service Duty Cloud.
   

Orchestration Order Fulllment Web Allow a fulllment system to send status updates to Order Management through a task service.
Service Duty  
 

Orchestration Order Inquiry Web Extract order details from a sales order.
Service Duty  
 

Orchestration Order Receiving Web Receive a return for a sales order.


Service Duty  
 

Orchestration Order Shipping Web Process the shipment of a sales order.


Service Duty  
 

Orchestration Order Template Web Allow a fulllment system to send status updates for fulllment tasks through a task service.
Service Duty  
 

Integrate Social Objects from Order Management Into Oracle Social Network
Use the Order Manager or the Order Orchestration error recovery role.

Copy Setups
Copy Setups Between Instances of Order Management
Copy your setup from one instance of Order Management into another instance during the lifecycle of your Order
Management deployment. For example, migrate your setup from a test environment to a production environment.

175
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Use the Manage Conguration Packages page in the Setup and Maintenance work area to export and import a
conguration package.
• Here are the types of business rules that the copy migrates.

◦ Pretransformation.
◦ Product transformation.
◦ Posransformation.
◦ Process assignment .
◦ External interface routing.
◦ Approval. For details, see the Copy Approval Rules Between Instances of Order Management topic.

• You can use WebLogic Scripting Tool (WLST) commands to move order orchestration rules. Order Management
stores order orchestration rules in the Metadata Services (MDS) Repository. You can also use data collection
and interface tables to import your setup and your transaction data. For details, see the Importing and
Exporting Setup Data section in Implementing Common Features for Oracle SCM Cloud on Oracle Help Center.
• The migration adds hold codes that you set up in the source instance to hold codes that exist in the target
instance. If the same hold codes exist in the source and target, then the holds in the source replace the holds in
the target.
• The migration doesn't migrate holds that apply a credit check hold or release a credit check hold.

Summary of the Steps


1. Export your setup.
2. Import your setup.
3. Deploy exelds.

Export Your Setup


Export your setup from the source instance of Order Management.
1. Make sure the source instance and the target instance are at the same release level.
2. Sign into the source instance of Order Management with administrative privileges.
3. In the Navigator, click Setup and Maintenance.
4. On the Setup page, click Tasks > Manage Conguration Packages.
5. On the Manage Conguration Packages page, click Actions > Create.
6. On the Enter Basic Information page, set values, then click Next.

Aribute Value

Name Choose the name of the implementation project that denes the source instance.
   

Export Setup task list and setup data


   

7. On the Select Objects for Export page, accept default values, then click Next.

The Select Objects for Export page comes predened to select the objects that the export needs to support
most instances of Order Management. For details about the objects you can export, see the Copy Setup Data
Between Instances of Order Management topic.

176
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

8. On the Schedule and Notications page, accept the default value, click Submit, then, in the Warning dialog,
click Yes.

Aribute Value

Run As soon as possible


   

9. On the Manage Conguration Packages page, examine results in the elements, then sign out.

Element Description

Export Setup Data buon Export a conguration package after you create it. The export identies setup data according
  to the export denition and adds it to the conguration package.
 
Export a conguration package more than one time. Each export creates a dierent
conguration package version that you can manage individually.
 

Download Latest Version Download the most recent version of the conguration page.
   

Export and Import Processes area Get details of the export or import for each conguration package.
   

Status Examine the process status for each implementation project.


   
Click the status to get details about each step of the export or import process.
 

Download Download a version so you can use it during an export or import.


   

Setup Data Report View or download a report that contains the setup data exported to the conguration
  package, including the business objects processed and details about errors that occurred.
 

Import Your Setup


Import your setup into the target instance of Order Management.
1. Sign into the target instance of Order Management with administrative privileges.
2. In the Navigator, click Setup and Maintenance.
3. On the Setup page, click Tasks > Manage Conguration Packages.
4. On the Manage Conguration Packages page, in the search results, click the row that contains the
conguration package you must update.
5. In the Export and Import Processes area, click Import Setup Data.
6. On the Enter Basic Information page, accept default values, then click Next.
7. On the Select Pauses for External Import page, click Submit.

The import process.

◦ Adds setup data that doesn't already exist in the target conguration package. It adds setup data from
the source conguration package into the target conguration package.

177
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

◦ Updates setup data that already exists in the target package with modications from the source package.
◦ Doesn't delete existing setup.
◦ Doesn't modify setup that exists in the target instance but not in the source instance.
8. Restart the server that hosts the target instance.

Deploy Flexelds
You must deploy each exeld that you import.

Get details.
• How to handle objects that aren't exelds after the import, see the Importing and Exporting Setup Data
section in Implementing Common Features for Oracle SCM Cloud on Oracle Help Center.
• Flexelds, see the Deploy Extensible Flexelds in Order Management topic.

Deploy exelds.
1. In the Setup and Maintenance work area, go to the task.
◦ Oering: Order Management
◦ Functional Area: Orders
◦ Task: Manage Order Extensible Flexelds
2. On the Manage Order Extensible Flexelds page, identify each exeld where the deployment status isn't
Deployed, then deploy it.
3. Repeat steps 1 and 2 on each of these pages, as necessary.
◦ Manage Item Revision Descriptive Flexelds
◦ Manage Units of Measure Descriptive Flexelds
◦ Manage Item Descriptive Flexelds
◦ Manage Item Revision Descriptive Flexelds
◦ Manage Item Relationship Descriptive Flexelds
◦ Manage Trading Partner Item Descriptive Flexelds
◦ Manage Catalog Descriptive Flexelds
◦ Manage Category Descriptive Flexelds
◦ Manage Source System Descriptive Flexelds
◦ Manage Order Descriptive Flexelds
◦ Manage Pricing Descriptive Flexelds
4. Sign into Oracle Enterprise Manager.
For details about Oracle Enterprise Manager, see hps://www.oracle.com/technetwork/oem/enterprise-
manager/overview/index.html.
5. In the navigation tree, select SOA Infrastructure, then click UpdateSOAMDS.
6. On the UpdateSOAMDS page, set values.

Aribute Description

Operation Set to updateDuring.

178
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Aribute Description

   

Value
  Specify the time frame that has elapsed since the last time you deployed the exelds. Use
This Value aribute resides in a row this format.
in the Input Arguments area, in Tree
View. The value for Name in the PXMYD
row is *payload, and the Type is
duration.
  where

◦ X. Number of months that have elapsed.

◦ Y. Number of days that have elapsed.

For example, if one month and one day have elapsed since the last time you deployed
exelds, then use this format.

P1M1D

You can specify only the month, only the days, or months and days.

7. Run the UpdateSOAMDS composite to synchronize SOA (Service Oriented Architecture) with exelds in Order
Management.
8. In Order Management, in the Navigator, click Scheduled Processes.
9. On the Scheduled Processes page, click Schedule New Process, then run the Publish Extensible Flexeld
Aributes scheduled process.

Related Topics
• Deploy Extensible Flexelds
• Export Setup Data Using Implementation Project
• Import Setup Data Using Implementation Project

Reference for Copying Setup Data Between Instances of Order Management


Get the details you need when you copy setup data between instances of Order Management.

Collect Reference Data and Transaction Data for Order Orchestration and Order Promising
The order orchestration and planning data repository includes the data that Order Management needs to orchestrate
sales order fulllment and that Global Order Promising needs to promise sales orders. Use data from your source
system or from an Oracle Fusion source system to populate the repository.

Specify the source system and maintain data collection parameters for the source system. Collect data from
applications.

Application Description

Order Management
  Collect data.

• Oracle Fusion data. Including nonproduct and noncustomer reference entities for
validation and cross-reference

179
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Application Description

• Order capture codes


• Accounts receivable codes
• Accounting terms and currencies
• Miscellaneous

Global Order Promising


  Collect data.

• Existing supply, including on-hand, purchase orders, and work orders


• Capacity, including supplier capacity and resource capacity
• Related demands, including work order demands and work order resource requirements
• Planned supply, including planned buy and make orders
• Reference data, including calendars, transit items, and routing

You must refresh Global Order Promising after you collect data to make sure it uses the data you most recently
collected.

Use pages in the Setup and Maintenance work area to manage source systems and collect data.

Page Description

Manage Orchestration Source Manage an orchestration source system and collection parameters so you can use it to collect
Systems data.
   

Manage Orchestration Data Manage orchestration reference data from other source systems. Specify whether to enable
Collection Processes cross-referencing for various entities, such as Currencies, Units of Measure, and so on.
   

Review Orchestration Collected Data Examine the data that you collected from other source systems for order orchestration.
   

Manage Planning Source Systems Manage planning source systems and collection parameters so you can use it to collect data.
   

Manage Planning Data Collection Manage planning data from a source system.
Processes  
 

Review Planning Collected Data Examine the data that you collected from other source systems.
   

Monitor Planning Data Collection Monitor the planning data collection work that's currently running or that completed.
Process  
 

For details, see these books on Oracle Help Center.

• Implementing Order Management


• Implementing Supply Chain Planning
• Using Order Promising

180
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Copy Other Setup Data


Use set ups to copy your setup data from a source instance of Order Management to a target instance of Order
Management.

Setup Description

Item Setup • Export and import a conguration package to copy item setup data, such as item
  organization, item class, item catalog, item category, item lifecycle phase, and so on.
• Use item interface tables to copy items, item structures, and item relationships.
• Use the Import Items page and Monitor Item Imports page to manage item imports.

Party Setup • Export, then import a conguration package to copy party setup data, such as party
  relationship type, party classication, geography lookup, trading community source
system, and so on.
• Use party interface tables to copy parties.
• Use the Import Persons and Organizations page to manage party imports.

Security Setup Use commands in Lightweight Directory Access Protocol (LDAP) to copy job roles. For
  assumptions, prerequisites, and procedures, see Moving Security Artifacts in the Identity Store
in Oracle Fusion Applications Administrator Guide.
 

Get More Documentation


See these books to get details about copying your setup data.

• Implementing Common Features for Oracle SCM


• Conguring and Extending Applications
• Using Order Promising
• Using Product Master Data Management

Search for these article Ids on My Oracle Support at hps://support.oracle.com.

• Article Id 1334059.1 (Oracle Fusion PIM, Pros and Cons of Item Import Methods and Performance
Considerations)
• Article Id 1279983.1 (Oracle Fusion PIM, Importing Data into PIM Hub, Generic Examples of Steps)
• Article Id 1299158.1 (Example SQL To Import Items into Oracle Fusion Product Information Management Using
Open Interface Tables)
• Article Id 1393229.1 (Oracle Fusion PIM, Item Import, Example SQL Code Scripts)
• Article Id 1334525.1 (Oracle Fusion PIM: Explanation of Fields in ADFdi Template for Structure Import)
• Article Id 1383922.1 (Oracle Fusion Trading Community Bulk Import)

Business Objects You Can Export and Import


Specify business objects when you copy setup data for Order Management between conguration packages.

Supply Chain Management Family

Export and import business objects in the Supply Chain Management family.

181
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Application Page Description Business Object

Advanced Supply Chain Manage Enterprise Scheduler Manage Oracle Enterprise Enterprise Scheduler Job List
Planning Jobs for Advanced Planning Scheduler jobs and their list of of Values Source
  Applications values sources for Advanced  
  Planning applications, such as
Global Order Promising.
 

Advanced Supply Chain Manage Global Order Manage prole options and Application Prole Value
Planning Promising Prole Options values to control Oracle Fusion  
    Global Order Promising, such
as page display defaults or
timeout parameters.
 

Order Management Generate Constraint Package Create a dynamic package Orchestration Change
    that activates new validation Constraint
rule sets for processing  
constraints.
 

Order Management Manage Constraint Entities Manage the entities to use Orchestration Change
    when applying constraints. Constraints Object
   

Order Management Manage Enterprise Scheduler Manage jobs for Oracle Enterprise Scheduler Job List
  Jobs for Order Orchestration Enterprise Scheduler and the of Values Source
  sources that these jobs use  
for lists of values in Order
Management.
 

Order Management Manage Hold Codes Manage the abbreviations that Orchestration Hold Code
    Order Management uses to  
hold processing for a sales
order or order line.
 

Order Management Manage Jeopardy Priorities Manage score codes that Orchestration Jeopardy
    indicate the severity of the Priority
delay of a task.  
 

Order Management Manage Jeopardy Thresholds Manage jeopardy threshold Orchestration Jeopardy
    denitions that determine Threshold
the degree of action to take  
when orchestration highlights
potential or actual fulllment
issues because of delays.
 

Order Management Manage Orchestration Manage aachment Application Aachment


  Aachment Categories categories that group Category
  messages together.  
 

Order Management Manage Orchestration Manage validation and Application Descriptive


  Descriptive Flexelds display properties of Flexeld
  descriptive exelds for order  
orchestration. Use descriptive

182
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Application Page Description Business Object

exelds to add modied


aributes to entities.
 

Order Management Manage Orchestration Manage properties of Application Extensible


  Extensible Flexelds extensible exelds to extend Flexeld
  aributes of transactional  
entities for orchestration. Use
extensible exelds to collect
multiple contexts in the same
exeld.
 

Order Management Manage Order Lookups Manage lookup values for Application Standard Lookup
    order orchestration, such  
as Return Reason Code or
Activity Type.
 

Order Management Manage Orchestration Process Manage denitions that Orchestration Process
  Denitions specify how to perform  
  orchestration processing.
 

Order Management Manage Orchestration Proles Manage prole denitions Application Prole Value
    to specify how orchestration  
processes data.
 

Order Management Manage Order Aributes That Manage the aributes Orchestration Change
  Identify Change necessary to identify changes Aribute
  in each sales order.  
 

Order Management Manage Processing Manage the rules that control Orchestration Change
  Constraints aempted changes to order Constraint
  orchestration.  
 

Order Management Manage Status Values Manage status values for Orchestration Status Code
    tasks.  
 

Order Management Manage Task Status Manage the process status Orchestration Status
  Conditions conditions that indicate when  
  the process uses a status.
Specify these conditions when
you dene the orchestration
process.
 

Order Management Manage Task Types Manage the task types that Orchestration Task
    group tasks and services for  
status management, jeopardy,
orchestration processes, and
run time behavior.
 

Global Order Promising Manage Order Promising Manage prole option seings Application Prole Value
  Server Prole Options and values to control Oracle  

183
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Application Page Description Business Object

  Order Promising Server,


such as seing the sourcing
assignment set or enabling an
external ATP Web service.
 

Inventory Management Manage Enterprise Scheduler Manage Oracle Enterprise Enterprise Scheduler Job List
  Jobs for Logistics Common Scheduler jobs and their list of Values Source
Applications of values sources for Logistics  
  Common Components.
 

Inventory Management Manage Units of Measure Manage units of measure Unit of Measure
    that your organization uses  
to identify the quantity of an Unit of Measure Class
item.  
  Unit of Measure Interclass
Conversion
 
Unit of Measure Intraclass
Conversion
 

Product Model Create Catalog Create an item catalog, and Item Catalog, Item Category
    add aachments and images.  
 

Product Model Manage Enterprise Scheduler Manage Oracle Enterprise Enterprise Scheduler Job List
  Jobs for Product Management Scheduler jobs and their list of Values Source
Common Applications of values sources for Product  
  Management Common
Components.
 

Product Model Manage Default Catalogs Manage catalog assignments Functional Area Item Catalog
    for functional areas.  
 

Product Model Manage Default Item Class Manage the root item class. Item Class
       

Product Model Manage Item Organizations Manage item organization Item Organization
    structures to use in standalone  
application deployments with
Oracle Fusion Product Model.
 
Each structure contains
details about the parent item,
components, aachments,
and descriptive elements.
 

Product Model Manage Key Flexeld for Manage key exeld Application Key Flexeld
  Catalogs segments for each catalog and  
  the validation to use for the
catalog classication key. You
must dene the catalog key
exeld to make sure Oracle
Fusion Product Model works
as expected.

184
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Application Page Description Business Object

Product Model Manage Lifecycle Phases Manage the phases of each Item Lifecycle Phase
    item lifecycle.  
 

Supply Chain Management Manage Data Security Policies Manage grants of entitlement Application Data Security
Common Components   for each user or role on an Policy
  object or aribute group  
according to a condition.
 

Common Family

Export and import business objects in Oracle Middleware Extensions for Applications in the Common family.

Page Description Business Object

Manage Administrator Prole Values Manage prole option seings and values Application Prole Value
  to control application behavior.  
 

Manage Applications Manage prole option seings and values Application Prole Value
  to control Oracle Middleware Extensions  
Core Administrator Prole Values for Applications behavior.
   

Manage Applications Core Aachment Manage aachment categories for Oracle Application Aachment Category
Categories Middleware Extensions for Applications.  
   

Manage Applications Core Aachment Manage aachment entities for Oracle Application Aachment Entity
Entities Middleware Extensions for Applications.  
   

Manage Applications Core Descriptive Manage descriptive exelds for Oracle Application Descriptive Flexeld
Flexelds Middleware Extensions for Applications.  
   

Manage Applications Core Messages Manage messages for Oracle Middleware Application Message
  Extensions for Applications.  
 

Manage Applications Core Prole Manage categories to group prole Application Prole Category
Categories options in Oracle Middleware Extensions  
  for Applications according to their
functional area. Use categories to search
for related proles and to dene data
security rules.
 

Manage Applications Core Prole Options Manage prole options that aect Oracle Application Prole Value
  Middleware Extensions for Applications  
behavior, and specify the levels at which
they can be set.
 

185
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Page Description Business Object

Manage Applications Core Standard Manage lookup values for Oracle Application Standard Lookup
Lookups Middleware Extensions for Applications.  
   

Manage Applications Core Value Sets Manage value sets for Oracle Middleware Application Flexeld Value Set
  Extensions for Applications.  
 

Manage Aachment Categories Manage categories for aachments for Application Aachment Category
  security purposes.  
 

Manage Aachment Entities Manage the default repository folders to Application Aachment Entity
  use when storing aachments for each  
application entity.
 

Manage Common Lookups Manage lookups that are common across Application Common Lookup
  applications and used in the common  
lookup views.
 

Manage Currencies Manage ISO standard currencies. Application Reference Currency


     

Manage Data Security Policies Manage grants of entitlement to each Application Data Security Policy
  user or role on an object or aribute group  
according to a condition.
 

Manage Descriptive Flexelds Manage segments, validation, and display Application Descriptive Flexeld
  properties of descriptive exelds that you  
use to store details about an enterprise
that Order Management doesn't typically
store.
 

Manage Document Sequence Categories Manage categories that group documents Application Document Sequence Category
  for sequencing purposes.  
 

Manage Document Sequences Manage document sequences to create Application Document Sequence
  an audit trail that identies the application  
that created the transaction.
 

Manage Extensible Flexelds Manage segments, validation, and display Application Extensible Flexeld
  properties of extensible exelds that you  
use to store details about an enterprise
that Order Management doesn't typically
store.
 

Manage Industries Manage ISO industries. Application Reference Industry


     

Manage ISO Languages Manage ISO languages. Application Reference ISO Language
     

186
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Page Description Business Object

Manage Key Flexelds Manage key exeld segments and Application Key Flexeld
  validation. You must dene most key  
exelds so that the applications work as
expected.
 

Manage Languages Manage installed languages. Application Reference Language


     

Manage Messages Manage messages that you use in each Application Message
  application.  
 

Manage Natural Languages Manage natural, spoken languages. Application Reference Natural Language
     

Manage Prole Categories Manage categories that group prole Application Prole Category
  options according to functional area. Use  
categories to search for proles and to
dene data security rules.
 

Manage Prole Options Manage prole options that aect Application Prole Value
  application behavior, and specify the  
levels at which they can be set.
 

Manage Reference Data Sets Manage sets for separating and sharing Application Reference Data Set
  reference data across organizations.  
 

Manage Set Assignments for Set Manage reference data set assignments to Application Reference Data Set
Determinant Type determine the type of set. Assignment
     

Manage Set Enabled Lookups Manage lookups with codes that vary Application Set-Enabled Lookup
  depending on the value of the reference  
data set determinant and are exposed in
the set-enabled lookups view.
 

Manage Standard Manage lookups that are common across Application Standard
  applications and used in the lookups view.  
Lookups   Lookup
   

Manage Taxonomy Hierarchy Manage the hierarchy of functional units Application Taxonomy
  that make up Oracle Fusion Applications,  
from product families and applications to
functional components.
 

Manage Territories Manage ISO territories. Application Reference Territory


     

Manage Time Zones Manage time zones. Application Reference Time Zone
     

187
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Page Description Business Object

Manage Tree Labels Manage the labels to use as tags for tree Application Tree Label
  nodes.  
 

Manage Tree Structures Manage tree structures to group common Application Tree Structure
  business rules for a family of trees.  
 

Manage Trees and Tree Versions Manage trees to contain data in a Application Tree
  hierarchy, allowing the user to group and  
consolidate details that already exist in an
organization.
 

Manage Value Sets Manage value sets to validate the content Application Flexeld Value Set
  of a exeld segment.  
 

Register Descriptive Flexelds Register the existence of descriptive Application Descriptive Flexeld
  exelds on a table.  
 

Set Activity Stream Options Set options that determine the types of Application Activity Stream Conguration
  activities to display in the Activity Stream  
regions in Oracle Fusion Applications.
 

Business Intelligence Family

Export and import business objects in the Transactional Business Intelligence application in the Business Intelligence
family.

Page Description Business Object

Congure Descriptive Flexelds for Specify validation and display descriptive Application Descriptive Flexeld
Transactional Business Intelligence exeld properties for Transactional  
  Business Intelligence. Use descriptive
exelds to add modied aributes to
entities.
 

Congure Key Flexelds for Transactional Specify the key exeld segments and Application Key Flexeld
Business Intelligence validation to use as classication keys  
  for Transactional Business Intelligence.
You must specify these exelds so
Transactional Business Intelligence works
as expected.
 

Customer Relationship Management Family

Export and import business objects in the Customer Relationship Management family.

188
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Application Page Description Business Object

Marketing Manage File Import Mappings Manage mappings between File Import Mapping
    columns in a source le in a  
source system and columns
in a staging table in Order
Management. Use these
mappings when you import
business objects, such as sales
leads, customers, contacts, or
sales catalogs.
 

Marketing Manage File Import Objects Manage business objects, File Import Object
    such as sales leads and  
opportunities, that you can
import from a le.
 

Trading Community Model Enable Click to Dial Enable automated dialing Application Prole Value
    when clicking a phone  
number.
 

Trading Community Model Manage Geography Lookups Manage lookup values that Application Standard Lookup
    provide choices related to  
geographies, such as dierent
ways to validate an address.
 

Trading Community Model Manage Import Lookups Manage lookup values that Application Standard Lookup
    provide choices about data  
import batch processing,
such as batch status, batch
identier, batch conguration,
or process status.
 

Trading Community Model Manage Source System Manage elds the user can Application Descriptive
  Descriptive Flexelds use to enter details. Validate Flexeld
  descriptive exelds according  
to values that the user enters
in other areas of the page.
 

Trading Community Model Manage Source System Manage entity associations for Trading Community Original
  Entities source systems. For example, System Mapping
  use one source system to  
import customer data, and use Trading Community Source
another to import customers System
and contacts.  
 

Trading Community Model Manage Source System Manage lookup values that Application Standard Lookup
  Lookups provide choices related to the  
  source system model, such as
original system type.
 

Trading Community Model Manage Trading Community Manage the source system for Examine and dene the types
  Source Systems a trading community. of information imported for
    each source system

189
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Application Page Description Business Object

Human Capital Management Family

Export and import business objects in the Human Capital Management family.

Application Page Description Business Object

Global Human Resources Manage Enterprise HCM Manage details about the Enterprise
  Information enterprise, such as details  
  about the default work day.
 

Global Human Resources Manage Locations Manage locations for your Location
    enterprise. For example,  
create the locations where
people work or the locations
of your external organizations.
 

HCM Review Enterprise Examine a functional Enterprise Conguration


  Conguration summary or a detailed  
Conguration Workbench   technical inventory of all
  objects.
 

Financials Family

Export and import business objects in the Financials Common Module application in the Financials family.

Page Description Business Object

Manage Business Unit Manage details about enterprise units Business Unit, Business Unit Detail
  to provide a consistent entity so you  
can control and report on transactions,
and to share reference data sets across
applications.
 

Manage Business Unit Set Assignment Manage reference data that represents Business Unit Set Assignment
  business rules and policies. Assign this  
data to business units.
 

ATF Family

Export and import business objects in the Application Toolkit application in the ATF family.

190
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

Page Description Business Object

Manage Help Security Groups Manage security groups that you Application Data Security Policy
  associate with help to determine who can  
access it. Associate each group with a Application Standard Lookup
duty role. This page creates lookup codes,  
database resource conditions, and data
security policies that you can edit.
 

Map Reports to Work Areas Select the reports that display in the Reports and Analytics Mapping
  Reports and Analytics area in Oracle  
Fusion Applications work areas.
 

Set Help Options Set options for help features, such as Help Conguration
  collaboration, access to external web sites,  
seings for modied help content, or Help Topic
access to an Oracle User Productivity Kit  
library.
 

Set Watchlist Options Specify the Watchlist categories and items Watchlist User and Site Preference
  that are available at your site.  
 

Governance Risk and Compliance Family

Export and import business objects in GRC Application Access Controls Governor application of the Governance Risk
and Compliance family.

Page Description Business Object

Manage Application Access Controls Manage rules and resolve issues regarding Governance Risk and Compliance Setup
  access in an application. Conguration
   

Manage Application Conguration Manage rules and resolve issues regarding Governance Risk and Compliance Setup
Controls congurations in an application. Conguration
     

Manage Application Preventive Controls Manage rules regarding how users Governance Risk and Compliance Setup
  interact in an application. Conguration
   

Manage Application Transaction Controls Manage rules and resolve issues regarding Governance Risk and Compliance Setup
  transactions in an application. Conguration
   

191
Oracle SCM Cloud Chapter 2
Implementing Order Management Implement Business Process Flows

192
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

3 Integrate

Introduction
Overview of Integrating Order Management
Use web services to integrate Order Management with other applications and systems.
Order Management comes predened with integrations to other Oracle cloud services so you can use fulllment
processes that require minimal set up to get them up and running in your environment.

For example, Order Management and Oracle Fusion Inventory Management work together to fulll each sales order that
an Order Entry Specialist enters in the Order Management work area or that you import from a source system.

193
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Use a web service to integrate with some other Oracle application, a third-party cloud application, or an on-premise
application that your supply chain uses to complete the order-to-cash process. Here are some ideas.

Note.

Integration Description

Integrate with cloud processes. Integrate cloud processes, including order-to-cash, drop-ship, back-to-back, congure-to-
  order, or internal orders.
 
The integration includes predened processes and simplied set up.

194
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Integration Description

Integrate with other applications.


  Order Management comes predened with integrations to cloud services.

• Oracle Inventory Cloud


• Oracle Cost Management Cloud
• Oracle Manufacturing Cloud
• Oracle Procurement Cloud
• Oracle Product Hub Cloud
• Oracle Financials Cloud
• Oracle Congure, Price, and Quote Cloud.

Integrate through web services.


  Use a web service.

• Import each order right after you create it.


• Create orders, then import them together as a group.
• Send a request to your fulllment system.
• Receive a status from your fulllment system.
• Integrate to some other cloud or on-premise system.

Inventory, shipping, receiving, nance, and order management are each an example of a
fulllment system.

Here are some examples of the functionality you can implement through integration.

• Bill shipping charges at the time of shipment.


• Send order status updates from Order Management to your fulllment system when the update occurs.
• Send order status updates from a warehouse management system, such as Oracle Warehouse Management
Cloud, to Order Management when the update occurs.
• Integrate Order Management with your current implementation of Oracle E-Business Suite (EBS).

Related Topics
• Fix Connection Problems with Source Systems

Guidelines for Integrating Order Management


Use a variety of technologies to integrate Order Management with a fulllment system that resides outside of Oracle
Fusion.

195
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Technologies You Can Use to Integrate


Use these technologies.

Get details.

Technology Description Topic

Business Event Integrate your business processes to Overview of Using Integration Cloud
  operate across applications in the cloud or Service to Integrate Order Management
on premise.  
 

Web Service Integrate with some other Oracle Overview of Using Web Services to
  application, a third-party cloud Integrate Order Management.

196
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Technology Description Topic

application, or an on-premise application  


that your supply chain uses to nish the
order-to-cash process.
 

Order Management Extension Write your own Groovy script that Overview of Seing Up Extensions That
  modies your Order Management Modify Order Management
deployment, implements your own  
functionality, and species the extension
point that determines when to run this
script.
 

File Based Data Import Use an Excel le to simplify order import. Overview of Importing Orders into Order
  This le contains a structure that the Management
Oracle database requires for each  
database table.
 

Business to Business Automate message ow so Order Overview of Business-to-Business Order


  Management can receive and process Management
source orders from trading partners, then  
reply with an advance shipment notice
after shipping nishes.
 

197
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Examine Your Flow


Most Order Management implementations use a set up that's similar to this ow.

Note.

1. Use the import web service, le-based data import, or B2B messaging (business-to-business) to import source
orders from your source system into Order Management.
2. A step in your orchestration process starts the integration. Order management assigns each source order to an
orchestration process. The orchestration process orchestrates fulllment for each fulllment line. You add an
integration step that integrates the orchestration process with your fulllment system.
3. Web service endpoints identify each of your fulllment systems that reside outside of Oracle Fusion.
4. Routing rules specify the conditions to use when determining how to route each fulllment line to each
connector.

198
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

5. Order Management creates a service data object (SDO) and sends a request that includes the SDO payload. The
SDO contains details about the endpoint, connector to use, fulllment lines, and so on.
6. A connector web service transforms the SDO payload into a message payload that your fulllment system
can understand, and then calls the fulllment system. You can create a separate connector for each of your
fulllment systems.

Set Up Your Implementation


Step 1: Add Privileges to Roles

Add one or more of these privileges to an abstract role. These privileges allow you to call web services that provide a
response from your fulllment system.

• Manage Orchestration Generic Web Service


• Manage Orchestration Order Activity Interface Web Service
• Manage Orchestration Order Fulllment Interface Web Service
• Manage Orchestration Order Modication
• Manage Orchestration Order Purchasing Interface Web Service
• Manage Orchestration Order Receiving Interface Web Service
• Manage Orchestration Order Shipping Interface Web Service
• Manage Orchestration Order Template Interface Web Service
• Manage Web Service Interface to Transportation Data for Sales Order

Add each role to the user that you use to call the web service. For example, if your integration manages shipping details,
then add privilege Manage Orchestration Order Shipping Interface Web Service.

Add the Manage Order Specialist duty role for an upstream integration to your source system, for example, for order
import.

For details about job roles, duty roles, and how to set them up, see book Oracle SCM Cloud Security Reference for Order
Management on Oracle Help Center.

Step 2: Set Up Task Type

199
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Use the Manage Task Type page in the Setup and Maintenance work area to set up the task type.

Note.

1. Click Add Custom. Use this action you to specify services.


2. Use the Task Type aribute and the Description aribute to describe how your orchestration process uses the
task, such as Delivery Conrmation.
3. Use the Services tab to add the service that does the task, such as Create Delivery Conrmation.
4. Click Save so you can reference the task type from your orchestration process.
The task type species the type of task that each orchestration process step does, such as to schedule a fulllment line
for shipment, to ship it, or to conrm delivery. For details, see the Task Types topic.

Step 3: Add Integration Step

Add the step in your orchestration process that integrates with your fulllment system.

200
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Note.

1. Add the step at the point in your orchestration process where you must integrate. This example integrates after
the orchestration process nishes the schedule, promise, reserve, and ship tasks, but before the invoice task.
2. On the integration step, set the Task Type aribute and the Task aribute to the task type you set up on the
Manage Task Types page.
3. Set the Service aribute to the service you set up on the Services tab of the Manage Task Types page.
For details, see the Set Up Orchestration Processes topic.

Step 4: Create Connector

201
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

In the Setup and Maintenance work area, search for Manage External Interface Web Service Details, then use the
Manage Connector Details page to specify how to connect to your fulllment system.

Note.

• Create a separate connector for each of your fulllment systems.


• Use the Connector URL aribute to locate your fulllment system. In this example, assume you dened a URL
on the server that serves System 3.

https://server:port/7818/soa-infra/services/default/ConfirmDelivery

To make sure the connection is secure, use hps in the URL. Don't use hp.

202
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

• Use the User Name and Password aributes to specify the name and password you use when you sign into
fulllment system 3. In this example, assume you set up a user named myName on System 3.

◦ Use a user name that works with an SSL security policy (secure sockets layers) that you set up on your
fulllment system.
◦ Make sure the user name and password you specify are valid on your fulllment system. Use them to
verify that you can successfully sign into your fulllment system. Note that this name isn't the name you
use to sign into Oracle Fusion.
◦ Use CA signed certicates (certication authority) on your fulllment system and on the connector.

• For details, see the Manage Connector Details That Integrate Order Management with Fulllment Systems
topic.

Set other aributes on the connector.

For example.

• If you use this connector to communicate a business event, then set the Keystore Recipient Alias aribute to
NA, and set the Invocation Mode aribute to Business Event.

203
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

• If you use this connector with a web service, then set Invocation Mode to Asynchronous Service or
Synchronous Service.

Step 5: Create Routing Rule

Create the rule that routes the orchestration process to the connector you just created.

Note.

1. Use Visual Information Builder to create the rule. For details, see the Overview of Using Business Rules With
Order Management topic.
2. Add an If statement to determine whether the task type matches the type you specied in the Task Type
aribute on the orchestration process step.

204
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

If Task Type is equal to DeliveryConfirmation

3. Add a Then statement to set the Connector Name aribute to the connector you created earlier that connects
to your fulllment system.

Set Connector Name: Delivery Confirmation

4. Add a Then statement to set the Interaction Interface Type aribute. Recall from the ow that order
orchestration uses an SDO payload to communicate with your fulllment system. You must use Service Data
Object for any new implementation. Use other values only for backward compatibility to an earlier Oracle
Fusion release.

Set Interaction Interface Type: Service Data Object

Summary

Here's a summary of the set up you do.

205
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Use these pages.

1. Manage Task Types to create the task type.


2. Manage Orchestration Process Denitions to add the integration step.
3. Manage Connector Details to create the connector.
4. Manage External Interface Routing rules to route the fulllment line to your fulllment system.

More Guidelines
• Set up status behavior. Order Management typically sends statuses for each fulllment line to your fulllment
system throughout the order fulllment lifecycle. In return, your fulllment system can send status updates to
Order Management. You can set up this behavior. For details, see Orchestration Process Status topic.

206
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

• Determine whether you must add a wait step. For example, if a task occurs almost instantly, as with credit
check, then you typically don't need a wait step. However, a task that requires a long time to nish typically
does require a wait step to allow the orchestration process to pause for the task to nish. For details, see the
Overview of Pausing Orchestration Processes topic.
• Set up failure logic. For example, if a task fails, then it goes into error recovery and you must retry or recover
the task.

Assume your analysis determines you must allow an Order Manager to override a delivery conrmation that
fails and allow processing to continue. You can set up an extensible exeld that allows the Order Manager to
record the results of the transaction, then set up a pause task that uses the contents of the exeld to allow the
process to release the pause and continue to the next step.
• Use business events and web services with Integration Cloud Service. For details, see the Overview of Using
Integration Cloud Service to Integrate Order Management topic.
• Use Order Management Extensions. For details, see the section about calling web services in the Guidelines for
Seing Up Order Management Extensions topic.

207
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Guidelines for Business Rules

Note.

• To avoid logic problems, make sure rules are mutually exclusive. Make sure no two rules can be true at the
same time, or false at the same time. For details, see the Guidelines for Creating Business Rules topic.
• Consider other aributes you can set.

◦ To aggregate fulllment lines before you send them to your fulllment system, use the Maximum Lines
to Aggregate and Send aribute and the Maximum Time to Wait Before Sending aribute. Run several
tests and adjust these values after each test until you achieve the optimal balance between waiting and
performance.

208
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

◦ Use other aributes to control processing, as necessary, such as Resolve Cross-Reference for Customer
to determine whether to use a cross-reference, or Set Acknowledgement Timeout to determine how long to
wait before exiting out of an implicit wait during an interaction with your fulllment system.

For details, see the Actions You Can Set in Routing Rules topic.
• Use Perform an Action. Avoid using Set a Value. Perform an Action automatically lters aributes and values
for you to help make sure you specify values that the rule can understand.

Send the Response from Your Order Fulllment System


The connector sends a request to your order fulllment system, then the fulllment system sends a response. You can
use services to communicate status updates from your fulllment system to Order Management.

Service See This Topic for Details

FulllmentResponse Service Integrate Order Management with Fulllment Systems


   

Order Fulllment Response Service Overview of Using Integration Cloud Service to Integrate Order Management
   

Identify Hosts and Ports

Identify the hosts and ports you will use to access your payloads. In the navigator, click Setup and Maintenance, click
Tasks > Review Topology. For details, see the Identify Hosts and Ports for Your Order Management Implementation
topic.

For example.

• If you use Oracle Application Development Framework (ADF), then use the host and port for FSCMServices.

209
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

• If you use Oracle Service-Oriented Architecture (SOA), then use the host and port for FASOA (Oracle Fusion
Applications, Service-Oriented Architecture).

Set Up Payload for FulllmentResponse Service

If you use Service-Oriented Architecture, then set up the payload for the FulllmentResponse service.

The payload that your fulllment system sends must include these aributes.
<ns2:FulfillLineId>Id number</ns2:FulfillLineId>
<ns2:SourceOrderSystem>system name</ns2:SourceOrderSystem>

For example.
<ns2:FulfillLineId>300100072403436</ns2:FulfillLineId>
<ns2:SourceOrderSystem>GPR</ns2:SourceOrderSystem>

where
• 300100072403436 is the fulllment line Id.
• GPR is the source order system. Order Management typically uses the phrase source order to refer to an order
that resides in an upstream order capture system. However, in this instance, SourceOrderSystem means any
system that provides input details to FulllmentResponse.

As an option, you can also send other aributes, such as ShippedQuantity, according to your business requirements.

Order Management needs SourceOrderSystem so it can get the user name, password, and Keystore Recipient Alias
from the Manage Connector Details page and use them when it sends a reply to your order fulllment system. It uses
SourceOrderSystem to search the list of connectors on the Manage Connector Details page. It searches the list in
alphanumeric order, and chooses the rst connector it nds where the value in the Target System aribute matches the
value in SourceOrderSystem. Make sure you add your connectors and name them so Order Management uses the one
you need.

210
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Assume SourceOrderSystem contains OrderCapture1, and the Manage Connector Details page contains three
connectors.

Target System Connector Name User Name Password Keystore Recipient


Alias

OrderCapture1 My Connector A Administrator1 ****** -


         

OrderCapture2 My Connector B Administrator2 ****** -


         

OrderCapture1 My Connector C Administrator3 ****** -


         

Order Management will use the Administrator1 user, password, and Keystore Recipient Alias from the row for My
Connector A.

Set Up Payload for Order Fulllment Response Service

If you use Application Development Framework, then set up the payload for the Order Fulllment Response service.

211
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

The payload that your fulllment system sends must include these aributes.
<com:IntegrationContextCode>context_code</com.IntegrationContextCode>
<com:FulfillmentSystem/>
<com:FulfillLineIdentifier>numeric_value</com:FulfillLineIdentifier>
<com:TaskInstanceStatusCode>status_code</com:TaskInstanceStatusCode>

For example.
<com:IntegrationContextCode>DOO_TransportationPlanning</com.IntegrationContextCode>
<com:FulfillmentSystem/>
<com:FulfillLineIdentifier>3001000071295736</com:FulfillLineIdentifier>
<com:TaskInstanceStatusCode>DOO_TP_DELIVERED</com:TaskInstanceStatusCode>

where

• DOO_TransportationPlanning is the IntegrationContextCode.


• 3001000071295736 is the FulllLineIdentier.
• DOO_TP_DELIVERED is the TaskInstanceStatusCode.

Set Up Payload for Extensible Flexeld

212
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

You integrate an extensible exeld with your fulllment system the same way you integrate it during order import. The
only dierence is that instead of modifying the XSD le that you use during order import, you modify the XSD le that
you use when you integrate with your fulllment system. For details, see the section that describes how to integrate
with web services during order import in the Guidelines for Using Extensible Flexelds in Order Management topic.

Enable Cross-References
You must create and maintain cross-references and domain value maps that relate business data between your
fulllment system and Order Management Cloud. Use the Manage Planning Source Systems page as part of this set up.

For example, set these values.

213
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Value

Order Orchestration Type Fulllment


   

Collections Allowed Contains a check mark.


   

Enable Data Cross-Reference Contains a check mark.


   

For details about.

• Cross-references, see the Cross-References in Order Management topic.


• Managing planning source systems, see the section that describes how to collect data in the Quick Start to
Implementing Order-to-Cash topic.

Related Topics
• Fix Connection Problems with Source Systems

Web Services
Overview
Web Services You Can Use to Integrate Order Management
Use Order Import Service, Receive Order Request Web Service, or Order Information Service to integrate Order
Management with other systems.
Here are some examples of other systems you can integrate.

• Channel
• Legacy
• Quoting
• Contract
• Service request
• Purchasing
• Inventory
• Warehouse
• Shipping
• Invoicing
• Billing

214
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Create, read, update, and delete the same data that Oracle Applications use.

For example.

Oracle Application Data

Order Promising Promising model


   

Trading Community Architecture Customer model


   

215
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Oracle Application Data

Product Information Management Product model


   

Congurator Conguration model


   

Order Management Data model


   

Terminology
• Source system. An order capture system or application that sends the Order Request object to the Order
Import Service web service. For brevity, this document mentions only source system.
• Internal. An action, process, or object that resides in Order Management. A cross-reference that resides in
Order Management and Planning Repository is an example of an internal object.
• External. An action, process, or object that resides outside of Order Management . A source order that a source
system creates in an order capture system is an example of an external object.
• Source order. An order that a source system creates in an order capture system.
• Sales order. A source order that Order Management converts into a sales order so it can fulll the source order.

Starting with Release 12, use the Order Import Service web service instead of the Receive Order Request web service.
Order Management continues to support Receive Order Request in Release 12, but will retire it and no longer support it
in subsequent releases.

Order Import Service


Use the Order Import Service web service to create an integration that sends order requests from your upstream system
to Order Management. This web service processes the request, then creates a sales order in Order Management. You
can also use it to submit a draft sales order to fulllment.

Order Import Service is a SOAP (Simple Object Access Protocol) service that uses Order Request Object as the payload.
Here are the details.

Details Description

Type Technical
   

Required No
   

Service Name OrderImportService


   

Description This Service receives source orders from dierent channel systems.
   

WSDL hp: //host: port/ fomImportOrdersService/ OrderImportServicewsdl


   

Input OrderImportServiceRequest

216
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Details Description

   

Output OrderImportServiceResponse
   

Use these operations with Order Import Service.

Operation Input Message Output Message

createOrders createOrders createOrdersResponse


     

createOrdersAsync createOrdersAsync createOrdersAsyncResponse


     

stageOrders stageOrders stageOrdersResponse


     

stageOrdersAsync stageOrdersAsync stageOrdersAsyncResponse


     

SubmitDraftOrder SubmitDraftOrder SubmitDraftOrderResponse


     

SubmitDraftOrderAsync SubmitDraftOrderAsync SubmitDraftOrderAsyncResponse


     

Create Orders Operation

Use the createOrders operation to import source orders from dierent channels into Order Management. Create a sales
order in draft mode or submit mode according to the SubmitFlag aribute in the payload.

Stage Orders Operation

Use the stageOrders operation to import orders from dierent channels to staging tables. You can then run a scheduled
process that imports data from interface tables, processes them, then imports each interface record into Order
Management as a sales order.

Submit Draft Order Operation

Use the SubmitDraftOrder operation to submit a draft sales order to order fulllment. For details, see the Service section
in book SOAP Web Services for Oracle Supply Chain Management Cloud, on Oracle Help Center.

Receive Order Request Web Service


Use the Receive Order Request Service web service to do a pause task, apply a hold, release a hold, or check availability.

Receive Order Request Service is a SOAP (Simple Object Access Protocol) service that uses Order Request Object as the
payload.

Where possible, use the Order Import Service web service instead of Receive Order Request Service to create a sales
order. Support for using Receive Order Request Service to create a sales order might end in a future release.

217
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Here are the details.

Details Description

Type Technical
   

Required No
   

Service Name ReceiveOrderRequestService


   

Description This service receives source orders from dierent channel systems.
   

WSDL hp: //host: port/ soa-infra/ services/ default/ DooDecompReceiveOrderExternalComposite/


  ReceiveOrderRequestServiceWSDL
 

Input ReceiveOrderServiceRequestMessage
   

Output ReceiveOrderServiceResponseMessage
   

Order Information Service


Integrate your source orders. Here are the aributes you can use with the GetOrderDetails operation of the Order
Information Service.

Aribute Type Description

SourceTransactionIdentier Varchar2 Value that uniquely identies the


    transaction.
 

SourceTransactionSystem Varchar2 Source system that placed the request for


    fulllment.
 

SourceTransactionNumber Varchar2 Transaction number that the source


    system uses.
 

SourceTransactionRevisionNumber Varchar2 Revision number of the transaction.


     

IncludeHeaderAndLineAributesOnly Varchar2
    Use one of these values.

• All. Get all details of the sales order.


This is the default value.
• Status. Get the status of the sales
order and the order lines, and get

218
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Type Description

all other sales order data except for


details in these entities.

◦ LotSerialDetails

◦ Payments

◦ PriceAdjustments

◦ SalesCredits

◦ Projects

SourceTransactionLineIdentier Varchar2 Value that uniquely identies the internal


    transaction line. You can repeat this
aribute zero or more times.
 

Related Topics
• Overview of Importing Orders into Order Management

Guidelines for Using Web Services to Integrate Order Management


Apply guidelines to make sure your integration to other systems with Order Management Cloud goes smoothly.

Plan
Plan Your Integration

Requirement Description

Register source system. You must register each source system that sends the order request as a source system.
   
More than one source system might create a source order, so the web service stores details
that identify the source system on the order so it can track the source system that sends the
order.
 
The web service uses the source system during cross-referencing to determine the
corresponding internal identier or value that's specic to the source system.
 

Plan how you will synchronize You must synchronize customer master data before you import a source order.
customer master data.  
  If the customer on the order doesn't exist in the customer model in Oracle Fusion Trading
according to the CreateCustomerInformationFlag preference in the service schema, then Order
Management can create the customer details.
 

Plan for aributes in Oracle If you use Oracle Congure, Price, and Quote Cloud (CPQ), then CPQ sends details about the
Congure, Price, and Quote Cloud. aributes that Order Management requires to use this functionality, such as FreezePriceFlag,
  FreezeShippingChargeFlag, FreezeTaxFlag, and so on.
 

Plan for pricing. You can send a source order that your upstream system already priced, or the web service can
  price the source order for you.
 

219
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Requirement Description

If you use a predened implementation of Oracle Congure, Price, and Quote Cloud, then the
web service assumes the upstream system already priced the source order and won't allow
price changes in Order Management.
 

Plan how to handle draft sales orders.


  Your source system can send a submied source order or a source order that's in draft status.

• If the source order is in draft status, then you must submit the sales order that
references the source order.
• Order Management won't run the orchestration process that fullls your sales order
until you submit it.
• If the web service creates the order in draft status, then you can submit it from the Order
Management work area, or you can use operation SubmitDraftOrder in the web service
to submit it.
• If you use SubmitDraftOrder, then you must add the payload that denes it.

Use Asynchronous or Synchronous Services

Asynchronous or Synchronous? Description

The integration platform or Use the asynchronous operation because asynchronous is more resilient and fault tolerant
application that uses the service than synchronous. If the response from the fulllment system is delayed for some reason, then
supports an asynchronous service. an asynchronous operation can continue processing but a synchronous operation might time
  out and go into an error state.
 

The platform or application doesn't Use synchronous as long as the number of lines in the sales order doesn't result in a timeout
support an asynchronous service, or after 300 seconds.
you prefer not to use asynchronous  
because its more complex to If you use synchronous, and if a sales order times out, then you must make sure you set up
implement. your implementation to resubmit the sales order.
   

Process More Than One Sales Order

Use these operations of Order Import Service.


• stageOrders. The only operation that can accept more than one sales order in the payload.
• createOrders. Can accept only one sales order in the payload.

The Receive Order Request web service can accept only one sales order in the payload.

For details about input messages and output messages you can use with Order Import Service, see the Service section
in book SOAP Web Services for Oracle Supply Chain Management Cloud, on Oracle Help Center.

Make Sure Your Payload Uses the Correct Hierarchy


Entity Hierarchy That Web Services Support

Make sure your payload uses this entity hierarchy.


• Header
◦ Order Payment

220
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

◦ Order Sales Credit


◦ Order Aachments
◦ Order Lines

• Line LotSerial
• Line SalesCredit
• Line Payments
• Line Document References
• Line Aachments
• Line Transactional Item Aributes
• Charge
• Charge - Charge Components
◦ Order Preferences

Logical Data Model

221
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Make sure your payload can accommodate the data model.

Response Payload

Make sure your integration can accommodate the response that Order Management sends. The response payload
returns a status.

Status Description

SUCCESS The response includes source keys and Order Management keys. It sends this response after
  Order Management successfully creates the sales order.

222
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Status Description

FAILURE The response includes the rst validation error message.


   

The response payload uses this structure.

Specify Aributes in Payloads


Specify Aributes in Groups

223
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

To make sure the payload includes all the required details, the web service processes some aributes as a group. For
example, here are the aributes that the web service examines as a group to make sure the payload identies the
buying party.
1. BuyingPartyId
2. BuyingPartyName
3. BuyingPartyNumber
Here's the sequence that the web service uses when it processes each group.
1. Use the aribute that species the identier, such as BuyingPartyId.
2. If the aribute that species the identier is empty, then use the aribute that species the number, such as
BuyingPartyNumber.
3. If the aribute that species the number is empty, then use the aribute that species the name, such as
BuyingPartyName.
If the aribute that species the identier includes a value, then the web service will always use this value even if the
aributes that specify the name or number aren't empty.

If the payload doesn't include a value for the identier, name, or number, then your order import will likely fail.

Specify Coded Aributes and Their Partners

Some aributes, such as ReturnReasonCode, store an abbreviation for a longer term. The abbreviation is typically text
that the user can view to quickly identify the meaning of a lookup value.

You can think of the value of this aribute as coded. A coded aribute typically includes a partner aribute. For
example, the ReturnReason aribute is the partner for ReturnReasonCode.

If you provide a value only for the coded aribute in the payload, then Order Management will use the value that the
database cross-references from the lookup value to the meaning. For example, it cross-references the RET lookup value
to the meaning for RET, which is Return.

Continuing this example, assume you set ReturnReasonCode=RET in the payload, and.
• You set ReturnReason="Return Order", then the web service will ignore this value and use the code. This
behavior is similar to using Identier when you don't supply the Name.
• You don't specify a value for ReturnReason, and if the value that the database cross-references to the meaning
is Return, then the web service will use Return for the reason.

The web service uses this logic for each of these sets of aributes.

Coded Aribute Partner Aribute

AccountingRulecode AccountingRule
   

CancelReasonCode CancelReason
   

ChargeDenitionCode ChargeDenition
   

ChargeSubtypeCode ChargeSubType
   

DemandClassCode DemandClass

224
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Coded Aribute Partner Aribute

   

FOBPointcode FOBPoint
   

FreightTermsCode FreightTerms
   

InvoicingRuleCode InvoicingRule
   

OrderedUOMCode OrderedUOM
   

PaymentMethodCode PaymentMethod
   

PaymentTerm PaymentTermCode
   

RequestedFulllmentOrganizationCode RequestedFulllmentOrganizationName
   

RequestedSupplierCode RequestedSupplierName
   

ShipmentPriorityCode ShipmentPriority
   

ShippingCarrierCode ShippingCarrier
   

ShippingModeCode ShippingMode
   

ShippingServiceLevelCode ShippingServiceLevel
   

SubInventoryCode Subinventory
   

SubstitutionReasonCode SubstitutionReason
   

TaxExemptReasonCode TaxExemptReason
   

TransactionalCurrencyCode TransactionalCurrencyName
   

TransactionLineTypeCode TransactionLineType
   

Include Identiers and Values

225
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Use an aribute that includes the word Identier in the name to send the identier, such as Requesting Business Unit
Identier. If you send the identier and the value for the identier, then the web service uses the identier.

Master data includes customers and items. The source system can send dierent details, depending on whether it uses
the same master data and references data that Order Management uses.
• Uses the same data. The source system can send the Oracle identier or the values.
• Doesn't use the same data. The source system can send the identiers and values that it contains. Order
Import Service uses them as keys to look up the cross-reference, depending on whether the key references
customer data or product data. If the cross-reference resides in.
◦ Oracle Trading Community Model, then resolve it into Oracle customer data
◦ Oracle Fusion Product Model, then resolve it into Oracle product data

Each service typically uses a pair of synchronous and asynchronous operations. The service appends the operation
name with a value.
• Sync. The other operation in the pair is asynchronous.
• Async. The other operation in the pair is synchronous.

For example, GetOrderDetails and GetOrderDetailsAsync is a pair of services. GetOrderDetails is synchronous and
GetOrderDetailsAsync is asynchronous.

Process Change Orders and Cancel Orders


Process Change Orders

To modify a sales order, you call a web service with a payload that includes these details.
• Source transaction system
• Source transaction identier
• Order number and source transaction number of a sales order that Order Management already processed

The web service will process the order as a change order according to the combination of source transaction system
and source transaction identier.
• Use the same web service that you used to create the sales order. The payload structure for a change order is
similar to the payload structure for create order.
• Design your payload so it sends the modied value for each aribute.
• Make sure your payload includes all aributes for the order line that you modify.
• If you don't modify any part of an order line, then you can exclude the entire line from the payload.

Cancel Sales Orders

To cancel a sales order or order line, you call the same web service that you use to create the sales order.

Here are details to include in your payload.

What You Must Cancel Description

Cancel the entire sales order. Set the OperationCode for the order header to CANCEL. You must also identify the source
  transaction system and include the source transaction identier.
 

226
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

What You Must Cancel Description

Cancel the entire order line.


  Send the SourceTransactionLineIdentier and SourceTransactionScheduleIdentier for the
order. Do one of.

• Set the OperationCode aribute for the order line to CANCEL.


• Set the Ordered Quantity aribute to 0.

Cancel part of a shipped order line. Set the ordered quantity to the quantity that already shipped. For example, if the quantity on
  the original order line is 10 Each, and if 7 shipped, and if 3 were back ordered, then set the
ordered quantity in the payload to 7 Each.
 
Make sure your payload also includes all other aributes from the original order line.
 

Example of Canceling Part of an Order Line

Consider an example.

• Quantity originally ordered equals 100


• Quantity already shipped equals 40
• Quantity awaiting shipping or backordered equals 60

Use these values.

Scenario Quantity to Send in Payload for Update Description


Service

Your customer needs a revised total 55 The quantity of 55 in the payload replaces
quantity of 55.   the original quality.
   
40 already shipped, so order fulllment
cancels 45 of the 60 that are currently
awaiting shipping or backordered, leaving
15 that are still awaiting shipping or
backordered.
 

You must cancel the quantity that hasn't 40 The quantity of 40 in the payload replaces
shipped.   the original quality.
   
Order fulllment cancels the 60 that
are currently awaiting shipping or
backordered.
 

Assume quantity already shipped is 0, 0 The quantity of 0 in the payload replaces


quantity awaiting shipping is 100, and you   the original quality.
must cancel the entire quantity.  
  Order fulllment cancels the 100 that are
currently awaiting shipping.
 

227
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Use Security with Web Services


The web service aaches an LPA security policy to the service and the callback. It includes a hybrid policy.

• oracle/wss11_saml_or_username_token_with_message_protection_service_policy

This policy supports ve dierent assertions, including this one.

• oracle/wss_username_token_over_ssl_client_policy

The callback includes an aachment.

• oracle/wss_username_token_over_ssl_client_policy LPA

Use these seings to call the web service only with SSL (Secure Sockets Layer).

Use Files to Import Source Orders


Use the Order Import Template to import source orders. It helps reduce errors and simplies order import. It contains a
structure that the Oracle database requires. For example, it includes a tab for each database table, and it displays these
tabs in a specic sequence.

Automate using les to import source orders. Oracle provides a set of web services you can use to upload the
completed import template to the server that hosts Oracle WebCenter Content. You then run a scheduled process that
imports the uploaded le to the interface tables, processes them, then imports each interface record as a sales order.
For details, see the book Using External Data Integration Services for Oracle ERP Cloud on My Oracle Support.

Here are the parameters you use when you run the scheduled process.

Parameter Value

JobDenitionName ImportOrdersJob
   

JobPackageName oracle/ apps/ ess/ scm/ doo/ decomposition/ receiveTransform/ receiveSalesOrder


   

Related Topics
• Overview of Importing Orders into Order Management

Reference
Example Web Service Payloads That Integrate Order Management
Get some example payloads in xml les.
To download the xml les, click the link in the Related Topics section at the end of this topic.

Example Payloads for the Create Order Operation


Here are some example payloads for the Create Order operation of the Order Import Service. These payloads create
sales orders.

228
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Description Payload

Create or submit draft sales orders. draft_ sales_ order.xml


   
submit_ draft_ order_ sync.xml
 

Include pricing.
  single_line_priced_in_source_system.xml

single_line_priced_in_oracle_fusion.xml

Note.

• The single_line_priced_in_oracle_fusion.xml payload includes the text QP, which is an


acronym for Quality Pricing. It indicates that Oracle Fusion Pricing calculates pricing for
the sales order.
• The single_line_priced_in_source_system.xml payload includes the text PREPRICED,
which means your source system calculates pricing for the sales order.

Include child entities. child_ entity_ transactional_ item_ aribute.xml


   
child_ entity_ sales_credits
 
child_ entity_ manual_ price_ adjustment. xml
 
child_ entity_ lot_ serial.xml
 

For new customers. customer_ sync_ person.xml


   
customer_ sync_ organization. xml
 

Include extensible exelds. sales_ order_ with_ extensible_ exeld.xml


   
This payload includes the text EFF, which is an acronym for extensible exeld.
 

Include billing details. recurring_ billing.xml


   

Include shipment sets. shipset_ order.xml


   

Here are some more examples that use the Create Order operation.

Description Payload

Return sales orders. return_ order_ with_ reference.xml


   

Cancel sales orders. cancel_ sales_ order.xml


   

Cancel order line. cancel_ order_ lines.xml

229
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Description Payload

   

Example of a successful operation. successful_ response_ for_ CreateOrder. xml


   

Example of a failed operation. failed_ response_ for_ CreateOrder. xml


   

Example Payloads for the Stage Order Operation


The payloads for the Stage Order operation are identical to the payloads for the Create Order operation except
you use stageOrders at the beginning and at the end of the body. For example, the draft_sales_order.xml payload
uses stageOrders on lines 3 and 10 for the stage order operation. To use the Create Orders operation, you replace
stageOrders on lines 3 and 10 with createOrders.

successful_response_for_StageOrder.xml is an example of a successful response for the Stage Order operation.

Related Topics
• Example Payloads

Aributes You Can Use with Web Services


Get details about the aributes you can include in the request payload when you use the Receive Order Request web
service.
For more details about objects and operations you can use, see the relevant sections in Oracle Supply Chain
Management Cloud SOAP Web Services for SCM On Oracle Help Center at hps://docs.oracle.com/en/cloud/saas/
supply-chain-management/20a/oessc/business-object-services.html#orderfulllmentresponseservice-d23347e42708.
• Order Fulllment Response Service
• Order Information Service

Aributes for the Order Header


Required Aributes You Must Include in Your Payload

Aribute Type Description

BuyingPartyId Number Value that identies the person, company,


    or organization that placed the source
order, sometimes known as the Sold To
Customer.
 

TransactionalCurrencyCode VARCHAR2 Currency code for pricing the transaction.


     

TransactionOn Timestamp Date and time that the transaction started.


    This value identies the date that the
customer commied to purchase the
items that this source order contains.
Order Management uses this date to
measure the time required to fulll the
sales order.

230
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Type Description

RequestingBusinessUnitIdentier Number Value that identies the internal


    organization that sold the source order.
 

SourceTransactionNumber VARCHAR2 Transaction number that the source


    system uses.
 

SourceTransactionSystem VARCHAR2 Source system that placed the request for


    fulllment.
 

SourceTransactionIdentier VARCHAR2 Value that uniquely identies the


    transaction.
 

SourceTransactionRevisionNumber VARCHAR2 Revision number of the transaction.


     

For details about the aributes you must include in the order header and other child entities when you use the Order
Import service, see the Service section in book SOAP Web Services for Oracle Supply Chain Management Cloud, on
Oracle Help Center.

Optional Aributes

Aribute Type Description

BuyingPartyName VARCHAR2 Name of the person, company, or


    organization that placed the source order,
also known as the Sold To Customer.
 

BuyingPartyNumber VARCHAR2 Person, company, or organization number


    that placed the source order, also known
as the Sold To Customer.
 

BuyingPartyOrigSystemReference VARCHAR2 Cross reference value for the person,


    company, or organization number that
placed the source order. The customer
master in the TCA maintains this value.
 

BuyingPartyContactId Number Value that identies the person who


    placed the source order or whose the
primary contact for the source order.
 

BuyingPartyContactName VARCHAR2 Name of the person who placed the


    source order or whose the primary contact
for the source order.
 

231
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Type Description

BuyingPartyContactNumber VARCHAR2 Contact number for the person who


    placed the source order or whose the
primary contact for the source order.
 

BuyingPartyContactOrigSystemReference VARCHAR2 Cross-reference value of the person who


    placed the source order or whose the
primary contact for the source order. The
customer master in TCA maintains this
value.
 

CustomerPONumber VARCHAR2 The purchase order number that the


    customer sends to identify the source
order.
 

TransactionalCurrencyName VARCHAR2 Currency name that Order Management


    must use to price the transaction.
 

CurrencyConversionType VARCHAR2 Conversion type for foreign currency.


     

CurrencyConversionRate Number The exchange rate that Order


    Management must use if it converts
the value from one currency to another
currency.
 

CurrencyConversionDate Date Currency conversion date.


     

TransactionDocumentTypeCode VARCHAR2
    Specify the type of request.

• Sales order
• Purchase order
• Internal material transfer

CancelReasonCode VARCHAR2 Brief text that identies the cancel reason.


     

CancelReason VARCHAR2 Reason for the cancel.


     

RequestCancelDate Date Time and day when the user requested


    the cancel.
 

Comments VARCHAR2 Text that describes the transaction.


     

RequestingLegalUnitIdentier Number Value that identies the legal entity that


    formed a contract with the customer.
 

232
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Type Description

RequestingLegalUnit VARCHAR2 Name of the legal entity that formed a


    contract with the customer.
 

OrigSysDocumentReference VARCHAR2 Document number from the source


    system.
 

PartialShipAllowedFlag VARCHAR2
    Specify how to ship the items that the
source order contains.

• true. Ship items in more than one


shipment, if necessary.
• false. Ship all items in a single
shipment.

ShipToPartyIdentier VARCHAR2 Value that identies the party that must


    receive the goods.
 

ShipToPartyName VARCHAR2 Name of the party that must receive the


    goods.
 

ShipToPartyNumber VARCHAR2 Number that identies the party that must


    receive the goods.
 

ShipToAddress1 VARCHAR2 Address Line 1 of the ship-to destination.


     

ShipToPartySiteIdentier VARCHAR2 Value that identies the party site of the


    ship-to destination, such as 1036.
 

ShipToAddress2 VARCHAR2 Address Line 2 of the ship-to destination.


     

ShipToAddress3 VARCHAR2 Address Line 3 of the ship-to destination.


     

ShipToAddress4 VARCHAR2 Address Line 4 of the ship-to destination.


     

ShipToCity VARCHAR2 City of the ship-to destination.


     

ShipToPostalCode VARCHAR2 Postal code of the ship-to destination.


     

ShipToState VARCHAR2 State of the ship-to destination.


     

ShipToProvince VARCHAR2 Province of the ship-to destination.


     

ShipToCounty VARCHAR2 County of the ship-to destination.

233
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Type Description

     

ShipToAddressOrigSystemReference VARCHAR2 Cross-reference value of the address for


    the ship-to destination.
   

ShipToContactPartyIdentier VARCHAR2 Value that identies the contact for the


    shipping address.
 

ShipToContactPartyNumber VARCHAR2 Contact number for the shipping address.


     

ShipToContactPartyName VARCHAR2 Contact name for the shipping address.


     

ShipToContactPartyOrigSystemReference VARCHAR2 Cross-reference value of the party contact.


     

BillToCustomerIdentier VARCHAR2 Value that identies the party that's legally


    responsible for payment.
 

BillToPartyName VARCHAR2 Name of the party that's legally


    responsible for payment.
 

BillToPartyNumber VARCHAR2 Number of the party that's legally


    responsible for payment.
 

BillToPartySiteIdentier VARCHAR2 Value that identies the party that's legally


    responsible for payment.
 

BillToAddress1 VARCHAR2 Address Line 1 of the party that's legally


    responsible for payment.
 

BillToAddress2 VARCHAR2 Address Line 2 of the party that's legally


    responsible for payment.
 

BillToAddress3 VARCHAR2 Address Line 3 of the party that's legally


    responsible for payment.
 

BillToAddress4 VARCHAR2 Address Line 4 of the party that's legally


    responsible for payment.
 

BillToCity VARCHAR2 City of the party that's legally responsible


    for payment.
 

BillToPostalCode VARCHAR2 Postal Code of the party that's legally


    responsible for payment.
 

234
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Type Description

BillToState VARCHAR2 State of the party that's legally responsible


    for payment.
 

BillToProvince VARCHAR2 Province of the party that's legally


    responsible for payment.
 

BillToAddressOrigSystemReference VARCHAR2 Cross-reference value for the account site.


     

BillToCounty VARCHAR2 County of the party that's legally


    responsible for payment.
 

BillToAccountContactIdentier VARCHAR2 Value that identies the contact for the


    billing address.
 

BillToAccountContactNumber VARCHAR2 Contact number for the billing address.


     

BillToAccountContactOrigSystemReference VARCHAR2 Cross-reference value of the account


    contact.
 

BillToAccountContactName VARCHAR2 Contact name for the billing address.


     

PricedOn Date The date when the document is priced.


    Order Management populates this
aribute with the system date at the
beginning of a pricing process.
 

FreezePricing VARCHAR2
    Set to true or false.

• true. The source system prices the


sales order, prices are frozen so
Oracle Fusion Pricing won't price
it, and you must provide data for
charges and charge components in
the import payload.
• false. Prices aren't frozen, Oracle
Fusion Pricing will price it, and you
don't need to provide values for
charges and charge components in
the import payload..

FreezeShippingCharge VARCHAR2
    Set to true or false.

• true. The source system calculates


shipping charges for the sales
order, and prices are frozen
so Oracle Fusion Pricing won't
calculate shipping charges.

235
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Type Description

• false. Shipping charges aren't


frozen and Oracle Fusion Pricing
will calculate them.

FreezeTax VARCHAR2
    Set to true or false.

• true. The source system calculates


tax charges for the sales order, and
prices are frozen so Oracle Fusion
Pricing won't calculate tax charges.
• false. Tax charges aren't frozen and
Oracle Fusion Pricing will calculate
them.

OperationMode VARCHAR2 A value of CANCEL for this aribute


    indicates to cancel the sales order. You
can use only CANCEL.
 

Aributes for Order Lines


Required Aributes

Aribute Type Description

SourceTransactionNumber VARCHAR2 Transaction number that resides in the


    source system.
 

SourceTransactionSystem VARCHAR2 Name of the source system that placed


    the request for fulllment.
 

SourceTransactionIdentier VARCHAR2 Value that uniquely identies the internal


    transaction.
 

SourceTransactionRevisionNumber VARCHAR2 Revision number of the transaction.


     

SourceTransactionLineIdentier VARCHAR2 Value that uniquely identies the internal


    transaction line.
 

SourceTransactionLineNumber VARCHAR2 Line number of the transaction line.


    Order Management uses this value to sort
transaction lines.
 

SourceTransactionScheduleIdentier VARCHAR2 Value that uniquely identies the source


    transaction schedule number.
 

SourceTransactionScheduleNumber VARCHAR2 Line number of a schedule line, shipment


    line, or subline. The source system

236
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Type Description

assigned this value when it captured the


source order in the source system.
 

ProductIdentier Number Value that uniquely identies the


    internal product that Order Management
processes to fulll the sales order.
 

OrderedQuantity Number Quantity of the product that the source


    system requested.
 

OrderedUOMCode VARCHAR2 Code for the unit of measure that the


    source system requested, such as Unit or
Kg.
 

Optional Aributes

Aribute Type Description

ProductNumber VARCHAR2 SKU (stock keeping unit) that identies the


    product to fulll.
 

ProductDescription VARCHAR2 Display name of the product.


     

SourceSystemProductReference VARCHAR2 Cross-reference value of the item.


     

OrderedUOM VARCHAR2 Unit of measure of the requested product,


    such as Unit or Kgs.
 

RequestedFulllmentOrganizationIdentier Number Value that identies the requested


    fulllment organization.
 

RequestedFulllmentOrganizationCode VARCHAR2 Code that identies the requested


    fulllment organization.
 

RequestedFulllmentOrganizationName VARCHAR2 Name of the organization that shipped the


    sales order.
 

BusinessUnitIdentier Number Value that identies the business unit.


     

BusinessUnitName VARCHAR2 Name of the internal organization that


    fullls the sales order.
 

237
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Type Description

RequestingBusinessUnitIdentier Number Value that identies the requesting


    business unit.
 

RequestingBusinessUnitName VARCHAR2 Internal organization that started or


    captured the transaction.
 

CancelReasonCode VARCHAR2 Brief text that identies the cancel reason.


     

CancelReason VARCHAR2 Reason for the cancel request.


     

SubstitutionAllowedFlag VARCHAR2
    Specify whether Order Management
substitutes items during fulllment.

• true. Substitute items.


• false. Don't substitute.

SubstitutionReasonCode VARCHAR2 Brief text that identies the substitution


    reason.
 

SubstitutionReason VARCHAR2 Reason for the substitution.


     

CustomerPONumber VARCHAR2 Purchase order number that the buying


    party provides.
 

CustomerPOLineNumber VARCHAR2 Line number from the purchase order that


    the buying party provides.
 

CustomerPOScheduleNumber VARCHAR2 Schedule number from the purchase order


    that the buying party provides.
 

CustomerProductidentier Number Value that identies the customer product


    number.
 

CustomerProductNumber VARCHAR2 Number that identies the product that


    the customer ordered. This number
resides in the customer item table.
 

CustomerProductDescription VARCHAR2 Product description of an item.


     

TransactionLineTypeCode VARCHAR2 Code that identies the transaction line


    type.
 

TransactionLineType VARCHAR2 Type of line or action that resides in the


    source system. Some example values

238
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Type Description

include Buy, Replace with, Return For


Credit, Upgrade, and so on.
 

ParentLineReference VARCHAR2 Value that identies the line that's the


    parent of this line in a congurable
product hierarchy, or in any other parent
and child relationship.
 

RootParentLineReference VARCHAR2 Value that identies the line that resides


    at the root of the congurable product
hierarchy.
 

ShippingInstructions VARCHAR2 Comment text for shipping instructions.


     

PackingInstructions VARCHAR2 Comment text for packing instructions.


     

InvoicingRuleCode VARCHAR2 Value that identies the invoicing rule.


     

InvoicingRule VARCHAR2 Name of the invoicing rule that


    determines when to recognize the
receivable so that Order Management can
invoice it.
 

AccountingRulecode VARCHAR2 Brief text that identies that identies the


    accounting rule.
 

AccountingRule VARCHAR2 Name of the accounting rule that


    determines the accounting period to use
when recording the revenue distribution
for an invoice line.
 

RequestedShipDate Date Date that the customer specied to ship


    the goods.
 

RequestedArrivalDate Date Date that the customer specied to deliver


    the goods.
 

DemandClassCode VARCHAR2 Brief text that identies the demand class.


     

DemandClass VARCHAR2
    Name of the demand class. A demand
class can represent.

• A group of customers, such


as government customers or
commercial customers
• Sales channels

239
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Type Description

• Regions
• Dierent sources of demand, such
as retail, mail order, or wholesale

ShippingCarrierCode VARCHAR2 Brief text that identies the shipping


    carrier.
 

ShippingCarrier VARCHAR2 Name of the carrier who delivered the


    goods.
 

PaymentTerm VARCHAR2 The payment terms to use for this


    payment.
 

PaymentTermCode VARCHAR2 Brief text that identies the payment term.


     

TransactionCategoryCode VARCHAR2
    Brief text that identies the transaction
category.

• ORDER. Process a new source


order.
• RETURN. Process a return of an
existing sales order.

ReturnReasonCode VARCHAR2 Brief text that identies the return reason.


     

ReturnReason VARCHAR2 Reason why the customer must return the


    product.
 

ScheduleShipDate Date Date that Order Management scheduled


    to ship the goods.
 

ScheduleArrivalDate Date Date that Order Management scheduled


    to deliver the goods.
 

ShippingServiceLevelCode VARCHAR2 Brief text that identies the shipping


    service level.
 

ShippingServiceLevel VARCHAR2 Level of service to use when delivering the


    product.
 

ShippingModeCode VARCHAR2 Brief text that that identies the shipping


    mode.
 

ShippingMode VARCHAR2 Mode that Order Management used to


    deliver the shipment.
 

240
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Type Description

ShipmentPriorityCode VARCHAR2 Brief text that identies the shipment


    priority.
 

ShipmentPriority VARCHAR2 Priority that species the urgency to use


    when shipping the product.
 

InventoryOrganizationIdentier Number Value that identies the inventory


    organization identier.
 

InventoryOrganization VARCHAR2 Name of the inventory organization that


    owns the product.
 

FreightTermsCode VARCHAR2 Brief text that identies the freight terms.


     

FreightTerms VARCHAR2 Terms for paying freight charges, such as


    paid by shipper, collect, prepaid, and so
on.
 

RequestCancelDate Date Date when the customer requested to


    cancel the source order.
 

OriginalProductIdentier VARCHAR2 Value that identies the internal product


    that the customer requested or ordered.
Order Management subsequently
substituted this product with some other
product.
 

OriginalProductDescription VARCHAR2 SKU (stock keeping unit) that identies the


    product that Order Management fullls.
 

OriginalProductNumber VARCHAR2 Display name of the product that Order


    Management fullls.
 

ShipToPartyIdentier VARCHAR2 Value that identies the ship-to party


    name.
 

ShipToPartyName VARCHAR2 Name of the party that receives the goods.


     

ShipToPartyNumber VARCHAR2 Number that identies the party that


    receives the goods.
 

ShipToAddress1 VARCHAR2 Address Line 1 of the ship-to party.


     

241
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Type Description

ShipToPartySiteIdentier VARCHAR2 Value that identies the party site that


    receives the goods, such as 1036.
 

ShipToAddress2 VARCHAR2 Address Line 2 of the ship-to party.


     

ShipToAddress3 VARCHAR2 Address Line 3 of the ship-to party.


     

ShipToAddress4 VARCHAR2 Address Line 4 of the ship-to party.


     

ShipToCity VARCHAR2 City of the ship-to party.


     

ShipToPostalCode VARCHAR2 Postal Code of the ship-to party.


     

ShipToState VARCHAR2 State of the ship-to party.


     

ShipToProvince VARCHAR2 Province of the ship-to party.


     

ShipToCounty VARCHAR2 County of the ship-to party.


     

ShipToAddressOrigSystemReference VARCHAR2 Cross-reference value for the party site.


     

ShipToContactPartyIdentier VARCHAR2 Value that identies the shipping address


    of the ship-to contact.
 

ShipToContactPartyNumber VARCHAR2 Number of the contact for the shipping


    address.
 

ShipToContactPartyName VARCHAR2 Name of the contact who resides at the


    shipping address.
 

ShipToContactPartyOrigSystemReference VARCHAR2 Cross-reference value for the party


    contact.
 

BillToCustomerIdentier VARCHAR2 Value that identies the bill-to customer.


     

BillToCustomerName VARCHAR2 Name of the party whose legally


    responsible for payment.
 

BillToCustomerNumber VARCHAR2 Number of the party whose legally


    responsible for payment.
 

242
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Type Description

BillToAccountSiteUseIdentier VARCHAR2 Value that identies the party site whose


    legally responsible for payment.
 

BillToAddress1 VARCHAR2 Address Line 1 of the party whose


    responsible for payment.
 

BillToAddress2 VARCHAR2 Address Line 2 of the party whose


    responsible for payment.
 

BillToAddress3 VARCHAR2 Address Line 3 of the party whose


    responsible for payment.
 

BillToAddress4 VARCHAR2 Address Line 4 of the party whose


    responsible for payment.
 

BillToCity VARCHAR2 City of the party whose responsible for


    payment.
 

BillToPostalCode VARCHAR2 Postal code of the party whose


    responsible for payment.
 

BillToState VARCHAR2 State of the party whose responsible for


    payment.
 

BillToProvince VARCHAR2 Province of the party whose responsible


    for payment.
 

BillToAddressOrigSystemReference VARCHAR2 Cross-reference value for the account site.


     

BillToCounty VARCHAR2 County of the party whose responsible for


    payment.
 

BillToAccountContactIdentier VARCHAR2 Value that identies the bill-to account


    contact.
 

BillToAccountContactNumber VARCHAR2 Number for the contact who resides at the


    billing address.
 

BillToAccountContactOrigSystemReference VARCHAR2 Cross-reference value for the account


    contact.
 

BillToAccountContactName VARCHAR2 Name of the contact who resides at the


    billing address.
 

243
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Type Description

TaxExemptFlag VARCHAR2
    Specify whether to exempt the transaction
from taxation.

• true. Exempt from taxation.


• false. Don't exempt.

TaxClassicationCode VARCHAR2 Brief text that identies the tax


    classication.
 

TaxExemptionCerticateNumber VARCHAR2 Number that identies the tax exemption


    certicate that a taxing authority grants
for a customer whose tax exempt.
 

PartialShipAllowedFlag VARCHAR2
    Specify whether Order Management ships
the items that the sales order contains in
more than one shipment.

• true. Ship in more than one


shipment, if necessary.
• false. Ship in one shipment.

FulllmentLineIdentier Number Value that uniquely identies a fulllment


    line. Order Management can use this
value to identify the fulllment line that its
referencing in the context of the change.
 

ShipToRequestRegion VARCHAR2 Identies the region of the ship-to


    request. Global Order Promising uses
this aribute to process a sales order
according to region.
 

RequestedSupplierCode VARCHAR2 Brief text that identies the supplier name.


     

RequestedSupplierName VARCHAR2 Name of the supplier whose responsible


    for shipping the product. You can specify
a supplier according to a contractual
obligation in a drop ship ow.
 

RequestedSupplierNumber VARCHAR2 Number that identies the supplier whose


    responsible for shipping the product.
You can specify a supplier according to a
contractual obligation in a drop ship ow.
 

RequestedSupplierSiteCode VARCHAR2 Brief text that identies the requested


    supplier site.
 

SupplierAddressLine1 VARCHAR2 Address Line 1of the organization that


    supplies and ships the items.

244
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Type Description

SupplierAddressLine2 VARCHAR2 Address Line 2 of the organization that


    supplies and ships the items.
 

SupplierAddressLine3 VARCHAR2 Address Line 3 of the organization that


    supplies and ships the items.
 

SupplierAddressLine4 VARCHAR2 Address Line 4 of the organization that


    supplies and ships the items.
 

SupplierAddressCity VARCHAR2 City of the organization that supplies and


    ships the items.
 

SupplierAddressState VARCHAR2 State of the organization that supplies and


    ships the items.
 

SupplierAddressPostalCode VARCHAR2 Postal code of the organization that


    supplies and ships the items.
 

SupplierAddressProvince VARCHAR2 Province of the organization that supplies


    and ships the items.
 

SupplierAddressCounty VARCHAR2 County of the organization that supplies


    and ships the items.
 

SupplierAddressCountry VARCHAR2 Country of the organization that supplies


    and ships the items.
 

Comments VARCHAR2 Text that the user can use to add details
    that are related to the order line.
 

UnitListPrice Number List price of the item prior to any


    discounts and adjustments.
 

UnitSellingPrice Number Selling price of the product with discounts


    and adjustments applied.
 

DestinationShipppingOrganizationIdentier Number Value that identies the organization that


    receives the shipment.
 

DestinationShippingLocationIdentier Number Value that identies the shipment


    destination.
 

245
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Type Description

EarliestAcceptableShipDate Date Date that species the earliest time that


    the customer is willing to ship the sales
order.
 

LatestAcceptableShipDate Date Date that species the latest time that the
    customer is willing to ship the sales order.
 

LatestAcceptableArrivalDate Date Date that species the latest time that the
    customer is willing to receive the sales
order at the ship-to address.
 

PromiseShipDate Date Date that the fulllment process promised


    to the customer that the item would ship.
 

PromiseArrivalDate Date Date that the fulllment process promised


    to the customer that the item would arrive
at the ship-to address.
 

SubInventoryCode VARCHAR2 Brief text that identies the subInventory.


     

Subinventory VARCHAR2 Subinventory.


     
You can update this aribute through
a web service but not in the Order
Management work area. Order
Management doesn't use it during
processing but does send it to Oracle
Fusion Shipping. Global Order Promising
doesn't consider it during scheduling.
Order Management doesn't send it
to Inventory Management Cloud for
reservations.
 

FOBPointcode VARCHAR2 Brief text that identies the FOB point.


     

FOBPoint VARCHAR2 Location where the seller is willing to pay


    for transportation of the goods to the port
of shipment, plus loading costs.
 

ExtendedAmount Number Monetary value for the fulll line quantity.


     

ShipSetName VARCHAR2 Name of the shipment set.


     

DefaultTaxationCountry VARCHAR2 Name of the country that Order


    Management uses to calculate tax.
 

246
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Type Description

FirstpartyTaxRegistration Number Registration number that Order


    Management sends to the supplier. The
supplier uses this number to tax the
transaction.
 

ThirdpartyTaxRegistration Number Registration number that the customer


    species in the purchase order.
 

DocumentSubType VARCHAR2 Name of the sub type that Order


    Management uses to calculate tax and tax
reporting, depending on the requirements
of dierent countries.
 

FinalDischargeLocationIdentier Number Final destination location for the


    purchases that the customer makes.
 

ProductFiscalCategoryIdentier Number Fiscal category of the product that the tax


    authority uses. For tax purposes.
 

ProductType VARCHAR2
    Specify the type of transaction line.

• Goods
• Services

ProductCategory VARCHAR2 Classies the product for tax purposes.


    If your deployment doesn't use Oracle
Inventory to classify products for tax
purposes, then Order Management uses
the product category.
 

TransactionBusinessCategory VARCHAR2 Category of a transaction that a tax


    authority might require. For tax purposes.
 

AssessableValue Number Price that a tax authority uses to value a


    product. For tax purposes.
 

UserDenedFiscClass VARCHAR2 Classication of the transaction into


    dierent categories. For tax purposes.
 

IntendedUseClassicationIdentier Number Identies the intended use. For tax


    purposes.
 

TaxExemptReasonCode VARCHAR2 Brief text that identies the tax exempt


    reason.
 

TaxExemptReason VARCHAR2 The reason to grant and take a tax


    exemption.

247
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Type Description

ExtendedQuantity Number Total quantity for a congured product.


    This value is a sum of the requested
quantity of the components that a
congured product contains. The
congurator populates and uses this
aribute.
 

ComponentIdPath VARCHAR2 Path to the inventory item identier for


    the parent of this line. The congurator
populates and uses this aribute.
 

IsValidConguration VARCHAR2
    Specify whether conguration is valid.

• true. Conguration is valid.


• false. Conguration isn't valid.
The congurator expects that
an application that calls the
congurator won't submit the sales
order.

The web service populates this aribute


only for the root order line. The
congurator populates and uses this
aribute.

ConguratorPath VARCHAR2 Runtime representation of the path to


    the Inventory Item Id for the component.
The congurator populates and uses this
aribute.
 

CongHeaderId Number Header Id of the conguration. The


    congurator populates and uses this
aribute.
 

CongRevisionNumber Number Revision number of the conguration.


    The congurator populates and uses this
aribute.
 

OperationMode VARCHAR2 A value of CANCEL for this aribute


    indicates to cancel the order line. You can
use only CANCEL.
 

Aributes for Order Preferences

248
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Type Description

CreateCustomerInformationFlag VARCHAR2
    Specify whether to create details for
missing aributes.

• true. Create the missing aribute.


For example, if the Sold-to aribute
and the Ship-to aribute are each
missing, then create a Sold-to
aribute and a Ship-to aribute.
• false. Don't create the missing
aribute.

SubmitFlag VARCHAR2
    Specify whether to submit the sales order
if an aribute doesn't contain a value.

• true. If an aribute contains a


value, then submit the sales order.
• false. If an aribute doesn't contain
a value, then don't submit the sales
order.

To create a sales order in draft status,


the user must send a value of false for
each aribute. You can then use the
SubmitDraftOrder operation to submit a
draft order for processing.

Other Optional Aributes You Can Include in the Request Payload


Source Transaction Details

You can include these optional aributes in the request payload for the source transaction.

Aribute Type Description

SourceTransactionNumber VARCHAR2 External transaction number.


     

SourceTransactionSystem VARCHAR2 Name of the source system that placed


    the request for fulllment.
 

SourceTransactionIdentier VARCHAR2 Value that uniquely identies the internal


    transaction.
 

SourceTransactionRevisionNumber VARCHAR2 Revision number of the transaction.


     

SourceTransactionLineIdentier VARCHAR2 Value that uniquely identies the internal


    transaction line.
 

249
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Type Description

SourceTransactionScheduleIdentier VARCHAR2 Value that uniquely identies the internal


    transaction for a schedule, shipment, or
subline. The source system assigns this
value.
 

You typically include these aributes when you specify one of these objects.
• Lot Numbers and serial numbers
• Sales credits
• Payments
• Aachments
• Document references
• Transaction items
• Charges
• Charge components

Lot Numbers and Serial Numbers

You can include these optional aributes in the request payload to dene lot numbers and serial numbers.

Aribute Type Description

SourceTransactionLotIdentier VARCHAR2 Value that uniquely identies the internal


    lot. The source system assigns this value.
 

LotNumber VARCHAR2 Number assigned to a quantity of


    items for identication purposes. A lot
number is an identication number that
a manufacturer assigns to a quantity
of material, typically for quality control.
Some manufacturers combine the lot
number with the serial number to form an
identication number.
 

SerialNumberFrom VARCHAR2 Starting serial number of a range of serial


    numbers.
 

SerialNumberTo VARCHAR2 Ending serial number of a range of serial


    numbers.
 

ItemRevisionNumber VARCHAR2 Number that identies the revision.


     

LocatorIdentier Number Value that identies the locator where


    Order Management ships the item from or
received into.
 

250
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Sales Credits

You can include these optional aributes in the request payload to dene sales credits.

Aribute Type Description

SourceTransactionSalesCreditIdentier VARCHAR2 Value that uniquely identies the internal


    sales credit. The source system assigns
this value.
 

SalesPersonIdentier Number Value that uniquely identies the internal


    salesperson. The source system assigns
this value.
 

SalesCreditTypeCode VARCHAR2 Brief text that identies the sales credit


    type.
 

SalesCreditTypeReference VARCHAR2 Foreign key that references the sales


    credit type. This type is Revenue or Non
Revenue.
 

Percent Number Number that species the sales credit


    percentage for a salesperson.
 

Payments

You can include these optional aributes in the request payload to dene payments.

Aribute Type Description

PaymentMethodCode VARCHAR2 Brief text that identies the payment


    method.
 

PaymentMethod VARCHAR2 Payment method that's associated with


    the payment instrument for the customer
account.
 

PaymentTransactionIdentier Number Value that identies the payment details.


    The source system contains this value.
 

PaymentSetIdentier Number Value that uniquely identies a group


    of payments that belong to one prepaid
order. If the set identies a prepayment,
then the foreign key references billing.
 

SourceTransactionPaymentIdentier VARCHAR2 Value that uniquely identies the internal


    payment. The source system assigns this
value.

251
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Type Description

Aachments

You can include these optional aributes in the request payload to dene aachments.

Aribute Type Description

Title VARCHAR2 Title of the document.


     

FileContent VARCHAR2 Mime type for BLOB (Binary Large OBject)


    aachment.
 

FileName VARCHAR2 File name of the aached document.


    If the aachment is a URL, then Order
Management doesn't use this aribute.
 

Data BlobDomain Data that the aachment contains.


     

Description VARCHAR2 Description of the aachment.


     

URL VARCHAR2 URL.


     

DataTypeCode VARCHAR2 Type of aachment.


     

Document References

You can include these optional aributes in the request payload to dene document references. The web service
currently accepts only the original sales order or order line reference when creating a return line for the document
reference entity.

Aribute Type Description

DocumentReferenceType VARCHAR2 Type of business document or object that


    the source order references, such as asset,
sales order, or purchase order.
 

DocumentIdentier VARCHAR2 Value that uniquely identies the


    document.
 

DocumentAdditionalIdentier VARCHAR2 Value that identies more qualiers for


    the ID. Used when multipart keys are
present.

252
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Type Description

DocumentNumber VARCHAR2 User-friendly number that identies the


    document, such as asset number, sales
order number, or purchase order number.
 

DocumentAdditionalNumber VARCHAR2 Number that identies the document. You


    can use it as another way to identify the
object instance. You can use it to capture
more identifying details, as necessary.
 

DocumentLineIdentier VARCHAR2 Value that uniquely identies the


    document line. Order Management
creates this value internally.
 

DocumentAdditionalLineIdentier VARCHAR2 Value that identies more qualiers for


    the document line. Used when multipart
keys are present.
 

DocumentLineNumber VARCHAR2 User-friendly number that identies the


    document line, such as the line number
in a sales order, or the line number in a
purchase order.
 

DocumentAdditionalLineNumber VARCHAR2 Number that identies the document


    line. You can use it as another way to
identify the object instance. You can use
it to capture more identifying details, as
necessary.
 

DocumentSubLineIdentier VARCHAR2 Value that uniquely identies the


    document subline. Order Management
creates this value internally.
 

DocumentAdditionalSubLineIdentier VARCHAR2 Value that identies more qualiers for


    the subline. Used when multipart keys are
present.
 

DocumentSubLineNumber VARCHAR2 User-friendly number that identies the


    subline.
 

DocumentAdditionalSubLineNumber VARCHAR2 Number that identies the document


    subline. You can use it as another way to
identify the object instance. You can use
it to capture more identifying details, as
necessary.
 

Transaction Items

253
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

You can include these optional aributes in the request payload to dene transaction items.

Aribute Type Description

TransactionAributeName VARCHAR2 Item aribute name.


     

CharacterValue VARCHAR2 Item aribute value of type character.


     

NumberValue Number Item aribute value of type number.


     

DateValue Date Item aribute value of type date.


     

TimestampValue Timestamp Item aribute value of type time.


     

Charges

You can include these optional aributes in the request payload to dene charges.

Aribute Type Description

BatchIdentier Number Number that identies the batch.


     

ChargeDenitionCode VARCHAR2 Brief text that identies the charge


    denition.
 

ChargeDenition VARCHAR2 Value for the charge denition entity. A


    charge denition denes the price type,
charge type, and the charge subtype.
Order Management typically denormalizes
these objects on this entity.
 

ChargeSubtypeCode VARCHAR2 Brief text that identies the charge


    subtype.
 

ChargeSubType VARCHAR2
    Type of charge, dened for this
conguration to aggregate totals.

• Goods sale
• Service sale
• Financing compared to lease
• Shipping charges
• Restocking penalties
• Special charges

254
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Type Description

The Pricing Engine returns the charge


value for each line.

ParentEntityCode VARCHAR2
    Parent entity of the charge.

• Line
• Line Coverage

ParentEntityId Number ID of the parent entity of the charge.


     

PriceTypeCode VARCHAR2
    Price type of a charge.

• One-time
• Recurring

PricedQuantity Number The priced quantity. This quantity equals


    Line. RequestedQuantity for simple
products.
 

PricedQuantityUOMCode VARCHAR2 Brief text that identies the UOM for the
    priced quantity. For example, Ton. Values
for this aribute come from PIM (Product
Information Management), or a similar
service that Order Management provides.
 

PrimaryFlag string
    Specify whether this charge is the primary
charge.

• true. Primary charge.


• false. Not the primary charge.

ApplyTo long Specify whether to apply a charge to the


    item, shipping, or return.
 

RollupFlag VARCHAR2
    Specify whether this charge is a rollup
charge or an aggregate charge.

• true. Rollup charge.


• false. Aggregate charge.

SourceChargeIdentier VARCHAR2 Value that uniquely identies the internal


    charge. The order capture system assigns
this value.
 

Charge Components

You can include these optional aributes in the request payload to dene charge components.

255
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Type Description

ChargeCurrencyCode VARCHAR2 Brief text that identies the currency


    that the charge component uses.
Order Management uses this code to
standardize service.
 

HeaderCurrencyCode VARCHAR2 Brief text that identies the currency that


    the header uses. Order Management uses
this code to standardize service.
 

HeaderCurrencyExtendedAmount Number Extended amount in the header currency.


     

PriceElementCode Number Brief text that identies the price element,


    such as LISTPRICE, NETPRICE, and so on.
 

SequenceNum Number Sequence number for the charge


    component.
 

PriceElementUsageCode VARCHAR2
    Brief text that species how to use
the charge component. A QP lookup
provides the values for this aribute.
Order Management comes predened to
use one of these values.

• List Price
• Invoice Price

ChargeCurrencyUnitPrice Number Price or adjustment for each unit in the


    charge currency for the UOM that the
order line uses.
 

HeaderCurrencyUnitPrice Number Price or adjustment for each unit in the


    charge currency for the UOM that the
header uses.
 

RollupFlag VARCHAR2 Species a charge component as a rollup


    value or aggregate value for the element
code of the charge component price.
 

SourceParentChargeComponentId VARCHAR2 Identier for the charge component


    for the contributing charge. Order
Management uses this aribute only for
a charge component where the parent
charge is a rollup charge.
 

SourceChargeIdentier VARCHAR2 Value that uniquely identies the internal


    charge. The source system assigns this
value.
 

256
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Type Description

SourceChargeComponentIdentier VARCHAR2 Value that uniquely identies the internal


    charge component. The source system
assigns this value.
 

Related Topics
• Manage Lookups in Order Management

Operations and Aributes You Can Use with the Receive Order Request Service
Get details about operations and aributes you can use with the Receive Order Request Service when you integrate
Order Management Cloud with other systems.

Operation Description Input Payload

ProcessOrderRequest Submit a sales order to start a Not applicable


  transformation.  
 

SubmitDraftOrder Create a sales order in a draft status, or Not applicable


  create and submit a sales order according  
to the submitFlag in the SDO.
 

RequestHold Request to put the sales order or RequestHoldProcessRequest


  fulllment process on hold.  
 

ReleaseHold Release a hold that's currently holding a ReleaseHoldProcessRequest


  sales order or fulllment process.  
 

GetAvailabilityCheck Get the supply of an item that's currently GetAvailabilityCheckProcessRequ


  available in an organization or supplier.  
 

ReleasePausedTasks Release paused tasks according to a ReleasePausedEventTaskRequest


  combination of search parameters.  
 

CheckAvailability Allow an order capture system to get, CheckAvailabilityInput


  view, and analyze the availability of a sales  
order item and the promising options for
this item.
 

GetOrderDetails Allow an order capture system to get GetOrderDetailsProcessRequest


  and to view a fulllment order and  
orchestration plan details.
 

ProcessOrderRequestSync Submit a sales order to start Not applicable


  transformation.  
 

257
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Operation Description Input Payload

SubmitDraftOrderSync Create a sales order in a draft status, or Not applicable


  create and submit a sales order according  
to the submitFlag in the SDO.
 

GetAvailabilityCheckSync Get the supply of an item that's currently GetAvailabilityCheckProcessRequ


  available in an organization or supplier.  
 

GetOrderDetailsSync Allow an order capture system to get GetOrderDetailsProcessRequest


  and to view a fulllment order and  
orchestration plan details.
 

ReleasePausedTasks Operation

The ReleasePausedTasks operation releases paused tasks according to a combination of search parameters.
You can use it only as an asynchronous web service. You must include these aributes in a request that uses
ReleasePausedTasks.

Aribute Type Required Description

SourceSystem String Yes Source system that provides


      the release pause request.
 

EventName String Yes Name of the pause event to


      release.
 

InventoryItemId Long Yes Item identier.


       

OrderNumber String Yes Sales order number.


       

LineNumber Long Yes Order line number.


       

FulllLineNumber Long Yes Number of the order


      fulllment line.
 

SoldToCustomerId Long Yes Customer identier.


       

FulllOrgId Long Yes Warehouse identier.


       

PauseTaskId Long Yes Paused task identier.


       

FromOrderDate DateTime Yes Filter sales orders that occur


      on or after FromOrderDate.

258
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Type Required Description

ToOrderDate DateTime Yes Filter sales orders that occur


      on or before ToOrderDate.
 

FromScheduledShipDate DateTime Yes Filter sales orders that are


      scheduled to ship on or after
FromScheduledShipDate.
 

ToScheduledShipDate DateTime Yes Filter sales orders that are


      scheduled to ship on or before
ToScheduledShipDate.
 

FromPauseWaitUntilDate DateTime Yes Filter pause tasks


      that are scheduled
to release on or after
FromPauseWaitUntilDate.
 

ToPauseWaitUntilDate DateTime Yes Filter pause tasks that are


      scheduled to release on or
before ToPauseWaitUntilDate.
 

SourceOrderSystem String Yes Source system that provides


      the source order.
 

SourceOrderNumber String Yes Order number in the source


      system.
 

TaskInstanceId Long Yes Task Instance Identier.


       

ReleasePausedTasks provides this response.

Aribute Type Description

NumberOfTasksReleased Long Number of tasks released.


     

ErrorMessage String Error message if the service doesn't


    complete successfully.
 

ReturnStatus String Return status.


     

CheckAvailability Operation

259
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

The CheckAvailability operation allows an order capture system to get, view, and analyze the availability of a sales order
item and the promising options for this item. You can use it only as an asynchronous web service. An asterisk ( * ) in the
Required column indicates a group of aributes. You must include at least one aribute from the group. You can use
these aributes.

Fully Qualied Aribute Type Required Description


Name of the Payload
Aribute

CheckAvailabilityInput SourceOrderSystem String Yes Source system.


SourceOrderSystem        
 

CheckAvailabilityInput Promising Set Group No Promising set.


PromisingSet        
 

CheckAvailabilityInput Promising Line Group No List of promising


PromisingLine       line aributes in the
  shipment set. Each
promising line contains
the aributes of
the promising line
aribute.
 

CheckAvailabilityInput PromisingModel Group No Groups promising lines


PromisingModel       into a congure-to
  order (CTO) model.
 

CheckAvailabilityInput Promising Set Group No Groups promising lines


PromisingSet       into a shipment set.
   

CheckAvailabilityInput SetName String Conditional Name of the shipment


PromisingSet SetName       set. Required only if
  you also use promising
set.
 

CheckAvailabilityInput Promising Line Group No List of promising line


PromisingSet       aributes that the
PromisingLine shipment set contains.
  Each promising line
contains the aributes
of the promising line
aribute.
 

CheckAvailabilityInput PromisingModel Group No Groups promising lines


PromisingModel       into a congure-to
  order (CTO) model.
 

CheckAvailabilityInput RootParentFulllId String Conditional Root parent line of


PromisingModel       the model. Required
RootParentFulllId only if you also use the
  promising model.

260
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Fully Qualied Aribute Type Required Description


Name of the Payload
Aribute

CheckAvailabilityInput ModelType String Conditional Type of model. Valid


PromisingModel       values include ATO
ModelType (assemble-to order) or
  PTO-SMC. Required
only if you also use the
promising model.
 

CheckAvailabilityInput IncludedItemsFlag Boolean No Indicates whether to


PromisingModel       provide items of the
IncludedItemsFlag pick-to order (PTO)
  model as input. Valid
values include True
or False. If False,
Order Management
determines the items
internally. Default value
is True.
 

CheckAvailabilityInput Promising Line Group No List of promising


PromisingModel       line aributes that
PromisingLine the model contains.
  Each promising line
includes the same set
of aributes that the
promising line aribute
contains.
 

CheckAvailabilityInput PromisingLine Group No Groups the list of


PromisingLine       aributes that you can
  specify for the check
availability service.
 

CheckAvailabilityInput PromisingLineIdentier String Yes Unique identier for


PromisingLine       the order line.
PromisingLineIdentier  
 

CheckAvailabilityInput MasterOrganization String No Not used.


PromisingLine        
MasterOrganization
 

CheckAvailabilityInput InventoryOrganization String Yes Item validation


PromisingLine       organization.
InventoryOrganization  
 

CheckAvailabilityInput ProductName String No Not used.


PromisingLine        
ProductName
 

261
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Fully Qualied Aribute Type Required Description


Name of the Payload
Aribute

CheckAvailabilityInput RequestedItemId String Yes Requested Item.


PromisingLine        
RequestedItemId
 

CheckAvailabilityInput PromisingType String Yes Used with the


PromisingLine       requested date to
PromisingType determine whether
  its the Requested
Ship Date from the
warehouse or the
Requested Delivery
Date for the ship-to
address. Valid values
include Ship or Arrival.
 

CheckAvailabilityInput RequestedDate Date Yes Date when the item is


PromisingLine       requested to ship or
RequestedDate deliver.
   

CheckAvailabilityInput RequestedQuantity Double Yes Requested quantity of


PromisingLine       the item.
RequestedQuantity  
 

CheckAvailabilityInput RequestedQuantityUOM String Yes Unit of measure in the


PromisingLine       item quantity that's
RequestedQuantityUOM requested.
   

CheckAvailabilityInput DemandClass String No Demand class of the


PromisingLine       order line.
DemandClass  
 

CheckAvailabilityInput DeliveryLeadTime Double No Default value for the


PromisingLine       delivery lead time to
DeliveryLeadTime use when calculating
  the ship date or arrival
date. This value applies
only if you don't
specify Carrier, Mode,
or Service Level. Used
in conjunction with
DeliveryCostPerUnit.
 

CheckAvailabilityInput DeliveryCostPerUnit Double No Delivery cost for each


PromisingLine       unit of the delivered
DeliveryCostPerUnit item. This value applies
  only if you don't
specify Carrier, Mode,
or Service Level. Used
in conjunction with
DeliveryLeadTime.
 

262
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Fully Qualied Aribute Type Required Description


Name of the Payload
Aribute

CheckAvailabilityInput UnitPrice Double Yes Unit price of the


PromisingLine       requested item.
UnitPrice  
 

CheckAvailabilityInput EarliestAcceptableDate Date No Earliest date when


PromisingLine       the item can ship or
EarliestAcceptableDate deliver.
   

CheckAvailabilityInput LatestAcceptableDate Date No Latest date when


PromisingLine       the item can ship or
LatestAcceptableDate deliver.
   

CheckAvailabilityInput RequestedCarrier String No Carrier to use for the


PromisingLine       shipment.
RequestedCarrier  
 

CheckAvailabilityInput RequestedServiceLevel String No Level of service of the


PromisingLine       shipment.
RequestedServiceLevel  
 

CheckAvailabilityInput RequestedMode String No Mode of transport of


PromisingLine       the shipment.
RequestedMode  
 

CheckAvailabilityInput SubstitutionsAllowed Boolean Yes Determines whether


PromisingLine       to allow substitutions.
SubstitutionsAllowed Valid values include
  True or False.
 

CheckAvailabilityInput SplitsAllowed Boolean Yes Determines whether


PromisingLine       the line can split into
SplitsAllowed smaller quantities
  across dates or source
of supply for fullling
the request. Valid
values include True or
False.
 

CheckAvailabilityInput GenerateAlternateAvailabilityBoolean Yes Determines whether


PromisingLine       to create alternative
GenerateAlternateAvailability availability options.
  Valid values include
True or False.
 

CheckAvailabilityInput AlternateAvailabilityBasis String No Used to sort the


PromisingLine       alternate options
AlternateAvailabilityBasis according to fastest
  delivery or cost. Valid
values include Delivery

263
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Fully Qualied Aribute Type Required Description


Name of the Payload
Aribute

or Cost. Default value is


Delivery.
 

CheckAvailabilityInput GeneratePegging Boolean Yes Determines whether to


PromisingLine       create pegging. Valid
GeneratePegging values include True or
  False.
 

CheckAvailabilityInput MaxNumberOfAvailabilities Integer No Maximum number of


PromisingLine       alternative availability
MaxNumberOfAvailabilities options to provide.
   

CheckAvailabilityInput MinPromiseQuantity Double No Not used currently.


PromisingLine        
MinPromiseQuantity
 

CheckAvailabilityInput MinPromisePercentage Integer No Not used currently.


PromisingLine        
MinPromisePercentage
 

CheckAvailabilityInput RequestedDropShipSupplier String No Supplier chosen to


PromisingLine       fulll the request.
RequestedDropShipSupplier You can specify only
  one supplier or one
warehouse.
 

CheckAvailabilityInput RequestedDropShipSupplierSite
String No Site of the supplier.
PromisingLine       You can specify this
RequestedDropShipSupplierSite value only if you also
  choose the supplier.
 

CheckAvailabilityInput InternalOrderType String No Type of internal order.


PromisingLine       Valid values include TO
InternalOrderType or ISO.
   

CheckAvailabilityInput ParentFulllId String Conditional Parent line of the


PromisingLine       current order line. Used
ParentFulllId only for congure-to-
  order (CTO) models.
If the Promising Line
resides in a promising
model, then this
aribute is required.
 

CheckAvailabilityInput ConguredItem String No Conguration item of


PromisingLine       an assemble-to-order
ConguredItem (ATO) model. Used
  only for congure-to-
order (CTO) models.

264
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Fully Qualied Aribute Type Required Description


Name of the Payload
Aribute

CheckAvailabilityInput DestinationOrgId String No Destination


PromisingLine       organization of an
DestinationOrgId internal order.
   

CheckAvailabilityInput InstanceId String No Instance where the


PromisingLine       warehouse is dened.
RequestedShipFromOrg  
InstanceId
 

CheckAvailabilityInput OrgId String No Warehouse (inventory


PromisingLine       organization) chosen
RequestedShipFromOrg to fulll the request.
OrgId You can specify only
  one supplier or one
warehouse.
 

CheckAvailabilityInput MinSplitQuantity Double No Minimum quantity that


PromisingLine       must be available in
MinSplitQuantity the rst delivery when
  spliing the order line.
 

CheckAvailabilityInput MinSplitPercentage Integer No Minimum quantity as


PromisingLine       a percentage of the
MinSplitPercentage ordered quantity that
  must be available in
the rst delivery when
spliing the order line.
 

CheckAvailabilityInput CustomerAccountId String No Sold-to customer. Use


PromisingLine       only prior to release 9
CustomerAccountId of Order Management.
  Use Party for release 9
and higher.
 

CheckAvailabilityInput ShipToSiteId String No Ship-to customer


PromisingLine       Site. Use only prior
CustomerShipTo to release 9 of Order
ShipToSiteId Management. Use
  ShipTo PartySite for
release 9 and higher.
 

CheckAvailabilityInput RequestedRegion String Yes* Region that receives


PromisingLine       the item. Sold To Party
CustomerShipTo and Ship To Party Site,
RequestedRegion or RequestedRegion, is
  required.
 

265
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Fully Qualied Aribute Type Required Description


Name of the Payload
Aribute

CheckAvailabilityInput PartyId String Yes* Sold-to party. If you


PromisingLine       provide Sold-to Party,
PartyInfo PartyId then you must also
  provide Ship-to Party
Site.
 

CheckAvailabilityInput ShipToPartySiteId String Yes* Ship-to party site.


PromisingLine       Sold To Party and
PartyInfo Ship To Party Site, or
ShipToPartySiteId RequestedRegion, is
  required.
 

CheckAvailability provides this response.

Fully Qualied Name of the Aribute Type Description


Payload Aribute

checkAvailabilityOutput PromisingLineSetReply Group Groups the promising result


PromisingResult     for promising lines in a
PromisingLineSetReply shipment set.
   

checkAvailabilityOutput PromisingModelReply Group Groups the promising result


PromisingResult     for promising lines in a
PromisingModelReply congure-to order (CTO)
  model.
 

checkAvailabilityOutput PromisingLineReply Group Groups the promising result


PromisingResult     for a promising line.
PromisingLineReply  
 

checkAvailabilityOutput PromisingLineSetReply Group Groups the promising result


PromisingResult     for promising lines in a
PromisingLineSetReply shipment set.
   

checkAvailabilityOutput SetId String Name of the shipment set.


PromisingResult      
PromisingLineSetReply SetId
 

checkAvailabilityOutput NumberOfAltOptions Integer Number of alternate


PromisingResult     availability options.
PromisingLineSetReply  
NumberOfAltOptions
 

checkAvailabilityOutput PromisingLineSetReply > Group Groups the default availability


PromisingResult Default AvailabilitySetOption   option of the promising
 

266
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Fully Qualied Name of the Aribute Type Description


Payload Aribute

PromisingLineSetReply result for promising lines in a


DefaultAvailabilitySetOption shipment set.
   

checkAvailabilityOutput ExpectedGroupShipDate Date Expected date when the


PromisingResult     shipment set will ship.
PromisingLineSetReply  
DefaultAvailabilitySetOption
PromisingLineSetResult
ExpectedGroupShipDate
 

checkAvailabilityOutput ExpectedGroupArrivalDate Date Not used.


PromisingResult      
PromisingLineSetReply
DefaultAvailabilitySetOption
PromisingLineSetResult
ExpectedGroupArrivalDate
 

checkAvailabilityOutput PromisingLineResult Group Promising result for the list of


PromisingResult     promising line aributes in the
PromisingLineSetReply shipment set.
DefaultAvailabilitySetOption  
PromisingLineSetResult
PromisingLineResult
 

checkAvailabilityOutput PromisingLineSetReply Group Groups the alternate


PromisingResult AlternateAvailabilitySetOptions   availability options of the
PromisingLineSetReply   promising result for promising
AlternateAvailabilitySetOptions lines in a shipment set.
   

checkAvailabilityOutput ExpectedGroupShipDate Date Date when the shipment set is


PromisingResult     expected to ship.
PromisingLineSetReply  
AlternateAvailabilitySetOptions
PromisingLineSetResult
ExpectedGroupShipDate
 

checkAvailabilityOutput ExpectedGroupArrivalDate Date Not used.


PromisingResult      
PromisingLineSetReply
DefaultAvailabilitySetOption
PromisingLineSetResult
ExpectedGroupArrivalDate
 

checkAvailabilityOutput PromisingLineResult Group Promising result for the list of


PromisingResult     promising line aributes in the
PromisingLineSetReply shipment set.
DefaultAvailabilitySetOption  
PromisingLineSetResult
PromisingLineResult
 

267
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Fully Qualied Name of the Aribute Type Description


Payload Aribute

checkAvailabilityOutput PromisingLineSetReply > Group Groups the alternate


PromisingResult AlternateAvailabilitySetOptions   availability options of the
PromisingLineSetReply   promising result for promising
AlternateAvailabilitySetOptions lines in a shipment set.
   

checkAvailabilityOutput ExpectedGroupShipDate Date Date when the shipment set is


PromisingResult     expected to ship.
PromisingLineSetReply  
AlternateAvailabilitySetOptions
PromisingLineSetResult
ExpectedGroupShipDate
 

checkAvailabilityOutput ExpectedGroupArrivalDate Date Not applicable


PromisingResult      
PromisingLineSetReply
AlternateAvailabilitySetOptions
PromisingLineSetResult
ExpectedGroupArrivalDate
 

checkAvailabilityOutput PromisingLineResult Group Promising result for the list of


PromisingResult     promising line aributes in the
PromisingLineSetReply shipment set.
AlternateAvailabilitySetOptions  
PromisingLineSetResult
PromisingLineResult
 

checkAvailabilityOutput PromisingModelReply Group Groups the promising result


PromisingResult     for promising lines in a
PromisingModelReply congure-to order (CTO)
  model.
 

checkAvailabilityOutput RootParentFulllId String Root parent of the model.


PromisingResult      
PromisingModelReply
RootParentFulllId
 

checkAvailabilityOutput NumberOfAltOptions Integer Number of alternate


PromisingResult     availability options.
PromisingModelReply  
NumberOfAltOptions
 

checkAvailabilityOutput PromisingModelReply- Group Groups the default availability


PromisingResult >DefaultAvailabilityModelOption   option of the promising
PromisingModelReply   result for promising lines in
DefaultAvailabilityModelOption a congure-to order (CTO)
  model.
 

checkAvailabilityOutput RootParentFulllId String Root parent of the model.


PromisingResult      
PromisingModelReply
DefaultAvailabilityModelOption

268
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Fully Qualied Name of the Aribute Type Description


Payload Aribute

PromisingLineModelResult
RootParentFulllId
 

checkAvailabilityOutput ErrorCode String Error code to use if an error


PromisingResult     occurs.
PromisingModelReply  
DefaultAvailabilityModelOption
PromisingLineModelResult
ErrorCode
 

checkAvailabilityOutput ErrorMessage String Error message to use if an


PromisingResult     error occurs.
PromisingModelReply  
DefaultAvailabilityModelOption
PromisingLineModelResult
ErrorMessage
 

checkAvailabilityOutput PromisingLineResult Group Promising result for the list


PromisingResult     of promising line aributes in
PromisingModelReply the congure-to order (CTO)
DefaultAvailabilityModelOption model.
PromisingLineModelResult  
PromisingLineResult
 

checkAvailabilityOutput PromisingModelReply- Group Groups the alternate


PromisingResult >AlternateAvailabilityModelOptions  availability options of the
PromisingModelReply   promising result for promising
AlternateAvailabilityModelOptions lines in a congure-to order
  (CTO) model.
 

checkAvailabilityOutput RootParentFulllId String Root parent of the model.


PromisingResult      
PromisingModelReply
AlternateAvailabilityModelOptions
PromisingLineModelResult
RootParentFulllId
 

checkAvailabilityOutput ErrorCode String Error code to use if an error


PromisingResult     occurs.
PromisingModelReply  
AlternateAvailabilityModelOptions
PromisingLineModelResult
ErrorCode
 

checkAvailabilityOutput ErrorMessage String Error message to use if an


PromisingResult     error occurs.
PromisingModelReply  
AlternateAvailabilityModelOptions
PromisingLineModelResult
ErrorMessage
 

269
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Fully Qualied Name of the Aribute Type Description


Payload Aribute

checkAvailabilityOutput PromisingLineResult Group Promising result for the list


PromisingResult     of promising line aributes in
PromisingModelReply the congure-to order (CTO)
AlternateAvailabilityModelOptions model.
PromisingLineModelResult  
PromisingLineResult
 

checkAvailabilityOutput PromisingLineReply Group Groups the promising result


PromisingResult     for a promising line.
PromisingLineReply  
 

checkAvailabilityOutput NumberOfAltOptions Integer Number of alternate


PromisingResult     availability options.
PromisingLineReply  
NumberOfAltOptions
 

checkAvailabilityOutput PromisingLineReply- Group Groups the default availability


PromisingResult >DefaultAvailabilityOption   option of the promising result
PromisingLineReply   for a promising line.
DefaultAvailabilityOption  
 

checkAvailabilityOutput OptionRank Integer Rank of the availability option.


PromisingResult      
PromisingLineReply
DefaultAvailabilityOption
OptionRank
 

checkAvailabilityOutput OptionSummary String Determines whether the


PromisingResult     summary of the availability
PromisingLineReply option is available.
DefaultAvailabilityOption  
OptionSummary
 

checkAvailabilityOutput PromisingLineResult Group Groups the alternate


PromisingResult     availability options of the
PromisingLineReply promising result for a
DefaultAvailabilityOption promising line.
PromisingLineResult  
 

checkAvailabilityOutput PromisingLineIdentier String Line identier.


PromisingResult      
PromisingLineReply
DefaultAvailabilityOption
PromisingLineResult
PromisingLineIdentier
 

checkAvailabilityOutput TotalPrice Double Total price of the availability


PromisingResult     option.
PromisingLineReply  
DefaultAvailabilityOption

270
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Fully Qualied Name of the Aribute Type Description


Payload Aribute

PromisingLineResult
TotalPrice
 

checkAvailabilityOutput TotalProt Double Total prot when using the


PromisingResult     availability option.
PromisingLineReply  
DefaultAvailabilityOption
PromisingLineResult
TotalProt
 

checkAvailabilityOutput TotalMargin Double Total margin when using the


PromisingResult     availability.
PromisingLineReply  
DefaultAvailabilityOption
PromisingLineResult
TotalMargin
 

checkAvailabilityOutput TotalValue Double Not applicable


PromisingResult      
PromisingLineReply
DefaultAvailabilityOption
PromisingLineResult
TotalValue
 

checkAvailabilityOutput NumberOfSplits Integer Number of split shipments


PromisingResult     that the availability option
PromisingLineReply recommends.
DefaultAvailabilityOption  
PromisingLineResult
NumberOfSplits
 

checkAvailabilityOutput NumberOfSubstitutions Integer Number of item substitutions


PromisingResult     that the availability option
PromisingLineReply recommends.
DefaultAvailabilityOption  
PromisingLineResult
NumberOfSubstitutions
 

checkAvailabilityOutput FillRate Double Not applicable


PromisingResult      
PromisingLineReply
DefaultAvailabilityOption
PromisingLineResult FillRate
 

checkAvailabilityOutput NumberOfAtpItems Integer Not applicable


PromisingResult      
PromisingLineReply
DefaultAvailabilityOption
PromisingLineResult
NumberOfAtpItems
 

271
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Fully Qualied Name of the Aribute Type Description


Payload Aribute

checkAvailabilityOutput NumberOfCtpItems Integer Not applicable


PromisingResult      
PromisingLineReply
DefaultAvailabilityOption
PromisingLineResult
NumberOfCtpItems
 

checkAvailabilityOutput SourcingRule String Not applicable


PromisingResult      
PromisingLineReply
DefaultAvailabilityOption
PromisingLineResult
SourcingRule
 

checkAvailabilityOutput CustomerAccountId String Not applicable


PromisingResult      
PromisingLineReply
DefaultAvailabilityOption
PromisingLineResult
ResultDetail
CustomerAccountId
 

checkAvailabilityOutput CustomerShipToSiteId String Not applicable


PromisingResult      
PromisingLineReply
DefaultAvailabilityOption
PromisingLineResult
ResultDetail
CustomerShipToSiteId
 

checkAvailabilityOutput RequestedRegion String Region that requested the


PromisingResult     shipment.
PromisingLineReply  
DefaultAvailabilityOption
PromisingLineResult
ResultDetail RequestedRegion
 

checkAvailabilityOutput PartyId String Sold-to party of the customer.


PromisingResult      
PromisingLineReply
DefaultAvailabilityOption
PromisingLineResult
ResultDetail PartyId
 

checkAvailabilityOutput ShipToPartySiteId String Ship-to party site of the


PromisingResult     customer.
PromisingLineReply  
DefaultAvailabilityOption
PromisingLineResult
ResultDetail ShipToPartySiteId
 

272
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Fully Qualied Name of the Aribute Type Description


Payload Aribute

checkAvailabilityOutput InstanceId String Instance where the warehouse


PromisingResult     is dened.
PromisingLineReply  
DefaultAvailabilityOption
PromisingLineResult
ResultDetail
InternalSalesOrderDestOrg
InstanceId
 

checkAvailabilityOutput OrgId String Warehouse that supplies the


PromisingResult     item that will ship.
PromisingLineReply  
DefaultAvailabilityOption
PromisingLineResult
ResultDetail
InternalSalesOrderDestOrg
OrgId
 

checkAvailabilityOutput PromisingStatus String Determines whether the


PromisingResult     request is met completely or
PromisingLineReply not completely.
DefaultAvailabilityOption  
PromisingLineResult
ResultDetail PromisingStatus
 

checkAvailabilityOutput RequestedDate Date Date when the item is


PromisingResult     requested to ship or deliver.
PromisingLineReply  
DefaultAvailabilityOption
PromisingLineResult
ResultDetail RequestedDate
 

checkAvailabilityOutput PromisingType String Determines whether to set


PromisingResult     the requested date to the
PromisingLineReply Requested Ship Date from
DefaultAvailabilityOption the warehouse, or to the
PromisingLineResult Requested Delivery Date to
ResultDetail PromisingType the ship-to address. Valid
  Values include Ship or Arrival.
 

checkAvailabilityOutput ExpectedArrivalDate Date Expected date to deliver the


PromisingResult     item to the customer address.
PromisingLineReply  
DefaultAvailabilityOption
PromisingLineResult
ResultDetail
ExpectedArrivalDate
 

checkAvailabilityOutput ExpectedShipDate Date Expected date to ship the item


PromisingResult     from the warehouse or the
PromisingLineReply supplier.
DefaultAvailabilityOption  

273
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Fully Qualied Name of the Aribute Type Description


Payload Aribute

PromisingLineResult
ResultDetail ExpectedShipDate
 

checkAvailabilityOutput ExpectedPickDate Date Not applicable


PromisingResult      
PromisingLineReply
DefaultAvailabilityOption
PromisingLineResult
ResultDetail ExpectedPickDate
 

checkAvailabilityOutput RequestedItemId String Item requested.


PromisingResult      
PromisingLineReply
DefaultAvailabilityOption
PromisingLineResult
ResultDetail RequestedItemId
 

checkAvailabilityOutput ExpectedAvailableItem String Expected item to ship. If an


PromisingResult     item substitution occurs, then
PromisingLineReply this aribute references the
DefaultAvailabilityOption item substitution instead of
PromisingLineResult the requested item.
ResultDetail  
ExpectedAvailableItem
 

checkAvailabilityOutput ExpectedAvailabilityOnRequestedDate
Double Expected item availability on
PromisingResult     the request date.
PromisingLineReply  
DefaultAvailabilityOption
PromisingLineResult
ResultDetail
ExpectedAvailabilityOnRequestedDate
 

checkAvailabilityOutput ExpectedAvailableQuantity Double Expected item quantity


PromisingResult     that's available through the
PromisingLineReply availability option.
DefaultAvailabilityOption  
PromisingLineResult
ResultDetail
ExpectedAvailableQuantity
 

checkAvailabilityOutput ExpectedAvailableQuantityUOM String Unit of Measure of the


PromisingResult     Expected Available Quantity.
PromisingLineReply  
DefaultAvailabilityOption
PromisingLineResult
ResultDetail
ExpectedAvailableQuantityUOM
 

checkAvailabilityOutput ExpectedDropShipSupplier String Supplier that the availability


PromisingResult     option recommends to
PromisingLineReply supply the item that ships.
DefaultAvailabilityOption The availability option

274
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Fully Qualied Name of the Aribute Type Description


Payload Aribute

PromisingLineResult recommends only one


ResultDetail warehouse or one supplier at
ExpectedDropShipSupplier one point in time.
   

checkAvailabilityOutput ExpectedDropShipSupplierSite String Site of the supplier that


PromisingResult     the availability option
PromisingLineReply recommends to ship the item.
DefaultAvailabilityOption  
PromisingLineResult
ResultDetail
ExpectedDropShipSupplierSite
 

checkAvailabilityOutput ExpectedMode String Mode of transport that


PromisingResult     the availability option
PromisingLineReply recommends for the
DefaultAvailabilityOption shipment.
PromisingLineResult  
ResultDetail ExpectedMode
 

checkAvailabilityOutput ExpectedService String Level of service that


PromisingResult     the availability option
PromisingLineReply recommends for the
DefaultAvailabilityOption shipment.
PromisingLineResult  
ResultDetail ExpectedService
 

checkAvailabilityOutput ExpectedCarrier String Carrier who ships the item.


PromisingResult      
PromisingLineReply
DefaultAvailabilityOption
PromisingLineResult
ResultDetail ExpectedCarrier
 

checkAvailabilityOutput CarrierCalendar String Not applicable


PromisingResult      
PromisingLineReply
DefaultAvailabilityOption
PromisingLineResult
ResultDetail CarrierCalendar
 

checkAvailabilityOutput ExpectedDemandClass String Demand class.


PromisingResult      
PromisingLineReply
DefaultAvailabilityOption
PromisingLineResult
ResultDetail
ExpectedDemandClass
 

checkAvailabilityOutput ExpectedTotalFullmentCost Double Expected total fulllment cost.


PromisingResult      
PromisingLineReply
DefaultAvailabilityOption
PromisingLineResult

275
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Fully Qualied Name of the Aribute Type Description


Payload Aribute

ResultDetail
ExpectedTotalFullmentCost
 

checkAvailabilityOutput ExpectedShippingCost Double Expected shipping cost.


PromisingResult      
PromisingLineReply
DefaultAvailabilityOption
PromisingLineResult
ResultDetail
ExpectedShippingCost
 

checkAvailabilityOutput ExpectedMargin Double Expected margin.


PromisingResult      
PromisingLineReply
DefaultAvailabilityOption
PromisingLineResult
ResultDetail ExpectedMargin
 

checkAvailabilityOutput Price Double Unit price of the item.


PromisingResult      
PromisingLineReply
DefaultAvailabilityOption
PromisingLineResult
ResultDetail Price
 

checkAvailabilityOutput Prot Double Prot projected.


PromisingResult      
PromisingLineReply
DefaultAvailabilityOption
PromisingLineResult
ResultDetail Prot
 

checkAvailabilityOutput Value Double Value projected.


PromisingResult      
PromisingLineReply
DefaultAvailabilityOption
PromisingLineResult
ResultDetail Value
 

checkAvailabilityOutput LineFillRate Double Not applicable


PromisingResult      
PromisingLineReply
DefaultAvailabilityOption
PromisingLineResult
ResultDetail LineFillRate
 

checkAvailabilityOutput ErrorCode String Error code to use if an error


PromisingResult     occurs.
PromisingLineReply  
DefaultAvailabilityOption
PromisingLineResult
ResultDetail ErrorCode

276
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Fully Qualied Name of the Aribute Type Description


Payload Aribute

checkAvailabilityOutput ErrorMessage String Error message to use if an


PromisingResult     error occurs.
PromisingLineReply  
DefaultAvailabilityOption
PromisingLineResult
ResultDetail ErrorMessage
 

checkAvailabilityOutput ExpectedShipFromOrg String Warehouse that the availability


PromisingResult     option recommends to ship
PromisingLineReply the item.
DefaultAvailabilityOption  
PromisingLineResult
ResultDetail
ExpectedShipFromOrg
 

checkAvailabilityOutput PromisingLineReply- Group Not applicable


PromisingResult >AlternateAvailabilityOptions    
PromisingLineReply  
AlternateAvailabilityOptions
 

checkAvailabilityOutput OptionRank Integer Rank of the availability option.


PromisingResult      
PromisingLineReply
AlternateAvailabilityOptions
OptionRank
 

checkAvailabilityOutput OptionSummary String Determines whether the


PromisingResult     summary of the availability
PromisingLineReply option is available.
AlternateAvailabilityOptions  
OptionSummary
 

checkAvailabilityOutput PromisingLineResult Group Not applicable


PromisingResult      
PromisingLineReply
AlternateAvailabilityOptions
PromisingLineResult`
 

checkAvailabilityOutput PromisingLineIdentier String Line identier.


PromisingResult      
PromisingLineReply
AlternateAvailabilityOptions
PromisingLineResult
PromisingLineIdentier
 

checkAvailabilityOutput TotalPrice Double Total price of the availability


PromisingResult     option.
PromisingLineReply  
AlternateAvailabilityOptions

277
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Fully Qualied Name of the Aribute Type Description


Payload Aribute

PromisingLineResult
TotalPrice
 

checkAvailabilityOutput TotalProt Double Total prot when using the


PromisingResult     availability option.
PromisingLineReply  
AlternateAvailabilityOptions
PromisingLineResult
TotalProt
 

checkAvailabilityOutput TotalMargin Double Total margin when using the


PromisingResult     availability.
PromisingLineReply  
AlternateAvailabilityOptions
PromisingLineResult
TotalMargin
 

checkAvailabilityOutput TotalValue Double Not applicable


PromisingResult      
PromisingLineReply
AlternateAvailabilityOptions
PromisingLineResult
TotalValue
 

checkAvailabilityOutput NumberOfSplits Integer Number of split shipments


PromisingResult     that the availability option
PromisingLineReply recommends.
AlternateAvailabilityOptions  
PromisingLineResult
NumberOfSplits
 

checkAvailabilityOutput NumberOfSubstitutions Integer Number of item substitutions


PromisingResult     that the availability option
PromisingLineReply recommends.
AlternateAvailabilityOptions  
PromisingLineResult
NumberOfSubstitutions
 

checkAvailabilityOutput FillRate Double Not applicable


PromisingResult      
PromisingLineReply
AlternateAvailabilityOptions
PromisingLineResult FillRate
 

checkAvailabilityOutput NumberOfAtpItems Integer Not applicable


PromisingResult      
PromisingLineReply
AlternateAvailabilityOptions
PromisingLineResult
NumberOfAtpItems
 

278
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Fully Qualied Name of the Aribute Type Description


Payload Aribute

checkAvailabilityOutput NumberOfCtpItems Integer Not applicable


PromisingResult      
PromisingLineReply
AlternateAvailabilityOptions
PromisingLineResult
NumberOfCtpItems
 

checkAvailabilityOutput SourcingRule String Not applicable


PromisingResult      
PromisingLineReply
AlternateAvailabilityOptions
PromisingLineResult
SourcingRule
 

checkAvailabilityOutput CustomerAccountId String Not applicable


PromisingResult      
PromisingLineReply
AlternateAvailabilityOptions
PromisingLineResult
ResultDetail
CustomerAccountId
 

checkAvailabilityOutput CustomerShipToSiteId String Not applicable


PromisingResult      
PromisingLineReply
AlternateAvailabilityOptions
PromisingLineResult
ResultDetail
CustomerShipToSiteId
 

checkAvailabilityOutput RequestedRegion String Region that requested the


PromisingResult     shipment.
PromisingLineReply  
AlternateAvailabilityOptions
PromisingLineResult
ResultDetail RequestedRegion
 

checkAvailabilityOutput PartyId String Sold-to party of the customer.


PromisingResult      
PromisingLineReply
AlternateAvailabilityOptions
PromisingLineResult
ResultDetail PartyId
 

checkAvailabilityOutput ShipToPartySiteId String Ship-to party site of the


PromisingResult     customer.
PromisingLineReply  
AlternateAvailabilityOptions
PromisingLineResult
ResultDetail ShipToPartySiteId
 

279
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Fully Qualied Name of the Aribute Type Description


Payload Aribute

checkAvailabilityOutput InstanceId String Instance where the warehouse


PromisingResult     is dened.
PromisingLineReply  
AlternateAvailabilityOptions
PromisingLineResult
ResultDetail
InternalSalesOrderDestOrg
InstanceId
 

checkAvailabilityOutput OrgId String Warehouse that supplies the


PromisingResult     item that will ship.
PromisingLineReply  
AlternateAvailabilityOptions
PromisingLineResult
ResultDetail
InternalSalesOrderDestOrg
OrgId
 

checkAvailabilityOutput PromisingStatus String Determines whether the


PromisingResult     request is met completely or
PromisingLineReply not completely.
AlternateAvailabilityOptions  
PromisingLineResult
ResultDetail PromisingStatus
 

checkAvailabilityOutput RequestedDate Date Date when the item is


PromisingResult     requested to ship or deliver.
PromisingLineReply  
AlternateAvailabilityOptions
PromisingLineResult
ResultDetail RequestedDate
 

checkAvailabilityOutput PromisingType String Determines whether to set


PromisingResult     the requested date to the
PromisingLineReply Requested Ship Date from
AlternateAvailabilityOptions the warehouse, or to the
PromisingLineResult Requested Delivery Date to
ResultDetail PromisingType the ship-to address. Valid
  Values include Ship or Arrival.
 

checkAvailabilityOutput ExpectedArrivalDate Date Expected date to deliver the


PromisingResult     item to the customer address.
PromisingLineReply  
AlternateAvailabilityOptions
PromisingLineResult
ResultDetail
ExpectedArrivalDate
 

checkAvailabilityOutput ExpectedShipDate Date Expected date to ship the item


PromisingResult     from the warehouse or the
PromisingLineReply supplier.
AlternateAvailabilityOptions  

280
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Fully Qualied Name of the Aribute Type Description


Payload Aribute

PromisingLineResult
ResultDetail ExpectedShipDate
 

checkAvailabilityOutput ExpectedPickDate Date Not applicable


PromisingResult      
PromisingLineReply
AlternateAvailabilityOptions
PromisingLineResult
ResultDetail ExpectedPickDate
 

checkAvailabilityOutput RequestedItemId String Item requested.


PromisingResult      
PromisingLineReply
AlternateAvailabilityOptions
PromisingLineResult
ResultDetail RequestedItemId
 

checkAvailabilityOutput ExpectedAvailableItem String Expected item to ship. If an


PromisingResult     item substitution occurs, then
PromisingLineReply this aribute references the
AlternateAvailabilityOptions item substitution instead of
PromisingLineResult the requested item.
ResultDetail  
ExpectedAvailableItem
 

checkAvailabilityOutput ExpectedAvailabilityOnRequestedDate
Double Expected item availability on
PromisingResult     the request date.
PromisingLineReply  
AlternateAvailabilityOptions
PromisingLineResult
ResultDetail
ExpectedAvailabilityOnRequestedDate
 

checkAvailabilityOutput ExpectedAvailableQuantity Double Expected item quantity


PromisingResult     that's available through the
PromisingLineReply availability option.
AlternateAvailabilityOptions  
PromisingLineResult
ResultDetail
ExpectedAvailableQuantity
 

checkAvailabilityOutput ExpectedAvailableQuantityUOM String Unit of Measure of the


PromisingResult     Expected Available Quantity.
PromisingLineReply  
AlternateAvailabilityOptions
PromisingLineResult
ResultDetail
ExpectedAvailableQuantityUOM
 

checkAvailabilityOutput ExpectedDropShipSupplier String Supplier that the availability


PromisingResult     option recommends to
PromisingLineReply supply the item that ships.
AlternateAvailabilityOptions The availability option

281
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Fully Qualied Name of the Aribute Type Description


Payload Aribute

PromisingLineResult recommends only one


ResultDetail warehouse or one supplier at
ExpectedDropShipSupplier one point in time.
   

checkAvailabilityOutput ExpectedDropShipSupplierSite String Site of the supplier that


PromisingResult     the availability option
PromisingLineReply recommends to ship the item.
AlternateAvailabilityOptions  
PromisingLineResult
ResultDetail
ExpectedDropShipSupplierSite
 

checkAvailabilityOutput ExpectedMode String Mode of transport that


PromisingResult     the availability option
PromisingLineReply recommends for the
AlternateAvailabilityOptions shipment.
PromisingLineResult  
ResultDetail ExpectedMode
 

checkAvailabilityOutput ExpectedService String Level of service that


PromisingResult     the availability option
PromisingLineReply recommends for the
AlternateAvailabilityOptions shipment.
PromisingLineResult  
ResultDetail ExpectedService
 

checkAvailabilityOutput ExpectedCarrier String Carrier who ships the item.


PromisingResult      
PromisingLineReply
AlternateAvailabilityOptions
PromisingLineResult
ResultDetail ExpectedCarrier
 

checkAvailabilityOutput CarrierCalendar String Not applicable


PromisingResult      
PromisingLineReply
AlternateAvailabilityOptions
PromisingLineResult
ResultDetail CarrierCalendar
 

checkAvailabilityOutput ExpectedDemandClass String Demand class.


PromisingResult      
PromisingLineReply
AlternateAvailabilityOptions
PromisingLineResult
ResultDetail
ExpectedDemandClass
 

checkAvailabilityOutput ExpectedTotalFullmentCost Double Expected total fulllment cost.


PromisingResult      
PromisingLineReply
AlternateAvailabilityOptions
PromisingLineResult

282
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Fully Qualied Name of the Aribute Type Description


Payload Aribute

ResultDetail
ExpectedTotalFullmentCost
 

checkAvailabilityOutput ExpectedShippingCost Double Expected shipping cost.


PromisingResult      
PromisingLineReply
AlternateAvailabilityOptions
PromisingLineResult
ResultDetail
ExpectedShippingCost
 

checkAvailabilityOutput ExpectedMargin Double Expected margin.


PromisingResult      
PromisingLineReply
AlternateAvailabilityOptions
PromisingLineResult
ResultDetail ExpectedMargin
 

checkAvailabilityOutput Price Double Unit price of the item.


PromisingResult      
PromisingLineReply
AlternateAvailabilityOptions
PromisingLineResult
ResultDetail Price
 

checkAvailabilityOutput Prot Double Projected prot.


PromisingResult      
PromisingLineReply
AlternateAvailabilityOptions
PromisingLineResult
ResultDetail Prot
 

checkAvailabilityOutput Value Double Projected value.


PromisingResult      
PromisingLineReply
AlternateAvailabilityOptions
PromisingLineResult
ResultDetail Value
 

checkAvailabilityOutput LineFillRate Double Not applicable


PromisingResult      
PromisingLineReply
AlternateAvailabilityOptions
PromisingLineResult
ResultDetail LineFillRate
 

checkAvailabilityOutput ErrorCode String Error code to use if an error


PromisingResult     occurs.
PromisingLineReply  
AlternateAvailabilityOptions
PromisingLineResult
ResultDetail ErrorCode

283
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Fully Qualied Name of the Aribute Type Description


Payload Aribute

checkAvailabilityOutput ErrorMessage String Error message to use if an


PromisingResult     error occurs.
PromisingLineReply  
AlternateAvailabilityOptions
PromisingLineResult
ResultDetail ErrorMessage
 

checkAvailabilityOutput ExpectedShipFromOrg String Warehouse that the availability


PromisingResult     option recommends to ship
PromisingLineReply the item.
AlternateAvailabilityOptions  
PromisingLineResult
ResultDetail
ExpectedShipFromOrg
 

GetAvailabilityCheck and GetAvailabilityCheckSync Operations

The GetAvailabilityCheck operation and the GetAvailabilityCheckSync operation gets the supply of an item that's
currently available in an organization or supplier. You can use them as a synchronous or asynchronous web service. You
must include these required aributes in a request that uses GetAvailabilityCheck or GetAvailabilityCheckSync.

Aribute Type Required Description

SourceOrderSystem String Yes Source order system.


       

MasterOrganization String Yes Item validation organization.


       

BusinessUnit String Yes Business unit.


       

ItemEntry Group No One or more repetitions.


       

ItemEntry Group No One or more repetitions.


       

ItemId String Yes Item to reference when


      determining supply
availability.
 

RequestedDate Date Yes Date when the supply


      availability is requested.
 

DestinationOrgId String No Destination organization of an


      internal sales order.
 

284
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Type Required Description

SupplierId String No Supplier to reference


      when determining supply
availability.
 

SupplierSiteId String No Supplier site to reference


      when determining supply
availability. You can specify
the supplier site only if you
also specify the supplier.
 

OrgInput Group No Zero or more repetitions.


       

OrgInput Not applicable No Group that captures the


      warehouse.
 

OrgId String No Warehouse (inventory


      organization) that requires the
availability of the supply for
the item.
 

GetAvailabilityCheck or GetAvailabilityCheckSync provides this response.

Aribute Type Description

ErrorMessage String Error message that displays if a problem


    occurs in the data or in the setup.
 

InvalidItems Group One or more repetitions.


     

PromisingSystem String Name of the promising system.


     

PromisingInstance String Instance of the promising system.


     

PromiseDate Date Date when the promise is created.


     

ItemAvailability Group One or more repetitions.


     

InvalidItems Group Group that identies invalid items.


     

ItemId String Item identier.


     

285
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Type Description

ItemAvailability Group Group that includes availability details for


    one item.
 

ItemId String Identies the item that this operation


    references when it determines how much
supply is available to fulll this item.
 

RequestedDate Date Date when supply availability is requested.


     

ErrorCode String Error code.


     

ErrorMessage String Error message that displays if a problem


    occurs in the data or in the setup.
 

InstanceId String Instance identier.


     

OrgId String Warehouse (inventory organization) that


    stores the item. If the request doesn't
include a warehouse or supplier, then this
operation calculates the supply availability
for all warehouses and suppliers.
 

ShelfQty Double Total supply that's available for the item.


    its the cumulative supply minus the
cumulative supply that's consumed.
 

AvailableQty Double Total supply that's available for the item


    and that's not allocated to demand. its the
cumulative supply minus the cumulative
demand.
 

RequestHold Operation

The RequestHold operation put the sales order or fulllment process on hold. You can use it only as an asynchronous
web service. You must include these required aributes in a request that uses RequestHold.

Fully Qualied Aribute Type Required Description


Name of the Payload
Aribute

RequestHoldProcessRequestApplyHoldRequestParams Group No One or more


ApplyHoldRequestParams       repetitions.
   

RequestHoldProcessRequestApplyHoldRequestParams Group No Not applicable


ApplyHoldRequestParams        

286
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Fully Qualied Aribute Type Required Description


Name of the Payload
Aribute

RequestHoldProcessRequestSourceOrderSystem string Yes Source system that


ApplyHoldRequestParams       provides the source
SourceOrderSystem order.
   

RequestHoldProcessRequestSourceOrderId string Yes Identier of the source


ApplyHoldRequestParams       order in the source
SourceOrderId system.
   

RequestHoldProcessRequestSourceLineId string No Order line identier in


ApplyHoldRequestParams       the source system.
SourceLineId  
 

RequestHoldProcessRequestSourceHoldCode string Yes Hold code that's


ApplyHoldRequestParams       requested.
SourceHoldCode  
 

RequestHoldProcessRequestHoldComments string No Comments for the hold


ApplyHoldRequestParams       request.
HoldComments  
 

RequestHold provides this response.

Fully Qualied Name of the Aribute Type Description


Payload Aribute

RequestHoldProcessResponse ErrorMessage String Error message for the call.


ErrorMessage      
 

RequestHoldProcessResponse ApplyHoldResponseParams Group One or more repetitions.


ApplyHoldResponseParams      
 

RequestHoldProcessResponse ApplyHoldResponseParams Group Group that contains the


ApplyHoldResponseParams     results of the requestHold
  operation.
 

RequestHoldProcessResponse SourceOrderSystem String Source system that provides


ApplyHoldResponseParams     the source order.
SourceOrderSystem  
 

RequestHoldProcessResponse SourceOrderId String Order identier in the source


ApplyHoldResponseParams     system.
SourceOrderId  
 

287
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Fully Qualied Name of the Aribute Type Description


Payload Aribute

RequestHoldProcessResponse SourceLineId String Order line identier in the


ApplyHoldResponseParams     source system.
SourceLineId  
 

RequestHoldProcessResponse SourceHoldCode String Hold code that was requested.


ApplyHoldResponseParams      
SourceHoldCode
 

RequestHoldProcessResponse RequestStatus String Status of the call.


ApplyHoldResponseParams      
RequestStatus
 

RequestHoldProcessResponse HoldErrorMessages Group Zero or more repetitions.


ApplyHoldResponseParams      
HoldErrorMessages
 

RequestHoldProcessResponse HoldErrorMessages Group Group that contains the order


ApplyHoldResponseParams     line Id and the error message
HoldErrorMessages for this line Id record.
   

RequestHoldProcessResponse DooLineId String Order line identier in Order


ApplyHoldResponseParams     Management.
HoldErrorMessages DooLineId  
 

RequestHoldProcessResponse ErrorMessage String Error message for each line.


ApplyHoldResponseParams      
HoldErrorMessages
ErrorMessage
 

ReleaseHold Operation

The ReleaseHold operation releases a hold that's currently holding a sales order or fulllment process. You can use it
only as an asynchronous web service. You must include these required aributes in a request that uses ReleaseHold.

Fully Qualied Aribute Type Required Description


Name of the Payload
Aribute

ReleaseHoldProcessRequest ReleaseHoldRequestParams Group No One or more


ReleaseHoldRequestParams       repetitions.
   

ReleaseHoldProcessRequest ReleaseHoldRequestParams Group No Groups the request


ReleaseHoldRequestParams       details for the release
  hold.
 

288
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Fully Qualied Aribute Type Required Description


Name of the Payload
Aribute

ReleaseHoldProcessRequest SourceOrderSystem String Yes Source system that


ReleaseHoldRequestParams       provides the source
SourceOrderSystem order.
   

ReleaseHoldProcessRequest SourceOrderId String Yes Order identier in the


ReleaseHoldRequestParams       source system.
SourceOrderId  
 

ReleaseHoldProcessRequest SourceLineId String No Order line identier in


ReleaseHoldRequestParams       the source system.
SourceLineId  
 

ReleaseHoldProcessRequest SourceHoldCode String Yes Hold code to release.


ReleaseHoldRequestParams        
SourceHoldCode
 

ReleaseHoldProcessRequest HoldReleaseReasonCode String Yes Reason code for the


ReleaseHoldRequestParams       release of the hold.
HoldReleaseReasonCode  
 

ReleaseHoldProcessRequest HoldReleaseComments String No Comments that


ReleaseHoldRequestParams       describe the release
HoldReleaseComments reason.
   

ReleaseHold provides this response.

Fully Qualied Name of the Aribute Type Description


Payload Aribute

ReleaseHoldProcessResponse ErrorMessage String Error message for the call.


ErrorMessage      
 

ReleaseHoldProcessResponse ReleaseHoldResponseParams Group One or more repetitions.


ReleaseHoldResponseParams      
 

ReleaseHoldProcessResponse ReleaseHoldResponseParams Group One or more repetitions.


ReleaseHoldResponseParams      
 

ReleaseHoldProcessResponse SourceOrderSystem String Source system that provides


ReleaseHoldResponseParams     the source order.
SourceOrderSystem  
 

289
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Fully Qualied Name of the Aribute Type Description


Payload Aribute

ReleaseHoldProcessResponse SourceOrderId String Order identier in the source


ReleaseHoldResponseParams     system.
SourceOrderId  
 

ReleaseHoldProcessResponse SourceHoldCode String Hold code that was released.


ReleaseHoldResponseParams      
SourceHoldCode
 

ReleaseHoldProcessResponse SourceLineId String Order line identier in the


ReleaseHoldResponseParams     source system.
SourceLineId  
 

ReleaseHoldProcessResponse HoldReleaseStatus String Status of the call.


ReleaseHoldResponseParams      
HoldReleaseStatus
 

ReleaseHoldProcessResponse HoldReleaseDate String Date when the hold was


ReleaseHoldResponseParams     released.
HoldReleaseDate  
 

ReleaseHoldProcessResponse HoldErrorMessages Group Zero or more repetitions.


ReleaseHoldResponseParams      
HoldErrorMessages
 

ReleaseHoldProcessResponse HoldErrorMessages Group Group that contains the order


ReleaseHoldResponseParams     line Id and error message for
HoldErrorMessages this line Id record.
   

ReleaseHoldProcessResponse DooLineId String Order line identier in Order


ReleaseHoldResponseParams     Management.
HoldErrorMessages DooLineId  
 

ReleaseHoldProcessResponse ErrorMessage String Error message for each order


ReleaseHoldResponseParams     line.
HoldErrorMessages  
ErrorMessage
 

Upstream Source Systems

290
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Integrate Order Management with Source Systems


Set up your source system in Order Management so it can access reference data and master data that your source
system uses.
Seing up the source system allows Order Management to identify where the sales order originates and helps to dene
the characteristics of the source system, such as whether its an order capture system or order fulllment system, and
whether the source system requires Order Management to do cross-referencing when a user creates a sales orders in
Order Management. Order Management uses these details to establish cross-reference values for various entities.

If your deployment must integrate with a system that resides outside of Order Management, then you can register a
connector that allows Order Management to communicate with it. You must create, deploy, and register the connector.
This topic describes how to register the connector and connect Order Management to a source system, such as Oracle
Congure, Price, and Quote Cloud. You add a connector that uses a web service that communicates order details with
the source system.

Summary of the Set Up


1. Create a user credential key.
2. Set up the source system.
3. Administer the source system.
4. Add the connector.
5. Add roles and privileges.
6. Test your set up.
This topic includes example values. You might use dierent values, depending on your business requirements.

Create Credential Key


You must create a user credential key to integrate Order Management with an external service.

The external interface uses open access protocols, such as HTTP, so extra security setup is required. You must make
sure the user credential is valid in the source system you're integrating, and in the security certicate so the integration
can encrypt and decrypt messages.

Create a user credential key.


1. Use Oracle Wallet Manager to add a user credential key to a credential map.
For details, see Oracle Fusion Middleware Security Guide 11g Release 1 (11.1.1). You must use the administration
privilege and administrator role.
2. In Oracle Wallet Manager, in the Select Map list, select oracle.wsm.security.
3. Enter the user credential key, user name, and password from the service that you're integrating with Order
Management.
4. Sign into Order Management with administrative privileges.
5. In the Navigator, click Setup and Maintenance.
6. In the Setup and Maintenance work area, go to the task.

◦ Oering: Order Management


◦ Functional Area: Orders
◦ Task: Manage External Interface Web Service Details
7. On the Manage Connector Details page, click Actions > Add Row, then set the values that you set in steps 1
through 3.

291
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Set Up the Source System


1. In the Setup and Maintenance work area, go to the task.

◦ Oering: Order Management


◦ Functional Area: Customers
◦ Task: Manage Trading Community Source Systems
2. On the Manage Trading Community Source Systems page, click Actions > Create.
3. On the Create Source System page, set values.

Aribute Description

Code Enter any text that Order Management can use as an abbreviation for the external system.
  Order Management uses this code to identify this external system throughout the user
interface, such as in lists and logs.
 
For example, assume you work for a company named Vision Corporation, and that your
deployment must integrate with a legacy order capture system named Vision Capture. You
can enter VCAP.
 
The Manage Trading Community Source Systems page comes predened to use Oracle
Fusion Order Orchestration and Planning (OPS) for order orchestration and planning. If you
use the Order Management work area to create sales orders, then you must not change this
behavior, but you can use this page to add the source system you use to import a source
order from a channel system.
 

Name Enter text that describes the source system, such as Vision Capture.
   

Type
  Choose a value.

◦ Spoke. Identies a spoke system, such as a legacy system.

◦ Purchased. Identies a purchased system, such as data from a third party provider.

Options
  Specify the type of data that you will import.

◦ Enable for Items. Required. Import data for items.

◦ Enable for Trading Community Members. Required. Import data for the trading
community. Establishes the Original System Unique Reference (OSR) for customer
entities.
◦ Enable for Order Orchestration and Planning. Required. Import data for Order
Orchestration.
◦ Enable for Assets. Optional. Import data for assets.
For example, if you add a check mark to Enable for Trading Community Members,
then you can choose the source system as a data source on various pages in the
Order Management work area and the Order Orchestration work area.

4. Click Save and Close > Done.

292
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Administer the Source System


1. In the Setup and Maintenance work area, go to the task.

◦ Oering: Order Management


◦ Functional Area: Orders
◦ Task: Manage Upstream and Fulllment Source Systems
2. On the Manage Upstream and Fulllment Source Systems page, click Actions > Create.
3. In the Create Source System dialog, set values.

Aribute Description

Code
  Choose the code that you created earlier, such as VCAP.

Time Zone Choose the time zone where the server is located.
   

Version
  Choose Other.

Order Orchestration Type


  Choose a value.

◦ Fulllment. Specify the source system as a fulllment system where Order


Management sends fulllment requests and receives fulllment replies.
◦ Order Capture. Specify the source system as an order capture system that sends
source orders to Order Management. You typically use Order Capture with the import
web service.

Collections Allowed Contains a check mark.


   

Enable Data Cross-Reference


  If the source system.

◦ Expects Order Management to do the cross-reference, then enable this option.

◦ Uses the same values that Oracle Fusion uses, and you already set up these values in
Oracle Fusion, then don't enable this option.

4. Click Save and Close > Done.

Add the Connector


1. In the Setup and Maintenance work area, go to the task.

◦ Oering: Order Management


◦ Functional Area: Orders
◦ Task: Manage External Interface Web Service Details
2. On the Manage Connector Details page, click Actions > Add Row.
3. In the new row, set values, then click Save and Close.

293
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Description

Target System
  Choose the code you created in the Create Source System dialog, such as VCAP.

Connector Name Enter text that describes the connector. For example, enter Connector_ to_VCAP
   

Connector URL Enter the URL that locates the connector service that resides on the source system. In this
  example, enter the URL that locates the VCAP system.
 

User Name and Password Enter the values that the Status Update service requires. For example, the user that you
  specify must be a valid user, and this user must use the privileges that allow this user to run
the Status Update service.
 
Order Management uses the credentials you provide so it can communicate with the order
capture system when it creates the order, and when it provides a status update.
 

4. Optional. Allow more than one source system instance to communicate with Order Management.
◦ Use Trading Community Architecture to add a value to the Target System list.
◦ Repeat step 3, except set Target System to the value that you added in Trading Community Architecture.
For example, assume you work for a telecommunications company. You add one connection to a
system named PER_ORA_BM_CPQ for personal phone lines, then add another connection to a system
named BUS_ORA_BM_CPQ for business lines. CPQ is an acronym for Congure, Price and Quote. Order
Management will deliver status notications and billing notications to any system that contains the
string ORA_BM_CPQ.
You can add a prex, a sux, a prex and a sux, or no prex or sux to the string. For example, you
can use ABC_ORA_BM_CPQ_XYZ.
5. Verify that Order Management is connected to the source system, and that its communicating sales order data.
◦ Use a page in the Order Management work area to verify that it updated the order status. For example,
verify that it updated the status from Scheduled to Shipped.
◦ Sign into your source system, then verify that it displays the updated status of the sales order that you
examined in Order Management. For example, if Order Management updated the status from Scheduled
to Shipped on the fulllment line, then verify that your source system also displays Shipped.
If Order Management can't connect to your source system, then it might display an error message that
indicates it can't connect. For help, see topic Troubleshooting Connection Problems With Source Systems:
Procedure.
Connecting to Congure, Price, and Quote

If you connect to Congure, Price, and Quote, then do these steps.


• Set the Target System for the connector to ORA_BM_CPQ.
• Use the Manage Business Event Trigger Points page to enable the Fulllment Line Status Update trigger point.
• Make sure the connector URL references the BM-CPQ status update service. If it doesn't reference this service,
then the Business Events Message page will display an error. The URL is dierent for each BM-CPQ instance.
For example, host:port//BM-CPQ-statusUpdateService, where you replace host:port with your sever address.

294
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

• The setup you make for Fulllment Line Status Update and the corresponding set up in the Edit Status
Rule Set area of the Manage Orchestration Process Denitions page doesn't aect how Order Management
communicates status values.
• Order Management sends only the following status values. You can't modify this behavior.

◦ Scheduled
◦ Shipped
◦ Awaiting Billing
◦ Billed
◦ Canceled
◦ Closed

Add Roles and Privileges


The user who calls the web service must use an application role with web service privilege Manage Order Orchestration
Decomposition Web Service (DOO_MANAGE_ORDER_ORCHESTRATION_DECOMPOSITION_WEB_SERVICE_PRIV).

This role and privilege makes sure each service and response request from a source system works correctly when the
source system isn't part of Oracle Fusion, or when receiving a request from a task layer that isn't in Oracle Fusion.

Add roles and privileges.

1. Sign into the security console.


2. Click Application Roles.
3. On the General tab, set values, then save your changes.

Aribute Value

Display Name DOO Modied Role Service


   

Role Name DOOModiedAppRole


   

Role Category SCM - Abstract Roles


   

295
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

4. Navigate to the Search Authorization Policies tab, then search for DOOCustomAppRole.
5. In the Functional Policies tab, click New.

296
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

6. In the Untitled tab, set the value, then save your changes.

Aribute Value

Name DOOCustomRolePolicy
   

7. In the Targets area, click Add Target.


8. In the Search Targets dialog, set values, then click Search.

Aribute Value

Display Name Contains Web service


   

Name Starts With DOO


   

297
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

298
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

9. Add the privileges you need for each of the web services that you must grant to the user.

299
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

10. Navigate to the DOOCustomRolePolicy page.

11. In the DOO Webservice Role area, click Add.


12. In the Add a User dialog, add a user, then click Map Users.

300
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Test Your Set Up


Create a test user in your test environment to make sure your deployment can authenticate the message that Order
Management sends.
1. Sign into the Administration Console of the Oracle WebLogic Server.
2. In the Administration Console, click Create Users.
3. In the Create a New User area, set values, then click OK.

Aribute Value

Name The value you enter must match the name you used when you created the user credential
  key earlier in this topic.
 

Description User name and password to use when sending a message to the test client.
   

Provider DefaultAuthentication
   

Password The value you enter must match the name you used when you created the user credential
  key earlier in this topic.
 

4. Test the client in your source system to make sure it can send and receive messages to and from Order
Management.

Related Topics
• Fix Connection Problems with Source Systems

Integrate Names and Codes Between Source Systems and Order


Management
If your deployment includes an order capture system, then you must map names and codes from it into Order
Management Cloud.
An orchestration reference object is an object that resides in the set of objects that an orchestration process processes
so it can determine the meaning of a name or the description of a code, such as a payment term name, freight code, or
transport code.

An order capture system typically sends sales order data that contains names or codes to an orchestration process, and
the orchestration process must display a meaning for the name or a description for the code. You must collect the data
that determines these meanings and descriptions into the Order Orchestration and Planning Data repository.

Assume your order capture system sends sales order data that includes a payment term of 2/10, Net 30 to an
orchestration process, and data in the Order Orchestration and Planning Data repository includes a payment term of
2/10, Net 30. The orchestration process uses the matching codes to identify the payment term description.
2% discount earned if paid within 10 days

To get the complete list of orchestration reference objects, you can examine the collected data for them, and view the
list of values for the Lookup Type eld.

301
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Match Import Data to Order Management Data


Make sure the data you import matches the structure and data type that Order Management uses.
Its important that the data you import or integrate for customer, ship-to, and bill-to aributes is compatible with data in
the Order Management database. Use SQL to get data from the Order Management database, then modify your import
data to make sure it matches Order Management database requirements for data type and structure.

Get Sold-To Customer


SELECT dha.ORDER_NUMBER ,
dha.source_order_number,
dha.SOLD_TO_PARTY_ID ,
dha.STATUS_CODE ,
hz.PARTY_ID ,
hz.PARTY_NUMBER ,
hz.PARTY_NAME
FROM fusion.doo_headers_all dha,
fusion.HZ_PARTIES HZ
WHERE dha.SOURCE_ORDER_NUMBER = ('&SOURCE_ORDER_NUMBER')
-- AND status_code <> 'DOO_REFERENCE'
-- AND Submitted_Flag = 'Y' -- is this the active/submitted version
and hz.PARTY_ID =dha.SOLD_TO_PARTY_ID

Get Ship-To Details on Order Header


SELECT SOURCE_ORDER_NUMBER,
SOLD_TO_CUSTOMER_ID,
SOLD_TO_PARTY_ID ,
HZP.PARTy_name
||
' '
||
HZP.PARTY_NUMBER "Sold to Customer",
DOA.ADDRESS_USE_TYPE ,
hza.account_number ,
hzp_ship_to.party_name ,
hza.account_name ,
doa.PARTY_SITE_ID ,
hzl.ADDRESS1 ,
hzl.ADDRESS2 ,
hzl.ADDRESS3 ,
hzl.ADDRESS4 ,
hzl.CITY ,
hzl.POSTAL_CODE ,
hzl.STATE ,
hzl.COUNTRY
FROM FUSION.HZ_PARTIES HZP ,
FUSION.HZ_PARTIES HZP_SHIP_TO ,
FUSION.DOO_HEADERS_aLL DHA ,
fusion.DOO_ORDER_ADDRESSES DOA ,
fusion.HZ_CUST_ACCOUNTS HZA ,
fusion.HZ_CUST_ACCT_SITES_ALL hzcasa,
fusion.HZ_PARTY_SITES hzps ,
fusion.hz_locations HZL
WHERE HZP.PARTY_ID = DHA.SOLD_TO_PARTY_ID
AND dha.header_id = doa.header_id (+)
AND
(

302
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

doa.ADDRESS_USE_TYPE = 'SHIP_TO'
OR doa.ADDRESS_USE_TYPE IS NULL
)
AND doa.party_site_id = hzps.party_site_id (+)
AND hzcasa.PARTY_SITE_ID (+) = hzps.PARTY_SITE_ID
AND hzps.party_id = hzp_ship_to.party_id (+)
AND HZcasa.CUST_ACCounT_ID = hza.CUST_ACCOUNT_ID (+)
AND hzps.location_id = hzl.location_id (+)
AND DHA.SOURCE_ORDER_NUMBER = ('&SOURCE_ORDER_NUMBER')
AND DHA.status_code <> 'DOO_REFERENCE'
AND DHA.Submitted_Flag = 'Y' -- is this the active/submitted version

Get Bill-To Details on Order Header


SELECT SOURCE_ORDER_NUMBER,
SOLD_TO_CUSTOMER_ID,
SOLD_TO_PARTY_ID ,
HZP.PARTy_name
||
' '
||
HZP.PARTY_NUMBER "Sold to Customer",
DOA.ADDRESS_USE_TYPE ,
hza.account_number ,
hzp_ship_to.party_name ,
hza.account_name ,
doa.PARTY_SITE_ID ,
hzl.ADDRESS1 ,
hzl.ADDRESS2 ,
hzl.ADDRESS3 ,
hzl.ADDRESS4 ,
hzl.CITY ,
hzl.POSTAL_CODE ,
hzl.STATE ,
hzl.COUNTRY
FROM FUSION.HZ_PARTIES HZP ,
FUSION.HZ_PARTIES HZP_SHIP_TO ,
FUSION.DOO_HEADERS_aLL DHA ,
fusion.DOO_ORDER_ADDRESSES DOA ,
fusion.HZ_CUST_ACCOUNTS HZA ,
fusion.HZ_CUST_ACCT_SITES_ALL hzcasa,
fusion.HZ_PARTY_SITES hzps ,
fusion.hz_locations HZL
WHERE HZP.PARTY_ID = DHA.SOLD_TO_PARTY_ID
AND dha.header_id = doa.header_id (+)
AND
(
doa.ADDRESS_USE_TYPE = 'SHIP_TO'
OR doa.ADDRESS_USE_TYPE IS NULL
)
AND doa.party_site_id = hzps.party_site_id (+)
AND hzcasa.PARTY_SITE_ID (+) = hzps.PARTY_SITE_ID
AND hzps.party_id = hzp_ship_to.party_id (+)
AND HZcasa.CUST_ACCounT_ID = hza.CUST_ACCOUNT_ID (+)
AND hzps.location_id = hzl.location_id (+)
AND DHA.SOURCE_ORDER_NUMBER = ('&SOURCE_ORDER_NUMBER')
AND DHA.status_code <> 'DOO_REFERENCE'
AND DHA.Submitted_Flag = 'Y' -- is this the active/submitted version

Get Ship-To and Bill-To Details on Order Line


SELECT dha.Source_order_number ,
dha.order_number ,

303
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

dha.submitted_Flag ,
dfla.SHIP_TO_PARTY_ID ,
dfla.SHIP_TO_PARTY_SITE_ID,
dfla.BILL_TO_CUSTOMER_ID ,
dfla.BILL_TO_SITE_USE_ID
FROM Fusion.DOO_headers_all dha,
Fusion.DOO_fulfill_lines_all dfla
WHERE dha.header_id = dfla.header_id
AND dha.source_order_number = '&ENTER SOURCE_ORDER_NUMBER'

Related Topics
• Use SQL to Query Order Management Data
• Overview of Importing Orders into Order Management
• How Order-to-Cash Works with Order Capture Systems

Integrate Congured Items


Order Management Cloud supports Oracle Fusion Congurator Runtime so the user can create and validate a
congured item.
Order Management calls the ConguratorManager service when a sales order includes a congured item. This service
creates and validates the conguration.

See My Oracle Support for details about.


• Congurations, see Supply Chain Management Cloud Congurator Modeling Guide.
• Seing the Conguration Eective Date parameter, see the Manage Order Management Parameters topic.
• Using a le to import orders, see the Overview of Using Files to Import Orders into Order Management topic.
• Using a web service to create an integration that automatically imports source orders, see the Overview of
Using Web Services with Order Management topic.

Validations That the Congurator Does on Import Payloads


The congurator makes sure.
• Model denition exists in Product Information Management for each item that the import payload contains.
◦ Conguration node
◦ Each item
◦ Primary UOM for each item
• Import payload includes a value for aribute ProductNumber for each order line.
• Import payload includes a quantity for each order line.
• The Product Information Management work area allows a decimal quantity for each decimal quantity that the
import payload contains.
• Import payload doesn't include more than one root model instance.
• Import payload doesn't specify an item more than one time, and that Order Management can resolve this item
according to a model in Product Information Management.
• If the import payload includes an optional model reference, then the payload explicitly states the full input path
to this model reference.

304
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

How Web Services Resolve Missing Nodes in Import Payloads


If a conguration hierarchy in the import payload includes two levels, but if the model in Product Information
Management that the payload references includes a dierent hierarchy, then the createCongForModelLine
web service aempts to modify the structure in the payload so it matches the hierarchy in Product Information
Management.

For example, assume the import payload includes a hierarchy.

• M1

◦ SI1
◦ SI2
◦ SI5

Assume the model in Product Information Management includes a hierarchy.

• M1

◦ SI1
◦ OC1
◦ SI5

• SI2
• SI5
• M2

◦ OC2

• SI4
• SI5

createCongForModelLine will modify the structure from the import payload to this structure.

• M1

◦ SI1
◦ OC1

• SI2
◦ M2

• OC2

◦ SI5

How Web Services Handle Quantities in Import Payloads


If the order import payload species only one of these quantities for the conguration line.

• Unit quantity. Then createCongForModelLine calculates the ordered quantity.


• Ordered quantity. Then createCongForModelLine calculates the unit quantity.

305
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

If the import payload species the unit quantity and the ordered quantity, and if the unit quantity for the conguration
line multiplied by the ordered quantity for the immediate parent line.

• Equals the ordered quantity for the conguration line. createCongForModelLine can successfully process
the line.
• Doesn't equal the ordered quantity for the conguration line. createCongForModelLine creates an error
and order import fails.

If the import payload species a value in the Quantity Per Model aribute, then createCongForModelLine ignores it
and calculates the unit quantity and ordered quantity according to the quantities that the import payload species for
all conguration lines.

Downstream Fulllment Systems


Connect and Route
Overview of Connecting Order Management to Your Fulllment System
Set up a connector so Order Management can communicate with your fulllment system.
Here's a summary of the set up.

1. Specify how Order Management sends the request to the outbound connector.

◦ You specify the URL that locates the outbound connector when you set up the external interface.
◦ You deploy the outbound connector on a third-party application server.
◦ Your information technology group must set up the WSDL for the outbound endpoint.
2. Specify the business conditions that will route the request to the connector.
3. The outbound connector transforms the message into a format that your fulllment system can understand,
then sends the message to your fulllment system. You can use an integrated development environment, such
as Oracle JDeveloper, to specify how to do transformation.
4. The fulllment system sends a response to the inbound connector.

Response Description

Immediate The fulllment system immediately sends the response.


   
A long running task is a task that includes a wait step in the orchestration process. An
immediate response doesn't wait to process a fulllment request that involves a long
running task. Instead, it only acknowledges receipt and replies with details that are
immediately available.
 
For example, assume the message requests a Boolean value, such as whether the customer
is credit worthy or not credit worthy, and the fulllment system already determined this
value. The fulllment system can respond immediately with the requested details.
 

Delayed The fulllment system sends the response only after a delay so it can nish the long running
  task.
 

306
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Response Description

For example, assume the message requests a status update for the Received Date aribute,
which is the date that shipping delivered the item to the customer. Shipping is normally
a long running task that includes a pause step because shipping a physical item typically
requires one or more days to nish. The fulllment system can't respond immediately with
the requested details. It must delay its response while it waits for the shipping task to nish.
 

Note.

◦ The fulllment system might also communicate more than one update over time. To process a delayed
response, you can add another entry point service in the connector, or you can set up another connector.
It isn't necessary to use the external interface to set up the connector that receives the message from
your fulllment system and that sends a delayed response.
◦ This topic assumes you use the same connector to send the delayed response to Order Management.
5. To send the response, the fulllment system calls the inbound interface that you set up in Order Management.
Order Management uses a single service to accept the response for each task type. You specify the URL that
locates the WSDL for the service when you set up the connector.
6. The connector transforms the response into a message that Order Management can understand, then sends it
to Order Management.
Here are the task types that the connector uses in Order Management to communicate with your fulllment system.

Task Type Description

Reservation Reserve an item in inventory.


   

Shipping Ship the item after you reserve it.


   

Invoice Invoice the item after it ships.


   

For details about the ow you integrate, see the How Data Flows Through Order Management topic.

Road Map to Integrating Order Management with Fulllment Systems


Do the set up that topics and sections describe in the Implementing Order Management guide. The steps in bold font
are particularly important regarding achieving connectivity.

Step Chapter, Section, or Topic Description

1 Set Up Task Types Specify how to process the sales order and
    order lines.
 

2 Order Management Statuses


    Do.

• Set up fulllment line status.

307
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Step Chapter, Section, or Topic Description

• Specify how to split fulllment line


status.
• Update or close fulllment lines
that remain open.

3 Set Up Orchestration Processes Set up your orchestration process to


    determine status conditions, status values,
and fulllment line status.
 

4 Select Fulllment Lines for Orchestration Create a business rule that selects
  Process Steps fulllment lines, then specify whether to
  process them.
 

5 Set up a connector that enables Order


  Integrate Order Management with Management to communicate with your
Fulllment Systems fulllment system.
 

6 Specify the web service that enables Order


  Manage Connector Details in Order Management to communicate with your
Management fulllment system.
 

7 Specify a rule that selects your fulllment


  Route Requests from Order system connector according to sales
Management to Fulllment Systems order, fulllment line, or orchestration
process aribute.
 

8 Overview of Seing Up Extensible Optional. If you implement an extensible


  Flexelds in Order Management exeld, then you must set it up, deploy it,
  and publish it.
 

Related Topics
• How Data Flows Through Order Management
• Fulllment Tasks

Connect Order Management to Your Fulllment System


Set up a connector that allows Order Management Cloud to communicate with your fulllment system.
This topic assumes these conditions are true.
• You use Oracle JDeveloper (Java Developer) to create the connector. You can use any similar development tool.
• You create a fulllment connector that uses the Fulllment task layer. You can use a similar approach for other
task layers.
• You use a web service to communicate between Order Management and the connector. The connector can use
some other technology that you choose to communicate with your fulllment system.
• You use basic security. Your implementation team must incorporate any other security that your business
requires.
• The fulllment system doesn't understand the Order Management message, so the connector must transform
the message.

308
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

• The connector and the fulllment system use security certicates that a certicate authority (CA) publishes.
• You have the privileges that you must use to deploy the connector on the fulllment system, or you licensed
Oracle SOA (Service Oriented Architecture) Cloud Service so you can access Oracle JDeveloper on the cloud
and integrate with other cloud applications and systems.
• Services in the fulllment system all use the same user credentials.

Summary of the Steps


1. Prepare to make connection.
2. Create connector.
3. Add branches for operations.
4. Set up delayed response.
5. Secure your connector and deploy your project.
6. Communicate extensible exelds to fulllment system.
7. Deploy connector.
This topic uses example values. You might use dierent values, depending on your business requirements.

Prepare to Make Connection


Prepare to make the connection.
1. Get the administrative privileges you need to access the web server where you plan to deploy the connector.
2. Get source system details from Oracle Trading Community Architecture. You will use them to link connectors in
the web service details to the source system.
3. Install the Java runtime environment on the computer you will use to create the connector.
For details, see Java Downloads for All Operating Systems at hps://www.java.com/en/download/manual.jsp.
4. Open a web browser, then install Java SE Development Kit.
For details, see Java SE Development Kit 9 Downloads at hp://www.oracle.com/technetwork/java/javase/
downloads/jdk9-downloads-3848520.html.
5. Install Oracle SOA Suite.

◦ Go to page Oracle SOA Suite 12.2.1.3.0 QuickStart Download on Oracle Technology Network at hp://
www.oracle.com/technetwork/middleware/soasuite/downloads/index.html.
◦ Download, then unzip these les.
• SOA Suite 12.2.1.3 - Part 1 of 2
• SOA Suite 12.2.1.3 - Part 2 of 2
Download them to the bin folder where you installed Java SE Development Kit, such as C:\Program Files
\Java\jdk-9.0.4\bin.
◦ Right-click Windows Start menu, then click Command Prompt (Admin).
◦ In the DOS command line, navigate to the bin folder where you downloaded the SOA Suite les, enter
java.exe -jar fmw_12.2.1.3.0_soa_quickstart.jar, then press Enter on your keyboard.
◦ Follow the prompts in the installer until you nish the installation.
6. Open a web browser, then verify your browser can open the URLs you plan to use for your WSDLs. For details
about these WSDLs, see the next section in this topic.

Create Connector
1. Open Oracle JDeveloper.

309
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

For details about how to use Oracle JDeveloper, see Oracle JDeveloper Tutorials at hps://docs.oracle.com/
cd/E37547_01/tutorials/toc.htm.
2. In the Select Role dialog, choose Studio Developer, then click OK.
3. Click Application > New.
4. In the New Gallery dialog, in tree Categories, expand General, then click Applications.
5. In the Items area, click SOA Application > OK.
6. In the Name Your Application dialog, set values, then click Next.

Aribute Value

Application Name Enter any value.


   

Directory
  C:\JDeveloper\mywork\ConnectorService

You can accept the default value that populates or choose some other folder. For example.

C:\JDeveloper\mywork\ConnectorService

Application Package Prex oracle.apps
   

7. In the Name Your Project dialog, set values, then click Next.

Aribute Value

Project Name ConnectorServiceComposite


   
You can set any value.
 

Directory C: \JDeveloper\mywork\ConnectorService\ConnectorServiceComposite
   

8. In the Congure SOA Seings dialog, set values, then click Finish.

Aribute Value

Composite Name ConnectorServiceComposite


   

Composite Template Empty Composite


   

310
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Oracle JDeveloper creates an empty composite.

This composite includes the Exposed Services, Components, and External References panes. You will use these
panes during this procedure.
9. Click File > Save.
10. Specify the service that will communicate data from your fulllment system to Order Management.

◦ Drag and drop BPEL Process from the Component Palee onto the Components pane.
◦ In the Create BPEL Process dialog, set values, then click OK. Make sure you set each value in the same
sequence that this table displays them.

Aribute Value

BPEL Specication BPEL 2.0 Specication


   

Name ConnectorProcess
   

Namespace hp://xmlns. oracle. com/ ConnectorService/ ConnectorServiceComposite/


  ConnectorProcess
 

Directory C: \JDeveloper\mywork\ConnectorService\ConnectorServiceComposite\SOA\BPEL
   

311
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Value

Template Type Web Service


   

Template Base on a WSDL


   

Service Name connectorprocess_ client


   

Expose as a SOAP Service Contains a check mark.


   

WSDL URL
  Specify this WSDL.

https://host:port/soa-infra/services/default/
DooTaskExternalInterfaceVirtualPartnersComposite/
fulfillmentrequest_client_ep?WSDL

The FulllOrderService uses this WSDL.

where

• host. Identies the computer that hosts your Oracle Fusion Applications.
• port. Identies the port that Oracle Fusion Applications uses to communicate
data. Port is optional.

For example, enter this value.

https://server:port/soa-infra/services/default/
DooTaskExternalInterfaceVirtualPartnersComposite/
fulfillmentrequest_client_ep?WSDL

To identify the host and port, see topic Identifying Hosts and Ports for Your Order
Management Implementation: Procedure.

This URL locates the WSDL that FulllOrderService uses. This service communicates
data from your third-party fulllment system to Order Management. It uses these
operations and inputs.

• The operation processFulllmentRequest uses input value


FulllmentRequestRequestMessage.
• The operation processFulllmentRequestResponseoperation uses input value
FulllmentRequestResponseMessage.

If you can't access or use this service for some reason, then see section Using
Alternative WSDL Files in this topic, immediately after this procedure.

i. Next to WSDL URL, click Find Existing WSDLs.


ii. In the WSDL Chooser dialog, set Location to home/user/projects/
FulfillmentRequestWSDL.
where
user is your user name.

312
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Value

iii.In the window below the location you just set, click
FulfillmentRequest.wsdl > OK.
iv. In the Localized Files dialog, add a check mark to Maintain Original Directory
Structure for Imported Files, then click OK.

Port Type FullmentRequest


   

Callback Port Type FullmentRequestCallback


   

Oracle JDeveloper creates the BPEL process.

11. Create the web service you use to send the request to your fulllment system.

◦ In the External References pane, right-click, then click Insert > Direct.
◦ In the Create Direct Binding dialog, set values, then click OK.

Aribute Value

Name FulllmentApplication
   

Type Reference

313
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Value

   

WSDL URL FulllmentApplication/ fulllmentapplication/ processclientep?WSDL


   

Port Type execute_p


   

Callback Port Type callback_p


   

Copy WSDL Doesn't contain a check mark.


   

Transaction Participant WSDLDriven


   

12. Connect the connector to the FulllmentApplication web service. Drag and drop a connection from the
Component Palee to create a connection between the ConnectorProcess node in the Components pane and
the FulllmentApplication node in the External References pane.
13. Create the web service you use to send the delayed response back to Order Management.
◦ In the External References pane, right-click, then click Insert > Web Service.
◦ In the Create Web Service dialog, set values, then click OK.

Aribute Value

Name OM-DelayedResponse
   

Type Reference
   

WSDL URL
  Enter this value.

https://host:port/soa-infra/services/default/
DooTaskFulfillOrderResponseInterfaceComposite/fulfillmentresponse?
WSDL

where

• host. identies the computer that hosts your Oracle Fusion Applications.
• port. identies the port that your Oracle Fusion Applications use to
communicate data.

This URL locates the WSDL that FulllmentResponseService uses. This service
communicates status updates from your third-party fulllment system to Order
Management. It uses these operations and inputs.

• The process operation uses the FulllmentResponseRequestMessage input


value.
• The processResponse operation uses the
FulllmentResponseResponseMessage input value.

314
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Value

Port Type FulllmentResponse


   

Callback Port Type FulllmentResponseCallback


   

Copy WSDL Doesn't contain a check mark.


   

Transaction Participant WSDLDriven


   

14. Connect the connector to the OM-DelayedResponse web service. Drag and drop a connection from the
Component Palee to create a connection between the ConnectorProcess node in the Components pane and
the OM-DelayedResponse node in the External References pane.
15. In the Components pane, right-click the ConnectorProcess node, then click Edit.

315
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

16. Dene the condition that species when to perform the Create operation for the service in the fulllment
system.

◦ Drag and drop a Switch activity from Component Palee to immediately after the receiveInput activity.

◦ Immediately below the switch activity you just added, click Condition, then set values.

Aribute Value

Label Create
   

Description CreateFulllmentReqeuest
   

316
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

You will create a condition.

◦ Click Expression Builder.


◦ In the Expression Builder dialog, in the BPEL Variables window, click ns4:OperationMode string.

◦ In windowFunctions, choose String Functions, then click upper-case.


◦ Verify that the Expression window contains this value, then click OK.

317
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

xp20:upper-case(bpws:getVariableData('inputVariable','payload','/ns4:headerTL/ns4:OperationMode'))
= "CREATE"

◦ In the Condition dialog, click OK.

318
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

The Create step now displays in bold font.

Using Alternative WSDL Files

You typically use the FulllOrderService service and FulllmentResponseService service to communicate with a third-
party fulllment system. If you can't access or use these services for some reason, then do a dierent set up, depending
on whether you use extensible exelds in your implementation.

319
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Extensible Flexelds Description

You use extensible exelds. Click Download Files in the Related Links section at the end of this topic, then use the WSDL
  and XSD in le FulllmentRequest. zip that downloads.
 

You don't use extensible exelds. Do these steps.

1. In the Setup and Maintenance work area, go to the task.

◦ Oering: Order Management

◦ Functional Area: Orders

◦ Task: Manage External Interface Web Service Details

2. On the Manage Connector Details page, click Download WSDL for External
Integration.

Seing the WSDL When Your Implementation Uses Business Events

If you set up Order Management to raise a business event, then do these steps.

1. Use this value when you create the FulllmentApplication connector.

Aribute Value

WSDL URL
  http://host:port/soa-
infra/services/default/
DooTaskExternalInterfaceVirtualPartnersComposite/
businesseventsconnetor_client_ep?WSDL

The connector uses the pushPayload operation and the body input value of FulllOrderService.
2. Make sure the web service operation can do these steps.

◦Accept the user name and password you enter on the Manage External Interface Web Service Details
page. You use this page later during this integration setup after you nish seing up the connector.
◦ Receive a payload that uses the signature in the business_events_connnector_payload.xsd le. To get a
copy of this le, click Download Files in the Related Links section at the end of this topic.
3. Use the Associated Connectors tab to specify the connector that references the WSDL that you set up in step 1.

You can access this tab when you use the Manage Business Events Trigger Points page to set up the business
event.
For details about business events and the Associated Connectors tab, see the Send Notications from Order
Management to External Systems topic.

You typically use FulllOrderService to handle business events. If you can't access or use this service for some reason,
then use a dierent set up.

320
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Extensible Flexelds Description

You don't use extensible exelds. Click Download Files in the Related Links section at the end of this topic, then use the WSDL
  and XSD in the business_ events_ wsdl.zip le that downloads.
 

1. In the Setup and Maintenance work area, go to the task.


You use extensible exelds.
◦ Oering: Order Management

◦ Functional Area: Orders

◦ Task: Manage External Interface Web Service Details

2. On the Manage Connector Details page, click Download WSDL for External
Integration.

Add Branches for Operations


You will add one branch for each operation that you require for the fulllment service. For example, the Fulllment Task
layer in this example uses these tasks.

• Create
• Update
• Apply Hold
• Release Hold
• Cancel

So you add ve switch case branches, one for each task.

321
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

You will add these branches.

For details about these tasks and other tasks that you can use, see the Task Types topic.

322
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Add branches for operations.

1. Click Add Switch Case.

323
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

2. Add an activity that calls the branch.

◦ Drag and drop Invoke from Component Palee onto branch Create.

◦ Right-click Invoke1, then, in the Edit Invoke dialog, set the value.

Aribute Value

Name InvokeCreateFulllmentRequest
   

324
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

◦ Click Partner Link.


◦ In the Partner Link Chooser dialog, click FulllmentApplication > OK.
◦ In the Edit Invoke dialog, set the value.

Aribute Value

Operation create
   

◦ In the Edit Invoke dialog, in the Variables section, next to the Input window, click Add.
◦ In the Create Variable dialog, set the value, then click OK.

Aribute Value

Name InvokeCreateFulllmentRequest_ create_ InputVariable


   

325
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

For example.

◦ In the Edit Invoke dialog, click OK.

326
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

The editor adds the InvokeCreateFulllmentRequest node to the ow.

327
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

3. Add an activity that receives a reply from the fulllment system.

◦ Drag a receive activity from Component Palee, then drop it immediately downstream of the
InvokeCreateFulllmentRequest node.

◦ Right-click the Receive1 node you just added.


◦ In the Edit Receive dialog, set values, then click OK.

Aribute Value

Name ReceiveAcknowledgementForCreate
   

Conversation Id Leave empty.


   

Create Instance Leave empty.


   

328
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Value

Interact Type Partner Link.


   

Partner Link FulllmentApplication


   

Operation createResponse
   

Variable ReceiveAcknowledgementForCreate_ createResponse_ InputVariable


   

329
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

For example.

330
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

4. Add an activity that transforms the input value into a message that your fulllment system can understand.

◦ Drag a transform activity from Component Palee, then drop it immediately upstream of the
InvokeCreateFulllmentRequest node.

◦ Right-click the Transform1 activity you just added.


◦ In the Edit Transform dialog, on the General tab, set the value, then click Transformation.

Aribute Value

Name TransformationInputToCreate
   

◦ On the Transformation tab, in the Source area, click Add, then set values.

Aribute Value

Variable inputVariable

331
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Value

   

Part payload
   

◦ Set values.

Aribute Value

Target Variable InvokeCreateFulllmentRequest_ create_ InputVariable


   

Target Part payload


   

Mapper File xsl/ TransformationInputToCreate


   

◦ In the Mapper File area, click Add.

332
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

◦ In the page that displays, connect each aribute that you must send from Order Management to the
fulllment system.

◦ In the Edit Transform dialog, click Apply > OK.

333
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

5. Add an activity that transforms the reply that your fulllment system sends into a message that Order
Management can understand.

◦ Drag a transform activity from Component Palee, then drop it immediately downstream of the
ReceiveAcknowledgementForCreate node.

◦ Right-click the Transform1 activity that you just added.


◦ In the Edit Transform dialog, on the General tab, set the value, then click Transformation.

Aribute Value

Name TransformFulllmentAckToOMAck
   

◦ On the Transformation tab, in the Source area, click Add, then set values.

334
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Value

Variable ReceiveAcknowledgementForCreate_ createResponse_ InputVariable


   

Part payload
   

◦ Set values.

Aribute Value

Target Variable outputVariable


   

Target Part payload


   

Mapper File xsl/ TransformFulllmentAckToOMAck


   

◦ In the Mapper File area, click Add.


◦ In the page that displays, connect each aribute that you must send from the fulllment system to Order
Management.
◦ In the Edit Transform dialog, click Apply > OK.
6. Specify how to send the acknowledgment to Order Management.

◦ On the ConnectorProcess process that you created earlier, drag an invoke activity from the Component
Palee, then drop it immediately downstream of the TransformFulllmentAckToOMAck activity.

335
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

◦ Drag a Receive activity from Component Palee, then drop it immediately downstream of the
SendAcknowledgement activity that you just added.

This activity receives the delayed response from the fulllment system.
◦ Right-click Receive1.
◦ In the Edit Receive dialog, on the General tab, set values, click Apply > OK.

Aribute Value

Name ReceiveDelayedResponseFromFulllment
   

Conversation Id Leave empty


   

Create Instance Leave empty


   

Interaction Type Partner Link


   

336
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Value

Partner Link FulllmentApplication


   

Operation CreateResponse
   

Variable ReceiveDelayedResponseFromFulllment_ CreateResponse_ InputVariable


   

7. Repeat steps 1 through 6 for the Update operation.

For each operation, modify the values slightly to reect the operation. For example, add the
Update operation to the Update branch, and use ReceiveAcknowledgementForUpdate instead of
ReceiveAcknowledgementForCreate.
8. Repeat steps 1 through 6 for the Apply Hold operation.
9. Repeat steps 1 through 6 for the Release Hold operation.
10. Repeat steps 1 through 6 for the Cancel operation.

Set Up Delayed Response


You will dene the ow that sends a delayed response from the fulllment system to Order Management. You use the
same payload for each operation so you can dene a single ow for all operations.

337
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Set up the delayed response.

1. Drag an Invoke activity from Component Palee, then drop it immediately downstream of the switch node.

2. Right-click Invoke1.
3. In the Edit Invoke dialog, on the General tab, set values, click Apply > OK.

Aribute Value

Name SendDelayedResponseToOM
   

Conversation Id Leave empty


   

Invoke as Detail Leave empty


   

Interaction Type Partner Link


   

338
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Value

Partner Link OM-DelayedResponse


   

Operation process
   

Variable SendDelayedResponseToOM_ process_ InputVariable


   

4. Transform the delayed response message that the fulllment system sends to a message that Order
Management can understand.
◦ Drag the Transform activity from Component Palee, then, in the create branch, drop it immediately
downstream of the ReceiveDelayedResponseFromFulllment activity.

◦ Right-click the Transform1 activity you just added.


◦ In the Edit Transform dialog, on the General tab, set the value, then click Transformation.

Aribute Value

Name TransformDelayedResponseToOM

339
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Value

   

◦ On the Transformation tab, in the Source area, click Add, then set values.

Aribute Value

Variable ReceiveDelayedResponseFromFulllment_ createResponse_ InputVariable


   

Part payload
   

◦ Set values.

Aribute Value

Target Variable SendDelayedResponseToOM_ process_ InputVariable


   

Target Part payload


   

Mapper File xsl/ TransformationDelayedResponseToOM


   

◦ In the Mapper File area, click Add.


◦ On the page that displays, connect each aribute that you must send as part of the delayed response
from the fulllment system to Order Management.
◦ In the Edit Transform dialog, click Apply > OK.

340
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

5. Add an activity that receives a reply from Order Management.

◦ Drag a receive activity from Component Palee, then drop it immediately downstream of the
SendDelayedResponseToOM activity.

◦ Right-click the Receive1 node that you just added.


◦ In the Edit Receive dialog, set values, click Apply > OK.

Aribute Value

Name ReceiveResponseFromOM
   

Conversation Id Leave empty.


   

Create Instance Leave empty.


   

Interaction Type Partner Link.


   

Partner Link OM-DelayedResponse

341
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Value

   

Operation processResponse
   

Variable ReceiveResponseFromOM_ processResponse_ InputVariable


   

6. Dene a condition that species how to handle errors that Order Management might send.

◦ Drag and drop the Switch activity from Component Palee to immediately downstream of the
ReceiveResponseFromOM activity.

◦ Immediately below the switch activity you just added, click Condition, set values, then click OK.

Aribute Value

Label ErrorCondition

342
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Value

   

Description Handle errors when processing a delayed response


   

Condition
  xp20:upper-
case(bpws:getVariableData('ReceiveResponseFromOM_processResponse_InputVariabl
ns3:FulfillmentResponse/ns3:Status') !="SUCCESS"

7. Add nodes.

◦ AssignErrorConditionProcess. Specify actions to take in the Error Condition branch when an error
occurs.
◦ AssignSucess. Specify actions to take in the Otherwise branch when an error doesn't occur.

Including Charges in Delayed Response

If the delayed web service response that calls Order Management includes a charge, then Order Management deletes
all previous charges and replaces them with the values that the web service response sends. Therefore, you must make
sure the response includes all charges that Order Management sent in the outgoing request.

343
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

For example, if Order Management sends the ORA_SHIPPING_FREIGHT value and the QP_NET_PRICE value for
the ChargeTypeCode charge, then the response must include ORA_SHIPPING_FREIGHT and QP_NET_PRICE for
ChargeTypeCode.

Secure Connector and Deploy Project


Oracle Fusion Applications use these policies to secure your connector.

Policy Description

oracle/wss11_ saml_ or_ username_ Encrypts and decrypts incoming and outgoing messages.
token_ with_ message_ protection_  
service_ policy
 

oracle/wss_ username_ token_ over_ Uses SSL (Secure Sockets Layer) to secure communication in the transport layer.
ssl_ client_policy  
 

Use Oracle JDeveloper or Oracle Enterprise Manager to secure your connector. This example uses Oracle JDeveloper.
For details about Oracle Enterprise Manager, see hps://www.oracle.com/technetwork/oem/enterprise-manager/
overview/index.html.

344
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Secure your connector and deploy your project.

1. Specify the security policy for the Request service. In the Exposed Services pane, right-click the end point of
ConnectorProcess, then click Congure WS Policies > For Request.

2. In the Congure SOA WS Policies dialog, in the Security area, click Add.
3. In the Select Server Security Policies dialog, choose this value, then click OK.

345
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

oracle/ws11_saml_or_username_token_with_message_protection_service_policy

4. Specify the security policy for the callback service. In the Exposed Services pane, right-click the end point of
ConnectorProcess, then click Congure WS Policies > For Callback.
5. In the Congure SOA WS Policies dialog, in the Security area, click Add.
6. In the Select Server Security Policies dialog, choose this value, then click OK.

oracle/wss_username_token_over_ssl_client_policy

7. In the Security area, click the row you just added, then click Edit.
8. Set values.

Aribute Value

Override Value FUSION_ SCM_ SOA_APPID-KEY


   
This value species the key for Credential Store Framework (CSF). You must create this key
in the application where you deploy the connector. This key must use the same user name
and password that you use to sign into the Order Management Cloud.
 

9. Edit and assign the security policy for the delayed response connector.

Repeat the above steps. Use the same security policies and specify the same Credential Store Framework key.

346
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

10. Create and deploy your project. .

11. Create a user credential key, then add it to the identity store on the server that will call the web service. For
details, see topic Creating User Credential Keys: Procedure.
12. Get the user credentials that the service provider requires when calling their web service. You can typically get
these details from the service provider.
13. Send a request to your IT administrator to add the user credentials that you identied in step 4. Request to add
them to the server that will call the web service. Use the CSF-KEY (Credential Store Framework) reference.

Communicate Extensible Flexelds to Your Fulllment System


The payload includes extensible exelds that you have dened, by default. If you have dened extensible exelds,
then you must set up the WSDL so it can communicate them to your fulllment system.

347
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Communicate extensible exelds to your fulllment system.

1. In the transformation activity, navigate to the appropriate ECategories node, such as FulllLineECategories.
2. Expand the node.

Notice that only two aributes are available in the node.

3. In pane Source: FulllmentRequest.wsdl, in the navigation tree, right-click ns1:FulfillLineEFFCategories, then


click Substitute Element or Type.

348
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

4. In the Substitute Element or Type dialog, click j_FulllLineEFFDooFulllLineAddInfoPrivate > OK.

5. Expand ns1:FulfillLineEFFCategories.

349
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

The navigation tree displays the hierarchy that includes the contexts and extensible exelds that you can map
to the target XSD.

6. Make sure each aribute you must map exists.

For example.

<xsl:if test="/ns1:headerTL/ns1:FulfillLineTLVO1/ns1:FulfillLineEffCategories/
ns10:FulfillLineEffBPackShipInstructionprivateVO/ns21:shipDate">
<ns21:shipDate>
<xsl:if test="/ns1:headerTL/ns1:FulfillLineTLVO1/ns1:FulfillLineEffCategories/
ns10:FulfillLineEffBPackShipInstructionprivateVO/ns21:shipDate/@xsi:nil">
<xsl:attribute name="xsi:nil">
<xsl:value-of select="/ns1:headerTL/ns1:FulfillLineTLVO1/ns1:FulfillLineEffCategories/
ns10:FulfillLineEffBPackShipInstructionprivateVO/ns21:shipDate/@xsi:nil"/>
</xsl:attribute>
</xsl:if>
<xsl:value-of select="/ns1:headerTL/ns1:FulfillLineTLVO1/ns1:FulfillLineEffCategories/
ns10:FulfillLineEffBPackShipInstructionprivateVO/ns21:shipDate"/>
</ns21:shipDate>
</xsl:if>

7. Map each aribute.

Mapping Document References


Order Management uses a typical entity to capture the relationship between a document and a transaction in a system
that resides outside of Order Management to a fulllment line. Use these document types to map the data elements
between this entity and your fulllment system.

350
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Description Example

DocRefType DROPSHIP_ PO_REFERENCE


  Abbreviation that identies the type of  
business document. You can use these
types.

• EXT_FULFILLMENT_SALES_ORDER.
References the sales order or
document in your fulllment
system.
• ORIGINAL_SALES_ORDER.
References the source order from a
source system or sales order from
Order Management Cloud that
contains the item that a return is
returning.
• EBS_ORDER. References a sales
order created in Oracle E-Business
Suite (EBS) where Oracle E-
Business Suite is the fulllment
system.
• DROPSHIP_REQ_REFERENCE.
References a requisition for a
drop-ship line in a purchasing
application.
• DROPSHIP_PO_REFERENCE.
References a purchase order for
a drop-ship line in a purchasing
application.

DocId Value that uniquely identies the Purchase Order Identier in the
  document. Order Management creates purchasing system
this value.  
 

DocUserKey Business document number that an end- Purchase Order Number


  user can understand and recognize.  
 

DocAltUserKey Details that accompany DocUserKey, such Change Sequence Number


  as a document revision number.  
 

DocLineId Value that uniquely identies the Purchase Order Line Identier in the
  document line. Order Management purchasing system
creates this value.  
 

DocLineUserKey Line number that an end-user can Purchase Order Line Number
  understand and recognize.  
 

DocSublineId Value that uniquely identies the Purchase Order Schedule Identier in the
  document subline. Order Management purchasing system
creates this value.  
 

DocSubLineUserKey Number for the subline that an end-user Purchase Order Schedule Number
  can understand and recognize.  
 

351
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Related Topics
• Download Files
• How Order-to-Cash Works with Order Capture Systems
• How Data Flows Through Order Management

Manage Connector Details Between Order Management and Your Fulllment System
Use a web service to allow Order Management to communicate with your fulllment system. Use a predened web
service or create a new one.
The connector in this topic sends each message from Order Management to your fulllment system, then sends the
response message from your fulllment system to Order Management.
1. Sign into Oracle Enterprise Manager.
For details about Oracle Enterprise Manager, see hps://www.oracle.com/technetwork/oem/enterprise-
manager/overview/index.html.
2. In the navigation tree, expand Farm_fusion_domain > SOA > soa-infra (soa_server1) > default, then click
ConnectorServiceComposite.
3. In the ConnectorServiceComposite area, click Service Endpoint.
4. In the Service Endpoint and WSDL dialog, copy the value of the Endpoint URI and the WSDL to your clipboard.
Here are some examples.

Aribute Description

Endpoint URI hp: //server: port/ soa-infra/ services/ default/ ConnectorServiceComposite/


  connectorprocessclientep
 

WSDL hp: //server: port/ soa-infra/ services/ default/ ConnectorServiceComposite/


  connectorprocessclientep?WSDL
 

5. In the Navigator, click Setup and Maintenance.


6. In the Setup and Maintenance work area, go to the task.
◦ Oering: Order Management
◦ Functional Area: Orders
◦ Task: Manage External Interface Web Service Details
7. On the Manage Connector Details page, click Actions > Add Row, then register the service that Order
Management must interact with.
The external system hosts this service. Set values.

Aribute Description

Target System Choose a target system.


   

Connector Name Enter text that describes the connection you're making.
   

352
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Description

Connector URL
  Enter the URL that locates the connector that resides on the fulllment system. For example.

http://server:port/soa-infra/services/default/
ConnectorServiceComposite/connectorprocess_client_ep

where

Replace server:port with the name of the server that hosts your web service and
◦ the port number that the web service uses to communicate.

User Name and Password Enter the user name and password that the service requires.
   
As an option, use CSF-KEY that references the user credential that Order Management uses
to interact with the external web service.
 
There's no requirement to match the actual name of the connector, so you can provide a
short name. You can then use this short name in a routing rule. The CSF-KEY applies to all
services that the external system provides.
 

Keystore Recipient Alias


  For each server that runs an external web service that Order Management calls, set up
the server to advertise the security certicate in the WSDL. The Oracle WebLogic Server
advertises the security certicates, by default. If your servers support this advertisement,
then enable it.

If you set up the server to advertise the security certicate, then use the keystore recipient
alias. Do these steps.

◦ Ask the service provider for the security certicate.

◦ Make sure an IT administrator imports the target server security certicate into the
calling server and provides the keystore recipient alias.
◦ Add the alias to the external service entry you created when you specied the user
credential.
◦ Add the alias to the Keystore Recipient Alias aribute on the Manage Connector
Details page. This key applies to all services that the target system provides.

If these options don't work, then set up the servers to use the Oracle security certicate, then
import the certicate into your servers. The calling server doesn't require you to set up this
security certicate.

Response Processing Option


  Specify how to proceed when an error occurs.

◦ Reject All Lines on First Error. Reject all fulllment lines as soon as the connector
encounters the rst error.
This seing stops processing immediately so you can x the rst error. If subsequent
fulllment lines contain errors, then you must run fulllment again, correct the error,
and repeat until you correct all errors.
◦ Reject All Lines When Error on at Least One Line Occurs. Process all fulllment
lines. Add an error status to any all fulllment line that contains an error. When
processing nishes, if any fulllment line contains an error, then reject all fulllment
lines.
Use this seing to examine all lines that contain errors and correct them without
having to run fulllment for each error.

353
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Description

◦ Reject Groups With Lines That Contain Errors. Reject the entire group of fulllment
lines even if only one line in the group contains an error.
Your fulllment system can send fulllment lines in a group. For example, it can send
all lines in a shipment as a group or all lines in a sales order as a group.

Invocation Mode
  Specify how Order Management calls the connector when the orchestration process requires
an interface to a system that resides outside of Order Management.

◦ Business Event. Raise a business event so Order Management can interact with the
fulllment system.
If you use Integration Cloud Service to integrate Order Management with the
fulllment system, then you must choose Business Event. For details, see the
Overview of Using Integration Cloud Service to Integrate Order Management with
Other Systems topic.
◦ Synchronous Service. Make a synchronous call to the web service. Requires Order
Management to wait for the response from the web service before it continues
processing.
Use synchronous when Order Management performs depends on the response. For
example, use synchronous when calling credit check because Order Management
must wait for credit check to nish, then reply with status Credit Check Succeeded
before it can send the sales order to order fulllment.
◦ Asynchronous Service. Make an asynchronous call to the web service. Allows Order
Management to continue other processing while it waits for the response from the
web service.
Use asynchronous when Order Management doesn't depend on the response.
An asynchronous call is useful in an environment where a service, such as a loan
processor, can take a long time to process a client request. For example, scheduling
an appointment to install an item that includes a computer network might cause a
delay but it doesn't aect order processing.

Note these points about the Business Event invocation mode.

◦ To support trade compliance screening during order submit, you must use a business
event to integrate with Oracle Global Trade Management.
◦ Business Event supports integration only with Oracle Global Trade Management and
Oracle Transportation Management
◦ Use Business Event to integrate with trade compliance only for compliance screening
that occurs when the Order Entry Specialist submits the sales order, and not during
order fulllment.

Send Aachments Choose Yes to enable Order Management to send sales order aachments.
   
If you use the OrderInformationService web service to connect with your fulllment system,
then you can use the Send Aachments aribute in the input payload of the GetOrderDetails
operation of this web service to allow Order Management to send aachments.
 

8. Repeat step 7 until you register all web services where Order Management must interact.
9. Create a routing rule that selects the web services.
For details, see the Route Requests from Order Management to Fulllment Systems topic.

Related Topics
• How Order-to-Cash Works with Order Capture Systems
• How Data Flows Through Order Management

354
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Route Requests from Order Management to Fulllment Systems


Use a routing rule to route a fulllment request to your fulllment system.
Specify each rule so it selects the fulllment system connector according to sales order, fulllment line, or orchestration
process aribute. At run time, the rule calls the connector that translates the payload into a structure that your
fulllment system can understand.

Here are some examples that describe ways you might use a routing rule.

Example Description

Route sales order according to the


value of an orchestration process For example, route each sales order that's ready to ship to a fulllment system according to
aribute. task type.
 
• If type code is Shipment, then route sales order to connector ABCShippingSystem.

Route sales order according to the


value of a customer aribute. For example, assume your company uses two invoicing systems, and that system ABC sends
  invoices to customer Computer Service and Rentals.

• If product type is Goods, and if task type is Invoice, then route request to connector
ABCInvoicingSystem.

Assume you must create a routing rule that implements a condition.

• If task type is Shipment, and if quantity is 1000 or more, then route shipment request to Big Warehouse.

355
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Here's the rule you will create.

Summary of the Set Up


1. Set up connector.
2. Create the If statement.
3. Create the Then statement.
4. Test your set up.
This topic includes example values. You might use dierent values, depending on your business requirements.

Set Up Connector
Set values.

Aribute Value

Name Big Shipments Warehouse

356
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Value

   

Description Route each shipping request that exceeds a quantity of 999 to the Big Shipments warehouse.
   

For details, see the Manage Connector Details That Integrate Order Management with Fulllment Systems topic.

Create the If Statement


1. In the Setup and Maintenance work area, go to the task.

◦ Oering: Order Management


◦ Functional Area: Orders
◦ Task: Manage External Integration Routing Rules for Sales Orders
2. On the Manage External Interface Routing Rules page, click Create New Rule, then set values.

Aribute Value

Name Route Big Shipments to Big Warehouse


   

Description Route each shipping request that exceeds quantity of 999 to Big Warehouse.
   

3. Add the If condition.

◦ Click New Condition.


◦ In the Create Condition dialog, enter Task, wait a moment, then click Task Type (Order Header).
◦ Click Search.
◦ In the Search dialog, enter Shipment, then click Search > OK > OK.
4. Add the And condition.

◦ Click And.
◦ In the Create Condition dialog, enter Quantity, wait a moment, then click Ordered Quantity (Order
Fulfill Line).

◦ Change = to >.
◦ Enter 999, then click OK.

Create the Then Statement


1. On the owchart, click Then > Do > New Action > Perform an Action.
2. In the Create Action dialog, choose Set Connector Name, then click Search.
3. In the Search dialog, set the value, then click Search > OK > OK.

357
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Value

Connector Name Big Shipments Warehouse


   

Note that the Manage Connector Details page denes the connectors that the Search dialog displays on the
Manage External Interface Routing Rules page.

4. Click Save and Close.


5. On the Manage External Interface Routing Rules page, click your rule.

358
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

6. In the dialog that displays, add a check mark to Activate Rule, then click Save and Close > Publish.

Test Your Set Up


1. Navigate to the Order Management work area, create a sales order, add an order line with a Quantity of 1000,
then click Submit.
2. Sign into Oracle Enterprise Manager, navigate to Flow Trace, Instance of EILMainProcess.

For details about Oracle Enterprise Manager, see hps://www.oracle.com/technetwork/oem/enterprise-


manager/overview/index.html.
3. In the Audit Trail area, in the InvokeFulllmentService area, examine the payload and verify that it includes the
Create Fulll Order service and the ServiceURI that you specied earlier.

Related Topics
• Use Visual Information Builder
• Demo for Creating Business Rules

Route Requests from Order Management to Fulllment Systems Without Cross-


References
Create a routing rule that routes a request to a fulllment system when Order Management Cloud can't nd a cross-
reference that identies the fulllment system.
Assume you must implement this logic.

• If task type on fulllment line is Shipment, then route shipment request to Big Warehouse.
• If Order Management can't nd a cross-reference for Big Warehouse in an Oracle Application, then get the
cross-reference from your fulllment system.

You will create this rule.

359
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Route a request from Order Management to your fulllment system without a cross-reference.
1. Create a routing rule that implements this logic.
◦ If task type is Shipment, and if quantity is 1000 or more, then route shipment request to Big Warehouse.
For details, see the Route Requests from Order Management to Fulllment Systems topic.
2. On the Manage External Interface Routing Rules page, open your rule for editing, then, in the owchart, click
And > Perform an Action.
3. In the Create Action dialog, choose Resolve Cross-Reference for Customer.
4. Choose a value, then click OK For this example, choose No.

Value Description

Yes Use a cross-reference from an Oracle Application.


   

No Use a cross-reference from the fulllment system.


   

5. Click Save and Close, then publish your rule.

Actions You Can Set When Routing Requests to Fulllment Systems


Use actions in your routing rules to specify how to route each request to your fulllment system.
For details about.
• Where you set actions in the routing rule, see Set Up Routing Rules.
• How to specify actions in the payload that the Fulllment Order service uses, see Task Services.

Here are the actions you can use.

Action Description Value Aribute to Use in Data Type to Use in


Payload Payload

Override Override the COMPENSATION_ String


Compensation Paern compensation paern Use one of these PATTERN  
  that the orchestration values.  
process species.
  • CANCEL_CREATE
• CANCEL_UPDATE
• CANCEL_UPDATE_CREATE
• UPDATE
• UPDATE_CREATE

Override Operation Override an operation. Text or alphanumeric MODIFIED_ String


  Order Management value. OPERATION  
uses operations, such    
as Create, Update,
Process, and so on.
Your fulllment system
might not recognize
these operations. Use
this action to specify
an operation that your

360
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Action Description Value Aribute to Use in Data Type to Use in


Payload Payload

fulllment system
recognizes.
 

Prepare Result Don't use this action Not applicable Not applicable Not applicable
  or the ResultKey      
and ResultValue
parameters that it uses.
They are for Oracle
internal only.
 

Resolve Cross- Determines whether to RESOLVE_ XREF_ FOR_ String


Reference for use a cross-reference. Use one of the CUSTOMERINFO  
Customer If the fulllment following values.  
  system uses the same
aribute values that • Yes
Order Management • No
uses, then set Resolve
Cross-Reference
for Customer to No
because a cross-
reference is useful only
when these values
are dierent. For
details, see topic Cross-
References in Order
Management.
 

Set Acknowledgement Time frame to wait Use a numeric value for ACK_ TIMEOUT_ Number
Timeout before exiting out of an days, hours, minutes, PERIOD  
  implicit wait during an or seconds. For  
interaction with your example, 10 minutes.
fulllment system or  
with an Oracle Fusion
application.
 

Set Connector Name Connector name that SERVICE_NAME String


  the web service uses to You can use the    
communicate details to following predened
your fulllment system. connectors.
This name helps
Order Management • Connector to
route the message to Oracle Fusion
the web service URL Receivables
that this connector system.
references. For details • Connector to
about how to dene a Oracle Fusion
connector so you can Inventory
specify it in this action, Management
see topic Manage system.
Connector Details • Connector to
That Integrate Order Oracle Fusion
Management with Receiving
Fulllment Systems. system.
  • Connector to
Oracle Fusion

361
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Action Description Value Aribute to Use in Data Type to Use in


Payload Payload

Shipping
system.

Set Interaction Format to use when InterfaceType String


Interface Type Order Management Use one of these    
  interacts with the values.
fulllment system.
  • Service Data
Object
• Enterprise
Business
Message

Set Maximum Lines to For details, see Not applicable AGGREGATOR_ Number
Aggregate and Send the Aggregate   MAX_FLINES  
  Requests That Order  
Management Sends
to Your Fulllment
System topic.
 

Set Maximum Time to Use a numeric value ABORT_ Number


Wait Before Allowing Order Management to express time of day, ENABLE_PERIOD  
Cancel sends a request to your such as days, hours,  
  fulllment system or minutes, or seconds.
to some other Oracle  
Fusion application, and
then waits to receive
a reply. The reply
typically arrives within
a few seconds.

Use this action to


specify how long to
wait for the reply and
avoid a situation where
Order Management
goes into a perpetual
wait state because of
a problem that occurs
during the transaction,
such as the network
going down.

Here are the wait


times thatSet
Acknowledgement
Timeout sets, by
default.

• 30 minutes. If
the reply doesn't
arrive within
30 minutes,
then Order
Management
enables
the Cancel
Current Task

362
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Action Description Value Aribute to Use in Data Type to Use in


Payload Payload

action in the
orchestration
process that
processes the
fulllment line.
If the Order
Entry Specialist
uses the
Cancel Current
Task action,
then Order
Management
places the
fulllment line in
error recovery,
and the Order
Entry Specialist
can then end the
task.
• One month. If
the reply doesn't
arrive within
one month,
then Order
Management
places the
fulllment line in
error recovery.

Set Maximum Time to For details, see Not applicable AGGREGATOR_ Number
Wait Before Sending the Aggregate   MAX_TIMEOUT  
  Requests That Order  
Management Sends
to Your Fulllment
System topic.
 

Note.

• Don't use the Set a Value operation in the DO clause.


• You must set the Connector Name action and the Interface Type action. All other actions are optional.
• You can use any action when you integrate with an application that isn't an Oracle Fusion application. You can
also use the Set Acknowledgement Timeout action or the Set Maximum Time to Wait Before Allowing Cancel
action when you integrate with some other Oracle Fusion application.

Related Topics
• Use Visual Information Builder
• Task Services

Aggregate Requests That Order Management Sends to Your Fulllment System


Aggregate requests to your fulllment system to help minimize problems that might occur with the timing of requests.
Use these actions.

363
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Action Description

Set Maximum Lines to Aggregate Number of pending requests that must aggregate before calling the fulllment system.
   

Send or Set Maximum Time to Wait Amount of time to wait before calling the fulllment system. This time starts when the
Before Sending aggregator receives the rst request.
   

An aggregator collects requests, and then sends them a single request when a time limit expires or when the aggregator
has aggregated a number of fulllment lines for the sales order. If the sales order includes more than one fulllment
line, and if these lines nish the task before the timeout occurs, then it sends all requests when the task nishes.
• The aggregator can aggregate only one time for each fulllment system for each sales order. If Order
Management receives more fulllment lines for the sales order after the aggregator sends a request, then it
sends each of these lines individually.
• The default timeout is ve minutes.
• You can use the aggregator only with the Fulll Order task or with a task that you dene.
• If you specify Set Maximum Lines to Aggregate and also specify Send or Set Maximum Time to Wait Before
Sending, then Order Management uses the rst action that meets the conditions.

For example, assume you set these values.

Action Value

Set Maximum Lines to Aggregate 50


   

Send or Set Maximum Time to Wait 10


Before Sending  
 

At run time, assume 50 lines aggregate before 10 minutes elapse. Order Management will send the lines as
soon as 50 lines aggregate. If only 40 lines aggregate after 10 minutes, then Order Management won't send
any lines until 10 minutes elapse.

Note.

For This Behavior Do This Set Up

Consider only wait time. Set the Set Maximum Lines to Aggregate action to 0.
   
Ignore maximum fulllment lines. This setup is equivalent to the default behavior when you don't specify Set Maximum Lines to
  Aggregate.
 

Ignore wait time. Set the Set Maximum Lines to Aggregate action to 1.
   
Send only one line for each request. This setup is equivalent to the default behavior when you don't specify either action.
   

364
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

For example, assume.

• You set Set Maximum Lines to Aggregate to 10.


• You set Send or Set Maximum Time to Wait Before Sending to 5.
• An Order Entry Specialist creates a sales order and adds 16 order lines.
• Three minutes elapse between the time the aggregator receives the rst order line on the template task and the
tenth order line.

Set Maximum Lines to Aggregate equals 10, so Order Management will send 10 lines to the fulllment system in the rst
request as soon as the aggregator receives the tenth order line.

Next, assume ve minutes elapse by the time the aggregator receives the eleventh order line. During this time, the
aggregator receives another three order lines. The value of Send or Set Maximum Time to Wait Before Sending equals
5, so Order Management will send these four order lines in the second request to the fulllment system.

For another example, assume.

• You set Set Maximum Lines to Aggregate to 0.


• You set Send or Set Maximum Time to Wait Before Sending to 5.
• An Order Entry Specialist creates a sales order and adds 16 order lines.
• Five minutes elapse by the time the aggregator receives the rst order line. During this time, the aggregator
receives another eleven order lines.

The value of Send or Set Maximum Time to Wait Before Sending is 5, so Order Management will send these 12 lines in
the rst request to the fulllment system.

Related Topics
• Use Visual Information Builder
• Task Services

Integration Cloud Service


Overview of Using Integration Cloud Service with Order Management
Use Oracle Integration Cloud Service to integrate Order Management Cloud with some other Oracle Fusion Application
or with an application that resides outside of Oracle Fusion.
Use a business event with the Oracle ERP Cloud adapter to achieve results.

• Send a notication to each subscriber when a condition occurs.


• Use the Manage Business Event Trigger Points page to set up the criteria that raises the business event.
• Use a dierent integration for each subscriber system. The subscriber can use a single web service that listens
for the conditions through the business event you specify.
• Allow each subscriber to request data enrichment in the integration.

365
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Here's a ow you can use to deploy a single web service on each of your subscriber systems to receive the notication
for each condition that triggers the business event.

Note.
• You use the Subscribe to ICS integration to subscribe each channel system to the business event.
• Order Management sends one event notication to Integration Cloud Service, then Integration Cloud Service
broadcasts it to each of the subscribers you integrate.
• If you set up the web service that you deploy on these systems to subscribe to the business event, and if they
share the same underlying schema, then mapping between the business event output schema and each web
service is very similar.

If you use the Sales Order Notication business event, then Order Management can send a notication each time a
condition occurs.
• Update order header status.
• Update fulllment line status.
• Split fulllment line.
• Close fulllment line.
• Apply hold.
• Change the jeopardy priority.
• Update a predened aribute on a sales order.

366
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

• Finish changing a fulllment plan.

Manage Business Event Trigger Points


To get started, in the Setup and Maintenance work area, use the Manage Business Event Trigger Points page to set up
the trigger points that determine the notications you will send to subscribers.

Note.
• Use the Sales Order Notication event when you set up the end point in Integration Cloud Service to publish
trigger points to Integration Cloud Service.
• As an alternative to using Integration Cloud Service, you can add a connector that you set up on the Manage
Connector Details page in the Setup and Maintenance work area. The trigger publishes the event to the
connector.

367
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

For example, if you add the Delivery Conrmation connector to the Fulllment Line Status Update trigger point,
then Order Management will send the business event to Delivery Conrmation every time it updates the status
on the fulllment line.

The connector you create in Integration Cloud Service is entirely separate from the connector you create on
Manage Connector Details. These connectors aren't related to one another in any way.

For more details, see the Send Notications from Order Management to Other Systems topic.

Create Connector and Integration


Sign into Integration Cloud Service, create the connector, create the integration, then drag and drop your connector
onto the integration.

368
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

To congure the end point, click the connection you dropped onto your integration, then click Edit. Use the wizard that
displays to choose With Business Events and the Sales Order Notication event.

Sales Order Notication gets the active trigger points that you set up on Manage Business Event Trigger Points, then
publishes them in Integration Cloud Service.

369
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

The trigger points inform each subscriber when a signicant development occurs with a sales order. For example, when
Order Management nishes compensation for a change order, updates the status on the fulllment line, closes the
fulllment line, and so on.

370
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Specify Operations
Specify the operations that each web service must do. Edit the Publish To node in your integration.

Use Order Information Service

Choose the Orchestration Order business object, choose the OrderInformationService web service, then choose an
operation.

371
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Operation Description

GetOrderDetails Get details about the progress of a sales order from Order Management.
   

ChangeOrderAllowed Determine whether Order Management allows changes on the sales order or fulllment line.
   

ChangeOrderAributeAllowed Determine whether Order Management allows changes on each sales order aribute.
   

GetCrossReferencedData Allow a source system that subscribes to the Sales Order Notication business event to get
  cross-referenced values that the calling application can use.
 
Use this operation as an enrichment service when you receive Sales Order Notication. For
details, see the Overview of Creating Cross-References in Order Management topic.
 

You can also use the OrderImportService web service to send a new sales order or to revise a sales order that already
exists.

For details about how to specify data to communicate, go to Oracle Help Center, then see section Creating Connections
and Creating Integrations in book Using Oracle Integration Cloud Service.

Use Order Fulllment Response Service

Here's how you can use OrderFulllmentResponseService to process the response that your fulllment system sends to
Order Management.

372
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Note.

1. Order Management raises a business event so it can send a fulllment request to your fulllment system.
2. Integration Cloud Service calls the document service of the business event to send the request to the fulllment
system. The output payload of the document service includes data that the fulllment system uses to fulll the
request. You can map this output payload to the web service interface that processes the inbound call on the
fulllment system.
3. The fulllment system receives the fulllment request from Order Management, then calls the
processAcknowledgement operation of OrderFulllmentResponseService to acknowledge that it received the
fulllment request.
4. Integration Cloud Service sends the acknowledgment to Order Management.
5. The fulllment system fullls the request, then calls the processFulllmentResponse operation to communicate
the result to Order Management.
6. Integration Cloud Service sends the response to Order Management.
7. Order Management processes the response.
When you congure the endpoint, set the web service to OrderFulllmentResponseService.

373
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Choose an operation.

Operation Description

processAcknowledgement The fulllment system sends an acknowledgment that conrms it received the fulllment
  request. processAcknowledgement accepts and processes the acknowledgment.
 

processFulllmentResponse The fulllment system calls processFulllmentResponse to communicate the result of the
  fulllment request to Order Management.
 
The service adds the Response sux to the operation name, which results in a response name
of processFulllmentResponseResponse.

374
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Operation Description

 
The operation name processFulllmentResponse indicates that it processes a fulllment
response in reply to an Order Management fulllment request.
 

StageFulllmentResponse For future use.


   

Map Source to Target


Here's a drag and drop interface you can use in Integration Cloud Service to map the source payload to the target
payload.

This example includes part of the mapping between the response payload of the GetOrderDetails operation of Order
Information Service, to a target web service.

If you map a data element from the source to a data element on the target, then the interface adds a green check mark
to the source and target.

• The target also displays the name of the data element at the source.
• The mapping applies to one target web service, so you must do this mapping for each target system.

375
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

• If your deployment includes more than one channel system that must call GetOrderDetails, or if it must do
other operations under Order Information Service, then you must create an integration in Integration Cloud
Service, and then map the source payload to the target payload for each channel. However, you only need one
connection between ERP Service Catalog and Integration Cloud Service because it can support an integration
under each web service that you publish in the catalog with a WSDL (Web Services Description Language).

For details about how to create a mapping, go to on Oracle Help Center, then see the Mapping Data chapter in book
Oracle Cloud, Using the Oracle Mapper.

How Integration Cloud Service Integrates Order Management


Order Management Cloud uses a business event trigger point to send a notication to each subscriber when the order
status changes. The subscriber can also request to get more details about the sales order.

376
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Here's an example that integrates a channel system that's in the cloud.

Assume you set up the integration to broadcast the Sales Order Notication event to subscribers when Order
Management updates the order status, such as from Processing to Closed.

1. The channel receives shipment for the sales order, then sends a successful delivery notication to Order
Management.
2. Order Management changes the order status from Processing to Closed.
3. Order Management raises a business event. Assume you set the Order Header Status Update event to Active on
the Manage Business Event Trigger Points page, and also set it up to raise an event when Order Management
updates the order header status to Closed.

377
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

4. Assume you set up Oracle ERP Cloud Adapter to.

◦ Use OrderInformationService to do the GetOrderDetails operation.


◦ Map order aributes in the GetOrderDetailsResponse source payload to the
InvokeOrderInformationServiceResponse target payload.
◦ Listen for Sales Order Notication events that are occurring on hps://my_server.com:9999/
fndAppCoreServices/ServiceCatalogService?wsdl.

Oracle ERP Cloud Adapter recognizes the event, then uses your set up on the Oracle ERP Cloud Endpoint to
determine the service and operation to use.
5. To determine how to map source payload to target payload, Oracle ERP Cloud Adapter reads the source to
target mapping you set up.
6. Integration Cloud Service sends a notication to the subscriber on the channel.
Integration Cloud Service can integrate Order Management with a channel that's in or out of the cloud.

Use Integration Cloud Service with Order Management


Use Oracle Integration Cloud Service to integrate Order Management.
Summary of the Set Up

1. Manage trigger points for business events.


2. Send status updates for fulllment lines.
3. Create a connection.
4. Monitor business events.
5. Track business events.
6. Test your set up.
This topic includes example values. You might use dierent values, depending on your business requirements.

Manage Trigger Points for Business Events


1. In the Navigator, click Setup and Maintenance.
2. In the Setup and Maintenance work area, go to the task.

◦ Oering: Order Management


◦ Functional Area: Orders
◦ Task: Manage Business Event Trigger Points
3. Set up the trigger points so Order Management raises a business event and sends a notication to each
subscriber for each trigger point you need.

For example, send a notication to each subscriber when Order Management changes the status on the sales
order header to Closed.

◦ On the Manage Business Event Trigger Points page, click the Order Header Status Update row, then
make sure the Active option in this row contains a check mark.
◦ In the Details area, in the Closed row, add a check mark to the Raise Event option.
◦ Click Save.

378
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Send Status Updates for Fulllment Lines


Send an update to each subscriber when the status changes on a fulllment line.

1. On the Manage Business Event Trigger Points page, click the Fulllment Line Status Update row, then make
sure the Active option in this row contains a check mark.
2. Click Save and Close.
3. Go to the task.

◦ Oering: Order Management


◦ Functional Area: Orders
◦ Task: Manage Orchestration Process Denitions
4. On the Manage Orchestration Process Denitions page, search for the orchestration process that your
deployment uses.

For example, search for OrderFulllmentGenericProcess.

Each orchestration process controls the status value for each fulllment line, so you must modify the
orchestration process that controls the status value. In this example, you modify the orchestration process that
controls the shipping status value.
5. In the search results, click the row that contains OrderFulllmentGenericProcess, then click Actions > Edit.
6. In the Process Details area, click Status Conditions > Fulllment Line Status Values > Edit Status Rule Set.
7. On the Edit Status Rule Set page, add a check mark to the Notify External System option for each Status Value
where your deployment must send a notication.

For example, to send a notication when Order Management changes the fulllment line status to Shipped, add
a check mark to the Notify External System option in the Shipped row.
8. Repeat step 7 for other status values, as necessary.

Order Management will send a notication when each fulllment line that this orchestration process processes
reaches the status you specify in steps 7 and 8.
9. Repeat steps 4 through 8 for each orchestration process in your deployment that updates status values, as
necessary.

Create a Connection
Create a connection between Integration Cloud Service and Order Management. For details about how to use
Integration Cloud Service, including the URL you use when you sign in, see Starting Oracle Integration Cloud Service on
Oracle Help Center.

1. Create a service request so the Cloud Operations team can register the CSF-KEY (Credential Store Framework).
You need the key to sign into Integration Cloud Service.

Request a separate key for each order administrator who uses Integration Cloud Service. For details, see the
Request CSF Keys for Oracle Integration Cloud Service topic.
2. Get access to the SOA Infra Operations Duty role.

The Order Administrator job role and the Supply Chain Application Administrator job role each come
predened so they include SOA Infra Operations Duty.

◦ If you use a dierent role, such as Order Manager, then use the Security Console to get access to the SOA
Infra Operations Duty role.

379
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

◦ If your connection publishes the Sales Order Notication event to Integration Cloud Service, then you
must specify the login credentials of an Oracle Cloud Application user so you can access the Event
Catalog URL. You must assign the SOA Operator Role role to this user.
◦ Assign the Order Manager job role so this same user can call the web services that Order Management
uses. The integration must use the same login credentials to call web services at run time that you use
when you set up the integration at design time. These are Oracle Cloud Application user credentials.

If you use this connection to publish a business event to Integration Cloud Service, and to call Order
Management web services, then the Oracle Cloud Application user must use the Order Manager job role
and the SOA Infra Operations Duty role.

For more details, see the Assign Job Roles in Order Management topic.
3. Create the connection.

◦ Sign into Integration Cloud Service.


◦ On the Welcome page, click Create Connections.
◦ On the Connections page, click New Connections.
◦ In the Create Connection - Select Adapter dialog, under Oracle ERP Cloud, click Select .
◦ In the Create New Connection dialog, set values, then click Create.

Aribute Value

Name Enter any text that describes the connection. For example, Connection_ for_ Order_
  Status_ Update.
 

Identier Enter any text that describe the connection. For example, CONNECTION_ FOR_
  ORDER_ STATUS_ UPDATE.
 

Role Choose Trigger and Invoke.


   

Description Enter any text that describe the connection. For example, Connection for the order
  status update.
 

◦ On the page that displays, click Congure Connectivity.


◦ In the Connection Properties dialog, set values, then click OK.

Aribute Value

ERP Services Catalog WSDL URL Enter the URL that locates the WSDL. Use this format.
   
hps: //server: port/ fndAppCoreServices/ ServiceCatalogServicewsdl
 
For example.
 
hps://my_ server. com: 9999/ fndAppCoreServices/ ServiceCatalogServicewsdl
 

ERP Events Catalog URL (optional) Enter the URL that locates the events catalog. Use this format.

380
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Value

   
hps: //server: port/soa-infra
 
For example. hps: //myserver com: 7818/ soa-infra
 

These URLs allow Integration Cloud Service to connect to Oracle ERP so Integration Cloud Service can
get details about the services and events that are available in Oracle ERP Cloud. Contact your system
administrator to determine the URLs you must use.
4. Congure security.
◦ Click Congure Security.
◦ In the Credentials dialog, enter the user name and password you use to access Order Management as an
administrator, then click OK.
◦ At the top of the page, click Test, then wait for the indicator that displays immediately to the right of Test
to change to a green color, and to display 100%.
◦ Click Save > Close.

Create an Integration
Here's the integration you create.

Create an integration that monitors business events.


1. On the Connections page, click Integrations.
2. On the Integrations page, click Create.
3. In the Create Integration - Select dialog, under Publish to ICS, click Select.
This procedure provides only part of an example integration. In an actual integration, its more likely
you will choose Map My Data. To create a full, end-to-end integration, see the Integration Cloud Service
documentation.
4. In the Create New Integration dialog, set values, then click Create.

Aribute Value

What do you want to call your Describe the connection. For example, enter Connection_ for_ Order_ Status_ Update.
integration?  
 

381
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Value

Identier Describe the connection. For example, enter CONNECTION_ FOR_ ORDER_ STATUS_
  UPDATE.
 

Version Accept the value that displays.


   

What does your integration do? Describe the connection. For example, enter Integration that uses a business event to
  monitor updates to the order status.
 

Which package does your Leave empty.


integration belong to?  
 

5. On the page that displays, you will identify the source of the connection that provides the details. For this
example, in the search window, enter Connection_for_Order_Status_Update, which is the integration that you
created earlier, then click ENTER.

The test you did earlier for the connection you created must nish successfully. If it doesn't, then the search
won't return the connection.
6. Drag and drop Connection_for_Order_Status_Update from the search results onto the Drag and Drop a
Trigger area.
7. In the Congure Oracle ERP Cloud Endpoint dialog, specify the events and scenarios for the ERP Cloud
connection. Set values, then click Next.

Aribute Value

What do you want to call your Describe the endpoint. For example, enter PublishOrderStatusUpdated.
endpoint?  
 

What does this endpoint do? Describe the connection. For example, enter Publish the OrderStatusUpdated event.
   

8. Choose the With Business Events option.

Integration Cloud Service uses the URLs you set up earlier to get the event catalog, and then display it in the
Business Event for Subscription list. This list helps you choose from the events that are available in Oracle ERP
Cloud.
9. In the Business Event for Subscription list, enter Order, then click Sales Order Notication > Next.
10. On the Congure the Response to Send to the Oracle ERP Cloud Application page, note that Integration Cloud
Service only listens for events in this integration, then sends them to subscribers without replying to Order
Management. So, click None > Next.
11. On the Summary page, click Done.

Track Business Events


Track business events so you can test and monitor your integration. Track at least one business event so you can
monitor your deployment during normal operations.
1. On the page that displays, click Tracking.

382
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Use Tracking to test your set up. Use it to view the business events that your integration raises in the
monitoring system that Integration Cloud Service provides.
2. For this example, on the Business Identiers for Tracking page, in the Source tree, under the result branch, click
Load More.
Here are the business identiers you will track.

3. Drag and drop SourceTransactionNumber from the hierarchy tree to the rst row of the Tracking Field
column.
4. Drag and drop Event from the hierarchy tree to the second row of the Tracking Field column.
5. In the result branch, expand LineStatusUpdate, then click Load More.
6. Drag and drop StatusCodeNewValue from the hierarchy tree to the third row of the Tracking Field column.
7. Click Done.
8. On the page that displays, click Save > Exit Integration.
9. On the Integrations page, in the Connection_for_Order_Status_Update row, click Pending Activation.
10. In the Conrmation dialog, add a check mark to the Enable Tracingoption, then click Yes.

Test Your Set Up


1. Sign into Order Management, create a sales order, add one order line, use the Shipment Details tab to set the
Requested Date to a time that occurs in the future, then click Submit.
2. In the Conrmation dialog, make a note of the order number that displays, such as 492634, then click OK.
The shipment step of the orchestration process runs, sets the Status to scheduled, then displays the
status on the fulllment line in the Order Lines tab. This shipment step raises the business event that you

383
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

specied earlier. You must have already set up this orchestration process and nished other setup in Order
Management.
3. Navigate back to Integration Cloud Service, then click Monitoring.
4. On the Integrations Dashboard, click Tracking, then click anywhere in the Messages area.
5. In the search window, enter the order number you noted earlier, such as 492634, then click ENTER.
6. In the search results, notice that Order Management raised more than one event for the sales order. Click the
event at the top of the list, which is the most recent event.
7. On the page that displays, click Business Identiers, then verify that the tracking details you set up for tracking
earlier displays.
Here are the details you set up in this example.

◦ SourceTransactionNumber. Identies the order number.


◦ Event. Identies the business event that gets triggered, which is FulllmentLineStatusUpdate.
◦ StatusCodeNewValue. Identies the new status value of the fulllment line, which is Scheduled.

For example.

Related Topics
• Overview of Security Console

Filter Details when Using Integration Cloud Service with Order Management
Filter the event notications that Integration Cloud Service sends to your channel or fulllment system.
1. Use the Manage Business Event Trigger Points page to set up trigger points that enable event Order Status
Updated.
2. Use Integration Cloud Service to create an integration.
For details, see resources on the Oracle Help Center.

◦ Using Integration Cloud Service with Order Management to Communicate Events: Procedure
◦ Tutorials for Oracle Integration Cloud Service
◦ Videos for Oracle Integration Cloud Service

384
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

◦ Developing Integration Flows with Integration Cloud Service at hp://www.oracle.com/webfolder/


technetwork/tutorials/obe/cloud/ics/DevelopingIntegrationFlowswithIntegrationCloudServicesOBE/
ICS_OBE.html
3. Sign into Integration Cloud Service and add lters.

◦ Open the mapping that maps the integration to Order Management Cloud.
◦ To allow events that only originate for sales orders from Order Management, create a lter on the Source
Transaction System aribute.
◦ To ignore events for a trigger that you set up on the Manage Business Event Trigger Points page, create
a lter on the Event Code aribute for each trigger you must lter.

Use dierent aributes, such as Country, SourceTransactionSystem, or EventCode, to create an expression.

For details, see topics in the Using Oracle Integration Cloud Service section on Oracle Help Center.

◦ Conguring Oracle ERP Cloud Trigger Request Properties


◦ Conguring Oracle HCM Cloud Trigger Request Properties
◦ Creating Routing Expression Logic in Both Expression Mode and Condition Mode in Creating Integrations

Get CSF Keys So You Can Sign Into Integration Cloud Service
Get the CSF (Credential Store Framework) key you need to sign into Oracle Integration Cloud Service.

1. Send a service request to Oracle.

Service Request Section Value

Subject line Include text.


   
Create the CSF-KEY that we can use to integrate Order Management Cloud with Oracle
Integration Cloud Service
 

Body Provide the identity domain that your integration can use for Order Management Cloud
  and for Oracle Integration Cloud Service subscriptions. For example, icssvc. identity.
domainidm2152.
 
Request a separate CSF-KEY for each order administrator who must access Integration
Cloud Service.
 

2. Wait for Oracle to reply to your service request. When Oracle does reply, provide them with the user name and
password that you use to access Integration Cloud Service. Oracle will then create the CSF-KEY.

Transportation
Overview of Integrating Order Management with Transportation Management
Integrate Order Management Cloud with Oracle Transportation Management or some other transportation
management system that resides outside of Oracle so it sends sales orders for transportation planning, and receives
updates at fulllment milestones, such as plan complete or proof of delivery.
• Leverage your transportation management system so it can eciently plan transportation.

385
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

• Optimize the shipment that ships each sales order and minimize freight costs while meeting your customer
delivery requirements.
• Use Transportation Management to schedule and optimize shipments, nalize the transportation plan, tender
shipments to carriers, and send updated schedule dates to Order Management, providing the Order Manager
with visibility to the new shipment schedule.
• Enable your users to search sales orders according to scheduled ship date, scheduled arrival date, actual
delivery date, or transportation planning order.
• Update Order Management after the customer receives shipment. Use updated dates and statuses to identify
exceptions and control orchestration process ow.
• Provide nal delivered status after the item ships.
• Enable Order Management to use the same process for a change order that it uses for the original sales order.
• Invoice each sales order only after delivery.
• Get a delivery notication when fulllment delivers the shipment.
• Implement an end-to-end ow with Oracle Inventory Cloud for shipments.

386
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Order Management sends order status details to Transportation Management when the user creates, revises, or cancels
the sales order. Transportation Management plans and does fulllment, sends updated scheduling details to Order
Management, then Order Management displays them in fulllment views in the Order Management work area.

This example illustrates how the fulllment line and Shipping tab display updated values for shipping aributes.

• Scheduled Ship Date


• Scheduled Arrival Date
• Actual Ship Date
• Actual Delivery Date
• Transportation Planning Order

387
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

• Shipped Quantity
• Fullled Quantity
• Actual Fulllment Date

How Order Management Integrates with Transportation Management


An integration between Order Management Cloud and Oracle Transportation Management can include more than one
Oracle solution, such as Oracle Global Trade Management, Inventory Management Cloud, and so on.

1
9

2 Define Party and


Classify Product Ship Item
Create Sales 8
Order Declare Export

Send Tender
Screen Party to Carrier
for Compliance

Screen for Export Create Export


3 Controls Documents
Determine Pick and
License Orchestrate and Pack 7
Fulfill Order
6
4

5
Legend:
Global Trade Management or Transportation Management
Supply Chain Management Cloud

For example, here's how an integration with trade compliance works.

1. Dene Party and Classify Product. A Compliance Manager uses the administrative interface in Global Trade
Management to set up the party that identies the customer and to classify the item.
2. Create Sales Order. An Order Entry Specialist creates a sales order in the Order Management work area. The
sales order references the customer and item that the Compliance Manager created.
3. Screen Party for Compliance, Screen for Export Control, and Determine License.

Screening Request

Inventory
Integration Global Trade
Management
Cloud Service Management
Cloud

Screening Result

Inventory
Global Trade Integration
Management
Management Cloud Service
Cloud

388
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Note.

◦ Inventory Management Cloud sends a screening request through Integration Cloud Service to Global
Trade Management. You can also set up Order Management to do trade compliance screening before
submiing the sales order, and you can use Inventory Management Cloud to screen during shipping.
◦ Global Trade Management screens the party for trade compliance according to request details that
you set up in Inventory Management Cloud. For example, you can request to screen shipment lines on
a specic step during the fulllment process according to your business requirements, such as after
fulllment staged fulllment lines but hasn't shipped them. Global Trade Management can also screen
the transaction for export controls, and can screen the party and transaction for licensing.
◦ Global Trade Management sends screening results through Integration Cloud Service to Inventory
Management Cloud.
4. Orchestrate Order. Order Management orchestrates fulllment for the sales order, including creating a
shipment request in Shipping.
5. Fulll Order. Transportation Management receives a transportation management request for the fulllment
line from Order Management, acknowledges the request, and converts it to an order release.

◦ Transportation Management also creates a transportation planning order.


◦ Transportation Management examines the supply chain, creates an optimal transportation shipment for
one or more fulllment lines, creates a transportation plan, then creates and sends a shipment request to
Oracle Fusion Shipping.
◦ Transportation Management can create dierent types of direct or consolidated shipments, including
single origin truckload, single destination truckload, multistop truckload, less than truckload (LTL), parcel,
ocean, rail, and so on.

The Order Management work area updates the screening status on the Order page during orchestration. It also
updates the transportation planning order and orchestration process number on the Fulllment Lines tab, and
it updates the status of the orchestration plan on the Orchestration Process tab with the details it receives from
Transportation Management.

6. Pick and Pack. Oracle Fusion Shipping picks and packs the sales order in the warehouse.
7. Create Export Documents. Optional. If the ow includes Global Trade Management, then it creates export
documents, if necessary, and also creates the Shipment Trade Transaction. As an option, it can also screen
for compliance according to how you set it up for screening during order fulllment, and then send screening
results and reason to Shipping.
8. Send Tender to Carrier. Oracle Transportation Management creates and sends the tender to carrier. If
necessary, Global Trade Management declares the export.
9. Ship Item. Oracle Shipping ships the item and sends the shipment advice to Order Management and
Transportation Management. The customer receives and acknowledges receipt, then Transportation
Management sends shipment delivery conrmation to Order Management. Order Management sends the
fulllment line to Oracle Fusion Accounts Receivable for invoicing, then sets the fulllment line status to Closed.

Guidelines for Integrating Order Management with Transportation Management


Set up an orchestration process, manage connectors, business rules, constraints, and use web services to integrate
Order Management Cloud with Oracle Transportation Management.

389
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Use Web Services


Order Management doesn't come predened to integrate with Transportation Management or Global Trade
Management. Starting in Release 13, you can use Integration Cloud Service, a synchronous web service, or some other
asynchronous web service, to integrate with your transportation management system. Before Release 13, you must use
only an asynchronous web service.

Communicate details through a web service.

• Required.

◦ Send details from Order Management to Transportation Management when the user creates, revises, or
cancels a sales order.
◦ Send acknowledgement from Transportation Management to Order Management.

• Optional.

◦ As an option, send fulllment details from Transportation Management to Order Management. For
example, conrm that Transportation Management created the order release, send transportation plan
that includes updated schedule dates, or send delivery conrmation details, such as delivery date.

390
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

391
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Set Up Orchestration Process


Add an orchestration process step that sends a request to Transportation Management. Add another step that waits for
the reply.

Note.

• Use the predened DOO_TransportationPlanning task type in the orchestration process. This task type allows
Order Management to send a new request to the transportation management system, and to update or cancel
a request that already exists.
• Reference DOO_TransportationPlanning at any point in the stepwise sequence of an orchestration process,
depending on your business requirements. For example, set up an orchestration process so it identies the
source of supply, reserves inventory, then plans transportation.

Wait for the response.

• It might be necessary to wait for a response from Transportation Management in some situations. For
example, an order release is a representation of the sales order in Transportation Management. Transportation
Management uses the sales order as input to create the order release.

If Transportation Management can't successfully create the release, for example, an aribute that it requires for
planning transportation is missing a value, then it might be useful to prevent the orchestration process from

392
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

proceeding, such as to a ship item step, until the Order Manager can determine whether to allow the process to
proceed without the release.
• To add a wait step, copy the Send Request step, then modify the copy as necessary.
• Use value DOO_TP_REQ_ACCEPT or value CANCELED in the Status Code aribute as the exit criteria for the
wait step.
• Flow doesn't proceed to the next step until Transportation Management replies that it successfully created the
sales order release.
• Don't wait for a response unless you need it to meet a business requirement. Waiting for the response increases
the possibility that the orchestration process might take a long time to nish, or get stuck waiting for the
response.

Process the response.

• Process the response from Transportation Management at dierent steps in the orchestration process, such
as after the transportation plan nishes, or after Transportation Management sends proof of delivery. Order
Management can use the response after the transportation plan nishes even if the orchestration process isn't
currently running the DOO_TransportationPlanning task.
• DOO_TransportationPlanning uses an indicator to mark each fulllment line that Transportation Management
planned so some other system can process it.

For example, the predened integration with Inventory Cloud sets a transportation planning hold on each
shipment request that references a fulllment line that contains this indicator. The integration releases the hold
only after Transportation Management receives the transportation shipment plan.

At run time, the Status aribute on the order line references DOO_TransportationPlanning on the orchestration process
to get the status for Awaiting Transportation Planning Response.

393
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Manage Change Orders

• The DOO_TransportationPlanning task and Shipment task come predened to use dierent aributes to
identify change. You must modify them so they use the same aributes. For details, see the Manage Order
Aributes That Identify Change topic.
• If your orchestration process includes branching, and if you include the Shipment task in one or more
branch, and if you expect transportation and shipping will process the order line, then you must include the
DOO_TransportationPlanning task in each branch that includes the Shipment task. For Example, if you include
Shipment in branch x for normal shipping and branch y for back-to-back shipping, then you must include
DOO_TransportationPlanning in x and y instead of including DOO_TransportationPlanning in a step that occurs
before the branch.

394
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

• Make sure the DOO_TransportationPlanning task and the Shipment task use the same compensation paern.
For details about compensation paerns, see the Manage Change That Occurs During Order Fulllment topic.

Get Transportation Plan


As an option, get transportation plan details from Transportation Management to update aributes in Order
Management.

Note.

• Get updated scheduled dates and order release number from Transportation Management.
• Prevent Order Management from updating the sales order after it sends it to Transportation Management. See
the section about constraints later in this topic.

395
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Note these points about geing the transportation plan and delivery conrmation.

• The transportation plan uses the DOO_TP_PLANNED value in the TaskInstanceStatusCode aribute.
• The transportation plan updates the Scheduled Ship Date aribute and the Scheduled Arrival Date aribute.
• If Transportation Management splits the transportation plan into two separate shipments, then Transportation
Management sends the latest date of these shipments to Order Management. For example, if shipment
one delivers on January 1, and shipment two delivers on January 15, then the transportation plan that
Transportation Management sends to Order Management will include only the latest date of the nished
shipment, which is January 15.
• If the orchestration process receives the transportation plan when its not on a wait step, then it will reject the
plan and will reject the request to update.

To make sure the orchestration process reaches a wait step, allow about 10 minutes between the most recent
update that Order Management sends to Transportation Management, and the time when Transportation
Management sends the plan update to Order Management.

Get Delivery Conrmation


As an option, add a pause step to make sure invoicing nishes before conrming delivery.

• Add a pause step that's similar to the Shipping step in the orchestration process.
• Get delivery conrmation at dierent points in the orchestration process, such as Awaiting Billing.

For example, to prevent the Invoice step from running before conrming delivery, add a pause step before the
invoice step, then set up the pause so it waits until Order Management receives delivery conrmation.
• Use the SAC_SYSTEM_EVENT_POD_PAUSE event and the TransportationPlannedFlag aribute.
• Use SAC_SYSTEM_EVENT_POD_PAUSE to release the pause when Transportation Management sends status
DOO_TP_DELIVERED.
• Make sure the orchestration process is on a wait step when it receives the response.
• The status description for DOO_TP_DELIVERED is Shipment Delivered. However, if you use a pause to get
delivery status, then Shipment Delivered doesn't display. Instead, set up a pause status that displays Shipment
Delivered.

On the pause step, click Click for Rule, then create two pause rules.

Order Management releases SAC_SYSTEM_EVENT_POD_PAUSE after it receives delivery conrmation so you can use
this event to process a subsequent sales order.

Rule 1

Create the rule that releases the pause task.


If
"D" equals ignore case DooSeededOrchestrationRules.DOOFLine.TransporationPlannedFlag
then
assert new DooSeededOrchestrationRules.SacResult
(sacType:DooSeededOrchestrationRules.SacResult.SAC_TYPE_IMMEDIATE)

where

396
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Code Description

"D" D means Delivered.


   

If "D" equals ignore case If the TransporationPlannedFlag aribute on the fulllment line contains D.
DooSeededOrchestrationRules.  
DOOFLine.
TransporationPlannedFlag
 

assert new Then immediately release the pause task and continue to the next step in the orchestration
DooSeededOrchestrationRules. process.
SacResult (sacType:  
DooSeededOrchestrationRulesSacResultSACTYPE
IMMEDIATE)
 

Rule 2

Create the rule that pauses the orchestration process.


If
NOT ("D" equals ignore case DooSeededOrchestrationRules.DOOFLine.TransporationPlannedFlag )
then
assert new DooSeededOrchestrationRules.SacResult
(eventName:DooSeededOrchestrationRules.SacResult.SAC_SYSTEM_EVENT_POD_PAUSE,
reevaluateFlag:"Y",sacType:DooSeededOrchestrationRules.SacResult.SAC_TYPE_EVENT)

where

Code Description

"D" D means Delivered.


   

If NOT ("D" equals ignore case If TransporationPlannedFlag on the fulllment line doesn't contain D.
DooSeededOrchestrationRules.  
DOOFLine.
TransporationPlannedFlag )
 

assert new
DooSeededOrchestrationRules. Then.
SacResult (eventName:
• Use business event SAC_SYSTEM_EVENT_POD_PAUSE to pause the orchestration
DooSeededOrchestrationRulesSacResultSACSYSTEM
EVENT_ POD_ PAUSE process.
reevaluateFlag: "Y"sacType: • Set reevaluateFlag:"Y" to evaluate the condition every time the orchestration
process nishes a step. If the condition doesn't evaluate to true, then release the pause
DooSeededOrchestrationRulesSacResultSACTYPEEVENT)
  task.
• Use SAC_TYPE_EVENT to pause the pause task until Order Management releases
SAC_SYSTEM_EVENT_POD_PAUSE.

For details about how to create a pause rule, see the Pause Orchestration Processes topic.

397
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Prevent Changes After Transportation Planning Finishes


If you use Oracle Inventory Management before 18C, then enable the predened Shipment Plan Complete processing
constraint.

Note.

• Shipment Plan Complete prevents the user from revising the order line in the Order Management work area
after Transportation Management sends the transportation plan to Inventory Management. This constraint
comes predened as disabled. You can enable it during set up.

398
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Before Release 18C, Inventory Management supports only a quantity change or order cancel after
Transportation Management sends the transportation plan to Inventory Management. Inventory Management
doesn't support any other order revisions before Release 18C.

Inventory Management supports revisions starting with Release 18C. You can disable Shipment Plan Complete
after you upgrade to Release 18C.
• Order Management uses the transportation plan to determine whether Transportation Management already
sent the transportation plan to Shipping.
• If you don't use Oracle Inventory Management, then don't enable the Shipment Plan Complete constraint.

For details, see the Manage Processing Constraints topic.

Set Up Integration
Set Up Connector

Set up a connector on the Manage Connector Details page.

Note.

• If you use the predened integration in Integration Cloud Service, then set Invocation Mode to Business Event.
• If you don't use the predened integration, then set Invocation Mode to Synchronous or Asynchronous.

399
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

• Name the connector TransportationPlanning. Order Management uses the name at various locations in the
architecture. Using TransportationPlanning will help you identify the connector involved in the ow that you're
seing up or during troubleshooting.

Use Predened Integration in Integration Cloud Service

Use a predened integration in Integration Cloud Service as a starting point for your integration. Use the
TransportationPlanning connector to connect through a business event.

For example.

400
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Note.

• A business event triggers the integration.


• One fulllment line in Order Management maps to one order release plus one order release line in
Transportation Management. For example, the integration maps the ScheduleShipDate aribute in Order
Management to the GLogDate aribute in Transportation Management.
• Modify the predened integration to meet your business requirements. For example, to group fulllment lines
in a shipment set or congured item, group them into a single order release in Transportation Management.
• Transportation Management sends a status update to Order Management for each order release line that maps
to one fulllment line.

Examine predened integrations that use Integration Cloud Service.

• Navigate to hps://cloudmarketplace.oracle.com/marketplace/en_US/listing/30174237 and read the content.

401
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

• Click Get App to access article Integration with OTM or GTM using ICS (Doc ID 2209248.1) on My Oracle
Support.
• Import one of the example integrations into Integration Cloud Service. For example, import integration
OTM_OM, Communicate Order Shipping Information to Order Management Cloud.
• Examine the integration in the Integration Cloud Service user interface.

Example Response Payload

Here's an example payload of the response that Transportation Management sends.

Note.
• The predened integration in Integration Cloud Service uses this structure. If you modify it, then use this
payload as an example of the data that your fulllment system must send.

402
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

• The response can include one or more fulllment lines.


• The IntegrationContextCode aribute must equal the DOO_TransportationPlanning task type.
• Make sure the TaskInstanceStatusCode aribute contains a value that accurately reects the status, such as
DOO_TP_PLANNED. For details about the statuses you can use, see the Integrate Order Management with
Transportation Management topic.
• The screen print truncates the TransportationOrderReleaseIdentier line. Here's the full line.
<com:TransportationOrderReleaseIdentifier>OR_300100090338878</com:TransportationOrderReleaseIdentifier>

Related Topics
• Orchestration Processes

Integrate Order Management with Transportation Management


Use Integration Cloud Service to create an integration between Order Management and Transportation Management.
You can also set up an orchestration process so it does Transportation Management tasks.

In this example, you create an orchestration process so it sends the request for transportation planning after the
fulllment system identies a source and reserves inventory.

403
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

This topic includes example values. You might use dierent values, depending on your business requirements.

Try it.

1. Use Integration Cloud Service to create an integration between Order Management and Transportation
Management.

Make sure you set the business event trigger points that you need to start the integration process. For details,
see the Overview of Using Integration Cloud Service with Order Management topic.
2. Create the orchestration process.

◦ Sign into Order Management with administrative privileges.


◦ In the Navigator, click Setup and Maintenance.
◦ In the Setup and Maintenance work area, go to the task.

• Oering: Order Management


• Functional Area: Orders
• Task: Manage Orchestration Process Denitions
◦ On the Manage Orchestration Process Denitions page, search for ShipOrderGenericProcess.
◦ In the search results, click Actions > Duplicate.

You can integrate Order Management with Transportation Management only through a long-running
task.
◦ In the Edit Orchestration Process Denition dialog, set values, then click Save.

Aribute Value

Process Name Enter any text. For this example, enter ShipOrder_ PlanTransportation.
   

Process Display Name Enter any text. For this example, enter Ship Order and Plan Transportation.
   

Process Class Ship Order Class


   

3. Add status conditions.

◦ Click Status Conditions.


◦ In the Orchestration Process Status Values area, add status values.

Aribute Value

Awaiting Transportation Planning "Transportation Planning" = "DOO_ TP_ AWAIT_ACCEPT"


Response  
  Use this expression as an exit condition for the Wait step.
 

Transportation Planning Request "Transportation Planning" = "DOO_ TP_ REQ_ACCEPT"


Accepted  
 

404
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Value

Transportation Planning Request "Transportation Planning" = "DOO_TP_ REQ _REJECT"


Rejected  
 

Transportation Planning "Transportation Planning" = "DOO_ TP_PLANNED"


Completed  
 

4. On the Step Denition tab, add a step at any location in the sequence of steps.

Aribute Value

Step Name Send Request to Transportation Management


   

Step Type Service


   

Task Type DOO_ TransportationPlanning


   

Task TransportationPlanning
   

Service Create Transportation Planning


   

Update Service Update Transportation Planning


   

Cancel Service Cancel Transportation Planning


   

Use Transactional Item Aributes Contains a check mark.


   

Use Flexeld Aributes Contains a check mark.


   

This step sends the sales order to the fulllment system for transportation planning. For this example, add this
step immediately after the Create Reservation step.
5. Optional. Add this step immediately after the Send Request to Transportation Management step.

Aribute Value

Step Name Wait for Transportation Management


   

Step Type Service


   

Task Type DOO_ TransportationPlanning

405
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Value

   

Task TransportationPlanning
   

Service Wait for Transportation Planning Validation


   

Exit Criteria
  Add a check mark to each criteria.

◦ Canceled

◦ Transportation Planning Request Accepted

This exit criteria causes the orchestration process to wait until the Transportation Planning
Request Accepted status equals Y, or until Order Management cancels the request, such as
through a time out.

Next Expected Task Status Transportation Planning Request Accepted


   

Use Transactional Item Aributes Contains a check mark.


   

Use Flexeld Aributes Contains a check mark.


   

Note.

◦ This step temporarily pauses the orchestration process so Transportation Management can validate the
planning request before the orchestration process creates the shipment request.
◦ Set up your orchestration process so it processes the response while waiting on a pause step.
◦ If you don't add this step, then the orchestration process will continue to run and fulll the sales order
without waiting for validation from Transportation Management.

Related Topics
• Orchestration Processes

Convert Shipment Costs to Freight Charges


Use your own task to convert shipment costs to freight charges.
1. Create your own task. For details, see the Create Your Own Task Type topic.
2. Add a new step in your orchestration process that references your new task. Place it after the step that
completes the shipment task and before the step that starts the invoice task. The published payload for your
task will contain the shipping cost you capture in the shipping system.
3. Set up the connector so it uses this ow.

◦ Sends the immediate response rst.


◦ Converts cost into charges, including the mark up, if necessary.
◦ Sends the delayed response that contains charges back to Order Management.

406
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

The connector updates these charges in Order Management Cloud, then sends them to invoicing.

Points to Consider
• Set up your task as a long-running task that uses a wait step in your orchestration process.
• Send the existing charges back through the task response in addition to the new charges that you're adding for
freight.
• Make sure you use only one primary charge for each ChargeAppliesTo on each fulllment line.
• Make sure you set the Applies To aribute to SHIPPING for each new charge you add.
• If you split the shipment lines, and if you capture more than one shipping cost in one fulllment line, then sum
the costs and send a single freight charge through your task.
• If you must calculate tax on the freight charges, see the Integrate Order Management with Oracle Receivables
topic.

Examine the charge denitions.

• To refund the freight charges in a return material authorization (RMA), make sure you set up the Charge
Denition Code as refundable.
• Only one charge can exist for each Charge Denition Code.
• Make sure the combination of Charge Denition Code, Charge Type Code, Charge Sub Type Code and Price
Type Code is valid.

To verify charge denition codes, go to the Setup and Maintenance work area, then open the Manage Pricing Charge
Denitions page. For details, see the Manage Pricing Charge Denitions topic.

Files to Download
Some payloads you use in this topic are too long or complex to display in this document, but you can download them as
les from My Oracle Support.

1. Go to White Papers for Order Management Cloud (Doc ID 2051639.1) at hps://support.oracle.com/epmos/


faces/DocumentDisplay?_afrLoop=472607338634463&id=2051639.1.
2. Download the Payloads and Other Files That Support Implementation aachment.
3. Use the les in the aachment.

File Description

CostToChargeTTLRequest. xml Example payload that requests to convert costs to freight charges.
   
Note that the PriceAdjustmentTL tag contains the cost that the ow records when it conrms
shipment.
 

CostToChargeMappings. xlsx Example mapping that the ow uses for a delayed response.
   

CostToChargeV. xsl Use this transformation style sheet to convert CostToChargeTTLRequest. xml to
  CostToChargeDelayedResponse. xml.
 

407
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Example Payloads
Here are some example payloads. Use them to see the data that must ow to and from Order Management for your
task.

Cost to Charge Immediate Response

Here's an example payload that the CostToChargeImmediateResponse.xml le contains.


<nstrgmpr:headerTR xmlns:nsmpr4="http://xmlns.oracle.com/apps/scm/doo/processOrder/flex/
salesCreditContextsB/" xmlns:nsmpr5="http://xmlns.oracle.com/apps/scm/doo/processOrder/flex/
fulfillLineDetailContextsB/" xmlns:nsmpr2="http://xmlns.oracle.com/apps/scm/doo/taskLayer/activity/
model/view/" xmlns:sdoJava="commonj.sdo/java" xmlns:nsmpr3="http://xmlns.oracle.com/adf/svc/
types/" xmlns:nsmpr8="http://xmlns.oracle.com/apps/scm/doo/processOrder/flex/headerContextsB/"
xmlns:client="http://xmlns.oracle.com/apps/scm/doo/taskLayer/externalInterfaceLayer/
DooTaskExternalInterfaceVirtualPartnersComposite/FulfillmentRequest" xmlns:nsmpr9="http://xmlns.oracle.com/
apps/scm/doo/processOrder/flex/priceAdjustmentContextsB/" xmlns:wsdl="http://schemas.xmlsoap.org/
wsdl/" xmlns:nsmpr6="http://xmlns.oracle.com/apps/scm/doo/processOrder/flex/lotSerialNumberContextsB/"
xmlns:nsmpr7="http://xmlns.oracle.com/apps/scm/doo/processOrder/flex/fulfillLineContextsB/"
xmlns:nsmpr0="http://xmlns.oracle.com/apps/scm/doo/processOrder/flex/paymentContextsB/"
xmlns:nsmpr1="http://xmlns.oracle.com/apps/scm/doo/processOrder/service/" xmlns:nstrgmpr="http://
xmlns.oracle.com/apps/scm/doo/taskLayer/model/" xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype"
xmlns:sdo="commonj.sdo" xmlns:ns1="http://xmlns.oracle.com/apps/scm/doo/taskLayer/activity/model/"
xmlns:tns="http://xmlns.oracle.com/adf/svc/errors/" xmlns:ns0="http://xmlns.oracle.com/apps/scm/doo/
processOrder/model/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/
wsdl/soap/" xmlns:sdoXML="commonj.sdo/xml">
<nstrgmpr:HeaderId>300100135839047</nstrgmpr:HeaderId>
<nstrgmpr:FulfillLinesTR>
<nstrgmpr:FulfillLineId>300100135839049</nstrgmpr:FulfillLineId>
<nstrgmpr:SourceOrderSystem>GPR</nstrgmpr:SourceOrderSystem>
<nstrgmpr:StatusCode>AWAIT_RESPONSE</nstrgmpr:StatusCode>
<nstrgmpr:TaskType>ConvertCostToCharge</nstrgmpr:TaskType>
<nstrgmpr:Status>AWAIT_RESPONSE</nstrgmpr:Status>
</nstrgmpr:FulfillLinesTR>
</nstrgmpr:headerTR>

Cost to Charge Delayed Response

Here's an example payload that the CostToChargeDelayedResponse.xml le contains. Use the
FulllLineOrderChargeSDOTR tag to send back the shipping charges.
<?xml version="1.0"?>
<nstrgmpr:headerTR xmlns:nsmpr4="http://xmlns.oracle.com/apps/scm/doo/processOrder/flex/
salesCreditContextsB/" xmlns:nsmpr5="http://xmlns.oracle.com/apps/scm/doo/processOrder/flex/
fulfillLineDetailContextsB/" xmlns:nsmpr2="http://xmlns.oracle.com/apps/scm/doo/taskLayer/activity/
model/view/" xmlns:sdoJava="commonj.sdo/java" xmlns:nsmpr3="http://xmlns.oracle.com/adf/svc/
types/" xmlns:nsmpr8="http://xmlns.oracle.com/apps/scm/doo/processOrder/flex/headerContextsB/"
xmlns:client="http://xmlns.oracle.com/apps/scm/doo/taskLayer/externalInterfaceLayer/
DooTaskExternalInterfaceVirtualPartnersComposite/FulfillmentRequest" xmlns:nsmpr9="http://xmlns.oracle.com/
apps/scm/doo/processOrder/flex/priceAdjustmentContextsB/" xmlns:wsdl="http://schemas.xmlsoap.org/
wsdl/" xmlns:nsmpr6="http://xmlns.oracle.com/apps/scm/doo/processOrder/flex/lotSerialNumberContextsB/"
xmlns:nsmpr7="http://xmlns.oracle.com/apps/scm/doo/processOrder/flex/fulfillLineContextsB/"
xmlns:nsmpr0="http://xmlns.oracle.com/apps/scm/doo/processOrder/flex/paymentContextsB/"
xmlns:nsmpr1="http://xmlns.oracle.com/apps/scm/doo/processOrder/service/" xmlns:nstrgmpr="http://
xmlns.oracle.com/apps/scm/doo/taskLayer/model/" xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype"
xmlns:sdo="commonj.sdo" xmlns:ns1="http://xmlns.oracle.com/apps/scm/doo/taskLayer/activity/model/"
xmlns:tns="http://xmlns.oracle.com/adf/svc/errors/" xmlns:ns0="http://xmlns.oracle.com/apps/scm/doo/
processOrder/model/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/
wsdl/soap/" xmlns:sdoXML="commonj.sdo/xml">
<nstrgmpr:HeaderId>300100135839047</nstrgmpr:HeaderId>
<nstrgmpr:FulfillLinesTR>
<nstrgmpr:FulfillLineId>300100135839049</nstrgmpr:FulfillLineId>
<nstrgmpr:SourceOrderSystem>GPR</nstrgmpr:SourceOrderSystem>
<nstrgmpr:StatusCode>AWAIT_RESPONSE</nstrgmpr:StatusCode>

408
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

<nstrgmpr:TaskType>ConvertCostToCharge</nstrgmpr:TaskType>
<nstrgmpr:Status>AWAIT_RESPONSE</nstrgmpr:Status>
</nstrgmpr:FulfillLinesTR>
</nstrgmpr:headerTR>

Related Topics
• Manage Pricing Charge Denitions
• Create Your Own Task Type

409
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Shipment Tolerances
Guidelines for Seing Up Shipment Tolerances
Use these guidelines to help you prepare for and set up shipment tolerances

How it Works

1. Order Management creates and sends a shipment request to Oracle Fusion Shipping. The request includes
shipment tolerances.
2. Shipping enforces the tolerances, ships the line, then sends a reply to Order Management.
3. Order Management evaluates the fulllment line to determine whether to proceed to the next orchestration
process step, or to split the line.
4. Order Management sends the sales order to Receivables.
5. Receivables invoices the transaction.

410
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

What Shipping Does


• Shipping uses each shipment advice to indicate whether it completely fullled the order line, or whether ship
releases are still pending for the order line.
• If the shipment advice indicates that pending releases remain open for the order line, then Order Management
splits the line so it can fulll the remaining open quantity.
• If shipping ships the order line below the minimum tolerance, then it doesn't allow the Shipping Manager to
close the order line. The Order Entry Specialist must cancel the line in the Order Management work area.
• Shipping sends the ordered quantity that it actually shipped to Order Management.
• Shipping conrms the shipment, sets the FinalShipmentFlag aribute to Y, then sends the value to Order
Management.

What Shipping Doesn't Do


• Doesn't ship quantities above the maximum tolerance or below the minimum tolerance.
• Doesn't cancel a pending release that requires cancellation when fulllment doesn't need another shipment to
nish the order. The Order Entry Specialist must cancel the line in the Order Management work area.
• Doesn't allow the Shipping Manager to ship more than what the maximum tolerance allows.

What Receivables Does

Receivables invoices the transaction according to the quantity that Order Management sends.
• Undershipment. Order Management sends the actual, fullled quantity to receivables.
• Overshipment. Order Management sends the ordered quantity or fullled quantity depending on the value of
the Quantity to Invoice for Overshipment parameter.

Points to Consider
• You can add tolerances to an order line on the Create Order page in the Order Management work area, through
File-Based Data Import (FBDI), Electronic Data Interchange (EDI), a web service, or REST API.
• If your tax authority requires you to create a tax invoice before you ship the sales order, then consider how
seing the Quantity to Invoice for Overshipment system parameter aects your tax compliance requirements.
• If you decrease the order quantity, or if you change the tolerance behavior in a way that results in the shipped
quantity meeting the tolerance behavior, then you must create another shipment to close the fulllment line.
• Implementing tolerances doesn't aect your integration with Transportation Management Cloud or
Global Trade Management. If a problem occurs with one of these integration, you might need to manually
troubleshoot it.

Revising Sales Orders


• You can't manually change shipment tolerances on an order line that already exists even if you change other
aributes on the line when you revise a sales order.
• Order Management doesn't update the revised line according to changes you might have made to seings
on order management parameters or in Product Information Management. But if you add a new line during a
revision, then Order Management does use your latest seings.
• You can't use an order management extension or transformation rule to change the tolerance on a line that
already exists. However, you can use an extensible exeld and an extension to manually change the shipment
tolerance.
• If you apply a tolerance, then you can't reprice a sales order after you submit it to fulllment.

411
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Back-to-Back Flows

Order Management sets tolerances on the order line during a back-to-back ow in the same way it sets them for a
regular order line. Shipping fullls an overshipment or undershipment during back-to-back in the same way it fullls a
regular order line.

Limitations

You can't apply a tolerance.

• On a congured item, assemble-to-order item, pick-to-order item, or kit.


• On an item that you can't ship, such as a service or warranty.
• On a drop ship, transfer order, or return order. You can set up Order Management to add tolerances to sales
order in these ows, but downstream applications, such as receiving or shipping, won't recognize or use your
tolerances.
• In the Order Management work area. You can specify tolerance only during set up, such as in Product
Information Management, on the Order Management parameters, through an order management extension, or
a transformation rule.
• When you reprice the sales order in the Order Management work area.
• After you submit the sales order to order fulllment. For example, after the user clicks Submit on the sales
order.
• Through order import, such as le-based data import, or through an inbound web service. However, if
you set the Source for Shipment Tolerance Values parameter to a value that isn't None, and if you create a
pretransformation rule, then Order Management uses values that the parameter species for each order line
that the import or web service creates. Order Management does this before it runs your pretransformation rule.

You can't opt out of the Manage Shipment Tolerances for Sales Orders feature after you submit a sales order that
includes a shipment tolerance value isn't empty or zero. At this point, you're commied to using the feature. You also
can't revert application behavior at this point.

412
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Transformation Rules and Constraints


Use tolerances in a pretransformation rule, posransformation rule, or processing constraint. Use a tolerance value in a
business rule or order management extension to create a condition and specify more detailed behavior than what you
can set in order management parameters or Product Information Management.

For example, add a business rule.

If the item is AS54888, then set Over Fulfillment Tolerance to 28.

Or add a processing constraint.

413
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

If the Over Fulfllment Tolerance attribute on the fulfillment line is equal to 28, then prevent the user from
modifying the line.

Set Up Shipping Tolerances in Order Management


Set up shipment tolerances so you can use them in sales orders in Order Management.
Summary of the Setup

1. Enable the opt in.


2. Set up the order management parameters.
3. Set up tolerances in Product Information Management.
4. Troubleshoot your setup.

Enable the Opt In


1. In the Navigator, click Setup and Maintenance.
2. On the Setup page, choose Order Management, then click Change Feature Opt In.
3. On the Opt In page, in the Order Management row, click Features.
4. On the Edit Features page, in the Manage Shipment Tolerances for Sales Orders row, add a check mark to the
Enable option.

414
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Set Up the Order Management Parameters

Here's how it works.

Parameter Description

Default Value for Overshipment


Tolerance Set the default value that you want Order Management to use as a percent for overshipment
  tolerance on the order line.

• You must enter a positive, numeric, value.

415
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Parameter Description

• You can enter a value with up to three decimal places, such as 10.463.
• If you don't specify a value, then Order Management uses 0, by default.
• If you use a defaulting rule or order management extension to set the value, then the
rule or extension overrides the value you set for the parameter.

Default Value for Undershipment Set the default value that you want Order Management to use as a percent for undershipment
Tolerance tolerance on the order line.
   
Use the same formaing requirements described for Default Value for Overshipment
Tolerance, except don't exceed 100 for Default Value for Undershipment Tolerance.
 

Quantity to Invoice for Overshipment


  Set the quantity to invoice when fulllment ships more than the order line quantity.

• Shipped quantity. Invoice the actual shipped quantity. This is the default value.
• Ordered quantity. Invoice the order line quantity.

Assume the ordered quantity on an order line is 100 tons of steel with each ton priced at $800.
You over ship 103 tons for the order line. If you set Quantity to Invoice for Overshipment to.

• Shipped quantity. The invoice will contain 103 tons with a total line value of $82,400.
• Ordered quantity. The invoice will contain 100 tons with a total line value of $80,000.

Note.

• If shipped quantity is equal to or less than ordered quantity, then Order Management
bills for shipped quantity. If you under ship, then Order Management bills for shipped
quantity and you can't bill for ordered quantity.
• If Order Management splits the line into more than one line, or if shipping splits the line
into more than one shipment, then Order Management splits the original fulllment
line. It also evaluates whether the sum of the shipped quantity across split fulllment
lines exceeds the sum of the ordered quantity across the same set of split fulllment
lines when it sends each split fulllment line to Receivables. Its possible that Receivables
will only recognize that the last split fulllment line over shipped.
• A change that you make to this parameter takes eect only on fulllment lines that
Order Management hasn't sent to Receivables when you save your change. Receivables
will use the old parameter value for fulllment lines that Order Management already
sent to Receivables.

Caution:  Changing this parameter aects downstream applications,


such as Receivables and Costing. Make sure you thoroughly test you
changes and determine how that aect your downstream applications in
a test environment before you implement the change in your production
environment.
 

Source for Shipment Tolerance


Values Set the source that provides default values for shipment tolerances.
 
• Shipment tolerance parameter. Use the values you set in the order management
parameters.

◦ Default Value for Overshipment Tolerance

◦ Default Value for Undershipment Tolerance

• Item validation organization. Use the values you set in the Product Information
Management work area.

416
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Parameter Description

If you specify item validation organization, and if you don't specify tolerances for the
item in Product Information Management, then Order Management uses the values
you specify for the Default Value for Overshipment Tolerance and Default Value for
Undershipment Tolerance parameters.
• None. Set the default values for shipment tolerances to zero.

Any change you make to this parameter takes eect only on new sales orders that you create
and submit after you save your changes to the parameter.

Seing the Business Unit

You can set values dierently for each business unit on each parameter. Click Add Row, then set the Business Unit
aribute. For example, when you set the Source for Shipment Tolerance Values, to set the source only for sales orders
that reference the Vision China business unit, click Add Row, then set the Business Unit aribute to Vision China in the
new row.

Here's an example that references dierent business units.

Business Unit Source for Shipment Tolerance Values

Vision China Item validation organization


   
If the business unit on the sales order is Vision China, then use your set up in Production
Information Management.
 

Vision Japan
  Shipment tolerances parameter

If the business unit on the sales order is Vision Japan, then use your set up on the parameters.

• Default Value for Overshipment Tolerance


• Default Value for Undershipment Tolerance

All Business Units None


   
If the business unit isn't Vision China or Vision Japan, then set the default values for shipment
tolerances to zero.
 

Set Up Tolerances in Product Information Management


If you set order management parameter Source for Shipment Tolerance Values to Item Validation Organization, and
if you need tolerances that are dierent from the values you set in the Default Value for Overshipment Tolerance
and Default Value for Undershipment Tolerance parameters, then you must set up tolerances in Product Information
Management.

In this example, set up an overshipment tolerance of 10%, and an undershipment tolerance of 10% for the AS54888
item.

1. In the Navigator, click Product Information Management.


2. On the Product Information Management page, click Tasks > Manage Items.

417
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

This topic assumes you already set up the AS54888 item.


3. On the Manage Items page, search for, then open the AS54888 item for editing.
4. On the Edit Item page, click Specications > Sales and Order Management.
5. In the Tolerances area, set values.

Aribute Value

Over Shipment Tolerance 10


   

Under Shipment Tolerance 10


   

Note.

◦ Enter a positive, numeric, whole number.


◦ Don't include any other symbols, such as %.
◦ Order Management treats the number you enter as a percent of the quantity ordered.
◦ You can't specify a quantity tolerance. You can only specify a percent of the ordered quantity.

Troubleshoot Your Setup

Trouble Shoot

I don't see the Over Fulllment They come predened as hidden. On the order lines tab, click View > Columns, then make sure
Tolerance or Over Fulllment each of them contains a check mark. If they don't display in the menu when you click View >
Tolerance aributes on the order Columns, then make sure you enable the tolerances opt-in feature.
line on the sales order in the Order  
Management work area.
 

I don't see the order management Make sure you enable the tolerances opt-in feature.
parameters that I use to set up  
tolerances, such as Default Value for
Overshipment Tolerance, Quantity to
Invoice for Overshipment, or Source
for Shipment Tolerance Values.
 

Examples of Seing Up Shipment Tolerances


Learn about what happens when you set up shipment tolerances for create order, revise order, and split line ows.

Create Order
You set the parameter values.

418
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Parameter Value

Default Value for Undershipment 5


Tolerance  
 

Default Value for Overshipment 25


Tolerance  
 

Source for Shipment Tolerance Item Validation Organization


Values  
 

You set values for item AS54888 in Product Information Management.

Parameter Value

Under Shipment Tolerance 10


   

Over Shipment Tolerance 50


   

You don't set any values for item AS10000 in Product Information Management.

The Order Entry Specialist creates a new sales order in the Order Management work area and adds three items. Order
Management displays a separate order line for each item.

Item Under Fulllment Tolerance Over Fulllment Tolerance

AS54888 10 50
     

AS10000 5 25
     

The Order Entry Specialist clicks Submit, and Order Management creates sales order 12345.

Copy Order
Continuing from the create order example, assume you change the parameter values.

Parameter Value

Default Value for Undershipment 0


Tolerance  
 

Default Value for Overshipment 30


Tolerance  

419
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Parameter Value

Source for Shipment Tolerance Shipment Tolerance Parameter


Values  
 

The Order Entry Specialist clicks Actions > Copy.

Order Management creates a new sales order that contains the same lines as order 12345, gets your updated parameter
values, and displays your updated tolerances on the order lines.

Item Under Fulllment Tolerance Over Fulllment Tolerance

AS54888 0 30
     

AS10000 0 30
     

You set the Source for Shipment Tolerance Values to Shipment Tolerance Parameter, so Order Management doesn't
get any tolerance values from Product Information Management. It gets them from the parameters for each item.

Revise Order
Instead of copying sales order 12345, assume the Order Entry Specialist clicks Actions > Create Revision, then creates a
new order line for the AS20000.

Order Management creates a new sales order that contains the same lines as order 12345, and displays your updated
tolerances on the order lines.

Item Under Fulllment Tolerance Over Fulllment Tolerance

AS54888 10 50
     

AS10000 5 25
     

AS20000 0 30
     

Order Management doesn't revise tolerances for order lines that it copies during a revision, but it does get the latest
values from the parameters for new lines that the user adds.

Assume the Order Entry Specialist changes the quantity for the AS10000. Order Management continues to use 0 and
30 for the tolerances. It doesn't update tolerances when the user changes quantity.

420
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Split Fulllment Lines


Continuing our example, assume the Order Entry Specialist sets the quantity on the AS54888 line to 15, then clicks
Submit.

The under tolerance for the AS54888 is 10%, and the over tolerance is 50%. The Shipping Manager is the user for
the shipment application. Shipping doesn't allow the Shipping Manager to ship less than 13 because 10% of 15 is 1.5.
Shipping rounds up to the nearest whole number, so the calculation is 15 minus 2. Shipping doesn't allow the user to
ship more than 23 because 50% of 15 is 7.5, so the calculation is 15 plus 8.

Order Management sends sales order 12345 to shipping. Shipping splits the AS54888 order line into more than one
delivery, over ships the line, then closes it.

The AS54888 line is in status Awaiting Shipping. The Shipping Manager creates and ships three deliveries with
quantities of 12, 2, and 1. Some time later, the Shipping Manager adds a quantity of 3 to the second delivery. Shipping
fullls the second delivery, cancels the third delivery, sets the FinalShipmentFlag aribute to Y, then sends the aribute
to Order Management.

The Shipping Manager examines the customer order and notices it includes two lines for the AS54888. One line
includes an ordered quantity of 7 and a shipped quantity of 12. The other line includes an ordered quantity of 3 and a
shipped quantity of 3. Both lines are awaiting billing.

Here's a summary.

Delivery ID Requested Shipped Status Fullled Pending Description


Quantity Quantity Requested
Quantity
or Ordered
Quantity

1 7 12 Order N 3 You can't ship


      Management     more than 12
Sent Details to because two
Invoicing deliveries are
  open and they
have a total
quantity of
three.
 

2 2 3 Order Y 0 You met the


      Management     over tolerance.
Sent Details to  
Invoicing
 

3 1 - Canceled - - -
             

Examples of How Shipping Handles Tolerances


Shipping sends the requested quantity in the shipment advice for each shipment or delivery.

Shipping might split a fulllment line to help meet the requested delivery date. It uses a formula.
• The ordered quantity on the original fulllment line equals the requested quantity on the shipment.
• Shipping splits the fulllment line.

421
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

• The ordered quantity on the new, split fulllment line equals the total ordered quantity minus the requested
quantity on the shipment.
• When the ordered quantity on the fulllment line equals the requested quantity on the shipment, there are no
more splits.

Under Shipment in One Shipment

Assume Order Management sends a fulllment line to shipping.

Fulllment Line Ordered Quantity Over Tolerance Under Tolerance Shipped Quantity Status

FL1 10 0% 20% Empty Awaiting Shipping


           

A truck load limit or transportation planning recommendation sometimes requires a split. There's only a quantity of
8 on hand, so the shipping clerk manually splits the shipment, creates shipment S1, splits the fulllment line into two
shipment lines, and ships SL1. Shipping receives conrmation that the customer received SL1, so it cancels SL2 because
the quantity of 8 on SL1 falls within the under tolerance.

Shipment Shipment Line Requested Quantity Shipped Quantity Status

S1 SL1 8 8 Shipped
         

- SL2 2 0 Canceled
         

where

• Ordered quantity is 10.


• Under tolerance is 20%.
• Under quantity is 10 multiplied by 20% equals 2.
• Minimum quantity is 10 minus 2 equals 8.

Shipping sends a ship conrmation to Order Management.

Fulllment Line Ordered Quantity Over Tolerance Under Tolerance Shipped Quantity Status

FL1 10 0% 20% 8 Shipped or


          Awaiting Billing
 

What if only 5 are on hand? Shipping ships 5 and puts 5 more on backorder.

422
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Shipment Shipment Line Requested Shipped Quantity Pending Status


Quantity Shipment
Quantity

S1 SL1 5 5 5 Shipped
           

- SL2 5 - - Backordered
           

If shipping can't fulll SL2 before the customer receives SL1, then it splits the fulllment line, places the 5 it hasn't
shipped on FL2, and sends the results to Order Management.

Fulllment Line Ordered Quantity Over Tolerance Under Tolerance Shipped Quantity Status

FL1 5 0% 20% 5 Shipped/ Awaiting


          Billing
 

FL2 5 - - - Backordered
           

Over Shipment in One Shipment

Assume Order Management sends a fulllment line to shipping.

Fulllment Line Ordered Quantity Over Tolerance Under Tolerance Shipped Quantity Status

FL1 10 30% 0% Empty Awaiting Shipping


           

Shipping communicates with Global Order Promising and nds it has a quantity of 12 on hand, so it creates shipment S1
and ships the entire quantity.

Shipment Shipment Line Requested Quantity Shipped Quantity Status

S1 SL1 10 12 Shipped
         

where
• Ordered quantity is 10.
• Under tolerance is 30%.
• Over quantity is 10 multiplied by 30% equals 3.
• Maximum over quantity is 10 plus 3 equals 13.
• Only 12 are available, so shipping ships what's available.

Shipping sends a ship conrmation to Order Management.

423
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Fulllment Line Ordered Quantity Over Tolerance Under Tolerance Shipped Quantity Status

FL1 10 30% 0% 12 Shipped or


          Awaiting Billing
 

Over Shipment In More Than One Shipment

Assume Order Management sends a fulllment line to shipping.

Fulllment Line Ordered Quantity Over Tolerance Under Tolerance Shipped Quantity Status

FL1 10 30% 0% Empty Awaiting Shipping


           

Shipping communicates with Global Order Promising and nds it has a quantity of 6 on hand at warehouse A, 2 more at
warehouse B, and 3 more at warehouse C, so it creates three separate shipments, S1, S2, and S3, ships S1, and sends a
request to release inventory to warehouses B and C.

Shipment Shipment Line Requested Shipped Quantity Status Shipped On


Quantity

S1 SL1 5 6 Shipped Monday


           

S2 SL2 2 - Ready to Release -


           

S3 SL3 3 - Ready to Release -


           

Shipping splits the fulllment line into FL1 and FL2.

Fulllment Line Ordered Quantity Over Tolerance Under Tolerance Shipped Quantity Status

FL1 5 30% 0% 6 Shipped


           

FL2 5 30% 0% Empty Awaiting Shipping


           

Some time later, shipping ships S2 and updates the status for S2 to Shipped.

Shipment Shipment Line Requested Shipped Quantity Status Shipped On


Quantity

S1 SL1 5 6 Shipped Monday

424
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Shipment Shipment Line Requested Shipped Quantity Status Shipped On


Quantity

           

S2 SL2 2 2 Shipped Tuesday


           

S3 SL3 3 - Ready to Release -


           

Shipping splits FL2 into FL2 and FL3, and sets the status for FL3 to Awaiting Shipping.

Fulllment Line Ordered Quantity Over Tolerance Under Tolerance Shipped Quantity Status

FL1 5 30% 0% 6 Shipped


           

FL2 2 30% 0% 2 Shipped


           

FL3 3 30% 0% Empty Awaiting Shipping


           

Some time later, shipping ships S3 and updates its status to Shipped, but S3 could only ship a quantity of 1, so shipping
creates another shipment, S4.

Shipment Shipment Line Requested Shipped Quantity Status Shipped On


Quantity

S1 SL1 5 6 Shipped Monday


           

S2 SL2 2 2 Shipped Tuesday


           

S3 SL3 1 1 Shipped Wednesday


           

S4 SL4 2 - Ready to Release -


        or Backordered  
 

To track the backorder, shipping creates FL4.

Fulllment Line Ordered Quantity Over Tolerance Under Tolerance Shipped Quantity Status

FL1 5 30% 0% 6 Shipped


           

FL2 2 30% 0% 2 Shipped

425
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Fulllment Line Ordered Quantity Over Tolerance Under Tolerance Shipped Quantity Status

           

FL3 1 30% 0% 1 Shipped


           

FL4 2 30% 0% - Backordered


           

Some time later, shipping ships S4.

Shipment Shipment Line Requested Shipped Quantity Status Shipped On


Quantity

S1 SL1 5 6 Shipped Monday


           

S2 SL2 2 2 Shipped Tuesday


           

S3 SL3 1 1 Shipped Wednesday


           

S4 SL4 2 3 Shipped Thursday


           

Shipping sends an update to Order Management.

Fulllment Line Ordered Quantity Over Tolerance Under Tolerance Shipped Quantity Status

FL1 5 30% 0% 6 Shipped


           

FL2 2 30% 0% 2 Shipped


           

FL3 1 30% 0% 1 Shipped


           

FL4 2 30% 0% 3 Shipped


           

The total shipped quantity for the fullled sales order is 12, which is below the maximum over quantity of 13.

426
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Global Trade Management


Integrate Order Management with Global Trade Management
Create an integration between Order Management Cloud and Global Trade Management.
You will create an ERP Cloud connection to access a Global Trade Management event. Use the connection as the source
for the integration, then use Integration Cloud Service to set up an event that calls the Global Trade Management
service.

This topic provides a summary of the set up. This integration is similar to the integration you create with transportation
or trade compliance. Here are some topics where you can get more details.

• Overview of Integrating Order Management with Transportation Management


• Overview of Seing Up Trade Compliance

Summary of the Setup

1. Set up Order Management.


2. Create connection for Order Management.
3. Create connection for Global Trade Management.
4. Map source to target.
5. Communicate aributes from Order Management to Global Trade Management.
6. Communicate aributes from Global Trade Management to Order Management.
7. Add business identiers and activate integration.

Set up Order Management


1. Set order management parameter Check for Trade Compliance When User Submits Sales Order to Yes. For
details, see the Manage Order Management Parameters topic.
2. Set up trade compliance screening to occur when the user submits a sales order in Order Management, or
include the DOO_TradeCompliance task in an orchestration process.

◦ Use a predened orchestration process or create your own.


◦ Use the predened DOO_SubmitSalesOrderProcess orchestration process to validate the sales order
during the submit. It already references the predened DOO_TradeCompliance task type, which does

427
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

screening for you. For details about orchestration processes, see the Seing Up Orchestration Processes
topic.

428
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

◦ If you don't use DOO_SubmitSalesOrderProcess, then add steps that call the DOO_TradeCompliance task
type to some other predened orchestration process or one that you create.

Make sure you include these steps.

Step Task Type Service

100 DOO_ TradeCompliance Request Screening for Trade


    Compliance
 

429
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Step Task Type Service

200 DOO_ TradeCompliance Wait for Trade Compliance Screening


     

It isn't necessary to use steps 100 and 200. You can place these steps anywhere in the sequence of steps.
But you must request screening rst, and then wait.
3. Route the request.

430
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Note.

◦ Use the Manage Connector Details page to add a connector. If you add a routing rule, then set Invocation
Mode to Asynchronous or Synchronous. If you don't add a routing rule, then set Invocation Mode to
Event. For details about how to add a connector, see topic Manage Connector Details Between Order
Management and Your Fulllment System.
◦ Create a routing rule that routes sales orders that must integrate with Global Trade Management
according to the DOO_TradeCompliance task type.
◦ Use Visual Information Builder to create a routing rule.

If Task Type is equal to DOO_TradeCompliance, then Set Connector Name to GTM.

Here's your logic if you use Oracle Business Rules instead of Visual Information Builder.

If header is a Order header


header.Task Type equals ignore case "DOO_TradeCompliance"
Then
assert new Result (resultObj:"GTM",resultObjKey:"SERVICE_NAME")

For details about how to create a routing rule, see the Overview of Using Business Rules With Order
Management topic.

Create Connection for Order Management


1. Sign into Integration Cloud Service.

431
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

2. Click Connections, search for Oracle ERP Cloud, then click Select.

3. Enter a name. For this example, enter OMtoGTM.


4. Enter the WSDL for ERP Service Catalog. For example.

<secure_protocol>://<host>:<secure_port>/fndAppCoreServices/ServiceCatalogService?WSDL

5. Enter the URL for the ERP Event Catalog. For example.

<Protocol>://<host>:<port>/soa-infra

6. Enter the user name and password you use to sign into Order Management as the administrator.

432
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

7. Test and save the connection.

Create Connection for Global Trade Management


1. Click Connections.

433
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

2. Search for Logistics, then click Select.

3. Enter a name. For this example, enter GTMfromOM.


4. Enter the URL to the WSDL for the GTM service. For example.

http://<server:port>/GC3Services/TransmissionService/call?wsdl

5. Enter the user name and password you use to access the WSDL.

434
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

6. Test and save the connection. You should see this page.

Map Source to Target


1. On the right corner, search for the OMtoGTM you just created, then drag and drop it onto the source. The
source is on the left side of the integration.
2. In the dialog that displays, enter details.

◦ For the Name, identify the end point, such as OM_Source.


◦ On the Request tab, set values.

435
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Value

Type BusinessEvent
   

Name Sales Order Trade Compliance Screening


   

◦ on the Successful Response tab of the Response tab, set values.

Aribute Value

Type Delayed
   

Business Object Orchestration Order: OrderFulllmentResponseService


   

Operation processAcknowledgement
   

3. Search for the GTMfromOM connection you created earlier, then drag and drop it onto the target. The target is
on right side of the integration.
4. In the dialog that displays, enter details.

Aribute Value

Name Identify the end point, such as GTM_ Destination.


   

Operations aribute on the Publish


Operations tab  
 

Business Object aribute on the GtmTransaction


Operations tab  
 

436
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Communicate Aributes from Order Management to Global Trade Management


1. Under the text Click Below to Create Map, click the icon on the top line. It's the onEvent to publish line that
points from OMtoGTM to GTMfromOM.

2. Finish the mapping, then save and close the mapper.

437
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

For example.

Note.

◦ See the Aributes in Request Payloads That Integrate Order Management topic to get a list of the
aributes you can map.

Communicate Aributes from Global Trade Management to Order Management


1. Under the text Click Below to Create Map, click the icon on the lower line. It's the publishResponse to
processAcknowledgement line that points from GTMfromOM to OMtoGTM.

438
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

2. Finish the mapping, then save and close the mapper.

Use this example payload as a guide to help determine the mapping you need to create. Global Trade
Management sends this payload as a response to the call from Order Management.

<?xml version="1.0"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:typ="http://
xmlns.oracle.com/apps/scm/doo/taskLayer/commonService/types/" xmlns:com="http://xmlns.oracle.com/apps/
scm/doo/taskLayer/commonService/" xmlns:mod="http://xmlns.oracle.com/apps/scm/doo/processOrder/model/">
<soapenv:Body>
<typ:processFulfillmentResponse>
<typ:responseMessageHeader>
<com:IntegrationContextCode>DOO_TradeCompliance</com:IntegrationContextCode>
<com:FulfillmentSystemResponseIdentifier/>
</typ:responseMessageHeader>
<typ:fulfillLineList>
<com:OrderNumber/>
<com:FulfillLineIdentifier>300100175497843</com:FulfillLineIdentifier>
<com:TradeComplianceScreeningResultCode>ORA_PASSED</com:TradeComplianceScreeningResultCode>
<com:TradeComplianceScreeningDate>2018-11-23T12:12:12</com:TradeComplianceScreeningDate>
<com:FulfillmentDetail>
<com:TradeComplianceTypeCode>ORA_SANCTIONED_TERR</com:TradeComplianceTypeCode>
<com:TradeControlCode/>
<com:TradeComplianceComments/>
<com:TradeComplianceScreeningResultCode>ORA_PASSED</com:TradeComplianceScreeningResultCode>
</com:FulfillmentDetail>
<com:FulfillmentDetail>
<com:TradeComplianceTypeCode>ORA_RESTRICTED_PARTY</com:TradeComplianceTypeCode>
<com:TradeControlCode/>
<com:TradeComplianceComments/>
<com:TradeComplianceScreeningResultCode>ORA_PASSED</com:TradeComplianceScreeningResultCode>
</com:FulfillmentDetail>
<com:FulfillmentDetail>
<com:TradeComplianceTypeCode>ORA_TRADE_CONTROL</com:TradeComplianceTypeCode>
<com:TradeControlCode/>
<com:TradeComplianceComments/>
<com:TradeComplianceScreeningResultCode>ORA_PASSED</com:TradeComplianceScreeningResultCode>
</com:FulfillmentDetail>
</typ:fulfillLineList>
</typ:processFulfillmentResponse>
</soapenv:Body>
</soapenv:Envelope>

Note.

◦ This mapping provides the input to the processAcknowledgement operation of service


OrderFulllmentResponseService. Here are the aributes that it sends.

• TaskInstanceId
• SourceTransactionSystemCode
• RequestStatusCode with a value of SUCCESS
◦ The integration uses this return mapping only when it calls processAcknowledgement, and only when
Global Trade Management sends a successful response.

439
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

For example.

Add Business Identiers and Activate Integration


1. Add business identiers for tracking.

On the menu at the top right of the edit integration page, click Tracking, drag a payload eld from the Source,
and drop it onto the Tracking Field section.

Integration Cloud Service uses business identiers to track messages at run time. You can use them to help
identify and monitor instances of the integration.

440
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

For example.

The screen print is hard to read and displays only part of the hierarchy. Here's the Source hierarchy that it
displays.

onEvent
getOrderRequestFulfillmentDetails
result
SourceTransactionIdentifier
SourceTransactionSystemIdentifier
TargetSystemName
TargetSystemCode
TargetSystemIdentifier

441
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

FusionSystemName
FusionSystemCode
FusionSystemIdentifier
SourceTransactionNumber
BuyingPartyIdentifier
BuyingPartyName
BuyingPartyNumber

2. Save and activate.

◦ Click Test to test your integration, then click Save.


◦ Activate the integration. As an option, in the Conrmation dialog, enable the Enable Trace option to log
payloads in the runtime logs.

Related Topics
• Orchestration Processes
• Overview of Seing Up Trade Compliance

Get Details About Transactions with Global Trade Management


Get details for transactions that occur in an integration between Global Trade Management and Order Management
Cloud.

Get Transaction Details in Global Trade Management


1. Sign into Global Trade Management.
2. On the Oracle Logistics page, navigate to Trade Compliance Management > Trade Transaction
Management > Trade Transaction.
3. On the Transaction Finder page, enter the TransactionId of the sales order, then click Search.

442
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

4. On the Transaction page, examine the mapped data.

Here's how the ow from Order Management to Global Trade Management works.

1. Submit an order through an orchestration process that includes the GTM step.
2. The orchestration process reaches the create step, then raises a GTM event. Integration Cloud Service
subscribes to the event.
3. The ow creates a new instance of Integration Cloud Service. The instance calls the mapping that maps output
from OrderFulllmentRequestService to the input to Global Trade Management, then calls the service in Global
Trade Management.

443
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

4. The ow successfully establishes the integration, then calls the processAcknowledgement operation of
service OrderFulllmentResponseService. processAcknowledgement changes the fulllment line status to
DOO_GTM_AWAIT.

Get Transaction Details in Order Management


1. Sign into Order Management Cloud.
2. Open the sales order in a fulllment view, then examine the Trade Compliance Status aribute on the order
header.
3. Use the Trade Compliance tab in the fulllment line detail area.

Here's how the ow from Order Management to Global Trade Management works.

444
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Lookup Description

ORA_ DOO_ VALIDATION_ RESULT


  Contains predened values for TradeComplianceScreeningResultCode.

• Failed
• Under Review
• Passed

Each response from trade compliance screening contains the screening result for the
fulllment line and details for each screening type for the fulllment detail. It stores these
details in the TradeComplianceScreeningResultCode aribute.

ORA_ DOO_ TRADE_ COMPLIANCE_


TYPE Contains predened values for TradeComplianceTypeCode.
 
• Restricted Party
• Sanctioned Country or Territory
• Trade Control

Each fulllment detail in the response corresponds to a screening type that the
TradeComplianceTypeCode aribute species in the fulllment detail.

ORA_ DOO_ TRADE_ Contains values for the TradeControlCode aribute in the fulllment detail.
CONTROL_CODE  
  Applies only when TradeComplianceTypeCode is ORA_ TRADE_ CONTROL.
 

ORA_ TRADE_CONTROL You must dene values for this lookup.


   

Cross-References
Overview of Creating Cross-References in Order Management
Create and maintain cross-references and domain value maps that relate data between your source system, fulllment
system, and Order Management Cloud.
Each cross-reference helps manage data across systems. For example, your source system might use the value Net
30 Days for a payment term while your billing system uses 30 Days. Use a cross-reference and a domain value map in
Order Management to standardize how you represent the payment term.

Here's how it works.

Interaction Description

Receive a source order from your The web service that receives the source order uses a cross-reference in the Order
source system. Orchestration and Planning repository to resolve the imported value to a common value in
  Oracle Fusion.
 

445
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Interaction Description

If a cross-reference doesn't exist between your source system and the common value, then the
order fails with an error when you submit it to fulllment.
 

Send a request to your fulllment Order Management cross-references values from the common value to the source system
system. value.
   
If it can't nd the source system value in the Order Orchestration and Planning repository, in
Trading Community Architecture, or Product Information Management, then fulllment goes
into error.
 

Cross-Reference Your Customer


You can maintain cross-references between your source system and Trading Community Architecture.

446
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

For example, assume your source system sends a record that includes an identier value of O-524.

The web service uses the Original System Unique Reference (OSR) to map customer details from the source system to
the registry ID in the customer registry in Trading Community Architecture.

1. Load the record from the source system into the customer registry.
2. Assign a registry ID of P242 to the record in the registry.
3. Create a cross-reference between Original System Unique Reference O-524, and registry ID P242.
4. Use registry ID P242 as the relationship to Original System Unique Reference M-42 from the fulllment system.

P242 is the common value that ties the source system to the order fulllment system.

447
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Here's how it works at run time.

1. Your source system sends a source order to Order Management that includes customer data.
2. If the customer already exists in Trading Community Architecture, then Order Management uses a customer
cross-reference to get the master customer record and the customer ID of the fulllment system.
3. Order Management sends the sales order, including the customer ID and other aributes it gets from Trading
Community Architecture, to the fulllment system.
Note.

• You can use other values to establish the cross-reference, such as customer name, contact name, address, and
so on.
• Order Management expects the value in Trading Community Architecture will match the value in your source
system. If your source system sends a value, then the web service will use it to identify and resolve the master
data instead of using the Original System Unique Reference.
• To help identify each aribute that references a source system, make sure you include the phrase Original
System Reference in the aribute name when you cross-reference your customer master data. For example.

◦ Buying Party Original System Reference


◦ Ship To Address Original System Reference
◦ Bill To Address Original System Reference

• If you don't use Trading Community Architecture, but instead use some other application outside of Oracle
Fusion to store customer data, you must still maintain cross-references in Trading Community Architecture.
• For more details about integrating with Trading Community Architecture, see the Guidelines for Controlling
Customer Details in Order Management topic.

Cross-Reference Your Item


Use aributes of the item to relate data between dierent systems.

• Source system. A relationship between the item in the source system and the Oracle item when you use your
own product hub.
• Named item. A relationship between the item in the source system and the Oracle item when you bring items
from dierent systems into Product Information Management.

Use the Source System Product Reference aribute when you cross-reference item data.

Cross-Reference Other Aributes


The Order Orchestration and Product Data Repository stores cross-references for aributes that aren't customer
aributes or item aributes.

Use a domain value map for these aributes. The collections process uses these maps to map values from one system
to another system, which is useful when dierent systems represent the same data in dierent ways.

Collect Orchestration Data


Order Management creates a cross-reference between each aribute in your order capture system and each aribute
in your fulllment system so it can use a single representation across dierent systems. The order capture systems
and fulllment systems use these values to communicate with Order Management. You must use Trading Community
Architecture to set up customer data and Product Information Management to set up product data before you collect.

448
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Here are the types of data you must collect.


• Activity types
• Currencies, conversions, and types
• Demand class
• Document category
• FOB points
• Freight term
• Invoicing and accounting rules
• Payment methods
• Payment terms
• Receipt methods
• Return reason
• Resources
• Sales credit types
• Shipment priority
• Shipping carriers
• Shipping class of service
• Shipping mode of transport
• Tax classication code
• Tax exemption reason
• Units of measure
• Warehouse

These aributes aren't related to the customer or the item.

Use data collection tools.


• Continuous collection. Collect data incrementally. It provides fast collection for each entity that Order
Management must source.
• Targeted collection. Refresh data for a single business object. You run a scheduled process that does targeted
collection, as needed or on a schedule.

Cross-reference a Whole Bunch of Items


If you must cross-reference a large volume of items, then use Open Interface tables to import them. You can
automatically create cross-references for a spoke system when you use item batches through Open Interface tables
or web services to import a spoke system item. For details about how to import cross-references, see Document ID
1311629.1 (Oracle Fusion PIM: Sample SQL to Import Item Cross References into Oracle Fusion Product Information
Management Using Open Interface Tables) on My Oracle Support.

Related Topics
• How Order Management Transforms Source Orders Into Sales Orders
• How the Order Orchestration and Order Promising Processes Use the Collected Planning Data
• Guidelines for Controlling Customer Details in Order Management
• Overview of Data Collections for Supply Chain Planning

449
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Create Cross-References in Order Management


Use Product Information Management to create a cross-reference for Order Management.
In this example, assume your source system uses AS54000 Desktop Computer for the item name, but you use AS54888
Desktop Computer in Product Information Management and in your fulllment system. You will create a cross-
reference that establishes a relationship between these names.

This topic includes example values. You might use dierent values, depending on your business requirements.

450
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

For details about how to create cross-references, including using the Manage Item Relationships page, see Document
ID 1309859.1 (Oracle Fusion Product Information Management - Understanding Item Cross References), on My Oracle
Support.

1. Sign in with a role, such as PRODUCT_MANAGER, that you can use to access the Product Information
Management work area.
2. Create a lookup.

◦ In the Setup and Maintenance work area, go to the task.

• Oering: Order Management


• Functional Area: Orders
• Task: Manage Cross Reference Types

You will use this lookup later in this procedure.


◦ On the Manage Cross Reference Types page, make a note of the rows that the search results display.

• Charge Master
• Old Item Number
• Supplier Part Number
• Golden Tax Adaptor

You can use these predened values, or create a new one. For this example, you create a new one.
◦ In the Lookup Codes area, click Actions > New, set values, then click Save and Close.

Aribute Value

Lookup Code item_name


   
The value you enter must match the value you import from the source system. Product
Information Management uses this value when it receives data from your source
system, such as in a web service payload, to complete the cross-reference.
 

Enabled Contains a check mark.


   

Meaning Item Name


   

Description Item relationship type to use when cross-referencing to an old item name in a legacy
  source system.
 

3. Create the cross-reference.

◦ In the Navigator, click Product Information Management.


◦ On the Product Information Management page, click Tasks > Manage Item Relationships.
◦ On the Manage Item Relationships page, set Item Relationship Type to Cross-References, then click Go.
◦ In the search results, click Actions > Create
◦ In the Create Cross-Reference Relationship dialog, set values.

451
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Value

Organization Vision Operations


   

Item AS54888
   

Type Item Name


   
This is the value you created earlier in this procedure on step 2.
 

Value AS54000 Desktop Computer


   

Description Cross-reference to the AS54000 on our legacy source system.


   

◦ Click Save and Close.

Product Information Management creates a cross-reference between item AS54888 in Product


Information Management and item AS54000 Desktop Computer in your legacy order capture system.

Use the Product Hub


If you use Oracle Product Hub, then you set Item Relationship Type to Spoke System Items. This relationship is useful
when you must map and identify items that Product Information Management consolidates from more than one source
system into a single master item.

Do step 3 described above, but with these dierences.

1. On the Manage Item Relationships page, set Item Relationship Type to Spoke System Items.
2. In the Create Spoke System Item Relationship dialog, set values.

Aribute Value

Organization Vision Operations


   

Item AS54888 Desktop Computer


   

Spoke System LEGACY_ SOURCE_SYSTEM


   
Assume you already set up this spoke system in Oracle Product Hub.
 

Spoke System Item AS54000 Desktop Computer


   

Product Information Management creates a cross-reference between item AS54888 in Product Information
Management and item AS54000 Desktop Computer in Oracle Product Hub.

452
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Related Topics
• Overview of Using Business Rules With Order Management

Integrate Order Management Without Cross-Referencing


Customer Aributes
Integrate Order Management with your fulllment system without creating a cross-reference to a customer aribute in
the fulllment system.
Assume you must create a routing rule.

• If the task type is FulllOrder, and if Organization is 204, then use Oracle Fusion values that identify customer
data to resolve cross-references to the fulllment system.

453
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

You will create this rule.

Summary of the Set Up

1. Create the If statement.


2. Create the Then statement.
This topic includes example values. You might use dierent values, depending on your business requirements.

Create the If Statement


1. In the Setup and Maintenance work area, go to the task.

◦ Oering: Order Management


◦ Functional Area: Orders

454
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

◦ Task: Manage External Integration Routing Rules for Sales Orders


2. On the Manage External Interface Routing Rules page, click Create New Rule, then set values.

Aribute Value

Name Route Without Customer Aributes


   

Description Route fulllment requests without using a customer aribute that resides in the fulllment
  system as a cross-reference.
 

3. Click New Condition.


4. In the Create Condition dialog, enter Task, wait a moment, then click Task Type (Order Header).
5. Click Search.
6. In the Search dialog, enter FulfillOrder, then click Search > OK > OK.
7. In the IF area, click And.
8. In the Create Condition dialog, enter Organi, wait for the list to populate, then click
DestinationShippingOrganizationCode.
9. In the window under Is Equal To, enter 204, then click OK > Save.

Create the Then Statement


1. On the owchart, click Then > Do > New Action > Perform an Action.
2. In the Create Action dialog, choose Resolve Cross-Reference for Customer.
3. Choose a value, then click OK. For this example, choose Yes.

Value Description

Yes Use a cross-reference from an Oracle Application.


   

No Use a cross-reference from the fulllment system.


   

If you choose Yes, and if cross-references to aributes in your fulllment system.


◦ Don't exist. Order Management only sends values from Oracle Fusion that identify customer data. It
doesn't send cross-references. Use this option to send the fulllment request when the fulllment system
doesn't contain a record for the customer. You must make sure your downstream integration creates or
synchronizes customer details before Order Management sends the fulllment request.
◦ Exist. Order Management sends values from the source system and identiers from Oracle Fusion. Use
this option when the fulllment request is for a new customer who doesn't exist in the fulllment system.
Use it to create and synchronize customer details to the downstream connector before you send the
fulllment request to the fulllment system.
4. Click Save and Close.
5. On the Manage External Interface Routing Rules page, click your rule.
6. In the dialog that displays, add a check mark to Activate Rule, then click Save and Close > Publish.

Related Topics
• Download Files

455
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

• Use Visual Information Builder


• Demo for Creating Business Rules

Use Domain Value Maps to Cross-Reference Data in Order


Management
Set up a domain value map to communicate details between Order Management Cloud and your source systems and
fulllment systems.
Order Management uses domain value maps because each system might use dierent terminology, codes, or
identiers to describe the same entity that resides in more than one system. For example, your source system might use
the value Net 30 Days for a payment term while your billing system uses 30 Days.

• Almost all Order Management integrations use cross-references to map entities between systems.
• Order Management uses the term common value to refer to the instance of the reference data that represents
the record in Oracle Fusion.
• Order Management uses a domain value map to cross-reference the common value to each instance of the
entity that exists in systems outside of Order Management, such as the source system, fulllment system,
billing system, and so on.
• Data Collections collects data into the Order Orchestration and Planning Repository. It uses domain values to
map the values that one system uses to the value that another system uses.

Data Collections examines domain value maps to determine whether a row exists that it can use to map the
incoming data with a common value, and that it can then use to cross-reference and populate the value for the
entity during orchestration planning.
• You can collect data through a web service or through staging tables. If your source system is an Oracle Fusion
application, then you use a scheduled process to collect data through staging tables. For details, see Data
Collections, Order Orchestration, and Order Promising: How They Fit Together.

In this example, you modify a domain value map to map payment terms between your source system and Order
Management. You use a web service to collect data for the payment term.

Set up a domain value map.

1. Open a web browser, then sign into SOA Composer at this address.

https://server:port/soa/composer

where

◦ server:port
identies the server that hosts your Order Management implementation and the port that
Order Management uses to communicate.

Sign in with the same user name and password you use to administer Order Management.
2. On the SOA Composer page, click Open > Open DVM.
3. In the Select a DVM to Open dialog, notice the domain value maps you can use to map an entity in your source
system to a common value according to the cross-reference in the repository.

456
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

For example.

4. Click the row that includes mscPaymentTerm.dvm in the DVM File column, then click Open.
5. Notice that this domain value map comes predened to map dierent payment terms from two dierence
source systems. It maps them to a single common payment term in Order Management.

◦ Maps the N_30 payment term from the GPR source system to N30 in Order Management.
◦ Maps the Net_30 payment term from the LEG source system to N30 in Order Management.

457
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

For example.

6. Click the row that includes LEG in the SourceSystem column, then click Edit Domain Values.
7. In the Edit Domain Values dialog, in the SourcePaymentTerm row, modify the value, then click OK > Save.

Old Value New Value

Net_30 Net 30
   

8. Call the Collections web service. Use this example payload.


<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body xmlns:ns1="http://xmlns.oracle.com/apps/scm/advancedPlanning/collection/configuration/
publicS ervice/types/">
<ns1:processOrderManagementCodesLBO>
<ns1:instanceCode>LEG</ns1:instanceCode>
<ns1:omcList xmlns:ns2="http://xmlns.oracle.com/apps/scm/advancedPlanning/collection/configuration/
publicS ervice/">
<ns2:srInstanceCode>LEG</ns2:srInstanceCode>
<ns2:PaymentTerms>
<ns2:sourceTermId>155</ns2:sourceTermId>
<ns2:name>Net_30</ns2:name>
<ns2:language>US</ns2:language>
<ns2:setId>155</ns2:setId>

458
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

<ns2:srInstanceCode>LEG</ns2:srInstanceCode>
<ns2:PaymentTermBase>
<ns2:startDateActive>2011-01-01</ns2:startDateActive>
<ns2:name>Net 30</ns2:name>
<ns2:srInstanceCode>LEG</ns2:srInstanceCode>
</ns2:PaymentTermBase>
<ns2:PaymentTermTranslation>
<ns2:srInstanceCode>LEG</ns2:srInstanceCode>
<ns2:name>Net 30</ns2:name>
<ns2:language>US</ns2:language>
<ns2:sourceLang>US</ns2:sourceLang>
<ns2:description>Net_30</ns2:description>
</ns2:PaymentTermTranslation>
</ns2:PaymentTerms>
</ns1:omcList>
</ns1:processOrderManagementCodesLBO>
</soap:Body>
</soap:Envelope>

This payload collects the value for the Net 30 payment term from the LEG source system.
9. Verify your cross-reference set up.

For example, use SQL to query the msc_xref_mapping entity in the Order Orchestration and Planning Data
Repository.

select master_organization_id from msc_parameters where refresh_number = 16705


select master_organization_id from msc_parameters where sr_instance_id = 1000010026240311
select * from msc_xref_mapping where refresh_number = 17509

459
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Examine the query results to verify the mapping occurs as you expect.

Note.

◦ This query returns cross-reference data that Order Management populates in the msc_xref_mapping
entity for cross-reference aributes of the payment term entity according to your domain value map.
◦ At run time, Order Management uses data in msc_xref_mapping to look up values from the source
system or fulllment system, and their common values in Order Management.

Related Topics
• How the Order Orchestration and Order Promising Processes Use the Collected Planning Data

460
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

• Use SQL to Query Order Management Data

Entities You Can Cross-Reference in Order Management


Use the Order Orchestration and Planning repository to store data that you collect from dierent source systems and
fulllment systems, then use them to cross-reference the entities that Order Management uses during order import or
to resolve cross-references.
Here are the types of entities you can store in the repository.

Type of Entity Description

Global Reference more than one instance of an entity that resides in more than one source system.
   
Data Collection collects each entity into the Order Orchestration and Planning repository,
validates it, then consolidates all the entities it collects into a single record that represents all
entity instances across all systems. This single record is the global entity.
 

Source Don't represent the same data in more than one source system. The instances of source data
  are distinct. For example, one source system might consider Warehouse as an organization
while another source system uses some other classication.
 

Data Collection collects the transactions that are related to supply and demand so Global Order Promising can do
planning and promising. It collects transactions into the Order Orchestration and Planning Repository. You set up the
source system so Order Management can store details that identify the source of records and manage collection. The
repository uses these details so it can identify the source system where records originate.

Global Entities That Data Collection Can Collect

Entity Domain Value Map

Activity Types mscDOOActivityType


   

Conversion Types mscCurrConvType


   

Currencies mscCurrCode mscCurrName


   

Demand Classes mscDemandClass


   

Document Categories mscDocCategory


   

Free on Board mscFOBPoint


   

Freight Carriers mscCarrier

461
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Entity Domain Value Map

   

Freight Terms mscFreightChargeTerms


   

Invoicing and Accounting Rules mscInvoiceAcctRule


   

Payment Terms mscPaymentTerm


   

Receipt Methods mscReceiptMethod


   

Return Reasons mscReturnReason


   

Sales Credit Types mscSalesCreditType


   

Ship Class of Service mscServiceLevel


   

Ship Mode of Transport mscShipModeTransport


   

Shipment Priority mscShipmentPriority


   

Tax Classication Codes mscTaxCode


   

Tax Exemption Reason mscTaxExmptReason


   

Unit of Measure mscUOMCode mscUOMName


   

The Domain Value Map column identies the abbreviation that Order Management uses to set up the cross-reference
for each global entity in the repository.

Data Collection can collect these source entities.

• Reason
• Warehouse

Aributes Order Management Uses to Set Up Domain Value Maps


Here are the aributes that Order Management cross-references in order orchestration and planning for each entity.

Reference Entity Aribute Used to Set Up Domain Value Map

Carrier Carrier_id. No.


   

462
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Reference Entity Aribute Used to Set Up Domain Value Map

Name. Yes.
 

Currency Currency_code. Yes.


   
Name. Yes.
 

Currency conversion type Conversion type. Yes.


   

Document category Category_id. No.


   
Category_name. Yes.
 

Invoicing and accounting rule Rule_id. No.


   
Name. Yes.
 

Payment term Term_id. No.


   
Name. Yes.
 

Receipt method Receipt_ method_id. No.


   
Name. Yes.
 

Sales credit type Sales_ credit_ type_id. No.


   
Name. Yes.
 

Unit of measure Uom_code. Yes.


   
Unit_ of_measure. Yes.
 

Activity type Lookup_code. No.


   
Demand class Meaning. Yes.
   
Free on board point
 
Mode of transport
 
Payment method
 
Return reason
 
Service level
 
Shipment priority
 
Tax classication code
 
Tax exemption reason

463
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Reference Entity Aribute Used to Set Up Domain Value Map

Note.
• Yes means Order Management uses the cross-referenced aribute to set up the domain value map.
• No means Order Management doesn't use the cross-referenced aribute to set up the domain value map.

Related Topics
• How the Order Orchestration and Order Promising Processes Use the Collected Planning Data
• Data Collection Sequence

eBusiness Suite
Overview of Integrating Order Management with eBusiness Suite
If you own an application that's part of Oracle E-Business Suite, Enterprise Resource Planning (Oracle EBS ERP), and plan
to migrate to Order Management Cloud in phases, then you can integrate Order Management with E-Business Suite
and continue to use E-Business Suite to do some of the order fulllment.
You deploy a connector that sits between Order Management and the Integrated SOA Gateway in E-Business Suite.
Use it to send sales orders and communicate status updates between Order Management and E-Business Suite. This
connector uses a SOA (service-oriented architecture) and BPEL (Business Process Execution Language) composite that
you can use to deploy to a SOA server.
• Set up Order Management to send sales orders to eBusiness Suite so eBusiness Suite can fulll the sales order,
including shipment and invoice.
• Set up eBusiness Suite to send status updates to Order Management. If customer details don't already exist in
eBusiness Suite, then this integration synchronizes them when eBusiness Suite receives the sales order.

These integration ows use a connector that you deploy on the SOA server. They also use services from Order
Management and the Integrated SOA Gateway in eBusiness Suite. The gateway is part of Oracle eBusiness Suite, release
12.1 and higher. It includes.
• Integration Repository. Use public APIs (application program interface) in eBusiness Suite that create and
deploy the integration as a web service. Use this integration to send sales orders from Order Management to
eBusiness Suite, and to use the Process Order API in eBusiness Suite as a SOA (service-oriented architecture)
web service.
In general, this document describes APIs that use PL (Procedural Language) or SQL (Structured Query
Language).
• Service Invocation Framework (SIF). Use the business events that eBusiness Suite raises, and use event
details to call a web service. This integration uses the Service Invocation Framework in Integrated SOA Gateway
to send status update from eBusiness Suite to Order Management. Order Management uses a web service to
process the status update response that the Service Invocation Framework calls.

Oracle provides this connector and example integration only for testing purposes. Oracle doesn't support this connector
or example integration in a production environment.

464
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

For details about.

• Order Management, see the How Order-to-Cash Works in Order Management topic.
• Integrated SOA Gateway, go to hps://docs.oracle.com/cd/E18727-01/doc.121/e12169/toc.htm, Oracle E-
Business Suite Integrated SOA Gateway Implementation Guide. See sections Administering Native Services,
Implementing Service Invocation Framework, and Creating and Using Integration Interfaces.

Features This Integration Supports

Feature Description

Synchronize sales orders.


  Synchronize entities when you create a sales order in eBusiness Suite.

• Customers
• Addresses
• Contacts

Create new sales orders.


  Create sales orders that include dierent types of items.

• Items
• Ship sets
• Pick-to-order congured item
• Assemble-to-order congured item
• Kits
• Return Material Authorization (RMA)

Revise sales orders. • Revise order, such as modify values in the order header.
  • Cancel order.
• Revise order lines.

◦ Cancel order line.

◦ Revise an order line, including revising quantity, product conguration, and


pricing.
◦ Revise addresses, contacts, and so on.

◦ Add a new order line to an existing sales order.

◦ Revise addresses, contacts, and so on.

Synchronize status updates.


  Synchronize order status updates and sales order splits. Here's what you can synchronize.

• Order Line status, including Awaiting Shipping, Shipped, Fullled, Awaiting Return, and
Returned
• Scheduled Ship Date
• Scheduled Arrival Date
• Warehouse
• Shipping Method
• Line Split

465
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Features This Integration Doesn't Support


• Entities that a sales order or order line references, such as.

◦ Sales credit
◦ Aachment
◦ Shipping charge
◦ Tax
◦ Lot serial number

• Status updates for shipping details and invoice details


• Warranty or extended warranty
• Sales order ows for assets

Requirements for Using This Integration

Requirement Description

Release
  You must use this release or higher.

• eBusiness Suite release 12.1.3 and OM Patch 23249299:R12.ONT.B

Statuses
  Order Management sends these statuses.

• Schedule Ship Date


• Shipped
• Fullled
• Returned
• Canceled

Returns
  This integration assumes.

• Order Management allows a return order to reference the original order so it can
identify the sales order you're returning.
• Order Management sends only the congured item that eBusiness Suite uses for
returns. It doesn't send the order lines that the congured item references.

Synchronization You must synchronize item data before you use this integration.
   

Bill of Materials The BOM (bill of materials) structure for each kit, pick-to-order, and assemble-to-order must
  be identical in Oracle Fusion Product Master and in eBusiness Suite.
 

Customer details If you modify customer details in Order Management, then this integration doesn't
  synchronize these details directly from the customer master in Order Management to the
customer master in eBusiness Suite.
 
This integration synchronizes these details only if it uses the customer or address during
ordering, and it only synchronizes the addresses and contacts that the sales order references.

466
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Requirement Description

Deployment Options
Use this integration with Order Management, the on-premise version of eBusiness Suite, and with connectors deployed
on SOA Cloud Service (PAAS).

How Order Management Integrates with eBusiness Suite


Order Management Cloud and Oracle eBusiness Suite use connectors and web services that you set up to communicate
sales order details.

467
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Sales Order Flow


Here's how details ow between Order Management and eBusiness Suite when you create a sales order.

Note.
1. You create a sales order in the Order Management work area.
2. Order Management uses routing rules that you set up to determine how to route the sales order to eBusiness
Suite, including the connector it will use to do routing.
3. Order Management uses a connector that you set up on the Manage Connector Details page to identify the
location of the connector on the SOA server. For this example, assume you named the server My_SOA_Server.
4. Order Management uses the Fulllment Task Layer business service to transform the sales order to a message,
and then send it to DooFulllOrderEBSConnector on My_SOA_Server.

468
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

5. The SOA server transforms the message, uses the set up you make in Integrated SOA Gateway on eBusiness
Suite to call a web service on the gateway, and then send the message to eBusiness Suite.
6. eBusiness Suite processes the message as a sales order.

eBusiness Suite raises a business event during processing.

For example, if eBusiness Suite schedules the sales order for shipping, or if eBusiness Suite changes scheduled
ship date or scheduled arrival date because some other aribute that inuences scheduling changes, then
eBusiness Suite raises a business event, and then uses the event to send these dates to Order Management. It
also sends the warehouse and ship method.

eBusiness Suite uses the set up you do on business events in eBusiness Suite to communicate status changes.
You enable the business event, subscribe to it so eBusiness Suite knows when to raise it, and specify the web
service to use when communicating with My_SOA_Server.
7. eBusiness Suite uses your set up for the web service and business event in Integrated SOA Gateway to send the
update to the connector on My_SOA_Server.
8. The connector on My_SOA_Server server sends status updates to Order Management.
9. Order Management updates sales order aributes in the Order Management work area.
Order Management also uses this ow for a status update or order line split. Other ows use a similar sequence.

469
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Flow Through SOA Server

Note.

1. The Fulllment Task Layer service in Order Management uses DooEBSConnectorService to call the
fulllOrderEBSRequest operation of DooFulllOrderEBSConnector on My_SOA_Server.

Connector Aribute Value

Partner Link DooEBSConnectorService


   
This value is the name of the connector.

470
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Connector Aribute Value

Port Type FulllOrderEBSProcess


   

Operation fulllOrderEBSRequest
   
 

The Fulllment Task Layer service in Order Management manages the create ow, update ow, and hold ow.
2. Fulllment Task Layer uses security that you set up in Oracle Enterprise Manager and WebLogic Console on
My_SOA_Server. The user and password you use in Enterprise Manager must match the user and password
you use on the Manage Connector Details page.
For details about Oracle Enterprise Manager, see hps://www.oracle.com/technetwork/oem/enterprise-
manager/overview/index.html.
3. My_SOA_Server uses the set up you do in Enterprise Manager and WebLogic Console to call the Sales Order
Service in Integrated SOA Gateway on eBusiness Suite. The user and password you use in Enterprise Manager
must match the user and password you use in eBusiness Suite.
4. An event occurs in eBusiness Suite that requires communication with Order Management, such as an update to
the sales order status.
5. Sales Order Service in eBusiness Suite calls the fulllOrderEBSInboundRequest operation on
DooFulllOrderEBSConnector.

Connector Aribute Value

Partner Link DooEBSConnectorInboundService_ ep


   

Port Type FulllOrderEBSProcess


   

Operation fulllOrderEBSInboundRequest
   

eBusiness Suite uses the security you set up in Enterprise Manager on My_SOA_Server for the eBusiness Suite
user that calls DooFulllOrderEBSConnector.

Integrate Order Management with eBusiness Suite


Integrate Order Management with eBusiness Suite.
Summary of the Set Up
1. Add the connector.
2. Route sales orders to eBusiness Suite.
3. Route items to eBusiness Suite.
4. Route congured items to eBusiness Suite.
5. Route returns to eBusiness Suite.

471
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

6. Deploy the connector. For details, see the Connect SOA Server to Order Management and eBusiness Suite
topic.
7. Set up eBusiness Suite. For details, see the Set Up eBusiness Suite to Integrate with Order Management topic.

Add the Connector


1. Sign into Order Management with administrative privileges.
2. In the Navigator, click Setup and Maintenance.
3. In the Setup and Maintenance work area, go to the task.

◦ Oering: Order Management


◦ Functional Area: Orders
◦ Task: Manage External Interface Web Service Details
4. On the Manage Connector Details page, create a new connector.

Aribute Value

Target System Agile


   

Connector Name FulllOrder


   

Connector URL Enter the URL that locates the connector. For example.
   

User Name and Password Enter any user name and password. It isn't necessary to enter a user name and password
  that you already set up.
 
Order Management uses this name and password when it calls the connector on the SOA
server.
 

For details, see the Connect Order Management to Fulllment Systems topic.

472
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Route Sales Orders to eBusiness Suite


You will create a routing rule.

For details about how to use the rules editor, see the Manage Routing Rules topic.

Route sales orders from Order Management to eBusiness Suite.

1. Open the Manage External Interface Routing Rules for Sales Orders page.

For details, see the Overview of Using Business Rules With Order Management topic.
2. On the Manage External Interface Routing Rules page, click Create New Rule, then set values.

473
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Value

Name Route Sales Orders to eBusiness Suite


   

Description Route sales orders from Order Management to eBusiness Suite.


   

3. In the If area, create a statement.

If Task Type is equal to FulfillOrder

4. In the Do area, create a statement for each aribute.

Aribute Value

Connector Name FulllOrder


   

Interaction Interface Type Service Data Object


   

Service Name Is set to FulllOrder


   

Maximum Time to Wait Before 1 minute


Sending  
 

Maximum Lines to Aggregate and 0


Send  
 

5. Click Save and Close.


6. Click the rule you just created. In the dialog that displays, set values, then click Save and Close.

Aribute Value

Priority Highest
   

Activate Rule Contains a check mark.


   

474
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Route Items to eBusiness Suite


You will create a rule.

Do it.
1. On the Manage External Interface Routing Rules page, click Create New Rule, then set values.

Aribute Value

Name Route Items to eBusiness Suite


   

475
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Value

Description Route sales orders that don't include a congured item from Order Management to
  eBusiness Suite.
 

2. In the If area, create statements.

If Category Code is equal to RETURN


and
Item Subtype is equal to Standard

3. In the Do area, create a statement for the aribute.

Aribute Value

Fulllment Instance ID Is set to Item


   

4. Click Save and Close.


5. Click the rule you just created. In the dialog that displays, set values, and then click Save and Close.

Aribute Value

Priority Medium
   

Activate Rule Contains a check mark.


   

476
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Route Congured Items to eBusiness Suite


You will create a routing rule.

Create the routing rule for the congured item.


1. On the Manage External Interface Routing Rules page, click Create New Rule, then set these values.

Aribute Value

Name Route Congured Items to eBusiness Suite


   

477
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Value

Description Route sales orders that include a congured item from Order Management to eBusiness
  Suite.
 

2. In the If area, create statements.

If Category Code is equal to RETURN


and
Item Subtype is equal to Pick-to-order model
or
Item Subtype is equal to Assemble-to-order model

3. In the Do area, create a statement for the aribute.

Aribute Value

Fulllment Instance ID Is set to Item


   

4. Click Save and Close.


5. Click the rule you just created. In the dialog that displays, set values, then click Save and Close.

Aribute Value

Priority Medium
   

Activate Rule Contains a check mark.


   

Route Returns to eBusiness Suite


Order Management sends only the line for the congured item to eBusiness Suite so eBusiness Suite can process the
receipt. To create a return for a congured item, eBusiness Suite gets order lines from the original congured item and
uses them to create return lines in the return material authorization that it uses for the congured item. So, you must
create a rule that includes lter criteria that enables this integration to process return lines.

This example uses the Fulll Order step to process requests.

• Create Order
• Create Return Order
• Create Return Order for Models

478
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

You will create a rule.

Create a routing rule that supports return orders that include a congured item.

1. On the Manage External Interface Routing Rules page, click Create New Rule, then set values.

Aribute Value

Name Route Return Orders to eBusiness Suite


   

Description Route return orders that include a congured item from Order Management to eBusiness
  Suite.
 

2. In the If area, create a statement.

If Category Code is equal to ORDER

Tip: Click New Condition, then, in the Create Condition dialog, enter Category, wait for the list to
display values, then click Category Code (Order Fulfill Line).

3. In the Do area, create a statement for the aribute.

Aribute Value

Fulllment Instance ID Is set to Category


   

479
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Note: Click New Action > Set a Value. In the Create Action dialog, set the top value to Fulllment
Instance ID, then, below is set to, click Aribute, then enter Category. Using this technique displays
aributes that are already dened, and helps to make sure you choose an aribute that the rule can
use.

4. Click Save and Close.


5. Click the rule you just created. In the dialog that displays, set values, then click Save and Close.

Aribute Value

Priority Medium
   

Activate Rule Contains a check mark.


   

480
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

6. Verify that you set the Route Sales Orders to eBusiness Suite rule to the highest priority, and that you activated
each of your rules.

Connect SOA Server to Order Management and eBusiness Suite


Set up a connector on your SOA server. This server uses web services to communicate each sales order between Order
Management Cloud and Oracle eBusiness Suite.
Summary of the Set Up

1. Set up connector.

481
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

2. Add user and password to call Order Management.


3. Add user and password to call eBusiness Suite.
4. Administer security.

Set Up Connector
Set up the connector on the SOA server. For this example, assume the server is named My_SOA_Server.

1. Download DooFulllOrderEBSConnectorRev1.0.zip to My_SOA_Server.

To get a copy of this le, click Download Files in the Related Links section at the end of this topic.
2. Unzip DooFulllOrderEBSConnectorRev1.0.zip.
3. Use an XML editor to open DooFulllOrderEBSComposite_cfgplan.xml.
4. Modify the responsibility.

</property>
<property name="bpel.preference.responsibility">
<replace>EBS responsibility</replace>
</property>

where

◦ EBS responsibility species the responsibility.

For example.

</property>
<property name="bpel.preference.responsibility">
<replace>ORDER_MGMT_SUPER_USER</replace>
</property>

5. Replace the host and port for the references.

Reference Value

Sales Order Services OE_ <reference name= "OEIboundIntPOService">


INBOUND_INT Internal  
Name:PROCESS_ ORDER_25 <replace>hp: //server: port/ webservices/ SOAProvider/ plsql/ oeinbound int/? wsdl</
  replace>
 

Sales Order Outbound Services OE_ <reference name= "OEOutboundIntSyncService">


OUTBOUND_INT Internal Name:  
SYNCORDER25 <replace>hp: //server: port/ webservices/ SOAProvider/ plsql/ oeoutbound int/? wsdl</
  replace>
 

Task Layer <reference name= "FulllOrderEBSResponse">


   
<replace>hp: //server: port/ soa-infra/ services/ default/
DooTaskFulllOrderResponseInterfaceComposite/ fulllmentresponsewsdl</ replace>
 

482
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Add User and Password to Call Order Management


Add the user and password that the connector on SOA server must use to call Order Management Cloud.

1. Sign into My_SOA_Server.


2. Sign into Oracle Enterprise Manager.

For details about Oracle Enterprise Manager, see hps://www.oracle.com/technetwork/oem/enterprise-


manager/overview/index.html.
3. In the Farm_fusion_domain tree, Expand Weblogic Domain, right-click fusion_domain, then click Security >
Credentials.

For example.

4. In the Credentials area, expand oracle.apps.security, then click Create Key.


5. In the Create Key dialog, set values, then click OK.

483
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Value

Select Map oracle. apps.security


   

Key FUSION_ APPS_ FOM_ CON_APPID-KEY


   

Type Password
   

User name and Password Use the same user name and password that the connector uses to call the Fulllment Task
  Layer service in Order Management.
 

Add User and Password to Call eBusiness Suite


Add the user and password that the connector must use to call eBusiness Suite.

1. In the Credentials area, expand oracle.wsm.security, then click Create Key.


2. In the Create Key dialog, set values, then click OK.

Aribute Value

Select Map oracle. wsm.security


   

Key FUSION_ APPS_ FOM_ EBS_APPID-KEY


   

Type Password
   

User name and Password


 
◦ Use the user name and password that the connector must use to call the Process
Order service in eBusiness Suite.
◦ You must create grants when you create and deploy Process Order.

◦ You must use the same user name for FUSION_APPS_CON_EBS_APPID-KEY that
you use for the grants. For details, see topic Set up Gateway and Business Events in
eBusiness Suite: Procedure.

Administer Security
Administer security for the Order Management user and the eBusiness Suite user that will call the connector.

1. On My_SOA_Server, sign into Weblogic Console.


2. In the Domain Structure area, click Security Realms, then, in the Realms area, click myrealm.

484
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

For example.

3. Click Users and Groups, then click New.


4. In the Create a New User dialog, enter the same user name and password you enter on the Manage External
Interface Web Service Details page when you do the Integrate Order Management with eBusiness Suite topic.
5. Click OK.
6. Add another user.
Repeat steps 1 through 6, except enter the user name and password of a user that resides in eBusiness Suite.
eBusiness Suite uses this name and password when it calls DooFulllOrderEBSConnector on the SOA server.

Related Topics
• Download Files

Integrate eBusiness Suite With Order Management


Set up the Integrated SOA Gateway and business events when you integrate Oracle Fusion eBusiness Suite with Order
Management Cloud.
Summary of the Set Up
1. Set up web services.

485
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

2. Set up business events.


3. Set up subscription for business event.
4. Set up security for business event.
5. Set up eBusiness Suite so it can communicate status.

Set Up Web Services


This topic describes how to set up web services in Integrated SOA Gateway. For background details, see the following
documentation on My Oracle Support.

• Oracle E-Business Suite Integrated SOA Gateway Developer's Guide, Release 12.2, Part Number E20927-10.
• Installing Oracle E-Business Suite Integrated SOA Gateway, Release 12.1.3 (Doc ID 556540.1).

Set up web services.

1. Sign into eBusiness Suite with administrator privileges.


2. Expand responsibility Integrated SOA Gateway, then click Integration Repository.
3. In the Integration Repository area, expand Order Management Suite, expand Order Management, then click
Sales Order.
4. In the table that displays, click the Sales Order Services link.
5. In the Sales Order Services area, click Regenerate WSDL.

486
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

For example.

6. In the Procedures and Functions area, add a check mark to the Select option for the row that includes these
values.

Name Internal Name Description

Sales Order Service PROCESS_ ORDER_25 Dedicated for Order Management Cloud
    integration
 

7. Click Create Grants.

If a global grant exists for all users, then it might not be necessary to create an individual grant.
8. Set the value.

487
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Value

Authentication Type Username Token


   

9. Click Deploy.
10. Click View WSDL, then note the URL that the WSDL (Web Service Denition Language) uses.

You use this URL when you set up the connector on the SOA server. Make sure this URL is similar to the
following URL.

http://server:port/wEBServices/SOAProvider/plsql/oe_inbound_int/?wsdl

where

◦ server:port identies the address of the server that hosts the web service.
11. Repeat steps 1 through 10 to create and deploy another service.

Aribute Value

Name Sales Order Outbound service


   

Internal Name OE_ OUTBOUND_INT


   

Description Contains procedures to generate outbound integration information


   

Procedures and Functions Internal SYNC_ORDER_25


Name  
 

This service uses an API in eBusiness Suite.

Set Up Business Events


To support the status update ow, you must set up the event and subscription so they can call the response service in
Order Management. The business event already exists in eBusiness Suite, but you must set it up.

1. In eBusiness Suite, expand the Workow Administrator Web Applications responsibility, then click
Administrator Workow.
2. Click Business Events.
3. On the Business Events tab, in the Search area, in the Display Name aribute, enter the value.

oracle.apps.ont.genesis.outbound.update

488
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

For example.

4. Click Go.

Set Up Subscription for Business Event


1. Click Create Subscription.

2. In the Search and Select area, enter values.

489
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Value

Search By System Name


   

Value Enter the name of the eBusiness Suite system.


   
For example, enter XZ6DV213. your.address.
 

3. Click GO.
4. Wait for the result to display, then click Select.

For example, click Select in the row that contains these values.

Aribute Value

System Name XZ6DV213. your.address


   

Display Name LA5099


   

Description Local system created by Oracle Workow Conguration Assistant


   

5. In the Update Event Subscriptions area, set values, then click Next.

Aribute Value

Source Type Local


   

Event Filter oracle. apps. ont. genesis. outbound. update


   

Phase 100
   

Status Enabled
   

Rule Data Message


   

Action Type Invoke Web Service


   

On Error Stop and Rollback


   

490
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

6. Notice that step 1 of the task-based user interface displays. This interface guides you through the set up.

7. On the Load WSDL step, enter the URL that locates the WSDL of the connector, then click Next.

Aribute Value

WSDL URL hp: //server: port/ soa-infra/ services/ default/ DooFulllOrderEbsComposite/


  DooEbsConnectorInboundServiceepWSDL
 

8. On the Select Service step, set the value, then click Next.

Aribute Value

Service Name DooEBSConnectorService_ eb


   
Note that DooEBSConnectorService is the name of the connector.
 

9. On the Select Service Port step, make sure the Select option is enabled for the service.

Service Port Port End Point

FulllOrderEbsProcess_ pt hp: //server: port/ soa-infra/ services/ default/ DooFulllOrderEbsComposite/


  DooEbsConnectorInboundServiceep
 

10. Click Next.


11. On the Select Operation step, make sure the Select option is enabled for the operation.

Operation Port Type Operation Type

FulllOrderEbsInboundRequest FulllOrderEbsProcess ONE_WAY,0


     

491
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

12. Click Next.


13. On the Subscription Documentation step, set values, then click Apply.

Aribute Value

Java Rule Function oracle. apps. ont. sif. EBSFOMEventInvoker


   
This Java rule function is part of the eBusiness Suite patch. It allows the connector to use the
status update ow.
 

Owner Name Oracle Workow


   

Owner Tag FND


   

Set Up Security for Business Events


1. On the Event Subscription page, in the Subscription Parameters area, set values.

Aribute Value

WFBES_ SOAP_USERNAME Enter the user name of the service that you're calling. For example.
   

WFBES_ SOAP_ PASSWORD_MOD Enter the module name. For example.


   

WFBES_ SOAP_ PASSWORD_KEY Enter the key name. For example.


   

2. Store the password so its secure. Sign into the database that resides on the eBusiness Suite server, then use
SQL to query the Order Management database.
sqlplus username/password@database_name @$FND_TOP/sql/afvltput.sql ONT passwordKey password

For example.
sqlplus apps/apps@vi7kr759 @$FND_TOP/sql/afvltput.sql ONT operationsKey password

Set Up eBusiness Suite So It Can Communicate Status


eBusiness Suite uses business events to communicate status. You must set them up.
1. Expand Order Management Super User > Setup > Orders, then click AIA - Sales Order Status.
2. In the AIA - Sales Order Status Synchronization dialog, add a check mark to the Sync Reqd? option for each of
the statuses that this integration must communicate.
◦ Awaiting Shipping
◦ Shipped

492
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

◦ Fullled
◦ Awaiting Return
◦ Returned

Related Topics
• Use SQL to Query Order Management Data

Flows That Order Management Uses with eBusiness Suite


Order Management Cloud communicates order details to and from Oracle eBusiness Suite.

Order Management to eBusiness Suite Flow


Sales Order Details That Order Management Sends to eBusiness Suite

Details Description

Customer details • Bill To Account


  • Ship To Account
• Bill To Address
• Ship To Address
• Contacts

Order Lines • Items, including simple items or complex items, such as kits or pick-to-order congured
  items.
• Prices. This integration sets the CALCULATE_PRICE_FLAG aribute to P when it
synchronizes the sales order so eBusiness Suite doesn't recalculate prices on the order
line. This seing primarily aects freight charges.
• Ship Set.
• Requested Ship Date.
• Payment Terms.

Scheduling Details
  If you use Global Order Promising (GOP), then Order Management sends these details.

• Schedule Ship Date


• Schedule Arrival Date
• Ship From Warehouse
• Shipping Method

Synchronize Sales Order Status Between Order Management and eBusiness Suite

This integration synchronizes statuses between eBusiness Suite and Order Management while it processes the sales
order through fulllment.

Context Order Management Status eBusiness Suite Status

Create sales order. Awaiting Fulllment Booked


     

493
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Context Order Management Status eBusiness Suite Status

Schedule or reschedule the sales order in Awaiting Fulllment Awaiting Shipping


eBusiness Suite.    
 

Ship an order line in eBusiness Suite. Shipped Shipped


     

Line reaches Fullled status in eBusiness Fullled Fullled


Suite.    
 

Synchronize Customer Details in Sales Orders

This integration synchronizes customer details from Order Management to eBusiness Suite when it creates or updates a
sales order.
• Parties or Accounts
• Addresses
• Contacts

If the customer, address, or contact for a new customer doesn't exist in eBusiness Suite, then eBusiness Suite creates
them.

In Order Management, aribute Sold To and aribute Ship To are each a party, and aribute Bill To is an account.
However, each of these aributes is an account in eBusiness Suite. To solve this problem for Ship To and Bill To, Order
Management sends an address when it sends the Ship To customer or Bill To customer to eBusiness Suite. eBusiness
Suite uses the combination of address and customer details to identify the account it must use.

The Sold To aribute doesn't include an address, so the integration determines the account dierently depending on
the condition.

Condition Result

Order Management sends a party eBusiness Suite creates the party and the customer account.
name that doesn't exist in eBusiness  
Suite.
 

Order Management sends a party eBusiness Suite creates an error and exits the ow.
name, but more than one party in  
eBusiness Suite matches the name
that Order Management sends.
 

Order Management sends a party eBusiness Suite creates a new customer account for the party.
name that exists in eBusiness Suite,  
but eBusiness Suite doesn't contain a
customer account for this party.
 

Order Management sends a party eBusiness Suite uses the party and customer account that Order Management sends.
name that exists in eBusiness Suite,  
and eBusiness Suite contains one
customer account for this party.

494
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Condition Result

Order Management sends a party


name that exists in eBusiness Suite, If.
but eBusiness Suite contains more
than one customer account for this • Only one of the accounts in eBusiness Suite uses the same description that the party
party. name uses, then eBusiness Suite uses this account.
  • More than one of the accounts in eBusiness Suite uses the same description that the
party name uses, then eBusiness Suite creates an error and exits this ow.
To correct this problem, you must update the description in eBusiness Suite on one
of the accounts so it uses the same description that the party name uses, and then
resubmit the sales order.

Create Sales Orders for Congured Items

This integration supports congured items that use pick-to-order and assemble-to-order.

Create Sales Orders for Congured Items That Use Pick-to-Order

Here's the sequence this integration uses to create a sales order for a congured item that uses pick-to-order.

1. Order Management sends the entire congured item to eBusiness Suite. The status for the congured item and
each congure option is Awaiting Fulllment.
2. eBusiness Suite triggers events that communicate shipping statuses for Awaiting Shipping and Shipped.
eBusiness Suite triggers the events only for shippable lines.
3. eBusiness Suite sends events to Order Management while it ships each line.
4. Order Management updates the shippable lines. These lines are in the Shipped status while the remaining lines,
such as Model or Option Class, are in the Awaiting Fulllment status.
5. eBusiness Suite nishes shipping each order line, the ow moves to the Fulllment activity, then this step
marks each line as Fullled. To allow this step to occur, you must enable the Fullled status.
6. eBusiness Suite creates an event for the Fullled status for each order line.
7. Order Management updates each status and marks each order line of the congured item as Fullled.
Create Sales Orders for Congured Items That Use Assemble-to-Order

Here's the sequence this integration uses to create a sales order for a congured item that uses assemble-to-order.
Note that eBusiness Suite stores an assemble-to-order congured item as a separate line.

1. Order Management sends the congured item to eBusiness Suite.


2. eBusiness Suite creates the congured item in eBusiness Suite.
3. eBusiness Suite creates an event for the order lines that the congured item references while it fullls the
assemble-to-order.
4. eBusiness Suite synchronizes each status to Order Management in the same way it synchronizes for a pick-to-
order congured item, except Order Management stores each congured item as an aribute while eBusiness
Suite stores each congured item as an order line. So, this integration doesn't synchronize status updates for
these order lines from eBusiness Suite to Order Management.
5. Order Management updates the status for the congured item, congure options, and items in the same way it
updates them for a pick-to-order congured item.
6. eBusiness Suite eventually closes each order line, then creates a status change event. The connector ignores
the Closed status. This integration marks each line in Order Management as Closed when the process nishes
all steps.

495
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

If the Fulllment Task Layer is the last step in the process, then the integration marks each order line as Closed
when the Fulllment Task Layer task nishes.
Map Status When Creating Sales Order for Congured Item

This integration maps statuses between Order Management and eBusiness Suite when it creates a sales order for a
congured item the same way it maps statuses for an item that isn't congured. For details, see the Mapping Statuses
When Creating Sales Order for Items section.

Revise Sales Order

This integration supports revisions to a sales order, such as revising an aribute on the order header. Here's the
sequence it uses to revise a sales order.
1. Order Management sends a request to eBusiness Suite to place each order line on hold. If eBusiness Suite.
◦ Rejects the hold request. This integration sends an exception message to Order Management and ends
this sequence.
◦ Successfully places the hold. Order Management sends a change request to eBusiness Suite.
2. eBusiness Suite processes the change, then this integration releases the hold on the order lines.

Note.
• If the change management ow starts, then this integration releases any hold that already existed on the sales
order in eBusiness Suite.
• Change management applies the hold at the start of processing and releases it when the change nishes.
• eBusiness Suite can't distinguish whether change management or a user applied the hold. eBusiness Suite only
applies one hold when Order Management sends a hold request. If this integration releases a hold as a result of
change management, then eBusiness Suite releases the hold in Order Management.
• eBusiness Suite doesn't automatically release a change management hold. Instead, it applies the release hold
request that it receives during the change management ow.

Revise Order Line

This integration supports revisions on an order line.


• Modify quantity, conguration, or pricing on an order line.
• Modify addresses or contacts on an order line.
• Add a new order line to a sales order that already exists.
• Cancel an order line.

Split an Order Line

An order line split might occur when.


• Order Management determines it can't meet a customer requirement through a single shipment, then it splits
the order line during scheduling and ships the item in more than one shipment.
• An end-user splits the order line. For example, to meet a customer requirement to receive part of the sales
order.
• The on-hand inventory is less than the ordered quantity and eBusiness Suite ships only part of the quantity,
then a split might occur when conrming the shipment.

Ship Item That Your User Splits

496
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Here's the sequence that this integration uses when the user splits an order line.
1. An end-user splits an order line in eBusiness Suite.
2. eBusiness Suite creates a split event that splits the order line.
3. Order Management receives the event and splits the original order line. Each order line in Order Management is
in status Awaiting Fulllment.
4. eBusiness Suite ships the order line and creates a shipped status event for each line.
5. The connector processes this event and sets the order line status to Shipped.
6. The ow in eBusiness Suite reaches the Fulllment activity, then creates an event for each line.
7. Order Management processes each event and sets the order line status to Fullled.
Split Item When eBusiness Suite Ships Part of an Order Line

Here's the sequence that this integration uses when eBusiness Suite ships only part of an order line.
1. eBusiness Suite creates a split event.
2. The connector processes this event and Order Management splits the order line.
3. Order Management sets the status of order line x that eBusiness Suite shipped to Shipped, and it sets the
status of order line y that contains the remaining quantity to Awaiting Shipping.
4. eBusiness Suite ships the remaining quantity and creates another event for the Shipped status.
5. Order Management sets the status of order line y to Shipped.
6. The ow in eBusiness Suite reaches the Fulllment activity, then creates an event for each order line.
7. The connector processes each event and Order Management sets the status for each order line to Fullled.
Split a Congured Item

This integration supports only a proportional split when spliing a congured item. For example.
• Assume a congured item includes a quantity of 5, and congure option x of the congured item includes a
quantity of 10.
• Assume you split the congured item into a quantity of 2 for congured item b and a quantity 3 for congured
item c.
• A proportional split will split option x into a quantity of 4 for item b and 6 for item c.

To support this ow, you must set up a process that includes Step Level Line Criteria to send only the congured item
for a return. For details, see the Integrate Order Management with eBusiness Suite topic.

Here's the sequence that this integration uses when eBusiness Suite splits a congured item.
1. eBusiness Suite splits a congured item, creates a split event, then sends it to Order Management.
2. The connector processes the event and Order Management splits the congured item.
If the split references a partial shipment, then Order Management sets the status for each shippable line to
Shipped for the part of the congured item that eBusiness Suite shipped, and sets the status for the entire
congured item to Awaiting Fulllment.
3. Order Management sets the status of the part of the congured item that it created for the remaining quantity,
and the order lines that this part of the congured item references, to Awaiting Fulllment.
4. eBusiness Suite sets the status of the shippable lines to Shipped and the status of the congured item to
Awaiting Fulllment when it ships the rest of the congured item.
5. The ow in eBusiness Suite reaches the Fulllment activity, and then creates another event that sets the status
to Fullled. Lines for each congure option and nonshippable lines remain in the Awaiting Fulllment status
until the eBusiness Suite ow reaches this step.
6. Order Management processes the event and sets the status of the order lines that the congured item
references to Fullled.

497
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Note.
• If an assemble-to-order split occurs in eBusiness Suite, then the connector ignores the congured item.
• If one of your users splits an order line in eBusiness Suite, then the order line in Order Management remains in
status Awaiting Fulllment. eBusiness Suite sets the status of the shippable lines to Shipped when it ships each
line, and it leaves the nonshippable order lines in status Awaiting Fulllment.
This integration doesn't synchronize status Closed in eBusiness Suite with the status in Order Management. It
ignores status Closed from eBusiness Suite. Instead, it sets the status of the order lines in Order Management
to Closed when the process nishes all steps.

Create a Return Material Authorization

This integration can send a return material authorization (RMA) to eBusiness Suite for receiving. eBusiness Suite fullls
it, then sends the Return statuses to Order Management.

Return an Item

Here's the sequence that this integration uses to return an item.


1. Order Management sends the return lines for the return material authorization to eBusiness Suite. The
integration sets the status in eBusiness Suite to Awaiting Return and the status in Order Management to
Awaiting Fulllment.
2. eBusiness Suite receives the return line for the return material authorization, sets the status to Returned, then
sets the status in Order Management to Received.
3. The ow in eBusiness Suite reaches the Fulllment activity, and then sets the status in eBusiness Suite to
Fullled and the status in Order Management to Fullled. The integration doesn't update Order Management
with the intermediate statuses that occur in eBusiness Suite during order fulllment, such as Awaiting Return
Disposition.
Return a Congured Item

Here's the sequence that this integration uses to return a congured item.
1. Order Management sends the congured item and a reference to the original eBusiness Suite congured item
to eBusiness Suite. The return lines in Order Management are in status Awaiting Fulllment.
2. eBusiness Suite expands the order lines in the return congured item according to the order lines that the
original congured item references. The congured item in eBusiness Suite isn't in status Returned because
eBusiness Suite doesn't receive the congured item.
3. The integration creates the return material authorization and sets the status of the congured item to Awaiting
Fulllment.
4. One of your users or an automated process returns the order lines that the congured item references in
eBusiness Suite.
5. eBusiness Suite sends the updated statuses to Order Management.
6. Order Management updates the status to Received, then Fullled, then Closed.
Process a Hold

Process a Hold That Your User Creates

Here's the sequence that this integration uses to process a hold that one of your users creates.
1. One of your users creates a hold in Order Management.
2. Order Management sends the hold to eBusiness Suite.
This integration can send only one hold at a time from Order Management to eBusiness Suite because it can't
send the Hold Name to eBusiness Suite.

498
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

3. eBusiness Suite applies only the DOO O2C Change Management Hold to the sales order in eBusiness
Suite. eBusiness Suite ignores any subsequent hold that Order Management sends. Note that DOO is an
abbreviation for distributed order orchestration, which is an earlier version of Order Management, and O2C is
an abbreviation for Order To Cash.
4. Your user releases the hold in Order Management.
5. Order Management sends the release to eBusiness Suite.
6. eBusiness Suite releases DOO O2C Change Management Hold.
Process a Hold That Change Management Creates

Here's the sequence that this integration uses to process a hold that change management creates.
1. Change management revises a sales order in Order Management.
2. Change management creates a hold in Order Management.
3. Order Management sends the hold to eBusiness Suite to stop eBusiness Suite from processing the sales order.
4. eBusiness Suite aempts to hold the sales order. If successful, then eBusiness Suite sends a reply to Order
Management that it successfully placed the hold.
If eBusiness Suite can't hold the sales order, then it sends a reply to Order Management that the hold failed,
and Order Management doesn't allow the change. For example, if eBusiness Suite already scheduled the sales
order for shipping, it might not be able to change it.
5. If eBusiness Suite successfully places the hold, then Order Management makes the change, releases the hold,
then sends the release to eBusiness Suite.
6. eBusiness Suite releases the hold.
eBusiness Suite can't determine whether one of your users created the hold or change management created
the hold, so eBusiness Suite releases all holds for this sales order.
Schedule a Sales Order

Process a Sales Order That Order Management Schedules

Here's the sequence that this integration uses to process a sales order that Order Management schedules.
1. Order Management schedules the sales order, sets values for the Scheduled Ship Date and Scheduled Arrival
Date, then sends these aributes to eBusiness Suite.
2. eBusiness Suite sends these aributes to eBusiness Suite Shipping.
eBusiness Suite can't and doesn't reschedule these order lines.
Process a Sales Order That eBusiness Suite Schedules

Here's the sequence that this integration uses to process a sales order that eBusiness Suite schedules.
1. Order Management doesn't schedule the sales order, and it sends the Scheduled Ship Date and Scheduled
Arrival Date to eBusiness Suite with empty values.
2. eBusiness Suite schedules the order lines, then uses the Schedule Ship Date Change event to send schedule
details to Order Management. The order line status in Order Management remains at Awaiting Shipping.
Using Global Order Promising

Global Order Promising uses aributes from the sales order to schedule the sales order.
• Schedule Ship Date
• Schedule Arrival Date
• Ship From Warehouse
• Shipping Method

499
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Processing is dierent depending who calls Global Order Promising.

Who Calls Global Order Promising Description

Order Management Order Management sends aributes to eBusiness Suite, and eBusiness Suite doesn't
  reschedule the sales order.
 

eBusiness Suite eBusiness Suite sends aributes to Order Management, and Order Management doesn't
  reschedule the sales order.
 

eBusiness Suite to Order Management Flow


This integration supports ows from eBusiness Suite to Order Management.
• Update an order line status.
• Update the status for an item, a congured item that uses pick-to-order, a congured item that uses assemble-
to-order, a kit, or a return material authorization.
• Update the Scheduled Ship Date, Scheduled Arrival Date, Warehouse, and Shipping Method.
• Split an order line for.
◦ Item
◦ Congured item that uses pick-to-order
◦ Congured item that uses assemble-to-order
◦ Kit
This split supports partial shipping or supports an action that one of your users does in eBusiness Suite.

eBusiness Suite uses business events to synchronize updates to Order Management.

Split a Return Material Authorization

Here's the sequence that this integration uses to split a return material authorization.
1. One of your users does a partial receipt, not a delivery, in eBusiness Suite.
2. eBusiness Suite receives the partial order line.
3. The eBusiness Suite user does a deliver transaction.
4. eBusiness Suite splits the order line for the return material authorization into two order lines, and then sets the
status of the received line to Returned and the status of the new line to Awaiting Return.
5. eBusiness Suite sends the split event to Order Management.
6. Order Management splits the order line into two order lines, and then sets the status of the received line to
Received and the status of the new line to Awaiting Fulllment.
Split Return Material Authorization for a Congured Item

Order Management doesn't support spliing a return material authorization that includes a congured item. It
processes status updates only for the congured item, and not for individual order lines that the congured item
references. Instead, here's the sequence that this integration uses.
1. Order Management waits for eBusiness Suite to fulll the entire congured item.
2. eBusiness Suite fullls the entire congured item, then sends an update to Order Management.
3. Order Management sets the status for the congured item to Fullled.

500
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

For example, if the ordered quantity is 10, and if the quantity returned is 5, then Order Management sets the
status for 5 of the order lines in the congured item to Awaiting Return, and will process the congured item
only after it receives the remaining 5 lines.
Map Status When Spliing a Return Material Authorization

Here are the statuses that this integration maps between Order Management and eBusiness Suite when it splits a return
material authorization.

Context Order Management Status eBusiness Suite Status

Create a return order. Awaiting Fulllment Awaiting Return


     

Receive or deliver. Received Returned


     

Receive or deliver part of a congured Fullled Closed


item.    
 

Finish delivery. Closed Closed


     

Oracle Applications
Overview
Overview of Integrating Order Management with Other Oracle Applications
Integrate Order Management to send details to some other Oracle application. For example, from an upstream source
system to a downstream billing system.
Use a predened aribute to send details, or create an extensible exeld in Order Management to store them, then
map it to some other Oracle application.

For example.

Oracle Application Description

Oracle Receivables • Map fulllment line aribute Purchase Order Line Number in Order Management
  (CUSTOMER_PO_LINE_NUMBER) to descriptive exeld Invoice Line Level in Oracle
Receivables. Order Management doesn't come predened to display this aribute.
• Create an extensible exeld on the order header or order line in Order Management.
Map this exeld to an interface column or descriptive exeld in Oracle Receivables.
• Send a concatenated value that represents the aributes of a covered item, such as
Description, Start Date, and End Date, to the TranslatedDesription aribute in Oracle
Receivables. Use an interface column in Oracle Receivables to send the data.

501
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Oracle Application Description

• Send covered item description, such as hardware, with coverage lines. Send freight
charges that apply for a covered item as a separate line so you can invoice freight by
itself.

Oracle Procurement Create an extensible exeld on the fulllment line in Order Management that captures the
  item price. Send the price to the purchase request in Oracle Procurement.
 

Oracle Receiving Create extensible exelds on the fulllment line in Order Management that captures lot
  details and serial details. Send these details to the receiving request in Oracle Receiving.
 

Oracle Shipping • Create an extensible exeld on the fulllment line in Order Management that captures
  shipment details. Send these details to a descriptive exeld in Oracle Shipping.
• Use a descriptive exeld to send details to your receiving clerk for a sales order that
includes a return material authorization.
• Order Management comes predened to send a set of aributes to your fulllment
system for a purchase order in a drop ship ow. Use a service mapping to send an
aribute that isn't predened.
For example, send a price you negotiated with your supplier during drop ship, or send a
deliver-to address to your supplier during drop ship.

502
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

How it Works

Note.

1. Capture order details, such as in a sales order that you create in Order Management.
2. Use the integration step in your orchestration process to send details to your fulllment system.
3. Did you enable the Enable Custom Payloads for Downstream Integration feature?

503
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Enabled Description

Yes Use the service mapping. You can set up the payload to integrate with your fulllment
  systems.
 

No Use the predened SDO payload (service data object) and proceed to fulllment. For an
  example that uses an SDO, see the Send Charges from Order Management to Oracle
Receivables topic.
 

4. Call the service mapping that you set up that maps aributes between Order Management and your fulllment
system.
5. Did you create an integration algorithm?

Created an Integration Algorithm Value

Yes Call it. Use the integration algorithm to do more complex logic, as necessary.
   

No Use only the service mapping to create the payload.


   

6. Use the service mapping and the integration algorithm to create the payload.
Note.

• You set up an integration algorithm and a service mapping when you create the integration.
• An integration algorithm uses logic that's similar to a pricing algorithm, and the service mapping that you set
up is similar to the service mapping that Oracle Fusion Pricing uses.
• You use the Pricing Administration work area to set up the integration algorithm and the service mapping that
you use for integration. However, your service mapping and integration algorithm are completely separate
from Pricing. You use Pricing Administration only to leverage some of the logic that Pricing uses for its service
mappings and integration algorithms.
• An integration algorithm and the service mapping that you set up doesn't aect pricing.

Related Topics
• Pricing Algorithm
• Service Mapping

Guidelines for Integrating Order Management with Other Oracle Applications


Use a service mapping and integration algorithm to extend your Order Management integration with another Oracle
application.

504
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Get Started
Enable Feature

Set up your payload to integrate.

• Procurement for drop ship.


• Shipping for shipments.
• Receiving for returns.
• Receivables for invoicing.

Each integration adds to overhead. To improve performance, enable only the integrations you need.

505
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

If you don't enable the feature, then you can still send a predened SDO payload to your fulllment system, but you
can't send a payload that includes your service mapping or integration algorithm. For details, see the Integrate Order
Management with Other Oracle Applications topic.

Service Mapping or Integration Algorithm?

Determine whether you need a service mapping, integration algorithm, or both.

Note.

Object Usage

Service mapping Map aribute from an entity in the view object that you're using as the source. Don't use an
  integration algorithm to do this mapping.
 

Integration algorithm
  Map the aributes.

• From an entity other than the view object that you're using as the source. For example,
use an algorithm to map an aribute from the order header to an interface line.
• With an extensible exeld.

506
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Object Usage

• To a descriptive exeld in Accounts Receivable.

Create Service Mapping


Understand Service Mapping

Note.

Object Description

Context You create the context for each service mapping. The context is the overall container for all
  objects that you create in your set up.
 

Entity Create the structure of each object. Examples of an entity include the order header, fulllment
  line, purchase order request, and so on.
 

Source Create what your mapping uses as the source for aribute values.
   

Service Specify the aributes to send to your fulllment system. You use it in the output that
  communicates with the fulllment system. For example, in the structure of the SDO.
 

Algorithm Optional. Instructions that implement complex logic.


   

507
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Use the Pricing Administration Work Area

Note.
• You use the Pricing Administration work area to leverage the service mapping functionality that Pricing
Administration provides, but you aren't seing up pricing.
• Sign in as order administrator. Don't sign in as pricing manager.
• In the Navigator, click Pricing Administration.
• Click Tasks, then, under Order Management Conguration, click a link.
• Don't click links under Pricing Conguration.

Use Predened Mapping

508
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Note.

• Click Manage Service Mappings.


• Click FulllmentIntegration. Use this predened mapping for most deployments.
• Reduce maintenance and troubleshooting. Use predened entities instead of creating new ones.
• If the entity name doesn't include sux _Custom, then its predened.
• If you create a new entity, then use sux _Custom. Enter a complete description of what it does.
• To modify a service mapping, you must rst create a sand box. For details, see the Create a Sandbox So You
Can Edit Service Mappings topic.

Specify Source

509
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Note.
• Click the Sources tab on service mapping.
• Use a predened source, when possible.
• Use predened entities on each source, when possible.
• View object species the view object to use as the source for the value.
• Don't modify the view object of a predened entity.
• View object aribute species the aribute in the view object to use as the source for the value. Do specify the
view object aribute.

If you create a new source, then you must add a sux to entity name.

510
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Flexeld Sux

Descriptive exeld DFF_Custom


   

Extensible exeld EFF_Custom


   

Global descriptive exeld GDF_Custom


   

To improve readability, include an underscore ( _ ) immediately before the sux.


myDescriptiveFlexfield_Dff_Custom

Specify Service

511
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Note.

1. Click the Services tab on service mapping.


2. Choose a predened service, such as InvoiceService, when possible.
3. Set the Implementation Type aribute to Algorithm.
4. If you plan to use an integration algorithm, then enter the name of your integration algorithm in aribute
Implementation. If you don't set this value, then the service won't call your algorithm.
5. Choose a predened entity, such as ARInterfaceLine, when possible. Specify whether your fulllment system
can read or write the entity.
6. Add the aributes that you must integrate with your fulllment system. Specify whether your fulllment system
can read or write the aribute.

It typically isn't necessary to specify an alias for a predened entity or aribute.

Integrate Extensible Flexeld


Here's how you integrate an extensible exeld.

Get Your Flexeld Archive

512
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

The exeld archive is a .zip le that contains an XML le that you download when you create your extensible exeld.
You use details from the exeld archive when you set up the service mapping. You must get these details now.

Note.

1. In the Setup and Maintenance work area, go to the task.

◦ Oering: Order Management


◦ Functional Area: Orders
◦ Task: Manage Order Extensible Flexelds
2. On the Manage Order Extensible Flexelds page, in the Module aribute, search for Process Order.

513
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

3. Choose your extensible exeld.

◦ Header Information
◦ Fulllment Line Information
◦ Fulllment Line Detail Information
4. Click Actions > Download Flexeld Archive.
5. Open the .zip le you downloaded and navigate to oracle/apps/scm/doo/processOrder/ex/
myObjectContextsB/view/myVO.xml.

where

◦ myObject is the name of your object.


◦ myVO is the name of your virtual object.
6. Open the XML, then copy the contents into a text le.
For an example that downloads a exeld archive, see the Use Descriptive Flexelds to Integrate Order Management
with Other Oracle Applications topic.

Examine Flexeld Archive

514
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Note.

1. Expand ViewObject.
2. Notice the value in the Name aribute of the view object. This is the name of the view object that you copy and
paste into the View Object aribute of your service mapping.

The name in the screen capture above is truncated. The full name for this example is
FulllLineEBItemPriceForSupplierprivateVO.

The name for the example earlier in this topic is HeaderEFFBComplianceDetailsprivateVO.


3. Under ViewObject, locate FND_ACFF_EFF_CONTEXT_CODE.
4. Notice the value of the context code. In this example, the value is ItemPriceForSupplier. You will use it later.

515
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

5. Expand ViewAribute.

6. Notice the value of EntityArName. This is the name of the view object that you copy and paste into the
aribute View Object Aribute of your service mapping. EntityArName for the example earlier in this topic
would equal _complianceInfo.
Specify Entity

516
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Note.
1. Navigate back to your service mapping, then click Entities.
2. Create one entity for each extensible exeld context.
You must use the EFF_Custom sux for entity name. For example, OMHeaderEFF_Custom. If you don't use
this sux, then your service mapping will fail.
3. Add an aribute that identies the entity. In this example, HeaderId identies the sales order header.
4. Add an aribute that contains data.
Note.
• Specify the data type. If you don't specify the correct data type for the aribute, then your service mapping will
fail.
This example uses the Long data type for the HeaderId aribute because identiers are typically a Long
numeric value. It uses String for the complianceInfo aribute because, in this example, complianceInfo contains
text.

517
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

• Use the _Custom sux for aributes.

Specify Source

Note.
1. Click Sources.
2. On the Entity Mappings tab, add your new entity, such as OMHeaderEFF_Custom.
3. Specify the view object.
◦ Locate the view object name in the XML of the exeld archive, copy it, then paste it into the View Object
aribute. In this example, the view object name is HeaderEFFBComplianceDetailsprivateVO.
◦ The values must match exactly, or your service mapping will fail. To avoid problems, use copy and paste.
Don't manually enter it.
◦ Add your aributes.

518
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

For each aribute you add, locate the view object aribute in the XML, copy it, and paste it into the
aribute View Object Aribute. In this example, notice that the _complianceInfo view object aribute
begins with an underscore because the XML also contains an underscore.
Add Entity

Here's some tips when you add the entity.

• Before you add the entity, click View > Joined Entity > Joined Entity Aribute.
• Set values.

Aribute Value

Query Type Choose Join.


   

Query Aribute Enter the name of your aribute, such as HeaderId.


   

Joined Entity Specify the entity you're joining, such as Header.


   

Joined Entity Aribute Specify the aribute in the entity you're joining, such as HeaderId.
   

519
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Integrate a Descriptive Flexeld

Note.

1. To integrate Purchasing, Shipping, or Receiving, choose a predened source, such as PurchaseRequestSource.


Order Management provides predened descriptive exelds that you can use. You don't need to create one.
2. Choose a predened entity, such as PurchaseRequestLine.
3. Add the aributes that you must integrate with your fulllment system.
4. Add the AributeCategory aribute. This aribute contains the value of the context code, such as
ItemPriceForSupplier, of the descriptive exeld.

520
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

5. If your descriptive exeld uses a context sensitive segment.

◦ Provide a value.
◦ Reference an aribute in a view object or add an expression.
◦ You typically add an expression.
◦ If you add a string in your expression, then enclose it with double quotation marks ( " " ).

Reference the Aribute in the View Object

Note.

• A view object, such as FulllLineVO, contains aributes, such as FulllLineId.


• VO is an abbreviation for view object.

521
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

• The value you chose for the View Object aribute determines the values you can choose for the aribute View
Object Aribute.

Integrate Descriptive Flexeld for Accounts Receivable

Note.

1. Use a predened entity for accounts receivable, such as TransactionInterfaceHeaderD, which is a descriptive
exeld that stores details about the receivables transaction header. Examine the entities that are available on
the Entities tab to identify the one you need.
2. Add these aributes. They're all required.

◦ FulllLineId

522
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

◦ NameSpace
◦ XsiType
◦ _FLEX_Context

You must add these aributes for each context entity that you dene for a descriptive exeld.
3. Add the descriptive exeld aributes that you must send to accounts receivable, such as
GlobalSegment1_Custom.
Note.

• You can map an interface line of type Line.


• You can't map an interface line of type Discount, Charge, or Freight.
• You can use only one context for each descriptive exeld.
• To avoid an SQL exception, make sure the web service you use to send fulllment lines from Receivables to
Order Management includes no more than 10,000 fulllment lines in each invoice response.

If you must map an aribute from the order header, extensible exeld, or fulllment line detail, then you must use an
integration algorithm. Order Management uses this hierarchy.
Order header
Fulfillment line
Fulfillment line details

Other Oracle applications might not organize these objects into a hierarchy. Instead, they might represent them
in a single object named ARLine. ARLine also includes descriptive exelds, so it can represent the same data that
the fulllment line represents. If you must copy aributes from the fulllment line to ARLine, then you require an
integration algorithm only if you must implement conditional logic.

Specify Source

523
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Note.

1. Click the Sources tab.


2. Query the Source for InvoiceSources.
3. Query the Entity for your entity, such as TransactionInterfaceHeaderD.
4. Add your custom aributes. Create an expression for each of them.
5. Enter a value for NameSpace and _FLEX_Context from the XML le.
6. Enter a value for XSiType from the XSD le.
For example.

524
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Expression

GlobalSegment1_ Custom As an option, add an expression. For example.


   
"Gl1"+ProductNumber. substring(0Math. min(11 ProductNumber. length))
 
Note that this example is a concatenation.
 
Here's the pseudocode.
 
Send the product number. If the product number is a number, then convert it to a string. Add
the length of the string.
 

NameSpace Enter the value from the XML le you downloaded for your exeld archive. For example.
   
"hp://xmlns. oracle. com/ apps/ nancials/ receivables/ transactions/ shared/ model/ ex/
TransactionHeaderD/ "
 

XsiType Enter the value from your XSD le.


   
For example.
 
"TransactionHeaderFLEX"
 

_FLEX_Context Enter the value of the context code from the XML le you downloaded for your exeld
  archive.
 
This example uses GlobalSegment1, so you can leave _ FLEX_Context empty. If you didn't
include a global segment in this example, you would enter "ItemPriceForSupplier".
 

Specify Service

525
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Note.
1. Click the Services tab.
2. Query the Service for InvoiceService.
3. Query the Entity for your entity, such as TransactionInterfaceHeaderD.
4. Add your custom aributes. Create an alias for each one. The alias is the name of the service. Get it from your
XML le.

Aribute Alias

GlobalSegment1_ Custom _ AR_ 5FRRRF_ 5FDFF_ 5FRCT_ 5FGlobal_2D1


   

526
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Alias

Order Management uses this value when it creates the payload to create the task.
 
If you prefer to send this value in your integration algorithm, then you add it to the algorithm
instead.
 

5. Add the predened aributes. It isn't necessary to dene the alias for predened aributes.

Create an Integration Algorithm

527
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Note.
• In the Navigator, click Pricing Administration, click Tasks, then under Order Management Conguration, click
Manage Algorithms.
• Create dierent versions so you can test dierent set ups while maintaining a working copy.
• You must publish your algorithm.
• Before you publish, refresh the page: save, close the page, open the page, and requery algorithms.
• After you publish, refresh, and verify that the status is Published.
• You can't edit a published algorithm. You must create a new version instead, or deactivate, and then activate.

Create Algorithm

Note.
• When you create the algorithm, save the header before you work on details.
• You must set up the algorithm and variables.
• Functions are optional.
• Test is a design time test. It isn't a run time test. Its optional, but recommended.

Use Variables

528
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Note.

• After you create and save the header, then set up the variables. Don't dene the algorithm yet because you use
variables in the algorithm. You must set up the variables rst.
• Click Variables.
• Set aributes.

Aribute Value

Name Enter a meaningful name because the value you enter will display throughout the set up.
   

Input/Output Choose Input and Output.

529
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Value

   

Data Type Choose Data Object.


   

Internal Service Schema


  Use FulllmentIntegration.YourService

where

◦ YourService species the service that your integration requires.

This example uses FulllmentIntegration.InvoiceService

Caution:  Its important to choose the correct service. If you choose the
wrong service, the integration will fail.
 

Add Step

530
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Note.

1. Click Algorithm.
2. Add steps. At run time, the algorithm runs the steps sequentially.
3. Enter a name.
4. Set up the data set that determines which records to process in this step.
5. Set up the condition and action that determines how to process records.
Create Data Set

531
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Specify the aributes.

Aribute Description

Name Enter a meaningful name. Algorithm logic will reference it.


   

Variable Path
  Use the VariableName.entity format.

where

• VariableName. Name of the variable you dened on the Variables tab, such as
ARChargeIntegration.
• Entity. Copy and paste the entity name from your service mapping.

Cardinality
  For descriptive exeld, you typically choose Zero or One.

If you join many order lines to one order header, then choose Many.

Data Set Join


  Use format [AttributeName1:{DataSetName.AttributeName2}]

where

• AttributeName1. Name of an aribute in the data set you're joining to.


• DataSetName. Name of a data set you have dened.

532
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Description

• AttributeName2. Name of an aribute in DataSetName.

Specify Condition and Action

Note.

• The algorithm runs the default action when algorithm logic doesn't meet any other conditions.
• This predened action interfaces freight charges as a separate line item on the invoice.
• Predened code is commented. Remove comments to enable the action.
• Write your code in Groovy script.
• Use comments to document your code.
• Make sure variable isn't empty before you use it as the source for a value. In particular, make sure your
extensible exeld contains a value. If it doesn't contain a value, then you can't get a value from it, and your
algorithm might fail.
• Use format DatasetName.Alias.

533
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

where
◦ DatasetName. Name of data set that you dened in the integration algorithm.
◦ Alias. Alias or aribute name you dened in your service mapping.
For example, ChargeRow.ChargeApplyTo.

For details, including the exact content of the Actions that this example uses, see the Send Charges from Order
Management to Oracle Receivables topic.

Test Your Algorithm

Note.
1. Click Test to run a design time test.
2. Add a new test.

534
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

3. Create a default payload. The test creates a default payload according to the structure you set up in the
integration algorithm.
4. Edit the payload so it meets your requirements. For example, add values for important aributes that you know
your fulllment system expects.
5. Click Run Test. Examine results.
Examine Results

Note.
• Notice value of Last Execution Status. Green check mark means success.
• Examine test output carefully. Make sure output not only exists, but that it contains values you expect from
your integration. For example, if you logic concatenates an item description, then make sure the test displays
concatenated values that you expect.
• If you modify logic or a data set, then delete your test data, recreate test data, and run test again.

535
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Set Up Aributes Between Service Mapping and Integration Algorithm


Note.

• You must make sure the aribute names you use in the service mapping and the aribute names you use in the
integration algorithm match each other exactly.
• If you specify an alias in the service mapping, then also use this alias in the integration algorithm.
• If you don't specify an alias, then use the aribute name that the integration algorithm uses.
• Make sure the aribute names use the same upper case and lower case.

For example.

Setup Correct Not Correct

You set up an aribute named TotalSale_ This example code won't cause an error. This example code will cause an error.
Custom in the Sources tab of the service    
mapping, and you don't dene an alias in Hdr.Aribute3 = HdrEFF. TotalSaleCustom Hdr.Aribute3 = HdrEFF. totalSaleCustom
the Services tab of the service mapping.    
 

You set up TotalSale_ Custom in the


Sources tab of the service mapping, and This example code won't cause an error. This example code will cause an error.
you You set up an alias as TotalSale in the
Services tab. • Hdr.Attribute3 = • Hdr.Attribute3 =
  HdrEFF.TotalSale_Custom HdrEFF.totalSale_Custom
• Hdr.Attribute3 = • Hdr.Attribute3 =
HdrEFF.TotalSale HdrEFF.totalSale

Here's a message that's an example of the type of error you might encounter at run time. In this example, the Sources
tab of the service mapping includes the totalSale_Custom aribute, but code in the integration algorithm uses
TotalSale_Custom.

01.03:llLine><PurchaseRequestService:FulfillLineId>300000002330472</
PurchaseRequestService:FulfillLineId><PurchaseRequestService:HeaderId>300000002330464</
PurchaseRequestService:HeaderId> </PurchaseRequestService:FulfillLine> <PurchaseRequestService:ChangeSummary
xmlns:sdo="commonj.sdo"/></PurchaseRequestService:PurchaseRequestServiceType>'-
oracle.apps.scm.pricing.priceExecution.algorithms.publicQuery.exception.SetQueryException:
Step 'Step 1' not executed properly. Failed to execute onEach Closure. DataObject
com.oracle.xmlns.apps.scm.pricing.priceexecution.servicemappings.publicmappings.purchaserequestservicetype.HeaderEff_Cus
does not have property 'TotalSale_Custom' defined in the schema. Can not get value from the property.
null Payload: VariableName:'PRCIntegration'DateType:'commonj.sdo.DataObject' IOType:'InOut' value:'<?xml
version="1.0"encoding="UTF-8"?> <PurchaseRequestService:PurchaseRequestServiceType xmlns:PurchaseRequestService

Summary
The Service Mappings page and Algorithms page use values that are case sensitive. Enter exact names consistently,
including _ (underscore), upper case, and lower case leers.

Set up service mappings.

• Use a service mapping to map aributes from entities in the source view object. Don't use an integration
algorithm to map them.

536
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

• If you add an aribute in the Sources tab, then make sure you also add it in tab Services for each entity. If you
forget to add it in Services, then the algorithm might run but not display your aribute in the payload.
• Use an expression or view object aribute objects to assign a value.
• Use the Expressions aribute to implement simple logic, such as If, If Then, If Then Else, or to concatenate.
• If you add an extensible exeld.

◦ Add it in the Entities tab, Sources tab, and Services tab. Add it in all three tabs. Don't add it in only one or
two of these tabs.
◦ Add an extensible exeld entity one time for each context that you require.
◦ Reuse extensible exeld entity in more than one service, as necessary.

Set up integration algorithms.

• Use an algorithm to map aributes from entities other than the view object or when you use a exeld.
• Remember to enter the algorithm name on the Services tab.
• Remember to publish your algorithm.
• If you encounter a runtime error when a task runs, then correct the algorithm and recover the task.

Related Topics
• Create a Sandbox So You Can Edit Service Mappings

Integrate Order Management with Other Oracle Applications


Set up Order Management so it uses a view object to integrate with Oracle Receivables, Oracle Shipping, Oracle
Receiving, or Oracle Procurement.
• Integrate RuleStartDate in Oracle Receivables with ContractStartDate in Order Management
• Integrate RuleEndDate in Oracle Receivables with ContractEndDate in Order Management

537
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

You will modify the predened FulllmentIntegration service mapping so it uses these cross-references.

This topic includes example values. You might use dierent values, depending on your business requirements.

Integrate Order Management with another Oracle application.


1. In the Navigator, click Setup and Maintenance.
2. In the Setup and Maintenance work area, go to the Order Management oering.
3. Click Actions > Change Feature Selection.
4. On the Edit Features page, in the Enable Custom Payloads for Downstream Integration row, click Features.
5. Add a check mark to the options you need.

Option Enables Integration With

Drop Ship Oracle Procurement


   

538
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Option Enables Integration With

Invoice Oracle Receivables


   

Return Oracle Receiving


   

Shipment Oracle Shipping


   

6. Click Save and Close, then click Done


7. In the Navigator, click Pricing Administration.

Use the Order Administrator job role so you can access the integration algorithm and service mappings that
you use in the Pricing Administration work area to set up the integration.
8. Create a sand box. For details, see the Create a Sandbox So You Can Edit Service Mappings topic.
9. On the Overview page, click Tasks, then, under Order Management Conguration, click Manage Service
Mappings.
10. On the Manage Service Mappings page, in the Name column, click FulllmentIntegration.

Notice the entities, such as ARInterfaceLine, and aributes, such as AccountRuleDuration. The
FulllmentIntegration service mapping comes predened with these entities and aributes so you can use
them to add aributes when you integrate Order Management with these Oracle applications.

Oracle Application Example Entities

Oracle Receivables ARInterfaceLine


   

Oracle Shipping ShipmentRequestHeader


   
ShipmentRequestLine
 

Oracle Receiving ReceiptAdvice


   
ReceiptAdviceLine
 
ReceiptAdviceLineLot
 
ReceiptAdviceLineLotWithSerials
 

Oracle Procurement PurchaseRequestHeader


   
PurchaseRequestLine
 
PurchaseRequestCong
 

11. Click Sources.

In this example, you examine the entity or the view object that denes the view object as FulllLineVO, and
then map an aribute of this entity or view object from the fulllment line.

539
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Note that Order Management uses this hierarchy.

Sales order header


fulfillLine
Fulfill_line Details

ARLine is on the same level as fulllLine.

The Entity Mappings tab lists entities, each entity references a view object, and each entity on the Aribute
Mappings tab also references one or more aributes. You will create a map that references one of these entities
from this view object without using an integration algorithm.

However, if you must map an aribute from some other entity that doesn't reside at the same hierarchy level,
then you must use an integration algorithm. For example, if an aribute references an extensible exeld from
the order header or the fulllment line, then you must use an integration algorithm.

Other Oracle Fusion Applications use a similar hierarchy. For example, here's that hierarchy that Purchasing
uses for a purchase order.

Purchase order
fulfillLine
purchaseLine

Here's the hierarchy that Purchasing uses for shipping.

Shipping header
shipping line
fulfillLine

Here's the hierarchy that Purchasing uses for the receiving receipt.

Receipt header
ReceiptLine
FulfillLine
Lot or lot serial details

12. In the InvoiceSources - Details area, click the row that contains ARInterfaceLine in the Entity aribute.
13. In the ARInterfaceLine - Details area, add values, then click Save.

Aribute View Object Aribute

RuleStartDate ContractStartDate
   

RuleEndDate ContractEndDate
   

The RuleStartDate and RuleEndDate are now integrated to reference the view objects that you specied. Here's what
Order Management does at run time.

• Get the value of the ContractStartDate aribute from the Order Management work area, then display it in the
RuleStartDate aribute in Oracle Receivables.

540
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

• Get the value of ContractEndDate from the Order Management work area, then display it in the RuleEndDate
aribute in Oracle Receivables.

You can use Expression Language (EL) in the Expression column to implement logic or a constant value. For example,
you can implement this logic.
• If the value of variable x is greater than the value of variable y, then populate an aribute.

Related Topics
• Pricing Algorithm
• Service Mapping

Use Functions in Integration Algorithms


Use a function in your integration algorithm to implement specialized behavior.
A function is a section in an integration algorithm. You use it to get a specic result. For example, use a function to get
the description of a covered item.

In this example, you get the description for a covered line, then add it to the description for the coverage line on the
invoice.

541
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Do it.

1. Sign into Order Management with administrative privileges.


2. In the Navigator, click Pricing Administration.
3. In the Pricing Administration work area, click Tasks.
4. Under Order Management Conguration, click Manage Algorithms.
5. On the Manage Algorithms page, create a new algorithm.

Aribute Value

Name Get Order Line Details Custom


   

Description Get the description for a covered line, and then add it to the description for the coverage line
  on the invoice.
 

6. Set up the function.

Do it.

◦ Click Save, click Functions, create a new function.

542
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Value

Name GetCoveredFromDocRef
   

Query Type View Object Lookup


   

Description Get the value for an order line, and then get the description for this line.
   

◦ Click View Object Query and set values.

Aribute Value

Application Module oracle. apps. scm. doo. common. process. model. applicationModule.
  DooExtensibleMapperAM
 

Application Conguration DooExtensibleMapperAMShared


   

View Object DocumentReferenceVO


   

View Criteria getCoveredLine


   

Single Row Enabled


   

◦ Create a bind variable.

Aribute Value

Bind Variable Name FLineId


   

Bind Variable Value FLineId


   

◦ Click Arguments. Add an argument.

Aribute Value

Name FLineId
   

Comments Use this argument to send FLineId (fulllment line identier) as a bind variable for the
  view criteria.
 

543
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

◦ Click Variables. Add one.

Aribute Value

Name CoveredFlineDocRefRow
   

Data Type String


   

Input/Output Input and Output


   

This variable will store the row from DooDocumentReferences for fulllLineId of the coverage line.
◦ Add another one.

Aribute Value

Name CoveredFLineRow
   

Data Type String


   

Input/Output Input and Output


   

This variable will store the row from FulllLine for the covered line.

544
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

7. Add a step that runs when data meets the condition.

Do it.

◦ Click Add Step, then click Conditional Action. Set values.

Aribute Value

Name Condition Met


   

Description Set up action that runs when data meets the condition for coverage line.
   

Condition FLine. SalesProductTypeCode in ['COVERAGE', 'PREVENTIVE_


  MAINTENANCE''SERVICE_ LEVEL_ AGREEMENT''SOFTWARE_
MAINTENANCE''INCLUDED_ WARRANTY']
 

◦ Click Add Condition, then click Default Action. Set the value.

Aribute Value

Actions
  CoveredFlineDocRefRow = GetCoveredFromDocRef(FLine.FulfillLineId)
if (CoveredFlineDocRefRow?.DocSublineId!=null)

545
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Value

CoveredFLineRow=
GetCoveredFLine(CoveredFlineDocRefRow?.DocSublineId)

ARLine.TranslatedDescription = FLine.ProductDescription
+ ' ' + CoveredFLineRow?.ProductDescription + ' ' +
FLine.OrderedQty.toString() + ' ' + FLine.ContractStartDate + '-'
+ FLine.ContractEndDate

This code uses functions to get the product description of the covered line and concatenate it.
8. Add a step that runs when data doesn't meet the condition. Click Algorithm, click Add Step, then click
Conditional Action. Set values.

Aribute Value

Name Condition Not Met


   

Description Set up the action that runs when data doesn't meet the condition for coverage line.
   

Condition ARLine. TranslatedDescription = FLine. ProductDescription + ' ' + FLine. OrderedQty.


  toString() + ' ' + FLine. ContractStartDate + '-' + FLine. ContractEndDate
 

546
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Receivables
Integrate Order Management with Oracle Receivables
Specify how Order Management Cloud sends charges and charge lines to Oracle Receivables.
Set up an integration algorithm so it uses Oracle Receivables to calculate various charges, such as how to calculate tax
on the shipping charge of a shipping line.

For example, tax rules on freight might vary according to region or to details on the sales order. Determining tax
manually might delay order fulllment, introduce unnecessary tax, or result in an invoice error. Instead, you can.

• Specify one or more shipping charges for an order line to automate tax calculation, such as sending freight
charges to Receivables to calculate the tax amount for freight.
• Calculate freight tax in Oracle Fusion Pricing, send it to Order Management, then store it on an order line in
Order Management.
• Set up an integration algorithm to help achieve tax compliance, minimize sales order exceptions, and improve
the accuracy of billing details.

In prior releases, Order Management sent secondary charges, including freight charges, to Receivables. Receivables
added the charges together, then displayed them as a single freight charge on the invoice header. Receivables couldn't
apply a tax on this single charge because it might need to tax individual charges at dierent tax rates, and some of
these charges might not be taxable. Order Management can now send the shipping charge on a separate charge line.

• This feature adds a new charge line for each shipping charge for each item. For example, if the sales order
contains three items, and if each item includes a shipping charge, then the invoice will contain six lines. Order
Management will ship three lines, and the other three lines will contain freight charges.
• The charge line will include the item number and description that you set up in the Product Information
Management work area. To relate each freight charge to the shippable line, you can override the Description
aribute and TranslatedDescription aribute so they reference a shippable item.

547
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

• If you override an aribute in the algorithm, then you must include the aribute in the Sources tab and the
Services tab of the entity you're modifying in the service mapping.
• As an option, you can also modify discount lines.
• Make sure you set up the item in Product Information Management.

This topic includes example values. You might use dierent values, depending on your business requirements.

Summary of the Steps

1. Edit integration algorithm.


2. Manage service mapping.
3. Enable feature.

Edit Integration Algorithm


1. Sign into Order Management with the Order Administrator job role, then, in the Navigator, click Pricing
Administration.

You use the Order Administrator job role so you can access the integration algorithm in the Pricing
Administration work area.
2. On the Overview page, click Tasks.
3. In the Tasks pane, under Order Management Conguration, click Manage Algorithms.
4. On the Manage Algorithms page, click Integration Algorithm for Sales Order Charges.

548
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

5. On the Edit Algorithm page, in the Step Details area, in the Execute Condition area, in the Default Action area,
locate the code in the Default Actions window.

6. Click Edit immediately to the right of the Actions window.

Notice the text that Actions contains.

/*You can set up this integration algorthim so it uses accounts receivables to calculate tax on the
shipping charge. To do this, you must interface taxes and charges to accounts receivables as LINE and
not as FREIGHT. Do the following work:
1. Remove the comments from the lines below.
2. Publish your integration algorithm.
3. Use the Manage Service Mappings page to map your integration algorithm to service InvoiceService.
If an integration algorithm already maps to InvoiceService, then do not map your your integration
algorithm to InvoiceService. Instead, incorporate steps from your integration algorithm into the
integration algorithm that already maps to InvoiceService.
*/
//FreightRow.LineType = ChargeRow.ChargeApplyTo == "SHIPPING" ? "LINE" : FreightRow.LineType
//FreightRow.InventoryItemId = ChargeRow.ChargeApplyTo == "SHIPPING" ? '<Replace with Freight Inventory
Item Id>' : null

7. Remove the commented instructional text, remove the two forward slashes (//) from the following code, then
add the line and Id details for your shipping line.

//FreightRow.LineType = ChargeRow.ChargeApplyTo == "SHIPPING" ? "LINE" : FreightRow.LineType

549
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

//FreightRow.InventoryItemId = ChargeRow.ChargeApplyTo == "SHIPPING" ? '<Replace with Freight Inventory


Item Id>' : null

where
◦ LINE. Species the shipping line where you're requesting Receivables to calculate tax on the shipping
charge.
◦ <Replace with Freight Inventory Item Id>. Species the Item Id of the freight inventory item that
Receivables will use to calculate tax.
You can also add a description.
For example, here's some code that species to use item 123456789.
FreightRow.LineType = ChargeRow.ChargeApplyTo == "SHIPPING" ? "LINE" : FreightRow.LineType
FreightRow.InventoryItemId = ChargeRow.ChargeApplyTo == "SHIPPING" ? '123456789' : null

As an option, you can specify other aributes. For details, see the Specify Charges That Order Management
Sends to Oracle Receivables topic.
8. Click Save and Close.
9. On the Manage Algorithms page, click Actions > Publish.

Manage Service Mapping


You use the Manage Service Mappings page to map your integration algorithm to the InvoiceService service.

If you already set up an integration algorithm that maps to InvoiceService, then don't map your integration algorithm
to InvoiceService. Instead, incorporate steps from your integration algorithm into the integration algorithm that
already maps to InvoiceService. For details about how to map your integration algorithm to InvoiceService, see the Use
Extensible Flexelds to Integrate Order Management with Other Applications topic.

Manage service mapping.


1. Create a sand box. For details, see the Create a Sandbox So You Can Edit Service Mappings topic.
2. In the Tasks pane, under Order Management Conguration, click Manage Service Mappings.
3. On the Manage Service Mappings page, click FulllmentIntegration.
4. Set up the source for the interface line.
◦ Click Sources.
◦ Click the row that contains InvoiceSource in the Source column.
◦ In the Entity Mappings list, click the row that contains ARChargeInterfaceLine in the Entity column.
◦ In the Aribute Mappings list, add these aributes.
• InventoryItemId
• LineType
5. Set up the service for the interface line.
◦ Click Services.
◦ Click the row that contains InvoiceService in the Service column.
◦ In the Entities list, click the row that contains ARChargeInterfaceLine in the Entity column.
◦ In the Aribute list, add these aributes.
• InventoryItemId

550
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

• LineType
6. Set up the source for the charge.
◦ Click Sources.
◦ Click the row that contains InvoiceSource in the Source column.
◦ In the Entity Mappings list, click the row that contains Charge in the Entity column.
◦ In the Aribute Mappings list, add an aribute.

Aribute View Object Aribute

ChargeApplyTo ChargeAppliesTo
   

7. Set up the service for the charge.


◦ Click Services.
◦ Click the row that contains InvoiceSource in the Service column.
◦ In the Entities list, click the row that contains Charge in the Entity column.
◦ In the Aribute list, add an aribute.

Aribute View Object Aribute

ChargeApplyTo Leave empty


   

Enable Feature
1. In the Navigator, click Setup and Maintenance.
2. In the Setup and Maintenance work area, go to the Order Management oering.
3. Click Change Feature Opt In.
4. In the row that contains Order Management in the Name column, click Features.
5. In the row that contains Enable Custom Payloads for Downstream Integration in the Feature column, click
Features.
6. In the Feature Name dialog, add a check mark to the Invoice option, click Save and Close, then click Done.

Related Topics
• Pricing Algorithm
• Service Mapping
• Create a Sandbox So You Can Edit Service Mappings

Aributes You Can Use When Integrating Order Management with Oracle Receivables
Get details about the aributes you can specify when you use an integration algorithm to send charges from Order
Management Cloud to Oracle Receivables.

Interface Line Aributes for Accounts Receivable Charge


Here are the aributes you can use on the interface line for the accounts receivable charge.

551
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Type Description

AccountingRuleDuration Long Duration of the accounting rule in the


    revenue schedule.
 

AccountingRuleId Long Value that uniquely identies the


    accounting rule in the revenue schedule.
 

AccountingRuleName String Name of the accounting rule in the


    revenue schedule.
 

AddressVericationCode String Abbreviation that identies the credit card


    address from Oracle Payment Server.
 

AmountIncludesTax String Indicates whether the line amount


    includes tax. If the value is empty, then
the application uses the value from the tax
rate code.
 

ApplicationId Long Value that uniquely identies the source


    application that imports transactions into
Oracle Receivables.
 

ApprovalCode String Abbreviation that identies the payment


    approval from the organization that
provides the credit card.
 

AuthorizationComplete String Indicates whether the billing for the credit


    check authorization is complete.
 

BatchSourceName String Name of the transaction source that the


    row references.
 

BillContactPartyNumber String Value that uniquely identies the bill-to


    contact party for the transaction.
 

BillCustomerAccountNumber String Value that uniquely identies the account


    number of the bill-to customer of the
transaction.
 

BillCustomerSiteNumber String Value that uniquely identies the bill-to


    customer site for the transaction.
 

BillingDate Date Billing date to use to create the invoice.


    Provide a value in this format.
 
YYYY/MM/DD
 

552
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Type Description

Comments String Comments for the transaction line.


     

ConsBillingNumber String Number that identies the modied billing


    and the print format. Don't use it for a
balance forward bill.
 

ContractEndDate Date End date of the contract. Use it when the


    transaction line references a contract.
 

ContractId Long Value that identies the contract.


     

ContractLineAmount Decimal If the transaction line references a


    contract, then this value species the
original item amount on the contract or
the new item amount after the application
calculates credits on the contract.
 

ContractLineId Long Value that uniquely identies the contract


    line.
 

ContractLineQuantity Decimal
    If the transaction line references a
contract, and if the application.

• Hasn't calculated credit on the


contract. This aribute contains
the item quantity that the contract
species.
• Has calculated credit on the
contract. This aribute contains
the item quantity that results after
the calculation.

ContractLineUnitPrice Decimal
    If the transaction line references a
contract, and if the application.

• Hasn't calculated credit on the


contract. This aribute contains
the unit price that the contract
species.
• Has calculated credit on the
contract. This aribute contains
the unit price that results after the
calculation.

ContractStartDate Date Start date of the contract when the


    transaction line references a contract.
The start date of the billing period on the
rst invoice provides this date for each
recurring invoice.
 

553
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Type Description

CreditMethodForAccountRule String
    Credit method for crediting a transaction
that uses a revenue schedule rule. It
contains one of these values.

• Last-in rst-out (LIFO). Removes


revenue starting with the last
general ledger period. It also
reverses prior periods until the
value in the credit memo equals
zero.
• PRORATE. Credits an equal percent
to each account assignment for the
invoice.
• UNIT. Reverses the revenue for
the number of units that you
specify from the original line on the
invoice. If the LineType is TAX or
CHARGES, or if the charge is for
header freight, then don't use UNIT.

CreditMethodForInstallments String
    Credit method that credits a transaction
that uses a split payment term. It contains
one of these values.

• First-in rst-out (FIFO). Credits


the rst installment before it credits
any other installment.
• Last-in rst-out (LIFO). Credits the
last installment before it credits any
other installment.
• PRORATE. Credits the installments
of the credited transaction, and
then prorates them according to
the amount that remains for each
installment. If the LineType is TAX
or CHARGES, or if the charge is
for header freight, then don't use
PRORATE.
• Empty. Don't use any method.

CustomerBankAccountName String Name of the bank account for the bill-to


    customer.
 

CustomerTrxTypeName String Name of the transaction type that the row


    references.
 

CustomerTrxTypeSequenceId Long Value that uniquely identies the


    transaction type.
 

DeferralExclusion String
    Contains one of these values.

• Yes. Don't include the transaction


line on the automatic invoice from
automated revenue deferral.

554
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Type Description

• No. Include the transaction line.

Description String Description of the transaction line.


     

DocumentNumber Long Document number of the transaction.


     

EnforceSequenceDateCorrelation String Determines whether to enforce


    chronological sequencing on the
document.
 

ExceptionId Long Value that uniquely identies the tax


    exception.
 

ExemptionId Long Value that uniquely identies the tax


    exemption.
 

GlDate Date Accounting date of the transaction. This


    value must reference an accounting
period that's open or that you can enter at
some point in the future.
 

InternalNotes String More comments.


     

InventoryItemId Long Value that uniquely identies the


    inventory item for the transaction.
 

InvoicedLineAcctgLevel String Accounting level for the invoice lines that


    are eligible to create an invoice in the
source system.
 

InvoicingRuleId Long Value that uniquely identies the invoice


    rule for the transaction.
 

InvoicingRuleName String
    Name of the invoice rule that processes
this transaction. Values include Advance
Invoice or Arrears Invoice.

If the invoice line.

• Includes a rule. You must set


InvoicingRuleName to the Id or to
the name of the invoicing rule.
• Doesn't include a rule. The
InvoicingRuleName aribute is
optional.

555
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Type Description

ItemNumber String Number that identies the inventory item


    of the line item.
 

LastPeriodToCredit Int Most recent period for credit. Use this


    aribute only for a credit memo. You must
use a value between 0 and the duration
of the accounting rule for the invoice. You
must use only a positive integer.
 

LastTrxDebitAuth String
    Contains one of these values.

• Y. The current transaction is the last


transaction of a recurring series of
direct debit collections for a debit
authorization according to the
ISO20022 specication.
• N. The current transaction isn't the
last transaction.

LineIntendedUse String Classies an item when the intended use


    of the item aects tax.
 

LineType String Line type for this transaction. You must


    enter a value for this aribute. If you're
processing a credit memo, then enter
the type of line you're crediting. Values
include LINE, TAX, FREIGHT, or CHARGES.
Note that CHARGES refers to nance
charges.
 

MemoLineName String Name of the memo line for this


    transaction.
 

MemoLineSequenceId Long Value that uniquely identies the


    sequence for the memo line for the
transaction.
 

OrderChargeComponentId Long Value that uniquely identies the charge


    component.
 

OrderChargeId Long Value that uniquely identies the charge.


     

OrigSystemBatchName String Value that uniquely identies the original


    batch from the source system.
 

OrigSystemBillAddressReference String Value that uniquely identies the bill-to


    customer address from the source system.
 

556
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Type Description

OrigSystemBillContactReference String Value that uniquely identies the bill-to


    customer contact from the source system.
 

OrigSystemBillCustomerReference String Value that uniquely identies the bill-to


    customer from the source system.
 

OrigSystemShipAddressReference String Value that uniquely identies the ship-to


    address for the customer account from
the source system.
 

OrigSystemShipContactReference String Value that uniquely identies the ship-to


    contact for the customer account from the
source system.
 

OrigSystemShipCustomerReference String Value that uniquely identies the ship-to


    customer for the account from the source
system.
 

OrigSystemShipPartyReference String Value that uniquely identies the ship-to


    customer from the source system.
 

OrigSystemShipPartySiteReference String Value that uniquely identies the ship-to


    address for the customer from the source
system.
 

OrigSystemShipPtyContactReference String Value that uniquely identies the contact


    for the ship-to customer from the source
system.
 

OrigSystemSoldCustomerReference String Value that uniquely identies the account


    for the sold-to customer from the source
system.
 

OrigSystemSoldPartyReference String Value that uniquely identies the sold-to


    customer from the source system.
 

OverrideAutoAccounting String
    Contains one of these values.

• Y. Automatic invoicing uses the


deferred revenue account that the
interface table provides when it
performs revenue accounting.
• N. Automatic invoicing uses the
accounts that automatic accounting
creates.

PaymentAributes String Payment aributes that group transaction


    lines.

557
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Type Description

PaymentServerOrderNumber String Number that indicates whether the Oracle


    Payment Server authorized the credit card
payment.
 

PaymentSetId Long Value that uniquely identies the payment


    set.
 

PaymentTrxnExtensionId Long Value that uniquely identies the


    transaction in Oracle Fusion Payments for
processing a credit card or bank account
payment.
 

PrimarySalesrepNumber String Number that identies the primary


    salesperson.
 

PrintingOption String Indicates whether you can print the


    transaction.
 

ProductFiscClassication String Indicates whether tax calculations must


    include the item tax.
 

PurchaseOrderDate Date Date of the purchase order.


     

PurchaseOrderRevision String Revision number for the purchase order.


     

ReasonCode String Reason code for this transaction.


     

ReasonCodeMeaning String Meaning of the reason code for the credit


    memo.
 

ReceiptMethodId Long Value that uniquely identies the receipt


    method for the transaction.
 

ReceiptMethodName String Name of the receipt method for the


    transaction.
 

RelatedBatchSourceName String Name of the batch source for the


    document that references this transaction.
 

RelatedTrxNumber String Number that identies the document that


    references this transaction.
 

558
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Type Description

ResetTrxDate String Indicates whether automatic invoice resets


    the transaction date to the accounting
date when the source doesn't provide the
transaction date.
 

ResourceSalesrepId Long Value that uniquely identies the primary


    salesperson for this transaction.
 

RuleEndDate Date Date to stop the revenue schedule rule for


    this transaction.
 

RuleStartDate Date Date to start the revenue schedule rule for


    this transaction.
 

SalesOrderRevision Decimal Number of the sales order revision.


     

SalesTaxId Long Value that uniquely identies the sales tax.


     

SecondBillingPeriodStartDate Date If the rst invoice doesn't


    cover a full billing period, then
SecondBillingPeriodStartDate species
the start date of the billing period on
the second invoice. Applies only for a
recurring invoice.
 

SecondInvoiceDate Date If the rst invoice doesn't cover a full


    billing period, then SecondInvoiceDate
species the transaction date of the
second invoice. Applies only for a
recurring invoice.
 

SetOfBooksId Long Value that uniquely identies the ledger.


     

ShipContactPartyNumber String Value that uniquely identies the contact


    for the ship-to party for the transaction.
 

ShipCustomerAccountNumber String Value that uniquely identies the


    account for the ship-to customer for the
transaction.
 

ShipCustomerSiteNumber String Value that uniquely identies the site for


    the ship-to customer for the transaction.
 

SoldCustomerAccountNumber String Sold-to customer account for the


    transaction.
 

559
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Type Description

SourceApplicationId Long Value that uniquely identies the source


    application. Used for taxes.
 

SourceEntityCode String Abbreviation that identies the source


    entity. Used for taxes.
 

SourceEventClassCode String Abbreviation that identies the class for


    the source event. Used for taxes.
 

SourceTrxDetailTaxLineId Long Value that identies the Value that


    uniquely identies the detail tax line for
the source transaction. Used for taxes.
 

SourceTrxId Long Value that uniquely identies the source


    transaction. Used for taxes.
 

SourceTrxLineId Long Value that uniquely identies the source


    transaction line. Used for taxes.
 

SourceTrxLineType String Value that uniquely identies the line type


    for the source transaction. Used for taxes.
 

Tax String Code that represents a charge that a scal


    or tax authority applies in a tax regime.
 

Taxable String
    Contains one of these values.

• Y. The current line is taxable.


• N. The current line isn't taxable.

TaxableAmount Decimal Amount of the calculated taxable basis.


    The tax amount equals the tax rate
multiplied by the taxable amount.
 

TaxJurisdictionCode String Abbreviation that identies the


    geographic area where governments
apply tax.
 

TaxPrecedence Decimal Number that indicates the sequence


    to use when calculating tax in the
compounding process when more than
one tax applies to an invoice line. The
application calculates tax in ascending
order according to compounding
precedence.
 

560
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Type Description

TaxRate Decimal Tax rate for this tax line. If LineType is


    TAX, then you must enter a value for the
TaxRate aribute or for the AMOUNT
aribute. If LineType is LINE, CHARGES, or
FREIGHT, then don't use TaxRate.
 

TaxRateCode String Abbreviation that identies the numeric


    value to use when calculating the tax.
 

TaxRegimeCode String Abbreviation that identies the entity to


    use when dening a common set of tax
rules for one or more taxes that use the
same tax requirement.
 

TaxStatusCode String Abbreviation that identies the taxable


    nature of an item in the context of a
transaction and a tax on the transaction.
 

TransactionInterfaceGdf String Descriptive exeld that stores details


    about the area that the receivables
transaction covers. This aribute uses the
global segment of the descriptive exeld,
and it stores transaction details in the lines
interface table.
 

TransactionInterfaceHeaderD String Descriptive exeld that stores details


    about the receivables transaction header.
 

TransactionInterfaceLinkToD String Descriptive exeld that stores details


    about link-to transactions in the lines
interface table.
 

TransactionLineD String Descriptive exeld that stores details


    about invoice lines in the lines interface
table.
 

TransactionLineInterfaceGdf String Descriptive exeld that stores details


    about the area that the receivables
transaction line covers. This aribute uses
the global segment of the descriptive
exeld, and it stores transaction line
details in the lines interface table.
 

TranslatedDescription String Translated description of the transaction


    line.
 

TrxDate Date Transaction date. Provide a value in the


    format YYYY/MM/DD.
 

561
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Type Description

TrxNumber String Value that identies the transaction that


    the application creates or that the user
provides.
 

VATTaxId Long Value that uniquely identies the value-


    added tax.
 

Charge Aributes for Accounts Receivable Charge


Here are the aributes you can use on the charge for the accounts receivable charge.

Aribute Description

ApplyTo Indicates whether pricing applied the charge for the item, for shipping, or for the return.
   

AverageUnitSellingPrice Weighted average of the selling price. This average is the total sales revenue divided by total
  units sold.
 

CanAdjustFlag Determines whether the charge is eligible for adjustment.


   

ChargeAppliesTo Indicates whether pricing applied the charge for the item, for shipping, or for the return.
   

ChargeCurrency Charge currency.


   

ChargeCurrencyCode Abbreviation that identies the charge currency.


   

ChargeDenition Charge denition that denes the price type, charge type, and subtype.
   

ChargeDenitionCode Abbreviation that identies the charge denition.


   

ChargeSubType Charge subtype.


   

ChargeSubtypeCode Abbreviation that identies the charge subtype.


   

ChargeType Charge type, such as item sale, service sale, nancing, lease, shipping, restocking penalties,
  and so on.
 

ChargeTypeCode Abbreviation that identies the charge type.


   

GSAUnitPrice Price for each unit. Determined from the price list on the pricing strategy.

562
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Description

   

OrderChargeId Value that uniquely identies the transaction.


   

PricedQuantity Abbreviation that identies the unit of measure for the priced quantity, such as Ton.
   

PricedQuantityUOM Unit of measure for priced quantity, such as Ton. Product Information Management or a
  service in Order Management Cloud provides this value.
 

PricedQuantityUOMCode Abbreviation that identies the unit of measure for the priced quantity.
   

PricePeriodicity Time period for a recurring price, such as month, quarter, or year.
   

PricePeriodicityCode Abbreviation that identies the time period for the price.
   

PriceType Price type, such as one time, recurring, and so on.


   

PriceTypeCode Abbreviation that identies the price type.


   

PrimaryFlag Indicates whether this charge is the primary charge.


   

RollupFlag Indicates whether this charge is a rollup charge.


   

SequenceNumber Sequence number for the charge.


   

SourceChargeId Value that uniquely identies the charge. The source system applies this value.
   

Charge Component Aributes for Accounts Receivable Charge


Here are the aributes you can use on the charge component for the accounts receivable charge.

Aribute Description

ChargeCurrency Name of the currency that the charge component uses.


   

ChargeCurrencyCode Abbreviation that identies the currency that the charge component uses.
   

ChargeCurrencyDurationExtendedAmountExtended amount for the duration displayed in the currency that the charge uses.
   

563
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Description

ChargeCurrencyExtendedAmount Extended amount displayed in the currency that the charge uses. Extended amount equals
  the unit price multiplied by the quantity on the order line. For a congured item, the extended
amount equals the unit price multiplied by the extended quantity on the order line.
 

ChargeCurrencyUnitPrice Price or adjustment for each unit displayed in the charge currency that the order line uses.
   

Explanation Explanation of the charge component.


   

ExplanationMessageName Message name of the explanation that displays in the price break down dialog.
   

HeaderCurrency Name of the currency that the order header uses.


   

HeaderCurrencyCode Abbreviation that identies the currency that the order header uses.
   

HeaderCurrencyDurationExtendedAmountExtended amount for the duration, displayed in the currency that the order header uses.
   

HeaderCurrencyExtendedAmount Extended amount, displayed in the currency that the order header uses.
   

HeaderCurrencyUnitPrice Price or adjustment for each unit of the item, displayed in the currency that the order header
  uses.
 

OrderChargeComponentId Value that uniquely identies the transaction.


   

PercentOfComparisonElement Percent that the unit price constitutes of the basis charge component. The default value for
  the basis is List Price. This aribute stores the margin percent, the percent that net price
constitutes of the list price, and so on.
 

PriceElement Name of the price element, such as list price, net price, and so on.
   

PriceElementCode Abbreviation that identies the price element.


   

PriceElementUsage Name that describes charge component usage.


   

PriceElementUsageCode Abbreviation that identies the charge component usage.


   

PricingSourceId Value that identies the source of the lowest level pricing. For example, it contains the Id that
  identies a line on the price list, a tier rule, a shipping line, and so on.
 

PricingSourceType Type of the price source, such as the lines of a segment price list. The lookup QP_
  ENTITY_TYPES or a manual price adjustment provides the value for this aribute.
 

564
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Description

PricingSourceTypeCode Abbreviation that identies the type of the price source.


   

RollupFlag Indicates whether the value is a rollup value for the charge component.
   

SequenceNumber Sequence number for the charge component.


   

SourceChargeComponentId Value that uniquely identies the charge component that the source system assigns.
   

SourceMpaId Value that identies the source of a manual price adjustment.


   

TaxIncludedFlag Indicates whether the price for the charge component includes tax.
   

Related Topics
• Pricing Algorithm
• Service Mapping

Specify Transaction Types When Integrating Order Management with Oracle


Receivables
A sales order might include details you use to determine accounting for a nancial transaction, such as an invoice
memo, or a debit and credit memo. You can set up a business rule that sets the value for the AR Transaction Type
aribute according to details from the sales order, such as business unit, order type, line type, or item.
Assume you must create an invoice in Oracle Receivables with a dierent transaction type for each sales order. You can
use AR Transaction Type to specify the accounting entries to use for the transaction.

Customer Name Project Type Sales Order Number AR Transaction Type Revenue Account

Customer 1 Support Sales Order 1 Application Support 1111 - Income from


        Application Support
 

Customer 2 Implementation Sales Order 2 Oracle Implementation 1112 - Income from


        Implementation
 

You specify AR Transaction Type in a pretransformation rule or posransformation rule. Write your rule so it uses one
of these combinations of aributes.

565
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aributes Description

Line category and business unit


  Use this combination when you must assign the business unit according to the transaction
type.

• Use the same AR Transaction Type, such as ARTT-Invoice1, for order lines you're
fullling.
• Use the same AR Transaction Type, such as ARTT-Credit1, for return order lines.

Use one of these combinations. Use this combination when you must assign the business unit according to transaction types.

• Line type and line category, • Use more than one AR Transaction Type for order lines that you're fullling.
and business unit • Use more than one AR Transaction Type for return order lines.
• Line type or line category, and
business unit

Order category and business unit Use this combination when your source system sends a source order that includes return order
  lines but doesn't include order lines that you're fullling.
 

Order type and business unit Use this combination when a sales order that you create in the Order Management work area
  includes return order lines but doesn't include order lines that you're fullling.
 

Oracle Receivable doesn't default a value for Receivables Transaction. If you don't dene a pretransformation rule or
posransformation rule, then Order Management uses the predened behavior. It uses transaction type Invoice for
order lines that you're fullling, and it uses Credit Memo for return order lines.

You will set up a transformation rule.

• If the Inventory Item Id aribute on the fulllment line is 149, then set the Transaction Type aribute to 1.

566
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

For example.

For details about how to create a business rule, see the Use Business Rules With Order Management topic.

Specify transaction types to send from Order Management to Oracle Receivables.

1. In the Setup and Maintenance work area, go to the task.

◦ Oering: Order Management


◦ Functional Area: Orders
◦ Task: Manage Posransformation Defaulting Rules
2. On the Manage Posransformation Defaulting Rules page, create a new rule.

567
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Value

Name Billing Rule


   

Eective Date Always


   

Active Contains a check mark


   

Advanced Mode Contains a check mark


   

3. Create the If statement.

Fline is a PostTransformationRules.FulfillLineVO

4. Create the And statement.

Fline.InventoryItemId is 149

5. Create the Then statement, then click Save and Close.

assert new PostTransformationRules.ModifyEntity (attrName:"BillingTrxTypeId", attrValue:1,


viewRowImpl:Fline.ViewRowImpl)

6. Test your set up.

◦ Navigate to the Order Management work area, then create a new sales order.
◦ In the Order Lines area, add an item that references the inventory item you specied earlier in this
procedure.
◦ On the Billing and Payment Details tab, in the Order Line Details area, on the order line you must modify,
click Edit Accounting Details.
◦ In the Edit Accounting Details dialog, set the Receivables Transaction aribute, then click Submit..
◦ Verify that Oracle Receivables correctly categorized the transaction.

Flexelds
Overview of Using Flexelds to Integrate Order Management with Other Oracle
Applications
Use a descriptive exeld to integrate Order Management Cloud with Oracle Receivables, Oracle Shipping, Oracle
Receiving, or Oracle Procurement.
You can send each value that an extensible exeld uses to an upstream source system or to a downstream fulllment
system. You use the web service payload to send the value.

568
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Example Payload of the Import Web Service


Here's an example payload that uses a exeld to integrate with a source system.

569
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Example Payload with Fulllment Systems


Here's an example payload that uses a exeld to integrate with a fulllment system.

Automatically Map Extensible Flexeld


Each interaction uses a service data object (SDO). You must use the web services described in the Web Services You Can
Use to Integrate Order Management topic.

You can use the Copy-of feature in XLST (Extensible Stylesheet Language Transformations) instead of doing this work
manually. This feature dynamically maps the input extensible exelds to the Order Management entities and maps the
extensible exeld entity in Order Management to the SDO or modied node.

Here's where you can use this feature in Order Management.


• Sales order integration
• Template tasks
• Fulllment tasks

You must manually map other task types.

Here are details about the XML payload that the example in this document uses when it creates the extensible exeld.

Category Name Context Code Segment Code

DOO_ HEADERS_ ADD_INFO ComplianceDetails _ CompleteCompliancedate


     

DOO_ HEADERS_ ADD_INFO ComplianceDetails _ ComplianceDate


     

570
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Category Name Context Code Segment Code

DOO_ HEADERS_ ADD_INFO ComplianceDetails _ ComplianceInfo


     

DOO_ HEADERS_ ADD_INFO ComplianceDetails _ ComplianceReason


     

DOO_ HEADERS_ ADD_INFO ComplianceDetails _ ComplianceValue


     

DOO_ HEADERS_ ADD_INFO HeaderContext1 _ H1AributeChar1


     

DOO_ HEADERS_ ADD_INFO HeaderContext1 _ H1AributeChar2


     

DOO_ HEADERS_ ADD_INFO HeaderContext1 _ H1AributeDate1


     

DOO_ HEADERS_ ADD_INFO HeaderContext1 _ H1AributeDateTime1


     

DOO_ HEADERS_ ADD_INFO HeaderContext1 _ H1AributeNum1


     

DOO_ FULFILL_ LINES_ ADD_INFO PackShipInstruction _ PackingInstruction


     

DOO_ FULFILL_ LINES_ ADD_INFO PackShipInstruction _ ShippingInstruction


     

DOO_ FULFILL_ LINES_ ADD_INFO PackShipInstruction _ShippingCost


     

DOO_ FULFILL_ LINES_ ADD_INFO PackShipInstruction _NeedbyDate


     

DOO_ FULFILL_ LINES_ ADD_INFO PackShipInstruction _PickDate


     

DOO_ FULFILL_ LINE_ DTLS_ADD_INFO ExportImport _ ForwardingAgentContact


     

DOO_ FULFILL_ LINE_ DTLS_ADD_INFO ExportImport _ContactPerson


     

DOO_ FULFILL_ LINE_ DTLS_ADD_INFO ExportImport _ContactNumber


     

Related Topics
• Overview of Using Extensible Flexelds in Order Management

571
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Use Descriptive Flexelds to Integrate Order Management with Other Oracle


Applications
Use a descriptive exeld to integrate Order Management with Oracle Receivables, Shipping, Receiving, or
Procurement.
This example describes how to integrate Order Management with Oracle Receivables. Integration with Shipping,
Receiving, or Procurement is similar but with these dierences.
• You make aributes available in the main entity.
• You must make sure your set up only references aributes that each application supports. For a list of
aributes, see the Overview of Integrating Order Management with Other Oracle Applications topic.
• You must reference the database code that identies each aribute, such as Aribute1 or Attributedate2. You
must not use the implemented names to reference the aributes.
• If you reference a descriptive exeld according to context, then you must make sure your set up populates
AributeCategory. If you use a global segment, then it isn't necessary to populate AributeCategory.

In this example, you will integrate Order Management with Oracle Receivables. You will integrate a descriptive exeld
named Invoice Lines.

Summary of the Setup


1. Get values that identify the descriptive exeld.
2. Modify the service mapping.
This topic includes example values. You might use dierent values, depending on your business requirements.

Get Values That Identify the Descriptive Flexeld


1. Enable the Invoice option for the Enable Custom Payloads for Downstream Integration feature.
For details, see the Integrate Order Management with Other Oracle Applications topic.
Use a spreadsheet editor, such as Microsoft Excel, to create a spreadsheet that contains columns and values.

Aribute Source Value

Namespace targetNamespace aribute from the XSD -


  le.  
 

Xsitype complexType aribute from the XSD le. -


     

Context Code DefaultValue property of the -


  FLEX_Context view aribute from the  
XML le.
 

Segmentname Name of the view aribute from the XML -


  le.  
 

The Source column describes the source you will use to get the value you will enter in the Value column. Leave
the Value column empty for now. You will add values to it during this procedure.

572
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

2. In the Setup and Maintenance work area, go to the task.


◦ Oering: Financials
◦ Functional Area: Receivables
◦ Task: Manage Receivables Descriptive Flexelds
3. On the Manage Receivables Descriptive Flexelds page, search for the value.

Aribute Value

Name Invoice Lines


   

4. In the search results, click the row that contains the value.

Aribute Value

Name Invoice Lines


   

5. Download the archive and open it for editing.


◦ Click Actions > Download Flexeld Archive.
◦ In the Conrmation dialog, wait for the archive to nish, click Download, then save the le to your local
computer.
The name of this le will include the value of the Flexeld Code aribute. For this example, the le name
is 222_RA_CUSTOMER_TRX_LINES.zip.
◦ Use Windows Explorer to navigate to 222_RA_CUSTOMER_TRX_LINES.zip.
◦ Expand 222_RA_CUSTOMER_TRX_LINES.zip > Oracle > Apps > Financials > Receivables > transactions >
shared > model > flex > TransactionLineDff.
◦ Use an editor, such as Notepad++ or an XML editor, to open one of the les.

If the Flexeld You Dene in . . . Then Open File


Receivables. . .

Includes a context. RACUSTOMERTRXLINESCon1. xsd.


   
This folder contains several XSD les. You open the XSD le that contains the context
code you use for this example, which is RA_ CUSTOMER_ TRX_ LONES_Con1.
 

Doesn't include a context and you TransactionLineFLEX. xsd


set it up it globally.  
  Note the values of targetNamespace and complexType.
 
If you don't set up a context, then the DefaultValue aribute is empty, and
_FLEX_Context is empty in the Sources tab of the service mapping.
 
If you set up the context for only one aribute in the exeld, then you can use
DefaultValue of this aribute when you specify _FLEX_Context in the VO.xml le.
 

573
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

6. Copy values to your spreadsheet, then close the editor. Make sure you include the single quotation marks ( ' ) in
each value.

Aribute Value

targetNamespace 'hp://xmlns. oracle. com/ apps/ nancials/ receivables/ transactions/ shared/ model/
  ex/ TransactionLineD/ '
 

complexType
  If you.

◦ Set up a context, then use 'RACUSTOMERTRXLINESCon1'

◦ Didn't set up a context, then use 'TransactionLineFLEX'

For example, the RACUSTOMERTRXLINESCon1.xsd le contains the aributes on lines 2 and 4.

7. In Windows Explorer, expand View, then use an XML editor to open the le that includes the public view object
with the context you need.
For this example, open TransactionLineFLEXRA_5FCUSTOMER_5FTRX_5FLINES_5FCon1VO.xml.
8. Copy the DefaultValue property of the FLEX_Context view aribute to your spreadsheet.
In this example, the default value is RA_CUSTOMER_TRX_LINES_Con1.

574
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

9. Identify the name of the view aribute you must map, then copy it to your spreadsheet.
In this example, search the XML le for a view aribute that contains RACUSTOMERTRXLINESSSeq1.

10. Manage the context.

◦ On the Edit Descriptive Flexeld page, click Manage Contexts.


◦ On the Manage Contexts page, search for the value.

Aribute Value

Context Code 'RA_ CUSTOMER_ TRX_ LINES_Con1'


   

◦ In the search results, click Actions > Edit.


◦ On the Edit Context page, copy the value to your spreadsheet.

Aribute Value

API Name RACUSTOMERTRXLINESCon1


   

◦ Cancel pages until you're back on the Setup and Maintenance page.
11. Verify that your spreadsheet contains the values.

Aribute Source Value

Namespace The targetNamespace aribute from the 'hp://xmlns. oracle. com/


  XSD le. apps/ nancials/ receivables/
  transactions/ shared/ model/ ex/
TransactionLineD/ '
 

Xsitype The complexType aribute from the XSD 'RACUSTOMERTRXLINESCon1'


  le.  
 

Context Code The DefaultValue property of the 'RA_ CUSTOMER_ TRX_ LINES_Con1'
  FLEX_Context view aribute from the  
XML le.
 

Segmentname The name of the View aribute from the RACUSTOMERTRXLINESSSeg1


  XML le.  
 

575
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

You must enclose each string value with single quotation marks.

Modify the Service Mapping


You will administer a service mapping that implements the service data object.

Here's the service data object.

Fulfillment Integration
Service Mapping 1
Invoice Sources

Invoice Service

3 4

TransactionLineDff NameSpace

XsiType

_FLEX_Context

RACUSTOMERTRXLINESCon
1_Custom

Legend Oracle Receivables

Source View Object


Service
Entity - View Attribute
Attribute - Namespace
Cross-reference - complexType

This SDO (service data object) includes objects.

1. Source. Provides a structure so Order Management can model data in the input SDO (service data object).

In this example, you will do these steps.

◦ Modify the InvoiceSources source on the predened FulllmentIntegration service mapping. You
will map this source to the TransactionLineD entity. This entity comes predened with aributes
NameSpace, XsiType, and _FLEX_Context.
◦ Add the RACUSTOMERTRXLINESCon1_Custom aribute. The FulllmentIntegration context comes
predened with the descriptive exelds and global descriptive exelds that Order Management
supports.

576
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

2. Service. Requests the service mapping and receives the output SDO. In this example, the InvoiceService service
references the entities and aributes that the integration algorithm uses to get the value of the descriptive
exeld.
3. Entity. The entity that the service mapping requires to structure the output SDO. In this example, you modify
the TransactionLineD entity so it references the descriptive exeld.
4. Aributes. The aributes that the service mapping requires to structure the output SDO. You will set up these
aributes so they reference objects and properties in Oracle Receivables.
For details about the service data object, see the How Service Mappings, Pricing Algorithms, and Matrixes Work
Together topic.

Modify the service mapping.

1. Sign into Order Management with the Order Administrator job role, then, in the Navigator, click Pricing
Administration.

Use the Order Administrator job role so you can access the integration algorithm and service mappings that
you use in the Pricing Administration work area to set up the integration.
2. Create a sand box. For details, see the Create a Sandbox So You Can Edit Service Mappings topic.
3. On the Overview page, click Tasks, then, under Order Management Conguration, click Manage Service
Mappings.
4. On the Manage Service Mappings page, in the Name column, click FulllmentIntegration.
5. On the Edit Service Mappings page, on the Entities tab, click the row that contains the value.

Aribute Value

Entity TransactionLineD
   

6. Click Sources.
7. In the InvoiceSources - Details area, on the Entity Mappings tab, click the row that contains the value.

Aribute Value

Entity TransactionLineD
   

8. On the Aribute Mappings tab, add expressions, then click Save.

Aribute Expression

NameSpace "hp://xmlns. oracle. com/ apps/ nancials/ receivables/ publicFlex/ TransactionLineD/ "
   

XsiType "RACUSTOMERTRXLINESCon1"
   

RACUSTOMERTRXLINESCon1_ Leave empty.


Custom  
 

577
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Copy values from your spreadsheet into the expression. You must use one set of double quotation marks ( " )
to enclose each string that you dene in the expression.
9. Click Services, then click the row that contains the value.

Aribute Value

Entity TransactionLineD
   

10. In the TransactionLineD - Entities area, add a row for each entity. Make sure the Read aribute and the Write
aribute each contain a check mark in each row.

Aribute Value

_FLEX_Context Leave empty.


   

XsiType Leave empty.


   

NameSpace Leave empty.


   

RACUSTOMERTRXLINESCon1_ RACUSTOMERTRXLINESCon1
Custom  
 

11. Click Save and Close.

Related Topics
• Pricing Algorithm
• Service Mapping
• How Service Mappings, Pricing Algorithms, and Matrixes Work Together

Use Extensible Flexelds to Integrate Order Management with Other Applications


Use an extensible exeld to integrate Order Management with Oracle Receivables, Oracle Shipping, Oracle Receiving,
or Oracle Procurement.
Assume you need to integrate with Oracle Receivables. Assume you implemented a context and segment for the header
extensible exeld.
• HeaderContext as the context
• H1AttributeNum as the segment

You will you add a header extensible exeld in the service mapping, store the Id of the primary salesperson in the
extensible exeld, then map it to the Id of the primary salesperson in the Accounts Receivable line.

Summary of the Setup


1. Get values that identify the extensible exeld.
2. Modify the service mapping.
3. Create an integration algorithm.

578
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

This topic includes example values. You might use dierent values, depending on your business requirements.

Get Values That Identify the Extensible Flexeld


1. Use a spreadsheet editor, such as Microsoft Excel, to create a spreadsheet that contains columns and values.

Aribute Source Value

ViewObject XML le. HeaderEBHeaderContext1privateVO


     

ViewAribute XML le. _ H1AributeNum1


     

2. In the Navigator, click Setup and Maintenance.


3. In the Setup and Maintenance work area, go to the task.

◦ Oering: Order Management


◦ Functional Area: Orders
◦ Task: Manage Order Extensible Flexelds
4. On the Manage Order Extensible Flexelds page, search for the value.

Aribute Value

Module Process Order


   

5. In the search results, click the row that contains the value.

Aribute Value

Name Header Information


   

6. Click Actions > Download Flexeld Archive


7. In the Conrmation dialog, wait for the archive to nish, click Download, then save the le to your local
computer.

The name of this le will include the value that the Flexeld Code aribute contains. For this example, the le
name is 10008_DOO_HEADERS_ADD_INFO.zip.
8. Use Windows Explorer to navigate to 10008_DOO_HEADERS_ADD_INFO.zip.
9. Expand 10008_DOO_HEADERS_ADD_INFO.zip > Oracle Apps > SCM > DOO > processOrder > Flex
> headerContextsB > View, then use an editor, such as Notepad++ or an XML editor, to open
HeaderEBHeaderContext1privateVO.xml.

You will examine the HeaderContext1 extensible exeld context.


10. Copy the value to your spreadsheet.

579
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Value

Name of ViewObject HeaderEBHeaderContext1privateVO


   

For example, the HeaderEBHeaderContext1privateVO.xml le contains view object name.

11. Copy the name of the aribute you will use to store the Id of the primary salesperson to your spreadsheet.

Look for the ViewAribute that matches the segment you're using to store the value you need. For this
example, here's the value you copy.

Aribute Value

Name of ViewAribute _ H1AributeNum1


   

For example, the HeaderEBHeaderContext1privateVO.xml le contains the view aribute name.

12. Verify that your spreadsheet contains values.

Aribute Source Value

ViewObject XML le. HeaderEBHeaderContext1privateVO


     

580
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Source Value

ViewAribute XML le. _ H1AributeNum1


     

Modify the Service Mapping


You will modify the predened FulllmentIntegration service mapping.

Here's the modication.

Fulfillment Integration
Service Mapping Invoice Sources

Entity Mapping

Entity: HeaderSalesPersonEFF_Custom
View Object: HeaderContext1privateVO
Query Attribute: HeaderId
Joined Entity: Header
Joined Entity Attribute: HeaderId
Attribute Mapping:
- HeaderId_Custom references HeaderId
- SalesPersonId_Custom references H1AttributeNum1
Invoice Service
maps

HeaderSalesPersonEFF
HeaderId_Custom
_Custom

SalesPersonId_Custom

Header HeaderId

ARInterfaceLine ResourceSalesrepId

Legend Oracle Receivables

Source View Object: HeaderContext1privateVO


Service
Entity View Attributes:
Attribute - HeaderId
Cross-reference - H1AttributeNum1

581
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Try it.

1. Sign into Oracle Management with the Order Administrator job role, then, in the Navigator, click Pricing
Administration.

Use this job role to access the integration algorithm and service mappings you use in the Pricing Administration
work area to set up the integration.
2. On the Overview page, click Tasks, then, under Order Management Conguration, click Manage Service
Mappings.
3. On the Manage Service Mappings page, in the Name column, click FulllmentIntegration.
4. On the Edit Service Mappings page, on the Entities tab, click Actions > Add Row, then set values.

Aribute Value

Entity HeaderSalesPersonEFF_ Custom


   

Description Context for an extensible exeld on the order header. It contains details about the
  salesperson.
 

5. In the Details area, add aributes, then click Save.

Aribute Type

HeaderId_ Custom Long


   

SalesPersonId_ Custom Long


   

6. Set up the sources.

◦ Click Sources.
◦ In the InvoiceSources - Details area, on the Entity Mappings tab, click View > Columns, then add a check
mark to each value.

• Joined Entity
• Joined Entity Aribute
• Use Existing View Object
◦ Click Actions > Add Row, set values, then click Save.

Aribute Value

Entity HeaderSalesPersonEFF_ Custom


   

Type View Object


   

View Object HeaderEBHeaderContext1privateVO

582
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Value

   

Query Type Join


   

Query Aribute HeaderId


   

Use Existing View Object Contains a check mark.


   

Joined Entity Header


   
It might be necessary to click Save to get the list of values to populate.
 

Joined Entity Aribute HeaderId


   

◦ On the Aribute Mappings tab, add aributes, then click Save.

Aribute View Object Aribute

HeaderId_ Custom HeaderId


   

SalesPersonId_ Custom _ H1AributeNum1


   
Copy the value from your spreadsheet.
 

◦ On the Entity Mappings tab, click the row that contains the value.

Aribute View Object Aribute

Entity ARInterfaceLine
   

◦ In the ARInterfaceLine - Details area, click Actions > Add Row, set the value, then click Save.

Aribute Value

Aribute ResourceSalesrepId
   

7. Set up the services.

◦ Click Services.
◦ In the InvoiceService - Details area, click Actions > Add Row, then set the value.

583
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Value

Entity HeaderSalesPersonEFF_ Custom


   

◦ In the HeaderSalesPersonEFF_Custom - Entities area, add aributes.

Aribute Alias

HeaderId_ Custom Leave empty.


   

SalesPersonId_ Custom Leave empty.


   

◦ In the InvoiceService - Details area, click the row that contains the value.

Aribute Value

Entity Header
   

◦ In the Header - Entities area, add an aribute.

Aribute Alias

HeaderId Leave empty.


   

◦ In the InvoiceService - Details area, click the row that contains the value.

Aribute Value

Entity ARInterfaceLine
   

◦ In the ARInterfaceLine - Entities area, add the aribute, then click Save and Close.

Aribute Alias

ResourceSalesrepId Leave empty.


   

584
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Create an Integration Algorithm


1. Click Tasks, then, under Order Management Conguration, click Manage Algorithms.
2. On the Manage Algorithms page, click Actions > Create.
3. On the Create Algorithm page, set the value, then click Save.

Aribute Value

Name Accounts Receivable Mapping Custom


   

4. Click Variables > Actions > Add Row, set the values, then click Save.

Aribute Value

Name ARIntegration
   

Data Type Data Object


   

Input and Output Input and Output


   

Internal Service Schema FulllmentIntegration. InvoiceService


   

5. Click Algorithm > Add Step > Conditional Action, set the values, then click Save.

Aribute Value

Name Map Salesperson Id


   

Description Map the primary salesperson from the extensible exeld that resides on the order header.
   

6. In the Data Sets area, add the data sets, then click Save.

Name Variable Path Cardinality Data Set Join

ARLine ARIntegration. Leave empty Not applicable


  ARInterfaceLine    
 

FLine ARIntegration. FulllLine Zero or one [FulllLineId: {ARLine.


      FulllLineId}]
 

HdrEFF ARIntegration. Zero or one [HeaderId_ Custom: {FLine.


  HeaderSalesPersonEFFCustom   HeaderId}]

585
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Name Variable Path Cardinality Data Set Join

   

where

Code Description

ARIntegration. ARInterfaceLine Species to use entity ARInterfaceLine of the service mapping to get order details, then store
  them in ARIntegration, which is the variable you added to this integration algorithm earlier in
this topic.
 
This integration uses ARIntegration to temporarily store the data that this integration
algorithm will communicate through the service mapping. The Data Set Join is empty in
primary data set ARLine because the secondary data set populates ARLine.
 

ARIntegration. FulllLine Filters the results in ARIntegration according to the fulllment line.
   
The join [FulllLineId: {ARLine. FulllLineId}] uses the FulllLineId aribute of the FulllLine
entity from the service mapping to lter the primary ARLine data set so it contains only the
fulllment line that FulllLineId references.
 

ARIntegration. Filters the results in ARIntegration according to order header.


HeaderSalesPersonEFFCustom  
  The join [HeaderId_ Custom: {FLine. HeaderId}] uses the HeaderId aribute of the
HeaderSalesPersonEFF_ Custom entity to lter the FLine data set so it contains only order
headers.
 

Note.

◦ In the Variable Path, make sure you use the exact entity names from the service mapping, such as
ARInterfaceLine, FulllLine, and HeaderSalesPersonEFF_Custom.
◦ Make ARLine the primary.
◦ Each group of data sets includes one primary data set and one or more secondary data sets.
◦ Cardinality species that there is zero or one records in the secondary data set to one or many records in
the primary data set. It determines whether the join is an inner join or outer join.
◦ Data Set Join denes the constraint that this step uses to lter records that the secondary data set saves
in the primary.
◦ FLine represents a row from entity FulllLine that matches the join condition.
◦ HdrEFF represents a row from entity HeaderSalesPersonEFF_Custom that matches the join condition.
◦ ARInterfaceLine and FullLine come predened.
◦ You create HeaderSalesPersonEFF_Custom in the service mapping.
◦ ARInterfaceLine comes predened with aribute ResourceSalesRepId. Your set up will
populate ResourceSalesRepId with the value from aribute SalesPerson_Custom in entity
HeaderSalesPersonEFF_Custom that you dene. You dene HeaderSalesPersonEFF_Custom in the join
conditions for the data set so it uniquely identies the row that your set up uses to do the mapping.
7. In the Execute Condition area, click Add Condition > Default Action, add the value, then click Save and Close.

586
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Value

Action ARLine. ResourceSalesrepIdHdrEFF. SalesPersonCustom


   

where
◦ ARLine.ResourceSalesrepId. Species to store the result in the ResourceSalesrepId aribute of the
ARInterfaceLine entity on the service mapping.
8. On the Manage Algorithms page, click Actions > Publish.
9. Verify that the Status displays Published, then click Done.
10. Navigate to the Edit Service Mapping page.
11. Click Services, set values, then click Save and Close.

Aribute Value

Service InvoiceService
   

Implementation Type Algorithm


   

Implementation Accounts Receivable Mapping Custom


   

where
◦ Accounts Receivable Mapping Custom is the name of the integration algorithm you created.

What If I Can't Find an Aribute I Can Use


You can't add an aribute to the data model, but you can reference an aribute that you aren't using. Most applications
come predened with a set of aributes you can use for your own, specic purpose, such as string aributes Aribute1
through Aribute20 with drop ship, or string aributes SrcAribute1 through SrcAribute20 in shipping. For a list
of aributes, see topic Entities and Aributes You Can Use When Integrating Order Management with Other Oracle
Applications.

Related Topics
• How Service Mappings, Pricing Algorithms, and Matrixes Work Together
• Pricing Algorithm
• Service Mapping

Map Extensible Flexelds to Descriptive Flexelds


Use a service mapping to map an extensible exeld to a descriptive exeld on the purchase requisition header in
Procurement.
1. Sign into Order Management with the Order Administrator job role.
2. In the Navigator, click Order Management > Pricing Administration.
3. Create a sand box. For details, see the Create a Sandbox So You Can Edit Service Mappings topic.

587
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

4. On the Overview page, click Tasks, then, under Order Management Conguration, click Manage Service
Mappings.
5. On the Manage Service Mappings page, click FulllmentIntegration.
6. On the Edit Service Mapping page, click Sources, then, in the Source column, click PurchaseRequestSource.
7. In the Details area, on the Entity Mappings tab, in the Entity column, click PurchaseRequestHeader.
8. On the Aribute Mappings tab, click Actions > Add Row, then set values.

Aribute View Object Aribute

AributeCategory RequestingBusinessUnitName
   

The rest of the setup is similar to using a descriptive exeld. For details see, Use Descriptive Flexelds to Integrate
Order Management with Other Oracle Applications.

Related Topics
• Create a Sandbox So You Can Edit Service Mappings

Reference
Entities and Aributes You Can Use When Integrating Order Management with Other
Oracle Applications
Use a variety of entities and aributes when you integrate Order Management Cloud with some other Oracle
application.

Summary
Here's a summary of the entities, sources, and services you can use in a service mapping or integration algorithm.

Object Value

Common Header
   
FulllLine
 
FilllLineDetails
 

ShipmentSource ShipmentRequestHeader
   
ShipmentRequestLine
 

InvoiceSource ARChargeInterfaceLine
   
ARInterfaceLine
 
Charge
 
ChargeComponent
 
TransactionInterfaceGdf

588
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Object Value

 
TransactionInterfaceHeaderD
 
TransactionInterfaceLinkToD
 
TransactionInterfaceLinkToD
 
TransactionLineInterfaceGdf
 

PurchaseRequestSource PurchaseRequestHeader
   
PurchaseRequestLine
 
PurchaseRequestCong
 

ReceiptSource ReceiptAdvice
   
ReceiptAdviceLine
 
ReceiptAdviceLineLot
 
ReceiptAdviceLineLotWithSerials
 

Entities You Can Use with Other Oracle Applications

Entity Description

Header Sales order header.


   

FulllLine Fulllment line on the sales order.


   

FulllLineDetails Fulllment line details on the sales order.


   

ARInterfaceLine Account receivables on the interface line.


   

TransactionInterfaceGdf, Flexeld that stores receivable transactions that are available globally.
   

TransactionInterfaceLinkToD, Flexeld that stores link-to details for receivables transactions.


   

TransactionLineD, Flexeld that stores receivable invoice lines.


   

TransactionLineInterfaceGdf, Flexeld that stores receivable transaction lines that are available globally.
   

PurchaseRequestHeader Purchase request header.

589
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Entity Description

   

PurchaseRequestLine Purchase request lines.


   

PurchaseRequestCong Details of a congured item for a purchase request line.


   

TransactionSalesCreditD Flexeld that stores details about sales credits.


   

ShipmentRequestHeader Shipment header.


   

ShipmentRequestLine Shipment line.


   

ReceiptAdvice Receipt advice.


   

ReceiptAdviceLine Receipt advice line.


   

ReceiptAdviceLineLot Lot number details for the receipt advice line.


   

ReceiptAdviceLineLotWithSerials Serial number and lot number details for the receipt advice line.
   

TransactionInterfaceHeaderD Descriptive exeld that stores details about the receivables transaction header.
   

ARChargeInterfaceLine Account receivables on the interface line. You use this object primarily for charges, discounts,
  or freight.
 

Charge Charges on the fulllment line.


   

ChargeComponent Charge components on the fulllment line.


   

You can map the aributes that the ARInterfaceLine entity contains.

Aributes You Can Use with Oracle Receivables


Receipt Advice

You can use these aributes in the ReceiptAdvice element.

Aribute Name Type

Comments string
   

590
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Name Type

CurrencyConversionDate date
   

CurrencyConversionRate decimal
   

CurrencyConversionType string
   

CustomerSiteId long
   

DocumentRevisionDate dateTime
   

DocumentRevisionNumber string
   

FreightCarrierId long
   

FreightCarrierName string
   

FreightTerms string
   

HeaderId long
   

NoteToReceiver string
   

OutsourcerContactId long
   

OutsourcerContactName string
   

OutsourcerPartyId long
   

OutsourcerPartyName string
   

ShipFromLocationCode string
   

ShipFromLocationId long
   

ShipToLocationCode string
   

ShipToLocationId long
   

591
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Name Type

ShipToOrganizationCode string
   

ShipToOrganizationId long
   

VendorId long
   

VendorName string
   

VendorSiteId long
   

VendorSiteName string
   

You can't use these aributes in the ReceiptAdvice element.

Aribute Name Type

ActionCode string
   

BUId long
   

CurrencyCode string
   

CustomerId long
   

CustomerPartyName string
   

DocumentCreationDate dateTime
   

DocumentLastUpdateDate dateTime
   

DocumentNumber string
   

ReceiptAdviceNumber string
   

ReceiptAdviceOriginalSystemReference string
   

ReceiptSourceCode string
   

592
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Name Type

SourceDocumentType string
   

SourceSystemId long
   

Receipt Advice Line

You can use these aributes in the ReceiptAdviceLine element.

Aribute Name Type

AllowSubstituteReceipt string
   

Comments string
   

CountryOfOriginCode string
   

DaysEarlyReceiptAllowed decimal
   

DaysLateReceiptAllowed decimal
   

DocumentScheduleNumber string
   

EnforceShipToLocCode string
   

FulllLineId long
   

ItemCategory string
   

ItemRevision string
   

NoteToReceiver string
   

OrigSourceFullLineNumber string
   

OverReceiptExceptionCode string
   

OverReceiptTolerance decimal
   

593
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Name Type

ReceiptDaysExceptionCode string
   

RoutingCode string
   

RoutingHeaderId long
   

SecondaryQuantityExpected decimal
   

SecondaryUnitOfMeasure string
   

SecondaryUOMCode string
   

ShipFromLocationCode string
   

ShipFromLocationId long
   

ShipToLocationCode string
   

ShipToLocationId long
   

SourceLineNumber string
   

SubstituteItemId long
   

SubstituteItemNumber string
   

VendorItemNumber string
   

You can't use these aributes in the ReceiptAdviceLine element.

Aribute Name Type

AssessableValue decimal
   

CustomerItemId long
   

CustomerItemNumber string
   

594
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Name Type

DefaultTaxationCountry string
   

DocumentFiscalClassication string
   

DocumentLineCreationDate dateTime
   

DocumentLineLastUpdateDate dateTime
   

DocumentLineNumber string
   

ExpectedReceiptDate dateTime
   

FinalDischargeLocationId long
   

FirstPtyRegId long
   

IntendedUseClassifId long
   

ItemDescription string
   

ItemId long
   

ItemNumber string
   

OrigSalesOrderLineNumber string
   

OrigSalesOrderNumber string
   

OrigSourceHeaderNumber string
   

OrigSourceLineNumber string
   

ProductCategory string
   

ProductFiscClassId long
   

ProductType string
   

595
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Name Type

QuantityExpected decimal
   

ReceiptAdviceLineNumber string
   

ReceiptSourceCode string
   

ShipToOrganizationCode string
   

ShipToOrganizationId long
   

SourceFulllmentLineNumber string
   

SourceHeaderNumber string
   

TaxClassicationCode string
   

TaxInvoiceDate date
   

TaxInvoiceNumber string
   

TaxShipFromLocationId long
   

ThirdPtyRegId long
   

TransactionDate dateTime
   

TrxBusinessCategory string
   

UnitOfMeasure string
   

UOMCode string
   

UserDenedFiscClass string
   

Lot for the Receipt Advice Line

You can use these aributes in the ReceiptAdviceLineLot element.

596
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Name Type

FulllLineId long
   

GradeCode string
   

LotExpirationDate dateTime
   

ParentLotNumber string
   

SecondaryTransactionQuantity decimal
   

SecondaryTransactionQuantityUOMCode string
   

TransactionQuantityUOMCode string
   

You can't use these aributes in the ReceiptAdviceLineLot element.

Aribute Name Type

LotNumber string
   

TransactionQuantity decimal
   

Serials for the Receipt Advice Line

You can use these aributes in the ReceiptAdviceLineSerials element.

Aribute Name Type

FulllLineId long
   

You can't use these aributes in the ReceiptAdviceLineSerials element.

Aribute Name Type

FromSerialNumber string
   

ToSerialNumber string

597
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Name Type

   

Lot for Receipt Advice Lines That Include Serials

You can use these aributes in the ReceiptAdviceLineLotWithSerials element.

Aribute Name Type

FulllLineId long
   

GradeCode string
   

LotExpirationDate dateTime
   

ParentLotNumber string
   

SecondaryTransactionQuantity decimal
   

SecondaryTransactionQuantityUOMCode string
   

TransactionQuantityUOMCode string
   

You can't use these aributes in the ReceiptAdviceLineLotWithSerials element.

Aribute Name Type

LotNumber string
   

TransactionQuantity decimal
   

Lot for Receipt Advice Lines That Include Serials

You can't use any aributes in the ReceiptAdviceLineLotSerials element. Specically, you can't use these aributes.

Aribute Name Type

FromSerialNumber string
   

ToSerialNumber string

598
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Name Type

   

Aributes You Can Use With Drop Ship


Purchase Request Header

You can use these aributes in the PurchaseRequestHeader element.

Aribute Name Type

ApproverEmail string
   

ApproverId long
   

AssessableAmount decimal
   

Aribute1 string
   

Aribute10 string
   

Aribute11 string
   

Aribute12 string
   

Aribute13 string
   

Aribute14 string
   

Aribute15 string
   

Aribute16 string
   

Aribute17 string
   

Aribute18 string
   

Aribute19 string
   

Aribute2 string
   

599
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Name Type

Aribute20 string
   

Aribute3 string
   

Aribute4 string
   

Aribute5 string
   

Aribute6 string
   

Aribute7 string
   

Aribute8 string
   

Aribute9 string
   

AributeCategory string
   

AributeDate1 date
   

AributeDate10 date
   

AributeDate2 date
   

AributeDate3 date
   

AributeDate4 date
   

AributeDate5 date
   

AributeDate6 date
   

AributeDate7 date
   

AributeDate8 date
   

AributeDate9 date
   

600
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Name Type

AributeNumber1 decimal
   

AributeNumber10 decimal
   

AributeNumber2 decimal
   

AributeNumber3 decimal
   

AributeNumber4 decimal
   

AributeNumber5 decimal
   

AributeNumber6 decimal
   

AributeNumber7 decimal
   

AributeNumber8 decimal
   

AributeNumber9 decimal
   

AributeTimestamp1 dateTime
   

AributeTimestamp10 dateTime
   

AributeTimestamp2 dateTime
   

AributeTimestamp3 dateTime
   

AributeTimestamp4 dateTime
   

AributeTimestamp5 dateTime
   

AributeTimestamp6 dateTime
   

AributeTimestamp7 dateTime
   

AributeTimestamp8 dateTime
   

601
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Name Type

AributeTimestamp9 dateTime
   

Description string
   

DocumentStatusCode string
   

EmergencyPONumber string
   

HeaderId Long
   

InterfaceSourceLineId long
   

Justication string
   

RequisitionNumber string
   

SoldToLegalEntityId long
   

SoldToLegalEntityName string
   

TaxationCountryCode string
   

TaxationTerritory string
   

You can't use these aributes in the PurchaseRequestHeader element.

Aribute Name Type

AachmentCategory string
   

AachmentEntityName string
   

AachmentPrimaryKey1 string
   

AachmentPrimaryKey2 string
   

AachmentPrimaryKey3 string
   

602
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Name Type

AachmentPrimaryKey4 string
   

AachmentPrimaryKey5 string
   

DocumentFiscalClassication string
   

DocumentFiscalClassicationCode string
   

ExternallyManagedFlag boolean
   

InterfaceHeaderKey string
   

PreparerEmail string
   

PreparerId long
   

RequisitioningBUId long
   

RequisitioningBUName string
   

Purchase Request Line

You can use these aributes in the PurchaseRequestLine element.

Aribute Name Type

Amount decimal
   

Aribute1 string
   

Aribute10 string
   

Aribute11 string
   

Aribute12 string
   

Aribute13 string
   

603
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Name Type

Aribute14 string
   

Aribute15 string
   

Aribute16 string
   

Aribute17 string
   

Aribute18 string
   

Aribute19 string
   

Aribute2 string
   

Aribute20 string
   

Aribute3 string
   

Aribute4 string
   

Aribute5 string
   

Aribute6 string
   

Aribute7 string
   

Aribute8 string
   

Aribute9 string
   

AributeCategory string
   

AributeDate1 date
   

AributeDate10 date
   

AributeDate2 date
   

604
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Name Type

AributeDate3 date
   

AributeDate4 date
   

AributeDate5 date
   

AributeDate6 date
   

AributeDate7 date
   

AributeDate8 date
   

AributeDate9 date
   

AributeNumber1 decimal
   

AributeNumber10 decimal
   

AributeNumber2 decimal
   

AributeNumber3 decimal
   

AributeNumber4 decimal
   

AributeNumber5 decimal
   

AributeNumber6 decimal
   

AributeNumber7 decimal
   

AributeNumber8 decimal
   

AributeNumber9 decimal
   

AributeTimestamp1 dateTime
   

AributeTimestamp10 dateTime
   

605
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Name Type

AributeTimestamp2 dateTime
   

AributeTimestamp3 dateTime
   

AributeTimestamp4 dateTime
   

AributeTimestamp5 dateTime
   

AributeTimestamp6 dateTime
   

AributeTimestamp7 dateTime
   

AributeTimestamp8 dateTime
   

AributeTimestamp9 dateTime
   

AutosourceFlag boolean
   

BaseModelNumber string
   

BaseModelPrice decimal
   

BuyerEmail string
   

BuyerId long
   

BuyerName string
   

CategoryId long
   

CategoryName string
   

ChangeActionReason string
   

CurrencyCode string
   

CustomerItemDescription string
   

606
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Name Type

DaysEarlyReceiptAllowed decimal
   

DeliverToCustomerContactEmail string
   

DeliverToCustomerContactId long
   

DeliverToCustomerContactName string
   

DeliverToCustomerContactNumber string
   

DeliverToCustomerId long
   

DeliverToCustomerLocationCLLICode string
   

DeliverToCustomerLocationOriginalSystemReference
string
   

DeliverToCustomerName string
   

DeliverToCustomerNumber string
   

DeliverToLocationCode string
   

DeliverToLocationId long
   

DestinationSubinventory string
   

FulllLineId Long
   

GroupCode string
   

HazardClass string
   

HazardClassId long
   

ItemDescription string
   

ItemRevision string
   

607
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Name Type

LineType string
   

LineTypeId long
   

NegotiatedByPreparerFlag boolean
   

NegotiationRequiredFlag boolean
   

NewSupplierFlag boolean
   

NoteToBuyer string
   

NoteToReceiver string
   

NoteToSupplier string
   

Price decimal
   

ProcurementBUId long
   

ProcurementBUName string
   

Rate decimal
   

RateDate date
   

RateType string
   

RequesterEmail string
   

RequesterId long
   

SecondaryQuantity decimal
   

SecondaryUOM string
   

SecondaryUOMCode string
   

608
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Name Type

ShipToCustomerContactEmail string
   

ShipToCustomerLocationOriginalSystemReference
string
   

ShipToLocationCode string
   

ShipToLocationId long
   

SourceAgreementId long
   

SourceAgreementLineId long
   

SourceAgreementLineNumber decimal
   

SourceAgreementNumber string
   

SupplierContactEmail string
   

SupplierContactFax string
   

SupplierContactId long
   

SupplierContactName string
   

SupplierContactPhone string
   

SupplierItemNumber string
   

UNNumber string
   

UNNumberId long
   

UrgentRequisitionLineFlag boolean
   

You can't use these aributes in the PurchaseRequestLine element.

609
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Name Type

AssessableAmount decimal
   

AachmentCategoryItem string
   

AachmentCategoryShip string
   

AachmentEntityName string
   

AachmentPrimaryKey1 string
   

AachmentPrimaryKey2 string
   

AachmentPrimaryKey3 string
   

AachmentPrimaryKey4 string
   

AachmentPrimaryKey5 string
   

BackToBackFlag boolean
   

BaseModelId long
   

Carrier string
   

CarrierId long
   

ConguredItemFlag boolean
   

CustomerItemNumber string
   

CustomerPOLineNumber string
   

CustomerPONumber string
   

CustomerPOScheduleNumber string
   

DaysLateReceiptAllowed decimal
   

610
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Name Type

DeliverToCustomerLocationId long
   

DeliverToOrganizationCode string
   

DeliverToOrganizationId long
   

DestinationTypeCode string
   

FirstPartyTaxRegistrationId long
   

FirstPartyTaxRegistrationNumber string
   

InterfaceLineKey string
   

ItemId long
   

ItemNumber string
   

LineIntendedUse string
   

LineIntendedUseId long
   

LineIntendedUseName string
   

LocationOfFinalDischargeCode string
   

LocationOfFinalDischargeId long
   

ModeOfTransportCode string
   

OrchestrationCode string
   

OverReceiptTolerancePercent decimal
   

ProductCategory string
   

ProductCategoryName string
   

611
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Name Type

ProductFiscalClassication string
   

ProductFiscalClassicationId long
   

ProductFiscalClassicationName string
   

ProductType string
   

ProductTypeName string
   

Quantity decimal
   

RequestedDeliveryDate date
   

RequestedShipDate date
   

SalesOrderLineNumber string
   

SalesOrderNumber string
   

SalesOrderScheduleNumber string
   

ServiceLevelCode string
   

ShipToCustomerContactId long
   

ShipToCustomerContactName string
   

ShipToCustomerContactNumber string
   

ShipToCustomerId long
   

ShipToCustomerLocationCLLICode string
   

ShipToCustomerLocationId long
   

ShipToCustomerName string
   

612
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Name Type

ShipToCustomerNumber string
   

SupplierId long
   

SupplierName string
   

SupplierSiteId long
   

SupplierSiteName string
   

TaxClassicationCode string
   

TaxClassicationName string
   

ThirdPartyTaxRegistrationId long
   

ThirdPartyTaxRegistrationNumber string
   

TransactionBusinessCategory string
   

TransactionBusinessCategoryName string
   

UnitOfMeasure string
   

UnitOfMeasureCode string
   

UserDenedFiscalClassication string
   

UserDenedFiscalClassicationName string
   

WorkOrderId long
   

WorkOrderNumber string
   

WorkOrderOperationId long
   

WorkOrderOperationSequence decimal
   

613
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Name Type

WorkOrderProduct string
   

WorkOrderSubTypeCode string
   

Purchase Request Requisition Distribution

You can't use any aributes in the PurchaseRequestInputReqDistInterface element. Specically, you can't use these
aributes.

Aribute Name Type

Aribute1 string
   

Aribute10 string
   

Aribute11 string
   

Aribute12 string
   

Aribute13 string
   

Aribute14 string
   

Aribute15 string
   

Aribute16 string
   

Aribute17 string
   

Aribute18 string
   

Aribute19 string
   

Aribute2 string
   

Aribute20 string
   

Aribute3 string
   

614
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Name Type

Aribute4 string
   

Aribute5 string
   

Aribute6 string
   

Aribute7 string
   

Aribute8 string
   

Aribute9 string
   

AributeCategory string
   

AributeDate1 date
   

AributeDate10 date
   

AributeDate2 date
   

AributeDate3 date
   

AributeDate4 date
   

AributeDate5 date
   

AributeDate6 date
   

AributeDate7 date
   

AributeDate8 date
   

AributeDate9 date
   

AributeNumber1 decimal
   

AributeNumber10 decimal
   

615
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Name Type

AributeNumber2 decimal
   

AributeNumber3 decimal
   

AributeNumber4 decimal
   

AributeNumber5 decimal
   

AributeNumber6 decimal
   

AributeNumber7 decimal
   

AributeNumber8 decimal
   

AributeNumber9 decimal
   

AributeTimestamp1 dateTime
   

AributeTimestamp10 dateTime
   

AributeTimestamp2 dateTime
   

AributeTimestamp3 dateTime
   

AributeTimestamp4 dateTime
   

AributeTimestamp5 dateTime
   

AributeTimestamp6 dateTime
   

AributeTimestamp7 dateTime
   

AributeTimestamp8 dateTime
   

AributeTimestamp9 dateTime
   

BudgetDate date
   

616
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Name Type

ChargeAccountId long
   

ChargeAccountSegment1 string
   

ChargeAccountSegment10 string
   

ChargeAccountSegment11 string
   

ChargeAccountSegment12 string
   

ChargeAccountSegment13 string
   

ChargeAccountSegment14 string
   

ChargeAccountSegment15 string
   

ChargeAccountSegment16 string
   

ChargeAccountSegment17 string
   

ChargeAccountSegment18 string
   

ChargeAccountSegment19 string
   

ChargeAccountSegment2 string
   

ChargeAccountSegment20 string
   

ChargeAccountSegment21 string
   

ChargeAccountSegment22 string
   

ChargeAccountSegment23 string
   

ChargeAccountSegment24 string
   

ChargeAccountSegment25 string
   

617
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Name Type

ChargeAccountSegment26 string
   

ChargeAccountSegment27 string
   

ChargeAccountSegment28 string
   

ChargeAccountSegment29 string
   

ChargeAccountSegment3 string
   

ChargeAccountSegment30 string
   

ChargeAccountSegment4 string
   

ChargeAccountSegment5 string
   

ChargeAccountSegment6 string
   

ChargeAccountSegment7 string
   

ChargeAccountSegment8 string
   

ChargeAccountSegment9 string
   

DistributionAmount decimal
   

DistributionQuantity decimal
   

InterfaceDistributionKey string
   

Percent decimal
   

ProjectBillableFlag boolean
   

ProjectCapitalizableFlag boolean
   

ProjectContextCategory string
   

618
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Name Type

ProjectContractId decimal
   

ProjectContractLineId decimal
   

ProjectContractName string
   

ProjectContractNumber string
   

ProjectExpenditureItemDate date
   

ProjectExpenditureTypeId decimal
   

ProjectExpenditureTypeName string
   

ProjectFundingAllocationId decimal
   

ProjectFundingSourceName string
   

ProjectId decimal
   

ProjectName string
   

ProjectNumber string
   

ProjectOrganizationId decimal
   

ProjectOrganizationName string
   

ProjectReservedAribute1 string
   

ProjectTaskId decimal
   

ProjectTaskName string
   

ProjectUserDenedAribute1 string
   

ProjectUserDenedAribute10 string
   

619
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Name Type

ProjectUserDenedAribute2 string
   

ProjectUserDenedAribute3 string
   

ProjectUserDenedAribute4 string
   

ProjectUserDenedAribute5 string
   

ProjectUserDenedAribute6 string
   

ProjectUserDenedAribute7 string
   

ProjectUserDenedAribute8 string
   

ProjectUserDenedAribute9 string
   

ProjectWorkTypeId decimal
   

ProjectWorkTypeName string
   

Purchase Request Conguration

You can use these aributes in the PurchaseRequestCong element.

Aribute Name Type

Description string
   

FulllLineId long
   

ItemRevision string
   

Price decimal
   

SupplierItemNumber string
   

You can't use these aributes in the PurchaseRequestCong element.

620
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Name Type

AachmentCategory string
   

AachmentEntityName string
   

AachmentPrimaryKey1 string
   

AachmentPrimaryKey2 string
   

AachmentPrimaryKey3 string
   

AachmentPrimaryKey4 string
   

AachmentPrimaryKey5 string
   

BaseModelId long
   

BaseModelNumber string
   

ComponentLineId long
   

ComponentLineNumber long
   

InterfaceCongurationComponentKey string
   

ItemId long
   

ItemNumber string
   

ItemType string
   

ParentComponentLineId long
   

Quantity decimal
   

UnitOfMeasure string
   

UnitOfMeasureCode string
   

621
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aributes You Can't Use in Any Element

You can't use these aributes in any element with drop ship.

Aribute Name Type

interfaceSourceCode string
   

requisitioningBUId long
   

requisitioningBUName string
   

groupBy string
   

nextRequisitionNumber int
   

initiateApprovalAfterRequisitionImport string
   

maximumBatchSize int
   

errorProcessingLevel string
   

Aributes You Can Use With Oracle Receiving


Receipt Advice

You can use these aributes in the ReceiptAdvice element.

Aribute Name Type

Comments string
   

CurrencyConversionDate date
   

CurrencyConversionRate decimal
   

CurrencyConversionType string
   

CustomerSiteId long
   

DocumentRevisionDate dateTime
   

622
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Name Type

DocumentRevisionNumber string
   

FreightCarrierId long
   

FreightCarrierName string
   

FreightTerms string
   

HeaderId long
   

NoteToReceiver string
   

OutsourcerContactId long
   

OutsourcerContactName string
   

OutsourcerPartyId long
   

OutsourcerPartyName string
   

ShipFromLocationCode string
   

ShipFromLocationId long
   

ShipToLocationCode string
   

ShipToLocationId long
   

ShipToOrganizationCode string
   

ShipToOrganizationId long
   

VendorId long
   

VendorName string
   

VendorSiteId long
   

623
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Name Type

VendorSiteName string
   

You can't use these aributes in the ReceiptAdvice element.

Aribute Name Type

CustomerPartyName string
   

ActionCode string
   

BUId long
   

CurrencyCode string
   

CustomerId long
   

DocumentCreationDate dateTime
   

DocumentLastUpdateDate dateTime
   

DocumentNumber string
   

ReceiptAdviceNumber string
   

ReceiptAdviceOriginalSystemReference string
   

ReceiptSourceCode string
   

SourceDocumentType string
   

SourceSystemId long
   

ReceiptAdviceLine

You can use these aributes in the ReceiptAdviceLine element.

624
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Name Type

AllowSubstituteReceipt string
   

Comments string
   

CountryOfOriginCode string
   

DaysEarlyReceiptAllowed decimal
   

DaysLateReceiptAllowed decimal
   

DocumentScheduleNumber string
   

EnforceShipToLocCode string
   

FulllLineId long
   

ItemCategory string
   

ItemRevision string
   

NoteToReceiver string
   

OrigSourceFullLineNumber string
   

OverReceiptExceptionCode string
   

OverReceiptTolerance decimal
   

ReceiptDaysExceptionCode string
   

RoutingCode string
   

RoutingHeaderId long
   

SecondaryQuantityExpected decimal
   

SecondaryUnitOfMeasure string
   

625
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Name Type

SecondaryUOMCode string
   

ShipFromLocationCode string
   

ShipFromLocationId long
   

ShipToLocationCode string
   

ShipToLocationId long
   

SourceLineNumber string
   

SubstituteItemId long
   

SubstituteItemNumber string
   

VendorItemNumber string
   

You can't use these aributes in the ReceiptAdviceLine element.

Aribute Name Type

AssessableValue decimal
   

CustomerItemId long
   

CustomerItemNumber string
   

DefaultTaxationCountry string
   

DocumentFiscalClassication string
   

DocumentLineCreationDate dateTime
   

DocumentLineLastUpdateDate dateTime
   

DocumentLineNumber string
   

626
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Name Type

ExpectedReceiptDate dateTime
   

FinalDischargeLocationId long
   

FirstPtyRegId long
   

IntendedUseClassifId long
   

ItemDescription string
   

ItemId long
   

ItemNumber string
   

OrigSalesOrderLineNumber string
   

OrigSalesOrderNumber string
   

OrigSourceHeaderNumber string
   

OrigSourceLineNumber string
   

ProductCategory string
   

ProductFiscClassId long
   

ProductType string
   

QuantityExpected decimal
   

ReceiptAdviceLineNumber string
   

ReceiptSourceCode string
   

ShipToOrganizationCode string
   

ShipToOrganizationId long
   

627
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Name Type

SourceFulllmentLineNumber string
   

SourceHeaderNumber string
   

TaxClassicationCode string
   

TaxInvoiceDate date
   

TaxInvoiceNumber string
   

TaxShipFromLocationId long
   

ThirdPtyRegId long
   

TransactionDate dateTime
   

TrxBusinessCategory string
   

UnitOfMeasure string
   

UOMCode string
   

UserDenedFiscClass string
   

Lot for the Receipt Advice Line

You can use these aributes in the ReceiptAdviceLineLot element.

Aribute Name Type

FulllLineId long
   

GradeCode string
   

LotExpirationDate dateTime
   

ParentLotNumber string
   

628
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Name Type

SecondaryTransactionQuantity decimal
   

SecondaryTransactionQuantityUOMCode string
   

TransactionQuantityUOMCode string
   

You can't use these aributes in the ReceiptAdviceLineLot element.

Aribute Name Type

LotNumber string
   

TransactionQuantity decimal
   

Serials for the Receipt Advice Line

You can use these aributes in the ReceiptAdviceLineSerials element.

Aribute Name Type

FulllLineId long
   

You can't use these aributes in the ReceiptAdviceLineSerials element.

Aribute Name Type

FromSerialNumber string
   

ToSerialNumber string
   

Lot for Receipt Advice Lines That Include Serials

You can use these aributes in the ReceiptAdviceLineLotWithSerials element.

Aribute Name Type

FulllLineId long

629
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Name Type

   

GradeCode string
   

LotExpirationDate dateTime
   

ParentLotNumber string
   

SecondaryTransactionQuantity decimal
   

SecondaryTransactionQuantityUOMCode string
   

TransactionQuantityUOMCode string
   

You can't use these aributes in the ReceiptAdviceLineLotWithSerials element.

Aribute Name Type

TransactionQuantity decimal
   

Lot for Receipt Advice Line When Serials Control the Lot

You can't use any aributes in the ReceiptAdviceLineLotSerials element. Specically, you can't use these aributes.

Aribute Name Type

FromSerialNumber string
   

ToSerialNumber string
   

Aributes You Can Use With Oracle Shipping


Shipment Request Header

You can use these aributes in the ShipmentRequestHeader element.

Aribute Name Type

CarrierPartyId long
   

630
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Name Type

CarrierPartyName string
   

CarrierPartyNumber string
   

FobCode string
   

FreightTermsCode string
   

HeaderId Long
   

ModeOfTransport string
   

OutsourcerPartyId long
   

OutsourcerPartyName string
   

OutsourcerPartyNumber string
   

ServiceLevel string
   

ShipFromLocationId long
   

You can't use these aributes in the ShipmentRequestHeader element.

Aribute Name Type

ActionType string
   

BillToContactId long
   

BillToContactName string
   

BillToContactNumber string
   

BillToPartyId long
   

BillToPartyName string
   

631
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Name Type

BillToPartyNumber string
   

BillToPartySiteId long
   

BillToPartySiteNumber string
   

ConversionDate dateTime
   

ConversionRate decimal
   

ConversionType string
   

CurrencyCode string
   

DocumentNumber string
   

OrganizationCode string
   

OrganizationId long
   

OrganizationName string
   

SalesOrderNumber string
   

ShipToContactId long
   

ShipToContactName string
   

ShipToContactNumber string
   

ShipToPartyId long
   

ShipToPartyName string
   

ShipToPartyNumber string
   

ShipToPartySiteId long
   

632
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Name Type

ShipToPartySiteNumber string
   

SoldPartyName string
   

SoldToContactId long
   

SoldToContactName string
   

SoldToContactNumber string
   

SoldToPartyId long
   

SoldToPartyNumber string
   

SourceDocumentType string
   

SourceHeaderNumber string
   

SourceSystemId long
   

SourceSystemName string
   

Shipment Request Line

You can use these aributes in the ShipmentRequestLine element.

Aribute Name Type

ArrivalSetName string
   

CurrencyCode string
   

CustomerItemNumber string
   

DoNotShipAfterDate dateTime
   

DoNotShipBeforeDate dateTime
   

633
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Name Type

EarliestDropoDate dateTime
   

EarliestPickupDate dateTime
   

EndAssemblyItemNumber string
   

FinalDischargeLocCode string
   

FulllLineId long
   

InitialDestinationLocationId long
   

IntendedUse string
   

ItemDescription string
   

LatestDropoDate dateTime
   

LatestPickupDate dateTime
   

OrderedQuantity2 decimal
   

OrderedQuantityUomCode2 string
   

OrderedQuantityUomName2 string
   

PreferredGrade string
   

ShipToleranceAbove decimal
   

ShipToleranceBelow decimal
   

SourceLineUpdateDate dateTime
   

SourceShipmentId long
   

SrcAribute1 string
   

634
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Name Type

SrcAribute10 string
   

SrcAribute11 string
   

SrcAribute12 string
   

SrcAribute13 string
   

SrcAribute14 string
   

SrcAribute15 string
   

SrcAribute16 string
   

SrcAribute17 string
   

SrcAribute18 string
   

SrcAribute19 string
   

SrcAribute2 string
   

SrcAribute20 string
   

SrcAribute3 string
   

SrcAribute4 string
   

SrcAribute5 string
   

SrcAribute6 string
   

SrcAribute7 string
   

SrcAribute8 string
   

SrcAribute9 string
   

635
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Name Type

SrcAributeCategory string
   

SrcAributeDate1 date
   

SrcAributeDate2 date
   

SrcAributeDate3 date
   

SrcAributeDate4 date
   

SrcAributeDate5 date
   

SrcAributeNumber1 decimal
   

SrcAributeNumber10 decimal
   

SrcAributeNumber2 decimal
   

SrcAributeNumber3 decimal
   

SrcAributeNumber4 decimal
   

SrcAributeNumber5 decimal
   

SrcAributeNumber6 decimal
   

SrcAributeNumber7 decimal
   

SrcAributeNumber8 decimal
   

SrcAributeNumber9 decimal
   

SrcAributeTimestamp1 dateTime
   

SrcAributeTimestamp2 dateTime
   

SrcAributeTimestamp3 dateTime
   

636
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Name Type

SrcAributeTimestamp4 dateTime
   

SrcAributeTimestamp5 dateTime
   

TradeComplianceScreeningDate dateTime
   

TradeComplianceScreeningReason string
   

TradeComplianceScreeningStatus string
   

TransportationPlanningStatus string
   

TransportationShipment string
   

TransportationShipmentLine string
   

You can't use these aributes in the ShipmentRequestLine element.

Aribute Name Type

AssessableValue decimal
   

BaseItemId long
   

BaseItemNumber string
   

BillToContactId long
   

BillToContactName string
   

BillToContactNumber string
   

BillToPartyId long
   

BillToPartyName string
   

BillToPartyNumber string
   

637
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Name Type

BillToPartySiteId long
   

BillToPartySiteNumber string
   

BusinessUnitName string
   

CarrierPartyId long
   

CarrierPartyName string
   

CarrierPartyNumber string
   

CategoryId long
   

CategoryName string
   

CustPoNumber string
   

DateRequested dateTime
   

DateScheduled dateTime
   

DefaultTaxationCountry string
   

DocumentSubType string
   

ExemptCerticateNumber string
   

ExemptReasonCode string
   

FinalDischargeLocationId long
   

FirstPtyNumber string
   

FirstPtyRegId long
   

FobCode string
   

638
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Name Type

FreightTermsCode string
   

FromSubinventoryCode string
   

IntendedUseClassifId decimal
   

InventoryItemId long
   

ItemNumber string
   

LineActionType string
   

ModeOfTransport string
   

OrderedQuantity decimal
   

OrderedQuantityUomCode string
   

OrderedQuantityUomName string
   

OrganizationCode string
   

OrganizationId long
   

OrganizationName string
   

OrgId long
   

PackingInstructions string
   

ParentInventoryItemId long
   

ParentItemNumber string
   

ParentSourceShipmentId long
   

ProductCategory string
   

639
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Name Type

ProductType string
   

ReleaseLock string
   

RequestDateTypeCode string
   

SalesOrderLineNumber string
   

SalesOrderShipmentNumber string
   

SellingPrice decimal
   

ServiceLevel string
   

ShipmentPriorityCode string
   

ShippingInstructions string
   

ShipSetName string
   

ShipToContactId long
   

ShipToContactName string
   

ShipToContactNumber string
   

ShipToPartyId long
   

ShipToPartyName string
   

ShipToPartyNumber string
   

ShipToPartySiteId long
   

ShipToPartySiteNumber string
   

SoldToContactId long
   

640
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Name Type

SoldToContactName string
   

SoldToContactNumber string
   

SoldToPartyId long
   

SoldToPartyName string
   

SoldToPartyNumber string
   

SourceLineNumber string
   

SourceShipmentNumber string
   

TaxClassicationCode string
   

TaxInvoiceDate date
   

TaxInvoiceNumber string
   

ThirdPtyNumber string
   

ThirdPtyRegId long
   

TrxBusinessCategory string
   

UnitPrice decimal
   

UserDenedFiscClass string
   

Order Line for a Shipment Request Hold

You can't use any aributes in the ShipmentRequestOrderLineHold element. Specically, you can't use these aributes.

Aribute Name Type

HoldActionCode string
   

641
Oracle SCM Cloud Chapter 3
Implementing Order Management Integrate

Aribute Name Type

HoldId long
   

HoldReasonCode string
   

HoldReason string
   

Related Topics
• Pricing Algorithm
• Service Mapping

642
Oracle SCM Cloud Chapter 4
Implementing Order Management Import and Transform

4 Import and Transform

Import

643
Oracle SCM Cloud Chapter 4
Implementing Order Management Import and Transform

Overview of Importing Orders into Order Management


Use a web service or the Order Import Template to import orders from your source system into Order Management
Cloud.

Get details.

• Use a web service to create an integration that imports source orders. See the Overview of Using Web Services
with Order Management Cloud topic.
• Use the Order Import Template to reduce errors and simplify order import. This template contains a structure
that the Oracle database requires. It includes a tab for each database table, and it displays tabs in a specic

644
Oracle SCM Cloud Chapter 4
Implementing Order Management Import and Transform

sequence. Columns on each tab represent table columns that Oracle requires, and the template species the
data type that Oracle requires for each database column.

◦ Get a copy of Order Import Template and get details about tables that the template references. See the
Sales Orders topic in book File-Based Data Import for Oracle Supply Chain Management Cloud on Oracle
Help Center.
◦ Learn how to use Order Import Template. See the Guidelines for Importing Orders into Order
Management topic.

Related Topics
• Data Security
• Guidelines for Using Web Services to Integrate Order Management

645
Oracle SCM Cloud Chapter 4
Implementing Order Management Import and Transform

Guidelines for Importing Orders into Order Management


Apply guidelines when you use a le to import orders into Order Management Cloud.

Convert Source Data Into CSV File


You must create a CSV le that includes order data from your source system. Use these guidelines to make sure the
structure that the CSV le contains mirrors the structure that the Order Import Template contains.

646
Oracle SCM Cloud Chapter 4
Implementing Order Management Import and Transform

Note.

• Create a CSV le, such as MySourceOrders.csv. To make sure you include the same structure that the template
uses, its recommended that you open the template le, save it as a CSV le, structure your data so it mirrors the
CSV le, and then copy your source data into the CSV le
• Include the same table names and sequence them in the same sequential order. The tab sequence that the
template uses determines sequential order.
• Include the same columns in each table, and arrange columns in the same sequential order inside each table.
• Use the same data type for each column.

View an example of the CSV structure.

1. Open the Order Import Template in Microsoft Excel.


2. Click the DOO_ORDER_HEADERS_ALL_INT tab.
3. Click File > Save As > Excel Workbook.
4. Save the le as a .csv le, then use a text editor to examine the output.
BI_SO_2110_Demo_01,GPR,BI_SO_2110_Demo_01,,1006,,,,,,,,,1560,,,,,,,,,,,,576859,USD,,,,,10/10/2016
17:12,204,,,,,,,204,,,,,,,,,,,
12345,LEG,LEGACY12345,1,1006,Computer Service and Rentals,Bill,Gates, ,Jr,Mr,,1006-
Party,1560, ,Bill,Williams,Bob, ,Mr.,ORGANIZATION,,1560-Contact,1000,Preferred Sold To Contact Point
Orig Sys Reference,,USD,US Dollar,Spot,1.23,1/15/2014 10:10,1/29/2016 10:10, ,Vision Operations,,,,Order
12345,12345, ,,,N,NONE,No Reason,1/15/2014 10:10,N,N,N,,N
CCtest2,LEG,LEGACY-SC,1,1006,Computer Service and Rentals,,,,,,1006,1006-Party,1560,Piere
Legrand,,,,,,,CONTACT-1560,1560-Contact,,,,USD, ,,,,1/29/2016 10:10, ,Vision Operations,,,,order with
header sales credits,cc,204,,,N,,,,N,N,N,,

647
Oracle SCM Cloud Chapter 4
Implementing Order Management Import and Transform

Use the Template


Reect Structure of Oracle Database

Enter your data so it reects the structure of the Oracle database. The Order Import Template uses a separate
spreadsheet in an Excel workbook to represent each interface table.
• A row near the top of each spreadsheet contains column headers.
• Each column header represents the name of an interface table column.
• The spreadsheet displays columns in a specic sequence.
• You must not modify the sequence. If you do, import will fail.
• Hide columns you don't need, but you must not delete them. If you delete a column, import will fail.

Order Import Template includes a tab for each of these interface tables. The _INT sux indicates its an interface table.
You must include data in each required table.

Table Name Details This Table Must Contain Required

DOO_ ORDER_ HEADERS_ ALL_INT Order header data. Yes


     

DOO_ ORDER_ LINES_ALL_INT Order line data. Yes

648
Oracle SCM Cloud Chapter 4
Implementing Order Management Import and Transform

Table Name Details This Table Must Contain Required

     

DOO_ ORDER_ ADDRESSES_INT Address for the sales order. Yes


     

DOO_ ORDER_ TXN_ ATTRIBUTES_ INT Aributes that might be associated with Yes
  an order line.  
 

DOO_ ORDER_ SALES_ CREDITS_INT Sales credits for the sales representative No
  that the source order references.  
 

DOO_ ORDER_ PAYMENTS_INT Payment details for the order line. No


     

DOO_ ORDER_ LOT_ SERIALS_INT Lot serial details for the order line. No
     

DOO_ ORDER_ DOC_ REFERENCES_ INT References to documents that Order No


  Management imports with the source  
order.
 

DOO_ ORDER_ CHARGES_INT Charges for the sales order. Required only if you don't calculate pricing
    in Oracle Fusion.
 

DOO_ ORDER_ CHARGE_ COMPS_INT Charge components for the sales order. Required only if you don't calculate pricing
    in Oracle Fusion.
 

DOO_ ORDER_ BILLING_ PLANS_INT Billing plans for the sales order. No
     

DOO_ ORDER_ MANUAL_ PRICE_ADJ_INT Manual price adjustments for the sales No
  order.  
 

DOO_ ORDER_ HDRS_ ALL_EFF_B_INT Flexeld details for the order header. No
     

DOO_ ORDER_ LINES_ ALL_EFF_B_INT Flexeld details for the order line. No
     

DOO_ PROJECTS_INT Projects for the sales order. No


     

Enter Data in Required Columns

649
Oracle SCM Cloud Chapter 4
Implementing Order Management Import and Transform

Note.
• Order Import Template uses an asterisk ( * ) to indicate required columns. For example, the Source Transaction
Schedule Identier column on the DOO_ORDER_LINES_ALL_INT tab is required.
• The template uses an asterisk ( * ) to indicate each required column.
• The template uses a double asterisk ( ** ) to indicate the color group requires a value in at least one of these
columns. For example, if a color group includes columns **a, **b, and c, then you must include a value in a or
b, or a and b.
• Required columns aren't always contiguous. Carefully examine column headings in each spreadsheet to make
sure you include data for each required column.
• To locate required headings on each spreadsheet, press CTRL + F, enter ~* (a tilde and an asterisk), and then
click Find All.

Use Color to Determine What's Required


• The template uses a blue background for column headings, by default. It uses other colors to group some
columns.

650
Oracle SCM Cloud Chapter 4
Implementing Order Management Import and Transform

• For example, the DOO_ORDER_HEADERS_ALL_INT sheet uses a tan color to group columns Buying Party
Identier, Buying Party Name, and Buying Party Number. You must enter a value in at least one column of this
color group.
• Some sheets include more than one color group. You must enter at least one value for each color group.
• Color groups might not display contiguously. Carefully examine the color group on each spreadsheet to make
sure you include at least one value for each color group.
• Some color groups are conditional. For example, you must enter a value for at least one column in the color
group that represents these columns.

◦ Requested Fulllment Organization Identier


◦ Requested Fulllment Organization Code
◦ Requested Fulllment Organization Name

The DOO_ORDER_LINES_ALL_INT sheet contains these columns and uses them only for rows that references a
return order. The sheet includes an instructional note immediately above each conditional color group.

Use Correct Data Type

• Use the format that the database column uses. For example, data in column Source Transaction Identier of tab
DOO_ORDER_LINES_ALL_INT must use format VARCHAR2(50).
• Use example data and descriptive text to help determine the type of data to include.
• Order Import Template comes predened with example data already populated, and some column headers
include descriptive text.
• For example, click the DOO_ORDER_LINES_ALL_INT tab, and notice that row seven in column Requested
Fulllment Organization Name includes a value of Vision Operations.
• Position your mouse over column header Requested Fulllment Organization Name, and then read the
descriptive text that indicates this eld must contain only VARCHAR2(240 CHAR) data. The value Vision
Operations meets this requirement.
• Make sure you remove example data before you import data.

For details, see the topic about Oracle data types in Oracle Server Concepts Manual at hps://docs.oracle.com/cd/
A57673_01/DOC/server/doc/SCN73/ch6.htm.

Format Amounts, Dates and Identiers

651
Oracle SCM Cloud Chapter 4
Implementing Order Management Import and Transform

Note
• You must use a comma (,) for the thousands separator and a period (.) for the decimal separator in number
columns. For example, use 1,500.25. Don't use 1500,25.
• Use a whole number when required. If a column must use a whole number, then the control le that validates
data in this column includes only whole numbers. If it doesn't, then the import fails.
• You must use format YYYY/MM/DD HH:MM:SS for each date eld. For example, 1/15/2019 10:10:10 AM is January 15,
year 2019, 10 hours, 10 minutes, and 10 seconds after 00:00:00 AM.

Format internal identier.


• If your data includes an internal identier, then make sure you map it correctly.
An internal identier is an identier that Order Management uses to create a reference between a lookup that
you specify for an item, customer, or reference data, to details from the Product Information Manager work
area, Trading Community Architecture, or collection data. This data resides in the Order Orchestration and
Planning Repository. For example, if your order uses Payment Terms, then you must set up this value in Oracle,
then set up collections processing.
• You must map your source data value to an Order Management value for each internal identier column.
• Read the descriptive text in the spreadsheet for help with columns that require an internal identier.
• The template includes more than one column that species details for internal identiers. It uses the Identier
sux to identify these columns, such as Source Transaction Identier or Buying Party Identier.
• If your source data includes an identier column that doesn't require setup in Product Information
Management, Trading Community Architecture, or data collection, then you can use the implementation pages

652
Oracle SCM Cloud Chapter 4
Implementing Order Management Import and Transform

in your implementation project to get the identier and other aributes that you must map for the internal
identier.

Import Customer Items

Make sure you correctly set up the rank for each customer item relationship before you import orders. For details, see
the Import Customer Items into Order Management topic.

Upload and Import Your Data


Use scheduled processes.

653
Oracle SCM Cloud Chapter 4
Implementing Order Management Import and Transform

Note.

• Use the Load Interface File for Import scheduled process to upload your data to the server.

Use the Import Sales Orders scheduled process to import data into Order Management.

◦ Specify the .zip you created from the template.


◦ Specify parameters as necessary. For example, lter according to source system, customer, and time
frame.

Verify that your scheduled processes succeeded.

Verify the Order Management work area displays your imported data.

654
Oracle SCM Cloud Chapter 4
Implementing Order Management Import and Transform

Import New Customer

If you use a le to import a customer, contact, or address that doesn't already exist in Trading Community Architecture,
then you must manually assign privileges to the role for the user who runs the Load Interface File for Import scheduled
process.

Privilege Description

HZ_ ENTER_ TRADING_ Enter Trading Community Person


COMMUNITY_ PERSON_PRIV  
 

HZ_ UPDATE_ TRADING_ Update Trading Community Person


COMMUNITY_ PERSON_PRIV  
 

HZ_ ENTER_ TRADING_ Enter Trading Community Organization Information


COMMUNITY_ ORGANIZATION_  
INFORMATION_ PRIV
 

HZ_ UPDATE_ TRADING_ Update Trading Community Organization


COMMUNITY_ ORGANIZATION_ PRIV  
 

For details about how to add a privilege, see topic Data Security: Explained.

Import a Revision
If you import a draft order, modify it in the Order Management work area, submit it, then import a revision of the order
in a subsequent import, then the imported revision must include the current aribute values. If you want to change
aribute values, then the imported revision must include the new values.

For example, assume you set up an order management extension that sets the default value for the Shipping Method
aribute. You import a value of Air for Shipping Method, you change the Shipping Method to Rail in the Order
Management work area, submit the order, then import an order revision in a subsequent import. If you want to keep
Rail, then your subsequent import must include a value of Rail for Shipping Method. If the subsequent import doesn't
include any value for Shipping Method, then Order Management will set Shipping Method to some other value,
depending on your pretransformation rule.

Related Topics
• How Order Management Transforms Source Orders Into Sales Orders

655
Oracle SCM Cloud Chapter 4
Implementing Order Management Import and Transform

Import Orders into Order Management


Use les to import source orders from a source system into Order Management Cloud.

Note.
1. Convert source data.
2. Create import le.
3. Upload source data.
4. Import source data.
5. Delete imported orders from interface tables.

656
Oracle SCM Cloud Chapter 4
Implementing Order Management Import and Transform

Order import typically uses this same ow when you integrate Order Management with a source system, except you
import orders from a spreadsheet. For details, see the How Order-to-Cash Works with Order Capture Systems topic.

Convert Source Data


Convert your source data into a CSV le (comma separate values) that uses the same structure that the Order Import
Template uses.

Use the template to help make sure your converted data uses the same structure that the Oracle database requires.
This topic describes one recommended way to convert your source data. The details of your conversion might require a
dierent way.

If you can't use Order Import Template for some reason, and if you aren't familiar with doing data conversion, then
consult Oracle resources about how to use an open interface when importing data. For details about other ways to
import your data, such as through a web service, see the Use Web Services to Integrate with Order Management topic.

Convert your source data into a CSV le.

1. Download the Order Import Template.

◦ Go to Oracle Help Center at hps://docs.oracle.com/en/cloud/saas/supply-chain-management/19c/


index.html
◦ Choose your release and click Books.
◦ In the Development area, under File Based Data Import for Oracle Supply Chain Management Cloud, click
HTML .
◦ Expand Order Management, then click Sales Orders Import.
◦ In the Sales Orders Import area, click SourceSalesOrderImportTemplate.xlsm.
2. Use a spreadsheet editor that can read a CSV le, such as Microsoft Excel, to open Order Import Template, and
then familiarize yourself with the structure that it uses.
3. Use a data manipulation tool to structure your source data so it mirrors the structure that the Order Import
Template contains, and then save this data to a CSV le.

You can use SQL (Structured Query Language), ODI (Oracle Data Integrator), or some other tool to convert your
source data into a CSV le.

Create Import File


1. Prepare the Order Import Template.

◦ Use a spreadsheet editor that can read a CSV le, such as Excel, to open Order Import Template.

Delete the example data from Order Import Template. This template comes with example data
that helps you determine the type of data that you must include. For example, row four of tab
DOO_ORDER_HEADERS_ALL_INT includes example data. Make sure you delete all example data from all
tables in the spreadsheet, even from tables you don't need.
2. Copy and paste your source data into each of the tables in Order Import Template.

◦ Use a spreadsheet editor to open the CSV le that contains your source data.
◦ Copy your order line data to the clipboard.
◦ In the Order Import Template, click the DOO_ORDER_LINES_ALL_INT tab.
◦ Click cell A5, then paste your data.

657
Oracle SCM Cloud Chapter 4
Implementing Order Management Import and Transform

◦ Examine the results to make sure you correctly pasted the data. For example, make sure the Product
Description column contains VARCHAR data, and that the Ordered Quantity column contains NUMBER
data.
◦ Continue copying data for each table until you nish copying all your source data into Order Import
Template.
Tip: Save your work after each copy.

3. Create the import le.

◦ Click the Create CSV tab, then click Generate CSV File.
If Generate CSV File isn't active, then click Developer in the menu bar, then click Macros. In the Macro
dialog, choose GenCSV, then click Run.
◦ Wait for the macro in Excel to nish.
When the macro nishes, Excel displays a dialog that allows you to save a .zip le.
◦ In the save dialog, choose a location to save your .zip le, then click Save.
The macro creates a .zip le that includes a separate le for each table that the template contains.
◦ Optional. In subsequent save dialog boxes, save each individual CSV le.
If you must import data for an individual table, then save the data as an individual CSV le. Otherwise,
click Cancel.

Upload Source Data


1. Sign into Order Management with administrative privileges.
2. Set order management parameter Number of Processes for Order Import.
For details, see the Managing Order Management Parameters topic.
3. In the Navigator, under Tools, click Scheduled Processes.
4. On the Scheduled Process page, click Schedule New Process.
5. In the Schedule New Process dialog, set the value, then click OK.

Aribute Value

Name Load Interface File for Import


   

6. In the Process Details dialog, set parameters.

Parameter Description

Import Process Choose Import Sales Orders.


   

Data File a. In the Data File aribute, click the down arrow .
  b. Scroll down and click Upload a New File.
c. In the Upload File dialog, click Choose File.
d. In your Windows Explorer window, locate and choose the .zip le you created when
you used Order Import Template, then click Open.

658
Oracle SCM Cloud Chapter 4
Implementing Order Management Import and Transform

Parameter Description

e. In the Upload File dialog, click OK.


f. In the Process Details dialog, make sure the Data File aribute displays the name of
the .zip le before you continue.

7. Click Submit.
8. In the Conrmation dialog, note the value of aribute Process ID, then click OK > Close.
9. Click Actions > Refresh.
10. Use the Process ID that you noted earlier to locate your scheduled process, then make sure the Status aribute
for this process displays Succeeded.
The Succeeded status indicates that the scheduled process successfully uploaded your source data. If the
upload fails on any row, then the status displays Error. If the search results doesn't display your process, then
click Refresh until it does.
11. Correct errors, if necessary.
◦ If the scheduled process ends in an error, then click the Error status in the search results for your
scheduled process and examine the log and output les to get details about data that caused the error.
◦ Use Excel to open the Order Import Template that contains your source data, and then correct the source
data that causes the error.
◦ In the Order Import Template, click Generate CSV File, then run the scheduled process again.
Repeat this step until the scheduled process successfully uploads your source data.

Import Source Data


1. Run the Import Sales Orders scheduled process. In the Process Details dialog, set one of the parameters.

Parameter Description

Batch Name Enter a value.


   

Source System To import all records from the source system, enter the value that you set in the Source
  Transaction System column on the DOO_ ORDER_ LINES_ALL_INT tab of the Order Import
Template.
 
For example, enter LEG.
 

Source Order Number To import the record for only one source order, enter the value that you set in the Source
  Transaction Identier column on the DOO_ ORDER_ LINES_ALL_INT tab of the Order Import
Template.
 
For example, enter 12345.
 

To avoid a conict in the data to import, specify only one parameter.


2. Make sure the Status is Succeeded aribute for the Import Sales Orders scheduled process.
The Succeeded status indicates that the scheduled process successfully imported your source data. If the
import fails on any row, then the status displays Error.

659
Oracle SCM Cloud Chapter 4
Implementing Order Management Import and Transform

3. Verify your import.

◦ Navigate to the Order Management work area.


◦ On the Overview page, click Tasks > Manage Order Orchestration Messages.
◦ Query for records that the import includes.
◦ Examine errors in the spreadsheet and x source data in the Order Import Template that causes them.
◦ Submit the modied data and make sure the scheduled process successfully imports all rows.
◦ Navigate to work area Order Management and query for one or more of the orders you imported.
◦ Make sure the work area displays the sales order, and that the order data is identical to the source data.

Delete Imported Orders From Interface Tables


Order Management uses interface tables when you import data from your source system so it can handle import errors
and to retain a data backup during import. As an option, run the Delete Orders From Interface Tables scheduled process
to remove data and save storage space.

Related Topics
• How Order-to-Cash Works with Order Capture Systems

Example of Importing Orders into Order Management


Use this example to get experience using the import template.
1. Get a copy of an Excel le that contains example data you can use for this example.

Go to White Papers for Order Management Cloud (Doc ID 2051639.1) on My Oracle Support at hps://
support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=240734770529730&id=2051639.1.
Download and open aachment Files_for_Implementation_Examples.docx, then use Microsoft Excel to open
OrderImportTemplate_Example.xlsm.
2. In OrderImportTemplate_Example.xlsm, click Generate CSV le, then save the output le as
SourceSalesOrderImport.zip.
3. Run the Load Interface File For Import scheduled process.
4. Run the Import Sales Order scheduled process.

660
Oracle SCM Cloud Chapter 4
Implementing Order Management Import and Transform

5. Verify that the Order Management work area contains your imported data.

Example Sales Order


Assume you must import this sales order.

Assume all other aributes are empty.

OrderImportTemplate_Example.xlsm contains this data.

DOO_ORDER_HEADERS_ALL_INT

661
Oracle SCM Cloud Chapter 4
Implementing Order Management Import and Transform

Aribute Value

SourceTransactionIdentier PMC_IMP_161208
   

SourceTransactionSystem OPS
   

SourceTransactionNumber PMC_IMP_161208
   

SourceTransactionRevisionNumber 1
   

BuyingPartyIdentier 300000001469001
   

BuyingPartyName Computer Service and Rentals


   

BuyingPartyType ORGANIZATION
   

TransactionalCurrencyCode USD
   

TransactionalCurrencyName US Dollar
   

TransactionOn 2016/12/08 10:10:10


   

RequestingBusinessUnit DOO CSPS Business Unit 1


   

Comments Testing Order Import


   

BatchName 10810
   

RequestingLegalEntity IFU USA Ltd.


   

PartialShipAllowedFlag N
   

PricedOn 2016/12/08 10:10:10


   

FreezePricing N
   

FreezeShippingCharge N
   

FreezeTax N
   

662
Oracle SCM Cloud Chapter 4
Implementing Order Management Import and Transform

Aribute Value

CreateCustomerInformationFlag N
   

DOO_ORDER_LINES_ALL_INT

Aribute Value

SourceTransactionIdentier PMC_IMP_161208
   

SourceTransactionSystem OPS
   

SourceTransactionLineIdentier 1
   

SourceTransactionScheduleIdentier 1011
   

SourceTransactionScheduleNumber 11
   

SourceTransactionLineNumber 1
   

ProductNumber AS54888
   

OrderedQuantity 3
   

OrderedUOMCode zzy
   

OrderedUOM Ea
   

RequestedFulllmentOrganizationCode DOOCSPS1
   

BusinessUnitName DOO CSPS Business Unit 1


   

RequestingBusinessUnitName DOO CSPS Business Unit 1


   

SubstitutionAllowedFlag N
   

RequestedShipDate 2016/12/09
   

PaymentTerm 30 Net
   

663
Oracle SCM Cloud Chapter 4
Implementing Order Management Import and Transform

Aribute Value

TransactionCategoryCode ORDER
   

PartialShipAllowedFlag N
   

ContractStartDate 2014/09/26
   

ContractEndDate 2019/09/26
   

DOO_ORDER_ADDRESSES_INT

Aribute Value in Record 1 Value in Record 2

SourceTransactionIdentier PMC_IMP_161208 PMC_IMP_161208


     

SourceTransactionSystem OPS OPS


     

SourceTransactionLineIdentier 1 1
     

SourceTransactionScheduleIdentier 1011 1011


     

AddressUseType SHIP_TO BILL_TO


     

PartyName Computer Service and Rentals Not applicable


     

CustomerName Not applicable Computer Service and Rentals


     

PartySiteIdentier 300000001469004 Not applicable


     

AccountSiteIdentier Not applicable 300000001469016


     

AddressLine1 2164 Broadway 777 Oracle Blvd


     

City TEMPE COLORADO SPRING


     

PostalCode 85282 80921


     

State AZ CO
     

664
Oracle SCM Cloud Chapter 4
Implementing Order Management Import and Transform

Aribute Value in Record 1 Value in Record 2

Country United States United States


     

PartyType ORGANIZATION ORGANIZATION


     

Related Topics
• How Order Management Transforms Source Orders Into Sales Orders

Import Dierent Kinds of Data


Export and Import Setup Data with Inventory Organizations
If you use an inventory organization when you set up Order Management Cloud, then you must import the setup data
of the oerings that include your inventory organizations, and then import the setup data from Order Management to
your implementation instance.
You do the import when you deploy your setup data from one application instance to another application instance.

Choose an option when you export or import your setup data.

Option Description

Create one conguration package. This package contains the oerings that include the inventory organizations, and that also
  contains the Order Management oering.
 

Create more than one conguration Use a separate conguration package for the oering that includes the inventory
package. organizations, and use another package for the Order Management oering.
   

Import Customer Items into Order Management


Make sure you correctly set up the rank for each customer item relationship before you import source orders.
• The customer item relationship sets up a relationship between the customer item that you import, and the item
in inventory you use to fulll the customer item.
• Order Management uses the customer item and sold-to customer details to identify the inventory item to use
during order import.
• If you set up more than one customer item relationship for a customer item, then Order Management uses the
customer item relationship that species the lowest rank.

Order import will fail in these situations.

• A customer item relationship doesn't exist for the customer item.


• More than one customer item relationship species the lowest rank.

665
Oracle SCM Cloud Chapter 4
Implementing Order Management Import and Transform

In this example, assume you must.

• Import a record that includes customer item Vision Desktop and customer Vision Operations.
• Create a relationship between Vision Desktop and inventory item AS54888 (Standard Desktop).
• Create a relationship between Vision Desktop and inventory item AS54600 (Sentinel 9000-S Desktop).
• Rank AS54888 higher than AS54600 so Order Management uses AS54888 rst to fulll the item, then uses
AS54600 only if AS54888 isn't available in inventory.

Set up customer item relationships so they support order import.

1. Sign into Oracle Fusion Applications with a user role you can use to administer Product Information
Management.

If you don't sign in with this role, then the Product Information Management work area won't display your
product details and you won't be able to do this procedure.
2. In the Navigator, click Product Management > Product Information Management.
3. In the Product Information Management work area, click Tasks > Manage Trading Partner Items.
4. Click Actions > Create.
5. In the Create Trading Partner Type dialog, set the value, then click OK.

Aribute Value

Trading Partner Type Customer


   

6. On the Create Customer Item page, set values.

Aribute Value

Customer Vision Operations


   

Customer Item Vision Desktop


   

7. In the Relationships area, click Actions > Create.


8. In the Create Customer Item Relationship dialog, set values, then click OK > Save.

Aribute Value

Organization MASTERORGANIZATION
   

Item AS54888
   

Rank
  1

666
Oracle SCM Cloud Chapter 4
Implementing Order Management Import and Transform

Aribute Value

Enter any numeric value.

◦ Enter a value. If you don't enter a value, then Order Management can't identify the
inventory item to use during order import, and your import will fail.
◦ Make sure the value you enter is unique across the customer item relationships you
set up for this customer item.
For example, if you set up a rank of 5 for AS54888, and a rank of 5 for AS54600, then
the import will fail because Order Management can't determine which customer item
relationship takes precedence.

9. In the Relationships area, click Actions > Create.


10. In the Create Customer Item Relationship dialog, set values, then click OK > Save and Close.

Aribute Value

Organization MASTERORGANIZATION
   

Item AS54600
   

Rank 2
   

Import Price Details


Specify how to use price details when you import a sales order.
If your source order contains price details, and you don't want to recalculate or reevaluate them, then set aributes in
the source order to Y.
• Freeze Price
• Freeze Shipping Charges
• Freeze Tax

The term freeze means Pricing Administration won't recalculate charges. For example, if you set Freeze Price to.
• Y. Don't recalculate charges.
• N. Recalculate charges.

Here's how Pricing Administration maps these aributes to aributes on the header entity of the pricing service data
object.

Aribute in Source Order Aribute on Header of Service Data Object

FreezePricing CalculatePricingChargesFlag
   

FreezeShippingCharge CalculateShippingChargesFlag
   

667
Oracle SCM Cloud Chapter 4
Implementing Order Management Import and Transform

Aribute in Source Order Aribute on Header of Service Data Object

FreezeTax CalculateTaxFlag
   

Pricing will use values in the import payload to determine price, shipping charges, and tax. The aributes you use
depend on how you import price data. For details, see these topics.

• Import Price Lists


• Aributes You Can Use with Web Services

Import Tax
Specify Whether to Include Tax in Net Price

You can include or not include Tax in Net Price. In either case.

• Set the FreezeTaxFlag aribute to False.


• Add your ChargeComponent elements in this hierarchy.

<soap:Envelope
<soap:Body>
<ns1:process
<ns1:OrchestrationOrderRequest
<ns2:OrchestrationOrderRequestLine>
<ns2:LineCharge>
<ns2:ChargeComponent

• Get example payloads. For details, search for Document ID 2051639.1 (White Papers for Order Management
Cloud) on My Oracle Support, download the Files_That_Support_Implementation_Examples aachment, then
examine the examples that include or don't include tax in net price.

Include Tax in Net Price

1. Add details to the price adjustment. For example.

<ns2:ChargeComponent>
<ns2:ChargeCurrencyCode>USD</ns2:ChargeCurrencyCode>
<ns2:HeaderCurrencyCode>USD</ns2:HeaderCurrencyCode>
<ns2:HeaderCurrencyExtendedAmount>-10</ns2:HeaderCurrencyExtendedAmount>
<ns2:PriceElementCode>QP_DISCOUNT_ADJ</ns2:PriceElementCode>
<ns2:SequenceNumber>2</ns2:SequenceNumber>
<ns2:PriceElementUsageCode>PRICE_ADJUSTMENT</ns2:PriceElementUsageCode>
<ns2:ChargeCurrencyUnitPrice>-1</ns2:ChargeCurrencyUnitPrice>
<ns2:HeaderCurrencyUnitPrice>-1</ns2:HeaderCurrencyUnitPrice>
<ns2:RollupFlag>false</ns2:RollupFlag>
<ns2:SourceParentChargeComponentId></ns2:SourceParentChargeComponentId>
<ns2:SourceChargeIdentifier>SC1</ns2:SourceChargeIdentifier>
<ns2:SourceChargeComponentIdentifier>SCC2</ns2:SourceChargeComponentIdentifier>
<ns2:ChargeCurrencyExtendedAmount>-10</ns2:ChargeCurrencyExtendedAmount>
</ns2:ChargeComponent>
<ns2:ChargeComponent>
<ns2:ChargeCurrencyCode>USD</ns2:ChargeCurrencyCode>
<ns2:HeaderCurrencyCode>USD</ns2:HeaderCurrencyCode>
<ns2:HeaderCurrencyExtendedAmount>10</ns2:HeaderCurrencyExtendedAmount>
<ns2:PriceElementCode>QP_INCLUSIVE_TAX</ns2:PriceElementCode>
<ns2:SequenceNumber>3</ns2:SequenceNumber>
<ns2:PriceElementUsageCode>INCLUSIVE_TAX</ns2:PriceElementUsageCode>

668
Oracle SCM Cloud Chapter 4
Implementing Order Management Import and Transform

Note.

◦ Add the code starting right after the line that contains PriceElementCode up to and including
PriceElementUsageCode>INCLUSIVE_TAX.

◦ Set ChargeCurrencyUnitPrice to -1 (negative 1).


◦ Set HeaderCurrencyUnitPrice to -1 (negative 1).
2. Add the charge component where you specify the tax to include in net price. For example.
<ns2:ChargeComponent>
<ns2:ChargeCurrencyCode>USD</ns2:ChargeCurrencyCode>
<ns2:HeaderCurrencyCode>USD</ns2:HeaderCurrencyCode>
<ns2:HeaderCurrencyExtendedAmount>80</ns2:HeaderCurrencyExtendedAmount>
<ns2:PriceElementCode>QP_NET_PRICE_EXC_INCLUSIVE_TAX</ns2:PriceElementCode>
<ns2:SequenceNumber>5</ns2:SequenceNumber>
<ns2:PriceElementUsageCode>NET_PRICE_TAX_EXCLUDED</ns2:PriceElementUsageCode>
<ns2:ChargeCurrencyUnitPrice>8</ns2:ChargeCurrencyUnitPrice>
<ns2:HeaderCurrencyUnitPrice>8</ns2:HeaderCurrencyUnitPrice>
<ns2:RollupFlag>false</ns2:RollupFlag>
<ns2:SourceParentChargeComponentId></ns2:SourceParentChargeComponentId>
<ns2:SourceChargeIdentifier>SC1</ns2:SourceChargeIdentifier>
<ns2:SourceChargeComponentIdentifier>SCC5</ns2:SourceChargeComponentIdentifier>
<ns2:ChargeCurrencyExtendedAmount>80</ns2:ChargeCurrencyExtendedAmount>
</ns2:ChargeComponent>

Note.

◦ Set PriceElementCode to QP_NET_PRICE_EXC_INCLUSIVE_TAX.


◦ Set PriceElementUsageCode to NET_PRICE_TAX_EXCLUDED.

Don't Include Tax in Net Price


1. Add a charge component that species the tax to include. For example.
<ns2:ChargeComponent>
<ns2:ChargeCurrencyCode>USD</ns2:ChargeCurrencyCode>
<ns2:HeaderCurrencyCode>USD</ns2:HeaderCurrencyCode>
<ns2:HeaderCurrencyExtendedAmount>10</ns2:HeaderCurrencyExtendedAmount>
<ns2:PriceElementCode>QP_EXCLUSIVE_TAX</ns2:PriceElementCode>
<ns2:SequenceNumber>4</ns2:SequenceNumber>
<ns2:PriceElementUsageCode>EXCLUSIVE_TAX</ns2:PriceElementUsageCode>
<ns2:ChargeCurrencyUnitPrice>1</ns2:ChargeCurrencyUnitPrice>
<ns2:HeaderCurrencyUnitPrice>1</ns2:HeaderCurrencyUnitPrice>
<ns2:RollupFlag>false</ns2:RollupFlag>
<ns2:SourceParentChargeComponentId></ns2:SourceParentChargeComponentId>
<ns2:SourceChargeIdentifier>SC1</ns2:SourceChargeIdentifier>
<ns2:SourceChargeComponentIdentifier>SCC4</ns2:SourceChargeComponentIdentifier>
<ns2:ChargeCurrencyExtendedAmount>10</ns2:ChargeCurrencyExtendedAmount>
</ns2:ChargeComponent>

Note.

◦ Set PriceElementCode to QP_EXCLUSIVE_TAX.


◦ Set PriceElementUsageCode to EXCLUSIVE_TAX.
2. Add the charge component where you specify the tax to include in net price. For example.
<ns2:ChargeComponent>
<ns2:ChargeCurrencyCode>USD</ns2:ChargeCurrencyCode>

669
Oracle SCM Cloud Chapter 4
Implementing Order Management Import and Transform

<ns2:HeaderCurrencyCode>USD</ns2:HeaderCurrencyCode>
<ns2:HeaderCurrencyExtendedAmount>100</ns2:HeaderCurrencyExtendedAmount>
<ns2:PriceElementCode>QP_NET_PRICE_PLUS_TAX</ns2:PriceElementCode>
<ns2:SequenceNumber>5</ns2:SequenceNumber>
<ns2:PriceElementUsageCode>NET_PRICE_PLUS_TAX</ns2:PriceElementUsageCode>
<ns2:ChargeCurrencyUnitPrice>10</ns2:ChargeCurrencyUnitPrice>
<ns2:HeaderCurrencyUnitPrice>10</ns2:HeaderCurrencyUnitPrice>
<ns2:RollupFlag>false</ns2:RollupFlag>
<ns2:SourceParentChargeComponentId></ns2:SourceParentChargeComponentId>
<ns2:SourceChargeIdentifier>SC1</ns2:SourceChargeIdentifier>
<ns2:SourceChargeComponentIdentifier>SCC5</ns2:SourceChargeComponentIdentifier>
<ns2:ChargeCurrencyExtendedAmount>100</ns2:ChargeCurrencyExtendedAmount>
<ns2:ChargeComponent>

Note.

◦ Set PriceElementCode to QP_NET_PRICE_PLUS_TAX.


◦ Set PriceElementUsageCode to NET_PRICE_PLUS_TAX.

How Order Management Displays Your Tax

How You Include Tax Values in Price Breakdown

Include Tax in Net Price Pay Now is equal to Net Price.


   
Total Tax includes only the inclusive tax.
 

Don't Include Tax in Net Price Pay Now equals tax plus Net Price.
   
Total Tax includes only the exclusive tax.
 

Example of Importing Price Details


Example Values for This Topic

Assume there are two charges for the order line.

Original Order Import Payload

UnitListPrice equals 100. Price equals 120.


   
Shipping charges equal 20. Shipping charges equal 24.
   
Tax equals 10. Tax equals 12.
   

Assume.

• Current price for the item is 130.


• Shipping charges at runtime are price multiplied by 20%.
• Tax calculated at runtime is total net price plus shipping multiplied by 10%.

670
Oracle SCM Cloud Chapter 4
Implementing Order Management Import and Transform

Sales Order Line or Return Line That Isn't Referenced

Here's how pricing works when your import includes a sales order line or a return line that doesn't reference the original
sales order.

Supported

Here are the combinations of values you can use for the freeze aributes.

FreezePricing FreezeShippingCharge FreezeTax Description

Y Y N Pricing uses the price and


      shipping charges from the
import payload, but calculates
the tax.
 
Price equals 120.
 
Shipping charges equal 25.
 
Tax equals 14.50.
 

Y N N Pricing uses the price from


      the payload, but calculates
shipping and tax.
 
Price equals 120.
 
Shipping charges equal 24.
 
Tax equals 14.40.
 

N Y N Pricing uses the shipping


      charges from the payload, but
gets the price from your set up
in Pricing Administration and
calculates tax.
 
Price equals 130.
 
Shipping charges equal 24.
 
Tax equals 15.40.
 

Not Supported

Here are the combinations of values you can't use for the freeze aributes.

FreezePricing FreezeShippingCharge FreezeTax Description

N N Y Pricing can calculate the


      price and shipping, but can't
validate that the imported tax
is correct for the price and the
shipping it calculates.

671
Oracle SCM Cloud Chapter 4
Implementing Order Management Import and Transform

FreezePricing FreezeShippingCharge FreezeTax Description

Y N Y Pricing can calculate shipping,


      but can't validate that the
imported price and tax is
correct for the shipping it
calculates.
 

N Y Y Pricing can calculate shipping


      and tax, but can't validate that
the imported price is correct
for the shipping and tax that it
calculates.
 

Referenced Return Line

Assume your import includes a return line that does reference the original sales order.

FreezePricing FreezeShippingCharge FreezeTax Description

Y Y Y Pricing ignores the original


      sales order. Instead, it uses
values from the import
payload.
 
Price equals 120.
 
Shipping charges equal 24.
 
Tax equals 12.
 

Y N Y If at least one of these


      aributes equals N, then
Pricing prices everything
from the original sales order,
and ignores price, shipping
charges, and tax that the
import payload contains.
 
Price equals 100.
 
Shipping charges equal 20.
 
Tax equals 10.
 

Related Topics
• How Order Management Transforms Source Orders Into Sales Orders
• Import Price Lists
• Aributes You Can Use with Web Services

672
Oracle SCM Cloud Chapter 4
Implementing Order Management Import and Transform

Import Addresses Into Order Management


Use ship-to details and bill-to details to populate order header aributes and order line aributes when you use a le to
import sales orders.

Import Order Header Aributes


Populate bill-to aributes on the order header.
• Bill-to Customer
• Bill-to Account

Use aributes on the DOO_ORDER_ADDRESSES_INT tab.

Aribute Value

Address Use Type BILL_TO

673
Oracle SCM Cloud Chapter 4
Implementing Order Management Import and Transform

Aribute Value

   

Customer Name Name of customer you're importing, such as Computer Service and Rentals.
   
Use this aribute only when Address Use Type contains BILL_ TO.
 

Account Site Identier Value that uniquely identies the account, such as 300000001469016.
   
Use this aribute only when Address Use Type contains BILL_ TO.
 

Source Transaction Line Identier Leave empty.


   

Populate ship-to aributes on the order header.

• Ship-to Customer
• Ship-to Address

674
Oracle SCM Cloud Chapter 4
Implementing Order Management Import and Transform

Use aributes on the DOO_ORDER_ADDRESSES_INT tab.

Aribute Value

Address Use Type SHIP_TO


   

Party Name Name of party you're importing, such as Computer Service and Rentals.
   
Use this aribute only when Address Use Type contains SHIP_ TO.
 

Party Site Identier Value that uniquely identies the party site address, such as 300000001469004.
   
Use this aribute only when Address Use Type contains SHIP_ TO.
 

675
Oracle SCM Cloud Chapter 4
Implementing Order Management Import and Transform

Aribute Value

Source Transaction Line Identier Leave empty.


   

Import Order Line Aributes


Populate bill-to aributes on the order line.

• Bill-to Customer
• Bill-to Address

676
Oracle SCM Cloud Chapter 4
Implementing Order Management Import and Transform

Set the same values you use to populate order header aributes, except set this aribute.

Aribute Value

Source Transaction Line Identier Value that uniquely identies the transaction line in the source system, such as 1.
   

Make sure you set Source Transaction Line Identier on DOO_ORDER_LINES_ALL_INT and on
DOO_ORDER_ADDRESSES_INT to the same value.

The import uses Source Transaction Line Identier to create a relationship between the address on
DOO_ORDER_ADDRESSES_INT with the order line on DOO_ORDER_LINES_ALL_INT.

Populate ship-to aributes on the order line.

• Ship-to Customer
• Ship-to Address

677
Oracle SCM Cloud Chapter 4
Implementing Order Management Import and Transform

Set Bill-to and Ship-to On the Same Order Line

678
Oracle SCM Cloud Chapter 4
Implementing Order Management Import and Transform

Get Values for Identier Aributes


Make sure you use the correct value for the Account Site Identier aribute and the Party Site Identier aribute. Use
SQL to query the Order Management database to get these values.
• Examine the SITE_USE_CODE column.
• For ship_to, use the value that PARTY SITE ID - for SHIP_TO returns.
• For bill_to, use the value that SITE USE ID - for BILL_TO returns.
• This SQL also returns inactive account details.

In your SQL, replace the placeholder with a value from your order import template.

Placeholder Aribute on the DOO_ORDER_ADDRESSES_INT Tab

party_name Party Name


   

party_number Party Number


   

party_id Party Identier


   

account_number Not applicable


   

679
Oracle SCM Cloud Chapter 4
Implementing Order Management Import and Transform

Placeholder Aribute on the DOO_ORDER_ADDRESSES_INT Tab

account_name Not applicable


   

Here's the SQL to run.


SELECT hzp.party_name
||
' '
||
hzp.party_number ,
hzp.party_id ,
HZA.account_number ,
HZA.account_name ,
hza.CUST_ACCOUNT_ID ,
HZA.status "Account Status" ,
hzp.status "Party Status" ,
hzps.status "Party Site Status" ,
hzps.party_site_id "PARTY SITE ID - for SHIP_TO",
hzcasa.status "Account Site Status" ,
hzcsua.site_use_id "SITE USE ID - for BILL_TO" ,
hzcasa.start_Date ,
hzcasa.end_Date ,
hzcsua.SITE_USE_CODE ,
hzcasa.BILL_TO_FLAG ,
hzcasa.SHIP_TO_FLAG ,
hzcsua.PRIMARY_FLAG ,
hzcsua.STATUS "Account Site USE Status" ,
hzcsua.LOCATION ,
hzl.ADDRESS1 ,
hzl.ADDRESS2 ,
hzl.ADDRESS3 ,
hzl.ADDRESS4 ,
hzl.CITY ,
hzl.POSTAL_CODE ,
hzl.STATE ,
hzl.COUNTRY
FROM fusion.HZ_PARTIES HZP ,
fusion.HZ_PARTY_SITES hzps ,
fusion.HZ_CUST_ACCOUNTS HZA ,
fusion.HZ_CUST_ACCT_SITES_ALL hzcasa,
fusion.HZ_CUST_SITE_USES_ALL hzcsua ,
fusion.hz_locations HZL
WHERE hzP.party_id = HZA.party_id (+)
AND hza.CUST_ACCOUNT_ID = hzcasa.CUST_ACCOUNT_ID (+)
AND hzcasa.party_site_id = hzps.party_site_id (+)
AND hzcasa.cust_acct_site_id = hzcsua.cust_acct_site_id (+)
AND hzps.location_id = hzl.location_id (+)
-- and (
-- hzcasa.start_Date <= sysdate
-- OR hzcasa.start_Date IS NULL
-- )
-- AND
-- (
-- hzcasa.end_date >= sysdate
-- OR hzcasa.end_date IS NULL
-- )
AND upper(hzP.party_name) LIKE upper('%GOO%IND%')
ORDER BY hzp.party_number ,
hza.account_number,
hzl.LOCATION_ID

680
Oracle SCM Cloud Chapter 4
Implementing Order Management Import and Transform

Related Topics
• Use SQL to Query Order Management Data
• How Order-to-Cash Works with Order Capture Systems

Import Shipping Method


The Shipping Method aribute is a combination of three aributes. You use dierent aributes depending on the
technology you use to import.

Sales Orders for Order Hub SourceSalesOrderImportTemplate Through File-Based Data Import
Resource in REST API

ShippingCarrierId Shipping Carrier Code


   

ShippingMode Shipping Mode


   

ShippingServiceLevel Shipping Service Level


   

If you import a shipping method through REST API or FBDI, you must make sure the method is valid.
• If you include a value for one of the three aributes, then you must include a value for all of them. For
example, if you include a value for ShippingCarrierId, then you must include a value for ShippingMode and
ShippingServiceLevel.
• The WSH_MODE_OF_TRANSPORT lookup type must contain the value you import for ShippingMode.
• The WSH_SERVICE_LEVELS lookup type must contain the value you import for ShippingServiceLevel.

The combination of ShippingCarrierId, ShippingMode, and ShippingServiceLevel must be valid with each other. Here's
an easy way to identify valid combinations that you can import.
1. Go to the Order Management work area, then create a sales order.
2. In the Order Lines area, click Shipment Details.
3. On the Shipment Details tab, in the Shipping Method aribute, click down arrow > Search.
4. In the Select Shipping Method dialog, leave the aributes in the Search area empty and click Search.
5. Choose a set of values from the search results and use them in your REST API payload or FBDI template.
Here are some example results.

Shipping Method Carrier Mode of Transport Service Level

Airborne Parcel Express Airborne Parcel Express


       

Airborne Parcel 2nd day air Airborne Parcel 2nd day air
       

Airborne Parcel Standard Airborne Parcel Standard


       

Big Rigs Truckload Ground Big Rigs Truckload Ground


       

681
Oracle SCM Cloud Chapter 4
Implementing Order Management Import and Transform

Shipping Method Carrier Mode of Transport Service Level

Nautilus Rail Standard Nautilus Rail Standard


       

Nautilus Ocean Standard Nautilus Ocean Standard


       

Here are some examples of combinations that aren't valid.

Shipping Method Description

Nautilus Standard Standard Standard isn't a mode of transport.


   

Airborne Express Parcel Express isn't a mode of transport. Its a service.


   
Parcel isn't a service. Its a mode of transport.
 

Identify Lookup Values You Can Use


1. In the Setup and Maintenance work area, go to the task.

◦ Oering: Manufacturing and Supply Chain Materials Management


◦ Functional Area: Carriers and Transit Times
◦ Task: Manage Carriers Lookups
2. Identify the modes of transport you can use.

◦ On the Manage Carriers Lookups page, search Lookup Type for WSH_MODE_OF_TRANSPORT.
◦ In the search results, examine the values in the Lookup Meaning column.

Example results include Air, Less than Truckload, Ocean, Parcel, Rail, Truckload, and so on. Set the
ShippingMode aribute in your import payload to one of these values.

If you don't see the lookup code you need, then click Actions > New in the Lookup Codes area, and add
it.
3. Identify the service levels you can use.

◦ On the Manage Carriers Lookups page, search Lookup Type for WSH_SERVICE_LEVELS.
◦ In the search results, examine the values in the Lookup Meaning column.

Example results include Door-to-door, Express, FedEx 2day, and so on. Set the ShippingServiceLevel
aribute in your import payload to one of these values.

If you don't see the lookup code you need, then click Actions > New in the Lookup Codes area, and add
it.

682
Oracle SCM Cloud Chapter 4
Implementing Order Management Import and Transform

Troubleshoot
If you import a shipping method that isn't valid, then the communication with Global Order Promising might fail. You
will notice when the Order Entry Specialist aempts to submit a sales order but receives an error, similar to. . .
You can't submit the sales order because the combination of the mode of transport, service level, and
carrier that determines the shipping method on the order header isn't valid.

Here are some solutions you can try.

Trouble Shoot

The DOO_ VALIDATE_ ORDER_ Reimport the shipping method with the correct values.
SHIP_METHOD processing constraint  
or DOO_ VALIDATE_ FULFILL_ LINE_
SHIP_METHOD constraint examined
the shipping method and found that
it isn't valid.
 

Make sure msc_ xref_mapping correctly maps your values.


The mapping in  
MSC_XREF_MAPPING isn't valid. Make sure your set ups don't modify the mappings that msc_ xref_mapping references.
 
The msc_xref_mapping entity in the For details about msc_ xref_mapping see the Use Domain Value Maps to Cross-Reference Data
Order Orchestration and Planning in Order Management topic.
Data Repository maps values for  
the shipping method. For example,
assume you see Airborne Parcel 2nd
day air in the Order Management
work area, but msc_xref_mapping
maps the alphanumeric value to
a numeric value, so the repository
stores only the numeric value.

• Map Airborne to 32510 and


store 32510 in the carrier_id
column of the repository.
• Map Parcel to 39 and store 39
in the ship_mode_of_transport
column of the repository.
• Map 2nd day air to 821
and store 821 in the
ship_class_of_service column
of the repository.

Assume you create a


pretransformation rule or an
order management extension that
transforms the carrier ID to -999
before or during order submit.
msc_xref_mapping doesn't map
-999, so the carrier isn't valid and
Order Management will display an
error.

Related Topics
• Use Domain Value Maps to Cross-Reference Data in Order Management

683
Oracle SCM Cloud Chapter 4
Implementing Order Management Import and Transform

Import Returns When Original Order Lines Are Split


Create a return for a source order line that you split in Order Management.
If Order Management doesn't split the fulllment line, then one order line in the source order in the source system maps
to one fulllment line in the sales order in Order Management. But if Order Management splits the fulllment line into
two or more fulllment lines, then the lines reference the same source order, source order line, and schedule details. To
create a return for a source order line that you split in Order Management, you must provide details that identify which
fulllment line to return.

Use the DocumentReferenceType aribute to identify the original order line you're returning.

DocumentReferenceType Description

ORIGINAL_ SALES_ORDER Identify the original order line in the source system from a channel, such as a legacy order
  capture system.
 

ORIGINAL_ ORCHESTRATION_ Identify the original sales order line in Order Management Cloud.
ORDER  
  You must use DocumentSubLineIdentier.
 

If the original order line.

• Isn't split, you can use ORIGINAL_SALES_ORDER or ORIGINAL_ORCHESTRATION_ORDER.


• Is split, you must use ORIGINAL_ORCHESTRATION_ORDER, or ORIGINAL_SALES_ORDER and
ORIGINAL_ORCHESTRATION_ORDER.

Use ORIGINAL_SALES_ORDER
Use ORIGINAL_SALES_ORDER in the DocumentReference section to specify details about the source order you
originally created in your source system.

Aribute Description Example Value

DocumentReferenceType Not applicable. ORIGINAL_ SALES_ORDER


     

DocumentIdentier Value that uniquely identies the original CS_ SO_ 1234445555565656
  source order. This is the source order in  
your source system that you originally
used to order the item.
 

DocumentAdditionalIdentier Name of the source system. LEG


     
You can use the Code aribute on the
Manage Planning Source Systems page to
set this value.
 

DocumentNumber Number of the original sales order. CS_SO_122_0034


     

684
Oracle SCM Cloud Chapter 4
Implementing Order Management Import and Transform

Aribute Description Example Value

DocumentLineIdentier Number that uniquely identies the 101


  order line on the original sales order that  
contains the item you're returning.
 

DocumentLineNumber Identify the line number. Not applicable


     

Note.

• Provide values that uniquely identify the source order line. For instance, you can provide identiers for the
source order and source order line to uniquely identify the source order line. You can also provide other values,
such as source order number and source order line number, to uniquely identify the source order line.
• Include values for DocumentNumber or DocumentIdentier, or DocumentNumber and DocumentIdentier.
• Include values for DocumentLineNumber or DocumentLineIdentier, or DocumentLineNumber and
DocumentLineIdentier.

Use ORIGINAL_ORCHESTRATION_ORDER
Add another DocumentReference section, and use ORIGINAL_ORCHESTRATION_ORDER to identify details about the
order you originally created in Order Management Cloud.

Aribute Description Example Value

DocumentReferenceType Not applicable. ORIGINAL_ ORCHESTRATION_ ORDER


     

DocumentIdentier Value that uniquely identies the order 300100177488708


  header of the original sales order in Order  
Management Cloud. This is the sales order
you originally used to order the item.
 

DocumentAdditionalIdentier Name of the source system. GPR


     

DocumentNumber Number of the original sales order. 45098


     

DocumentSubLineIdentier Value that uniquely identies the 300100177495497


  fulllment line that fullled the item you're  
returning.
 

DocumentLineIdentier Leave these values empty. Not applicable


     
LineNumber
 
DocumentLineNumber
 
DocumentSubLineNumber
 

685
Oracle SCM Cloud Chapter 4
Implementing Order Management Import and Transform

Identify the Source System


You use dierent aributes to identify the name of the source system depending on whether you use the import
template or web service.

How You Import Aribute You Use

Template Source Transaction System


   

Web Service DocumentAdditionalIdentier


   

Example Payload
Here's an example payload. It uses ORIGINAL_SALES_ORDER and ORIGINAL_ORCHESTRATION_ORDER. You use the
DocumentReference section to specify details about the original sales order. Use the Order Information Service to get
the values you need for your payload. For details, see the Web Services You Can Use to Integrate Order Management
topic.
<ns2:DocumentReference>
<ns2:DocumentReferenceType>ORIGINAL_SALES_ORDER</ns2:DocumentReferenceType>
<ns2:DocumentIdentifier>CS_SO_1234445555565656</ns2:DocumentIdentifier>
<ns2:DocumentAdditionalIdentifier>LEG</ns2:DocumentAdditionalIdentifier>
<ns2:DocumentNumber>CS_SO_122_0034</ns2:DocumentNumber>
<ns2:DocumentAdditionalNumber/>
<ns2:DocumentLineIdentifier>101</ns2:DocumentLineIdentifier>
<ns2:DocumentAdditionalLineIdentifier/>
<ns2:DocumentLineNumber/>
<ns2:DocumentAdditionalLineNumber/>
<ns2:DocumentAdditionalSubLineIdentifier/>
<ns2:DocumentSubLineNumber/>
<ns2:DocumentAdditionalSubLineNumber/>
</ns2:DocumentReference>

<ns2:DocumentReference>
<ns2:DocumentReferenceType>ORIGINAL_ORCHESTRATION_ORDER</ns2:DocumentReferenceType>
<ns2:DocumentIdentifier>300100177488708</ns2:DocumentIdentifier>
<ns2:DocumentAdditionalIdentifier>GPR</ns2:DocumentAdditionalIdentifier>
<ns2:DocumentNumber>45098</ns2:DocumentNumber>
<ns2:DocumentAdditionalNumber/>
<ns2:DocumentLineIdentifier>300100177488711</ns2:DocumentLineIdentifier>
<ns2:DocumentSubLineIdentifier>300100177495497</ns2:DocumentSubLineIdentifier>
<ns2:DocumentAdditionalLineIdentifier/>
<ns2:DocumentLineNumber>1</ns2:DocumentLineNumber>
<ns2:DocumentAdditionalLineNumber/>
<ns2:DocumentSubLineNumber>2</ns2:DocumentSubLineNumber>
<ns2:DocumentAdditionalSubLineNumber/>
</ns2:DocumentReference>

Here's the entire payload. It returns a quantity of 1 Each for item AS92888.
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns1:createOrders xmlns:ns1="http://xmlns.oracle.com/apps/scm/fom/importOrders/orderImportService/types/">
<ns1:request xmlns:ns2="http://xmlns.oracle.com/apps/scm/fom/importOrders/orderImportService/">
<ns2:BatchName>Test001</ns2:BatchName>
<ns2:Order>
<ns2:SourceTransactionIdentifier>ppar_mar22_12</ns2:SourceTransactionIdentifier>
<ns2:SourceTransactionSystem>GPR</ns2:SourceTransactionSystem>

686
Oracle SCM Cloud Chapter 4
Implementing Order Management Import and Transform

<ns2:SourceTransactionNumber>ppar_mar22_12</ns2:SourceTransactionNumber>
<ns2:BuyingPartyId>1006</ns2:BuyingPartyId>
<ns2:BuyingPartyContactId>1560</ns2:BuyingPartyContactId>
<ns2:TransactionalCurrencyCode>USD</ns2:TransactionalCurrencyCode>
<ns2:TransactionOn>2018-01-01T06:08:52.0340</ns2:TransactionOn>
<ns2:RequestingBusinessUnitIdentifier>204</ns2:RequestingBusinessUnitIdentifier>
<ns2:RequestingLegalUnitIdentifier>204</ns2:RequestingLegalUnitIdentifier>
<ns2:FreezePriceFlag>true</ns2:FreezePriceFlag>
<ns2:FreezeShippingChargeFlag>true</ns2:FreezeShippingChargeFlag>
<ns2:FreezeTaxFlag>true</ns2:FreezeTaxFlag>
<ns2:ShipToPartyIdentifier>1006</ns2:ShipToPartyIdentifier>
<ns2:ShipToPartySiteIdentifier>1036</ns2:ShipToPartySiteIdentifier>
<ns2:ShipToPartyContactIdentifier>1560</ns2:ShipToPartyContactIdentifier>
<ns2:BillToCustomerIdentifier>1006</ns2:BillToCustomerIdentifier>
<ns2:BillToCustomerName>1006</ns2:BillToCustomerName>
<ns2:BillToAccountSiteUseIdentifier>1025</ns2:BillToAccountSiteUseIdentifier>
<ns2:BillToAccountContactIdentifier>4820</ns2:BillToAccountContactIdentifier>
<ns2:Line>
<ns2:SourceTransactionLineIdentifier>101</ns2:SourceTransactionLineIdentifier>
<ns2:SourceTransactionScheduleIdentifier>101</ns2:SourceTransactionScheduleIdentifier>
<ns2:SourceTransactionLineNumber>1</ns2:SourceTransactionLineNumber>
<ns2:SourceTransactionScheduleNumber>1</ns2:SourceTransactionScheduleNumber>
<ns2:ProductNumber>AS92888</ns2:ProductNumber>
<ns2:OrderedQuantity>1</ns2:OrderedQuantity>
<!--ns2:OrderedUOMCode>BX1</ns2:OrderedUOMCode-->
<ns2:OrderedUOM>Each</ns2:OrderedUOM>
<ns2:RequestedFulfillmentOrganizationIdentifier>207</ns2:RequestedFulfillmentOrganizationIdentifier>
<ns2:RequestingBusinessUnitIdentifier>204</ns2:RequestingBusinessUnitIdentifier>
<ns2:RequestedShipDate>2018-01-01T06:08:52.0340</ns2:RequestedShipDate>
<ns2:PaymentTermsCode>4</ns2:PaymentTermsCode>
<ns2:TransactionCategoryCode>RETURN</ns2:TransactionCategoryCode>
<ns2:ShipToPartyIdentifier>1006</ns2:ShipToPartyIdentifier>
<ns2:ScheduleShipDate>2018-11-20T06:08:52.0340</ns2:ScheduleShipDate>
<ns2:ScheduleArrivalDate>2018-11-20T06:08:52.0340</ns2:ScheduleArrivalDate>
<ns2:ShipToPartySiteIdentifier>1036</ns2:ShipToPartySiteIdentifier>
<ns2:BillToCustomerIdentifier>1006</ns2:BillToCustomerIdentifier>
<ns2:BillToCustomerName>1006</ns2:BillToCustomerName>
<ns2:BillToAccountSiteUseIdentifier>1025</ns2:BillToAccountSiteUseIdentifier>
<ns2:BillToAccountContactIdentifier>4820</ns2:BillToAccountContactIdentifier>
<ns2:InventoryOrganizationIdentifier>204</ns2:InventoryOrganizationIdentifier>
<ns2:ShippingInstructions>BM Ship Instructions- Ship it in a day</ns2:ShippingInstructions>
<ns2:UnitListPrice currencyCode="USD">105</ns2:UnitListPrice>
<ns2:PartialShipAllowedFlag>FALSE</ns2:PartialShipAllowedFlag>
<ns2:FOBPoint>DEST</ns2:FOBPoint>
<ns2:OrderCharge>
<ns2:ChargeDefinitionCode>QP_SALE_PRICE</ns2:ChargeDefinitionCode>
<ns2:ChargeSubtypeCode>ORA_PRICE</ns2:ChargeSubtypeCode>
<ns2:PriceTypeCode>ONE_TIME</ns2:PriceTypeCode>
<ns2:PricedQuantity>1</ns2:PricedQuantity>
<ns2:PricedQuantityUOM>Each</ns2:PricedQuantityUOM>
<ns2:PricedQuantityUOMCode/>
<ns2:PrimaryFlag>true</ns2:PrimaryFlag>
<ns2:ApplyTo>PRICE</ns2:ApplyTo>
<ns2:RollupFlag>false</ns2:RollupFlag>
<ns2:SourceChargeIdentifier>SC1</ns2:SourceChargeIdentifier>
<ns2:ChargeCurrencyCode>USD</ns2:ChargeCurrencyCode>
<ns2:ChargeTypeCode>ORA_SALE</ns2:ChargeTypeCode>
<ns2:ChargeCurrencyCode/>
<ns2:SequenceNumber>1</ns2:SequenceNumber>
<ns2:PricePeriodicityCode/>
<ns2:GsaUnitPrice/>
<ns2:OrderChargeComponent>
<ns2:ChargeCurrencyCode>USD</ns2:ChargeCurrencyCode>
<ns2:HeaderCurrencyCode>USD</ns2:HeaderCurrencyCode>
<ns2:HeaderCurrencyExtendedAmount>-100</ns2:HeaderCurrencyExtendedAmount>
<ns2:PriceElementCode>QP_LIST_PRICE</ns2:PriceElementCode>

687
Oracle SCM Cloud Chapter 4
Implementing Order Management Import and Transform

<ns2:SequenceNumber>1</ns2:SequenceNumber>
<ns2:PriceElementUsageCode>LIST_PRICE</ns2:PriceElementUsageCode>
<ns2:ChargeCurrencyUnitPrice>-10</ns2:ChargeCurrencyUnitPrice>
<ns2:HeaderCurrencyUnitPrice>-10</ns2:HeaderCurrencyUnitPrice>
<ns2:RollupFlag>false</ns2:RollupFlag>
<ns2:SourceParentChargeComponentId/>
<ns2:SourceChargeIdentifier>SC1</ns2:SourceChargeIdentifier>
<ns2:SourceChargeComponentIdentifier>SCC2</ns2:SourceChargeComponentIdentifier>
<ns2:ChargeCurrencyExtendedAmount>-100</ns2:ChargeCurrencyExtendedAmount>
</ns2:OrderChargeComponent>
<ns2:OrderChargeComponent>
<ns2:ChargeCurrencyCode>USD</ns2:ChargeCurrencyCode>
<ns2:HeaderCurrencyCode>USD</ns2:HeaderCurrencyCode>
<ns2:HeaderCurrencyExtendedAmount>-90</ns2:HeaderCurrencyExtendedAmount>
<ns2:ChargeCurrencyExtendedAmount>-90</ns2:ChargeCurrencyExtendedAmount>
<ns2:PriceElementCode>QP_NET_PRICE</ns2:PriceElementCode>
<ns2:SequenceNumber>2</ns2:SequenceNumber>
<ns2:PriceElementUsageCode>NET_PRICE</ns2:PriceElementUsageCode>
<ns2:ChargeCurrencyUnitPrice>-9</ns2:ChargeCurrencyUnitPrice>
<ns2:HeaderCurrencyUnitPrice>-9</ns2:HeaderCurrencyUnitPrice>
<ns2:RollupFlag>false</ns2:RollupFlag>
<ns2:SourceParentChargeComponentId/>
<ns2:SourceChargeIdentifier>SC1</ns2:SourceChargeIdentifier>
<ns2:SourceChargeComponentIdentifier>SCC1</ns2:SourceChargeComponentIdentifier>
</ns2:OrderChargeComponent>
</ns2:OrderCharge>

<ns2:DocumentReference>
<ns2:DocumentReferenceType>ORIGINAL_SALES_ORDER</ns2:DocumentReferenceType>
<ns2:DocumentIdentifier>CS_SO_1234445555565656</ns2:DocumentIdentifier>
<ns2:DocumentAdditionalIdentifier>LEG</ns2:DocumentAdditionalIdentifier>
<ns2:DocumentNumber>CS_SO_122_0034</ns2:DocumentNumber>
<ns2:DocumentAdditionalNumber/>
<ns2:DocumentLineIdentifier>101</ns2:DocumentLineIdentifier>
<ns2:DocumentAdditionalLineIdentifier/>
<ns2:DocumentLineNumber/>
<ns2:DocumentAdditionalLineNumber/>
<ns2:DocumentAdditionalSubLineIdentifier/>
<ns2:DocumentSubLineNumber/>
<ns2:DocumentAdditionalSubLineNumber/>
</ns2:DocumentReference>

<ns2:DocumentReference>
<ns2:DocumentReferenceType>ORIGINAL_ORCHESTRATION_ORDER</ns2:DocumentReferenceType>
<ns2:DocumentIdentifier>300100177488708</ns2:DocumentIdentifier>
<ns2:DocumentAdditionalIdentifier>GPR</ns2:DocumentAdditionalIdentifier>
<ns2:DocumentNumber>45098</ns2:DocumentNumber>
<ns2:DocumentAdditionalNumber/>
<ns2:DocumentLineIdentifier>300100177488711</ns2:DocumentLineIdentifier>
<ns2:DocumentSubLineIdentifier>300100177495497</ns2:DocumentSubLineIdentifier>
<ns2:DocumentAdditionalLineIdentifier/>
<ns2:DocumentLineNumber>1</ns2:DocumentLineNumber>
<ns2:DocumentAdditionalLineNumber/>
<ns2:DocumentSubLineNumber>2</ns2:DocumentSubLineNumber>
<ns2:DocumentAdditionalSubLineNumber/>
</ns2:DocumentReference>

</ns2:Line>
<ns2:OrderPreferences>
<!--Optional:-->
<ns2:CreateCustomerInformationFlag>false</ns2:CreateCustomerInformationFlag>
<!--Optional:-->
<ns2:SubmitFlag>true</ns2:SubmitFlag>
</ns2:OrderPreferences>
</ns2:Order>
</ns1:request>

688
Oracle SCM Cloud Chapter 4
Implementing Order Management Import and Transform

</ns1:createOrders>
</soap:Body>
</soap:Envelope>

Related Topics
• Web Services You Can Use to Integrate Order Management

Use Web Services to Import Orders


Use an order import service to receive a request for details about an order line from your source system, and then
transform it into a structure that Order Management can use.
Use the Order Import web service to capture sales orders from your source system. For details, see the Web Services
You Can Use to Integrate Order Management topic. To get example payloads, see the Example Web Service Payloads
That Integrate Order Management topic.

Here are some other web services you can also use.

Web Service Description

Get Order Details • Communicate status details or order details to the source system that requests it.
  • Get details about the entire sales order or a set of order lines.
• Get details about a sales order that starts in an integrated source system.

You can specify a source system so the query limits results to only this system. If you don't
specify a source system, then the service might return order numbers from more than one
source system.

Get Order Shipping Details • Communicate shipping details to the source system that requests it.
 
◦ Current schedules

◦ Status of each schedule

◦ Schedule details, such as warehouse and shipping method

• Organizes the reply according to shipments instead of fulllment lines.


• Include details about fulllment lines in the reply. More than one fulllment line in Order
Management might reference a single order line in the source order.
• Return details about the order lines of a sales order, or for only a subset of these lines.

Apply a Hold Route a request for a hold from your source system to a hold task. Process more than one hold
  in a request, each hold for one sales order, or more than one order line in the sales order.
 

Release a Hold Route a request to release a hold from our source system to the hold task.
   

Check Availability Send a request to Order Management to determine the quantity that's available on a date in
  the source system. Order Management sends a reply to the source system that includes these
details.
 

689
Oracle SCM Cloud Chapter 4
Implementing Order Management Import and Transform

Update Split Fulllment Lines


You can't use the Order Import web service to update the quantity on a split fulllment line.

Assume you use Integration Cloud Service to integrate your implementation. The original order line contains a quantity
of 100. Global Order Promising analyzes the supply chain and determines the best way to fulll your order is to split the
order into two fulllment lines, where line 1.1 contains a quantity of 75 and line 1.2 contains a quantity of 25. Promising
sends the request to Integration Cloud Service, who then calls the Order Import web service to make the change in
Order Management Cloud, and Order Management successfully splits the line.

The supply chain is constantly changing. The next day, Global Order Promising analyzes the supply chain again and
determines to use a quantity of 60 on line 1.1 and 40 on line 2.2. So you now must change the quantity on line 1.1 from
75 to 60, and the quantity on line 1.2 from 60 to 40.

You use the Order Import service to change the values.


• source line number = 1, fulllment line number = 1, quantity = 60
• source line number = 1, fulllment line number = 2, quantity = 40

But you encounter a null pointer error because the import can't locate the fulllment lines.

You use the Order Import service again to change the values but this time specify dierent source lines so they match
the fulllment lines.
• source line number = 1, fulllment line number = 1, quantity = 60
• source line number = 2, fulllment line number = 2, quantity = 40

The import updates the quantity on line 1 to 60, cancels line 1.2, and creates a new line 2 with a quantity of 40.

Some time later, you receive a request to update only fulllment line 1.1. You use the Order Import service to
successfully update line 1.1, but the import automatically cancels line 2.

You can only do these kinds of updates to split fulllment lines in the Order Management work area. You can't use the
Order Import service to do them.

Related Topics
• How Order Management Transforms Source Orders Into Sales Orders
• Web Services You Can Use to Integrate Order Management
• Example Web Service Payloads That Integrate Order Management

Transform
Transformation Rules
Write a business rule that populates order aributes before Order Management transforms a source order, while it
transforms a source order, and after it transforms a source order.
A source system is a system in your implementation that captures the details of a sales order. The source orders
that your source system captures probably use aributes, structures, and data that are dierent from what Order
Management uses. If you use more than one source system, then the details across source systems might be dierent.

690
Oracle SCM Cloud Chapter 4
Implementing Order Management Import and Transform

Order Management uses a specic structure in sales orders so it can fulll each of them consistently and eectively.
Transformation rules transform each source order into a structure that Order Management can use, such as the
arrangement of aributes on the order header, order lines, and fulllment lines, and the relationships between header,
order lines, and fulllment lines.

Pretransformation Rule
Populate an order aribute before Order Management transforms the source order. You can use the predened
aribute value that the rule already contains. Order Management defaults the master inventory organization to the
sales order so you can use it in the rule.

691
Oracle SCM Cloud Chapter 4
Implementing Order Management Import and Transform

Example Usage Description

Populate an aribute on a fulllment


line. Assume your sales order includes the Request Date aribute, and you must display it on
  fulllment lines, but only for the AS54888 desktop computer. Here's your rule.

• If the item is AS54888 desktop computer, then display the Request Date aribute on the
fulllment line.

Populate an aribute so you can use


it in a transformation rule. Assume your sales order includes the AS54888, you must convert its size from centimeters to
  inches, then display it on the fulllment line. Here's your rule.

• If the item is a AS54888, then convert the Size aribute and display it on the fulllment
line.

Order Management runs pretransformation rules each time the Order Entry Specialist modies the sales order.

Transformation Rule
Order Management uses item relationships, item structures, transactional aributes, and business rules to transform a
sales representation of the item in the source order to a fulllment representation of the item on fulllment lines.

• You use the Manage Product Transformation Rules page in the Setup and Maintenance work area to write
the transformation rule. You can also use the Product Information Management work area to set up item
relationships, item structures, and transactional aributes.
• You can't use a transformation rule to add a product model to a sales order.
• An order line that a transformation rule creates gets most aributes from the line that the rule uses to create
the new line. You can't edit, revise, or price an order line that a transformation rule creates.

For example, assume you sell a laptop computer that ships to dierent geographical regions. Each region
requires a dierent electrical adapter, such as 110 volts or 240 volts. You create a rule that uses the
geographical region where you ship the item to determine the adapter to include in the sales order. You create
a transformation rule that transforms the source order to a sales order that includes order line a and order line
b, then adds the adapter to order line b. Assume the Ship To address on order line a is 550 Vision Way. The rule
sets Ship To address on order line b to 550 Vision Way. You can't change this value on order line b.

The Create Order page and the Edit Order page in the Order Management work area don't display an order line
that a transformation rule creates because transformation adds the line only after your user clicks Submit. You
can view the new line in a fulllment view, such as View Order. If you create an order revision, you can also view
the new line on the Create Revision or Edit Revision page.

Product-to-Product Transformation

Transform a single item to one or more items according to item structure, item relationship, and the transformation
rule. You can write a rule that transforms an item to another item, and that creates individual fulllment lines.

Assume your source order includes a laptop that comes with an accessory package that includes more than one item,
such as a docking station, mouse, and so on. You write a product-to-product transformation rule that transforms the

692
Oracle SCM Cloud Chapter 4
Implementing Order Management Import and Transform

source order into a sales order that includes individual fulllment lines for the laptop and each item in the accessory
package.

Here's how it works.


• Transform two source order lines into six fulllment lines.
• Use the price from the source order to populate the price in the sales order.
• Transform the line for the laptop in the source order to fulllment line 1 in the sales order.
• Transform the accessory package in the source order to more than one fulllment line in the sales order. Each
line represents part of the content of the accessory package, such as one line for the docking station, one line
for the mouse, and so on.

693
Oracle SCM Cloud Chapter 4
Implementing Order Management Import and Transform

Product-to-Aribute Transformation

Transform the item in a source order according to the aributes of another item.

Assume you sell the Window item. You can write a rule that uses aributes in the source order. . .
• Width
• Height
• Pane
• Glass

. . .to get the number for an item that uses the same dimensions, but that uses double-pane, tempered glass.

The transformed order includes the item number for the combination of aributes.

694
Oracle SCM Cloud Chapter 4
Implementing Order Management Import and Transform

Aribute-to-Product Transformation

Use aributes to transform an aribute to an item number. Add the transformation to an item that already exists or
replace the item in the source order.

Assume you sell an MP3 player that includes the Color aribute and Size aribute, and that you must use a combination
of them to reference an item number. You can create a rule that transforms Color and Size of item Mini Plus to item
VIS481A.

Aribute-to-Aribute Transformation

Transform the value of an order line aribute in a source order to a dierent order line aribute in a sales order.

695
Oracle SCM Cloud Chapter 4
Implementing Order Management Import and Transform

Assume your company resides in Europe, you receive orders from an oce in the United States that measures the item
size in inches, but you must display the size in centimeters. Create a rule that transforms the width and height from
inches on the source order to centimeters on the sales order.

Context-to-Product Transformation

Use the context of the source order to determine the item in the sales order.

Assume you sell laptop computers that ship to dierent geographical regions. Each region requires a dierent electrical
adapter, such as 110 volts or 240 volts. Create a rule that uses the geographical region where you ship the item to
determine the adapter to include in the sales order, transforms the source order to a sales order that includes two order
lines, and then adds the adapter to one of these lines.

696
Oracle SCM Cloud Chapter 4
Implementing Order Management Import and Transform

Context-to-Aribute Transformation

Transform the source order context to an aribute.

Assume you ship some laptop computers to domestic locations in the USA and others to international locations in
other countries. The destination requires dierent packaging. So you create a Domestic Packaging exeld to store
the details. Assume an aribute in the source order includes the domestic address, so the context is domestic, and the
transformation rule sets the Domestic Packaging aribute to Yes.

697
Oracle SCM Cloud Chapter 4
Implementing Order Management Import and Transform

Posransformation Rule
Populate an order aribute after Order Management transforms the item.

Example Usage Description

Populate order lines so they reference


dierent warehouses. Create a rule that transforms the source order into a sales order that includes two lines.
 
• Order line 1 for the laptop computer
• Order line 2 for an AC adapter

698
Oracle SCM Cloud Chapter 4
Implementing Order Management Import and Transform

Example Usage Description

Write a rule that populates order line 2 so it sets the Warehouse aribute to a value that's
dierent from the warehouse that supplies the laptop computer on line 1.

Populate an order with a new Assume your source order uses the MM/DD/YYYY format for requested date. Your sta nds
aribute. it useful to also know the day of the week because delivery costs more on Saturday or Sunday.
  You write a rule that populates the day of the week in the new sales order.
 

Run Rules When They Apply


Set up rules so they run when you expect them to.

Where You Submit the Sales Order Description

Order Management work area Order Management only runs transformation rules and posransformation rules on order
  lines. It doesn't run them on return order lines.
 
 

Web service or the order import Order Management runs transformation and posransformation rules when it validates the
template draft sales order during import.
   
It runs these types of rules on both order lines and return order lines.
 

Related Topics
• How Order Management Transforms Source Orders Into Sales Orders
• Use Groups to Manage and Control Sales Orders
• Manage Pretransformation Rules

Set Up Transformation
Set up transformation so Order Management Cloud can correctly transform each source order.
1. Use the Product Information Management work area.
◦ Set up the product that your transformation rule will reference.
◦ If your transformation rule will reference.
• The product structure, then set up the product structure.
• Transactional item aributes, then set up transactional item aributes.
◦ Create item substitution rules when you set up your item. Order Management doesn't validate item
substitutions.
For example, assume a fulllment line includes a noncongured item, the Order Entry Specialist
examines availability for the item, then Order Management displays more than one option. If you don't
set up each item substitution rule correctly, then the Order Entry Specialist might select an option that
uses an incorrect substitution, such as a kit.

699
Oracle SCM Cloud Chapter 4
Implementing Order Management Import and Transform

2. Create your transformation rules.

Related Topics
• How Order Management Transforms Source Orders Into Sales Orders

Create Transformation Rules


Create a complex transformation rule that uses a bucket set in a decision table.
For details about how to use a simplied rule builder, see the Use Visual Information Builder to Create Rules topic.

Assume you use priority shipping for each sales order that includes a Green Server. You need a rule.

• If the item is a Green Server, then use priority shipping.

You will create a bucket set that contains the values you will select when you create your transformation rule, then
create the rule.

Its strongly recommended that you get details about decision tables, bucket sets, and how to use them. For details, see
the Overview of Using Business Rules With Order Management topic.

Summary of the Set Up

1. Create the bucket set list.


2. Create the decision table and add a condition.
3. Add a rule to the decision table.
4. Add the action to take if the condition is true.
This topic includes example values. You might use dierent values, depending on your business requirements.

700
Oracle SCM Cloud Chapter 4
Implementing Order Management Import and Transform

Create the Bucket Set List


You will create this bucket set list.

Do it.

1. In the Setup and Maintenance work area, go to the task.

◦ Oering: Order Management


◦ Functional Area: Orders
◦ Task: Manage Product Transformation Rules
2. On the Manage Product Transformation Rules page, click Bucket sets > Add Bucket set > List of Values.
3. In the Bucket Sets list, click Bucket Set 1 > Edit Bucket set.
4. In the Bucket Set Editor dialog, set values.

Aribute Value

Name Server IDs


   

Description List of IDs and aliases for server items to select in a product transformation rule.

701
Oracle SCM Cloud Chapter 4
Implementing Order Management Import and Transform

Aribute Value

   

Data Type String


   

5. Click Add Bucket, then, in the Bucket Values list, in the Bucket 1 row, set values.

Aribute Value

Value 300000047394016L
   
This number identies the item ID that the database contains. The leer L indicates a long
value.
 

Alias "AS85005"
   
You must include the double quotation marks.
 

Description Green Server 3500R


   

6. Click Add Bucket, then, in the Bucket Values list, in the Bucket 2 row, set values.

Aribute Value

Value 300000047393961L
   

Alias "AS85004"
   

Description Green Server 3000


   

7. Click OK > Save.

702
Oracle SCM Cloud Chapter 4
Implementing Order Management Import and Transform

Create the Decision Table and Add a Condition


You will create the decision table, condition, and action.

Do it.

1. On the Manage Product Transformation Rules page, click TransformationCustomRS.


2. In the View list, click IF/THEN Rules > Add > Add Decision Table.
3. Replace Decision Table 1 with AddExpeditedShippingforProductAS85005, then click Save.
4. Immediately above the decision table, click Add > Add Condition.
5. In the Condition Browser dialog, expand OrderTransformationRules > FulllLineVO > InventoryItemId, click
toString, then click OK.

The Condition Browser dialog displays objects from the OrderTransformationRules dictionary. You can use
the FulllLineVO object in this dictionary to specify transformation according to the value of a fulllment line
aribute, such as InventoryItemId.

In this example, you use toString to get the value of InventoryItemId as a string so you can compare it in the
rule.

Add a Rule to the Decision Table


You will add this rule.

• If InventoryItemId is AS85005

Do it.

1. In the decision table, click the cell that displays condition


OrderTransformationRules.FulllLineVO.InventoryItemId.toString().

703
Oracle SCM Cloud Chapter 4
Implementing Order Management Import and Transform

For example.

2. Click Local List of Values > Server IDs, which is the bucket set you created earlier.
3. In row OrderTransformationRules.FulllLineVO.InventoryItemId.toString(), double-click the cell in column R1,
single-click the cell in column R1, then add a check mark to AS85005.

Add the Action to Take If the Condition Is True


You will add this action.

• Set the ShipClassOfService aribute to "Expedited"

At run time, order fulllment will recognize that ShipClassOfService is Expedited, then expedite the shipment.

Do it.

1. Immediately above the decision table, click Add > Add Action > Modify.
2. In the Action Editor dialog, in the Target list, click OrderTransformationRules.FulllLineVO.
3. In the Arguments list, locate the ShipClassOfService argument, set the value, then click OK. You might need to
scroll or page down through the Arguments list.

Property Value

Parameterized Contains a check mark.


   
The Parameterized property makes the object available to the business rule as a parameter.
 

4. In the decision table, in the ShipClassOfService row, double-click the cell in column R1, then enter "Expedited".
You must include the double quotation marks.
5. Click Save.

Related Topics
• Use Visual Information Builder
• Manage Pretransformation Rules

704
Oracle SCM Cloud Chapter 4
Implementing Order Management Import and Transform

Create Advanced Transformation Rules


Create an advanced transformation rule that compares two or more lines in a source order.
Assume a fulllment line adds an inventory item, but then another fulllment line deletes the same inventory item. You
can create a transformation rule that avoids processing these lines.

• If fulllment line a requests to add inventory item x, and if fulllment line b requests to delete inventory item x,
then delete fulllment lines a and b.

You will implement this logic.

Statement Description

First IF statement If the change in fulllment line 1 is Add.


   

Second IF statement If the change in fulllment line 2 is Delete.


   

Third IF statement If the inventory item in fulllment line 1 is the same as the inventory item in fulllment line 2.
   

Fourth IF statement If the fulllment line ID of fulllment line 1 is dierent from the fulllment ID of fulllment line
  2.
 

THEN statement Delete fulllment line 1 and fulllment line 2.


   

705
Oracle SCM Cloud Chapter 4
Implementing Order Management Import and Transform

You will create this transformation rule.

This topic uses Advanced Mode. Its strongly recommended you familiarize yourself with this mode and creating
business rules. For details, see the Overview of Using Business Rules With Order Management topic.

Summary of the Set Up


1. Create the rule.
2. Create the rst IF statement.
3. Create the second IF statement.
4. Create the third IF statement.
5. Create the fourth IF statement.

706
Oracle SCM Cloud Chapter 4
Implementing Order Management Import and Transform

6. Create the THEN statement.


This topic includes example values. You might use dierent values, depending on your business requirements.

Create the Rule


1. In the Setup and Maintenance work area, go to the task.

◦ Oering: Order Management


◦ Functional Area: Orders
◦ Task: Manage Product Transformation Rules
2. On the Manage Product Transformation Rules page, in list View, click IF/THEN Rules.
3. Click Add > Add Rule.
4. Click Expand > Show Advanced Seings.
5. Set values.

Aribute Value

Rule 1 Consolidate Add and Delete Actions


   

Description Rule that removes requests that cancel each other.


   

Advanced Mode Contains a check mark.


   

6. Click Save > Save.

Create the First IF Statement


You will create this IF statement. It determines whether the change in fulllment line 1 is Add.

Do it.

1. In the eld to the left of Is A, enter FulfillLine.


2. In the eld to the right of Is A, click the down arrow, then click OrderTransformationRules.FulllLineVO.
3. Click Add Test > Simple Test .
4. Click Left Value.
5. In the Condition Browser, expand FulllLine, then click DeltaType > OK.
6. In aribute Right Value, enter "Add". You must include the double quotation marks.
7. Click Save.

707
Oracle SCM Cloud Chapter 4
Implementing Order Management Import and Transform

Create the Second IF Statement


You will create this IF statement. It determines whether the change in fulllment line 2 is Delete.

Do it.

1. Click Add Paern.


2. In the window below And, enter FulfillLine2.
3. In the eld to the right of Is A, click the down arrow, then click OrderTransformationRules.FulllLineVO.
4. Click Add Test > Simple Test, then click Left Value.
5. In the Condition Browser, expand FulfillLine2, click DeltaType > OK.
6. In aribute Right Value, enter "Delete". You must include the double quotation marks.

Click Save.

Create the Third IF Statement


You will create this IF statement. It determines whether the inventory item in fulllment line 1 is the same as the
inventory item in fulllment line 2

Do it.

1. Click Add Paern.


2. In the window below And, enter FulfillLine.
3. In the eld to the right of Is A, click the down arrow, then click OrderTransformationRules.FulllLineVO.
4. Click Add Test > Simple Test, then click Left Value.
5. In the Condition Browser, expand FulllLine, click InventoryItemId, then click OK.
6. Click Right Value.
7. In the Condition Browser, expand FulfillLine2, click InventoryItemId > OK.

Click Save.

708
Oracle SCM Cloud Chapter 4
Implementing Order Management Import and Transform

Create the Fourth IF Statement


You will create this IF statement. It determines whether the fulllment line ID of fulllment line 1 is dierent from the
fulllment ID of fulllment line 2.

Do it.
1. Click Add Paern.
2. In the window below And, enter FulfillLine.
3. In the eld to the right of Is A, click the down arrow, then click OrderTransformationRules.FulllLineVO.
4. Click Add Test > Simple Test, then click Left Value.
5. In the Condition Browser, expand FulllLine, then click InventoryItemId > OK.
6. Click Is > Isn't.
7. Click Right Value.
8. In the Condition Browser, expand FulfillLine2, click InventoryItemId > OK.

Click Save.

Create the Then Statement


You will create this action. It deletes fulllment line 1 and fulllment line 2.

Do it.
1. In the Then area, click Add Action > Assert New.
2. Click Select a Target, then click OrderTransformationRules.DeleteOrderLine.
3. Click Edit Properties.
4. In the Properties dialog, enter values, then click OK

Name Value

fulllmentLineId fulllmentLineId
   

viewRowImpl fulllmentLineId
   

709
Oracle SCM Cloud Chapter 4
Implementing Order Management Import and Transform

5. Click Add Action > Retract.


6. Click Select a Target, then click FulfillLine2.

Click Save.

Related Topics
• Demo for Creating Business Rules

710
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

5 Orchestrate Fulllment

Overview

711
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Orchestration Processes
Set up an orchestration process so it meets fulllment requirements for your sales order.
An orchestration process is a sequence of steps that automate fullling your sales order's fulllment lines across
fulllment systems. For example, here's the predened ShipOrderGenericProcess orchestration process.

Note.

• Each process contains steps.


• Each step calls a service that does a fulllment task. The service communicates with the fulllment system to
do the task. For example.

712
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Step Service Description

Step 100, Schedule Create Scheduling Create a schedule that the process can
    use to fulll the fulllment line. It makes
sure fulllment meets the delivery dates
that the sales order species.
 

Step 200, Create Reservation Create Inventory Reservation Reserve inventory for the item on the
    fulllment line so no other order can use
the inventory.
 

Step 300, Create Shipment Request Create Shipping Create a shipping plan that makes sure
    the carrier delivers the item on time.
 

Step 400, Wait for Shipment Advice Wait for Shipment Wait to receive conrmation that the
    carrier delivered the item.
 

Step 500, Create Invoice Create Billing Lines Create billing lines that we can send to
    accounts receivable.
 

Step 600, Wait for Invoice Wait for Billing Wait to receive conrmation from
    accounts receivable that billing is done.
 

• The orchestration process does each step sequentially, starting with step 100 and ending with step 600.
• You use the Setup and Maintenance work area to create and manage your orchestration process.
• To see how an orchestration process works in context, and to get an overview of how task services interact with
the fulllment system, see the How Order-to-Cash Works in Order Management topic.

713
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Set up Steps
You do almost all your set up on the steps.

Note.

• Dependencies. If your process includes a branch, then set dependencies that aect branching.
• Planning. Specify how to plan fulllment for the fulllment line.

◦ Set the default lead-time that the process needs to do the step.
◦ Create a business rule that uses conditions to set lead-time.
◦ Specify the status you expect from the fulllment system during planning.
◦ Specify the step that determines whether fulllment is done.

• Change Management. Specify how to manage change that occurs in the fulllment system.

◦ Specify the task service to use for update messages or cancel messages that the fulllment system sends
to you.
◦ Create a business rule that uses conditions to specify what to do when a change occurs.

714
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

• Specify dependency, planning, and change management for each step. For example, click Planning to scroll to
the part of the row that contains planning aributes.

Set Up Statuses

Note.

• Dierent fulllment systems might use dierent status values.


• Set up statuses for your orchestration process so they match the values that your fulllment system uses. This
way, the fulllment system understands values that the orchestration process sends, and the process knows
how to handle values it receives.

715
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

For example, fulllment system x might use SCHEDULED, and system y might use
FULFILLMENT_SCHEDULED. Add values to handle both systems.
• You can also set statuses for fulllment lines.

Related Topics
• Fix Errors in All Sales Orders
• How Order-to-Cash Works in Order Management

Examples of Seing Up Orchestration Processes


Learn about some of the ways you can use an orchestration process.

Call Task Services


Assume you require an orchestration process that incorporates a company policy.
• If an invoice exceeds $100,000, then a representative must phone the customer.

Here's what you need to do.


1. Identify the steps your business process needs to fulll the sales order.
2. Set up your orchestration process so it includes these steps.
You identify the sequence of calls your orchestration process must make to task services. Here's the pseudocode.
1. Plant Acknowledgment.
2. Assemble.
3. Wait for status to equal COMPLETE.
4. Ship.
5. Wait for status to equal SHIPPED.
6. Call Customer.
7. Wait for Call Customer to equal COMPLETE.
8. Test for these conditions.
If the invoice exceeds $100,000, then Send High Value Invoice.
◦ Wait for the status for High Value Invoice to equal BILLED.
If the invoice doesn't exceed $100,000, then.
◦ Invoice.
◦ Wait for the status to equal BILLED.
9. End the condition.

Use Planning Details


Assume you establish lead-times that allow your sales representative to monitor order fulllment.

Step Lead Time

Schedule Two days

716
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Step Lead Time

   

Reserve One day


   

Ship Six days


   

Invoice Two days


   

You add the default lead time to each orchestration process step. If a step gets delayed during fulllment, then a
process runs in the background that replans the orchestration process and resets the expected completion dates.

Set a Status
Assume you have an important customer who requires that you notify their receiving clerk one day before the shipping
system ships the item. You set up an orchestration process class for the orchestration process. You determine the class
must include statuses.

• SHIPPED
• RESERVED
• READY TO SHIP
• SHIPPED
• INVOICED

You use the Orchestration Process Status tab to dene a status condition.

• If the status of the Create Shipment step is PRESHIP READY, then use the READY TO SHIP status to indicate the
orchestration process status.

Your users can use the Order Management work area to determine whether the orchestration process status is READY
TO SHIP.

Related Topics
• Order Management Statuses

Guidelines for Seing Up Orchestration Processes


Use a predened orchestration process, do the required set ups, and set up replanning.

Use Predened Orchestration Processes


Use a predened orchestration process instead of you creating a new one. Using a predened orchestration process and
other predened objects will help reduce your development and maintenance eort. Create a new only if none of the
predened processes meet your needs.

717
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Each predened process comes already set up to work with Order Management and is ready to use with lile or no
modication.

Predened Orchestration Process Includes These Tasks

ShipOrderGenericProcess • Schedule
  • Reservation
• Shipment
• Invoice

ReturnOrderGenericProcess • Return Receipt


  • Invoice

OrderFulllmentGenericProcess • Schedule Conditional. Starts the branch.


  • Request Supply. Starts the back-to-back branch.
• Pause.
• Create Back to Back Shipment Request.
• Wait for Back to Back Shipment Request.
• Create Purchase Request. Starts the drop ship branch.
• Wait for Procurement.
• Create Reservation. Starts the warehouse shipment branch.
• Create Shipment Request.
• Wait for Shipment Advice.
• Merge. Ends the branch.
• Invoice.
• Wait for Invoice.

Use it for various fulllment requirements, such as back-to-back shipments, drop ship, and so
on.

Do the Required Set Ups


Do these set ups in the same order that the table lists them.

Description See This Help Topic

Set up the task types that arrange Task Types


fulllment tasks in groups. Each  
task type references services
that communicate with a type of
fulllment system. For example, a
billing system.
 

Set up the orchestration process. Set Up Orchestration Processes


   

Set up business rules that determine How Order Management Processes Change
how the orchestration process  
handles changes to sales orders.
 

718
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Description See This Help Topic

Set up the schedule that uses Guidelines for Seing Up Orchestration Process Steps
process planning to display the  
completion date of each task and the
orchestration process.
 

Set up jeopardy threshold and Jeopardy Thresholds


jeopardy priority to assess the level of  
risk that's associated with the delay of
an orchestration process task as low,
medium, or high.
 

Set up the status and status Orchestration Process Statuses


conditions for the sales order, task,  
orchestration process, fulllment line,
or order line.
 

Deploy your orchestration process. Deploy Orchestration Processes


   

Plan Your Orchestration Process


Orchestration planning is the process of orchestrating and planning fulllment for your sales order. For example,
planning dates, planning shipments, and so on.
Specify how Order Management plans each orchestration process.

• Set and help meet the completion date for each orchestration process step and task in an orchestration
process.
• Specify how to use the transformation rules that an orchestration process references to transform each source
order, including planning for each step after it receives a source order from an order capture system.
• Use order management parameter Enable Orchestration Process Planning and Calculate Jeopardy. For details,
see the Manage Order Management Parameters topic.

Replan Your Orchestration Process


Replanning is the process of updating the orchestration plan for the sales order to accommodate a change that occurs
to the sales order or in the fulllment environment. For example, when your customer requests to change the quantity
of a sales order you already submied to fulllment.
Specify how Order Management replans each orchestration process.

• Replan completion dates when a change occurs to the sales order at any point in the orchestration process.
• Replan immediately after each orchestration process step nishes.
• Replan according to an event, such as every time the orchestration process receives an update from your order
capture system. To control replanning, use the Plan Orchestration Processes scheduled 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's current, then set up the scheduled
process to run the orchestration process and update the planning data one time each day. For an example that
uses a scheduled process, see the Fix Errors in More Than One Sales Order topic.

719
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Enable the Replan Instantly option when you set up your orchestration process. It replans the orchestration process
immediately after the process nishes the orchestration process step, then displays the revised order data according to
the results of the replanning.
• Use Replan Instantly only for high priority sales orders, or with sales orders that include a jeopardy threshold of
less than one day.
• For performance reasons, don't use Replan Instantly with an orchestration process step that's long or complex.
• If you don't enable Replan Instantly, then Order Management updates planning data only during the scheduled
replanning.

Migrate
Caution: If you use your implementation project to migrate an orchestration process instance from a
development environment to a production environment, then don't modify the process name in either
environment. Modifying the name might prevent Order Management Cloud from updating references to other
data in the orchestration process. For details about using an implementation project, see the Guidelines for
Seing Up Order-to-Cash topic.

Guidelines for Seing Up Orchestration Process Steps


Specify details about the step, such as branching, planning, and change management.
Each step in your orchestration process species the task service that the step calls to fulll the fulllment line. Each
step species how to run the step, such as the task type, task, service, dependencies, planning, change management,
and so on. A step might also specify branching.

To set up an orchestration process step, you open the Edit Orchestration Process Denition page, then use the Step
Denition list in the Process Details area.

This topic describes the aributes you can set on each step.

Set Up the Orchestration Process Step

Aribute Description

Step Type
  Set the behavior for the orchestration process step.

• 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. Identies the point where two or more orchestration paths reunite.
• Service. Use this step to call a service.
• Subprocess. Use this step to call an orchestration subprocess. An orchestration
subprocess is an orchestration process that another orchestration process calls.

Task Type
  Each task type includes services you can use to communicate with a fulllment system, such as
a billing system. Here are the predened task types you can use.

• Schedule
• Reservation

720
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Aribute Description

• 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 dierent
status values to occur in the fulllment system updates.
 
Caution: If you use your implementation project to migrate an orchestration
process instance from a development environment to a production environment,
then don't modify the task name in either environment. Modifying the name
might prevent Order Management from updating references to other data in the
orchestration process. For details about your implementation project, see the
Guidelines for Seing Up Order-to-Cash topic.
 

Service Specify the task service that this step calls.


   

Manual Specify whether to wait for user input. If you specify a manual task, then the orchestration
  process waits until the user manually nishes the task in the Order Management work area.
 
For example, set the Schedule task as a manual task so your users can manually schedule all
fulllment 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 more than one wait step, then make sure these steps don't use the same
exit criteria.

Use the Manage Task Status Conditions page to make sure only the last step or wait step uses
the exit criterion.

If you set up more than one wait step for a task, then make sure you set the exit criteria for
each wait step that occurs before the nal wait step to Mark as Complete. For example.

• Assume you set up wait step x, wait step y, and wait step z on the same task, and that
wait step z occurs last.
• Make sure you set the exit criteria for step x and step y to Mark as Complete.
• If the fulllment system doesn't reply to step x or step y, but instead replies only to step
z, then the ow can continue without waiting for step x and step y to nish.
• If you don't set Mark as Complete for x and y, then the orchestration process might
remain at x or y and never proceed to the next task.
• Make sure you specify the value Canceled as an exit criteria status to exit the wait task in
your orchestration process.

Line Selection Criteria


  Add a business rule that selects fulllment lines. The orchestration process step will then
process only these fulllment lines.

• The rule populates the result with the fulllment line Ids that identify the fulllment lines
to select.
• The rule runs for each fulllment line that the orchestration process is processing.

721
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Aribute Description

• If the rule doesn't select any fulllment line, then the orchestration process skips the
step.

An orchestration process might not require all of the order lines or fulllment lines when it calls
the fulllment task service. For example, assume the item on an order line is a warranty. You
typically don't ship a warranty, so you can create a business rule that species not to ship items
that don't ship.

For details, see the Select Fulllment Lines for Orchestration Process Steps topic.

Pause Rule Specify when to pause processing before calling the next step, or when to resume processing.
  For details, see the Pause Orchestration Processes topic.
 

Set Up Branching
An orchestration process branch is a path in an orchestration process that the process runs when the ow meets a
condition.

You can set up an orchestration process so its linear, where steps occur in a sequence with no branching, or so it
contains a branch where ow travels along dierent paths depending on a condition.

Here's how you set up branching.

• Use a branching condition in a single orchestration process.


• Use an assignment rule that examines a set of orchestration processes, then assigns one for the branch.

The technique you use depends in part on the complexity you need. For example, you can create several simple,
linear orchestration processes, then use an assignment rule to choose one. Or, you can combine these orchestration
processes into a single orchestration process that uses branching conditions. A more complex set up might require
assignment rules and branching conditions.

For an example that uses branching, see the Add Branches to Orchestration Processes topic.

Here are the aributes you set for branching.

Aribute Description

Branching Condition
  Specify the criteria that the condition must meet to run the steps in a branch.

• Add the condition on the rst step of the branch, which is the rst step immediately
after the conditional step.
• If you don't add a check mark to the Otherwise option on the conditional step, then you
must include a branching condition.

Evaluation Sequence Specify the sequence that the orchestration process uses when it evaluates each branch
  condition.
 

Otherwise If you add a check mark to the Otherwise option on the conditional step, and if the branching
  condition does meet the criteria you specify for the branch, then the orchestration process
runs the branch that doesn't meet the branching condition.

722
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Aribute Description

Set Up Planning

Aribute Description

Planning Default Branch Specify the default path that the orchestration process uses for planning. The process uses this
  seing only if it includes one or more conditional branches.
 

Fulllment Completion Step


  Add a check mark to this aribute to indicate that the fulllment lines are fullled when this
step nishes.

• The orchestration process uses this seing when it does planning to make sure it meets
the request date.
• The last step that occurs in chronological order in the process isn't necessarily the
Fulllment Completion Step. For example, to indicate the completion date, the
orchestration process might use the requested ship date as the last step instead of
using the shipped date.

Default Lead Time


  Specify the duration that the orchestration process needs to do the step.

• The process uses lead-time to plan and to predict the completion date.
The lead-time is the amount of time the process needs to nish the step, including wait
steps and pause steps.
• If you don't specify a lead-time expression for the step, then the process uses the value
you set for Default Lead Time.
• If actual completion dates are available, then the process uses actual dates instead of
estimated dates.
• The Gan chart in the Order Management work area displays the planned orchestration
process. Order Management uses the number of days that are past the lead time when
it calculates jeopardy.

Lead Time UOM The unit of measure for the lead-time, such as days, hours, or minutes.
   

Lead-Time Expression
  A lead-time expression is a business rule that determines the amount of time you expect the
step needs to nish.

• Use it to calculate planning for the orchestration process. For example, an item that uses
complex packing might require a longer lead-time for shipping.
• The rule populates the result with a numeric value that represents the lead time.
• You must use BigDecimal with your lead-time expression.

Here's an example expression that determines the dierence between the current date and the
scheduled ship date.

BigDecimal.valueOf((DooSeededOrchestrationRules.DOOHeader/
childFLines.scheduleShipDate.time-CurrentDate.date.timeInMillis)/
(1000*60*60*24))

723
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Aribute Description

where

• BigDecimal is a public Java class that species an arbitrary-precision, signed, decimal


number.
• DooSeededOrchestrationRules is a method that contains a set of predened business
rules for an orchestration process.
• DOOHeader/childFLines species a relationship between the parent order head and the
child fulllment lines. The forward slash ( / ) separates the parent from the child.
• scheduleShipDate is a sales order aribute.
• CurrentDate is a function that returns the current date.
• timeInMillis converts the current date to milliseconds.
• 1000 is the number of milliseconds in one second.
• 60 is the number of minutes in one hour.
• 60 is the number of seconds in one hour.
• 24 is the number of hours in one day.

For details, see the Set Up Lead-Times for Orchestration Process Steps topic.

Set Up Change Management

Aribute Description

Hold on wait Sends a message to the fulllment system for each active step when the orchestration process
  receives a change order.
 

Use Transactional Item Aributes If you enable transactional item aributes, then the step examines the transactional item
  aributes to help it determine the dierences that exists between the change order and the
previous version of the order.
 

Use Flexeld Aributes If you enable exeld aributes, then the step examines them to help it determine the
  dierences that exists between the change order and the previous version of the order.
 

Compensation Paern
  Specify the set of rules that determine how to handle each step that ran before Order
Management received the change order.

For example, assume a change order requests a change from carpet to tiles.

• The orchestration process must cancel a number of the previous steps that it ran.
• If it already scheduled carpet for shipping, then the process must cancel the steps that
scheduled the shipping.
• Order Management creates a dierent set of fulllment lines for tiles when it processes
the change order, so it must use a dierent orchestration process because a tile order
requires more time to fulll and it uses a dierent contractor.
• Order Management must cancel most of the previous steps, but it doesn't cancel the
Measure step because the room dimensions are still accurate.

724
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Aribute Description

If you don't specify a compensation paern, then Order Management might process a step
as an update, depending on the context of the operation. It might rerun some steps. If Order
Management can't compensate a step for some reason, then it bypasses the step, then
compensates the next step that it encounters.

Consider Date Planning


Order Management sets the required completion date for the last step of the orchestration process to the Required
Fulllment Date, then calculates the planned dates for each step and task that the orchestration process contains so
they meet the Required Fulllment Date.

Here's how Order Management does it.


• Works through the orchestration process from beginning to end, starting with the rst step in chronological
order, and ending with step Last Fulllment Completion.
• Doesn't 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 set up these lead times.
• Displays the replanned schedule after it nishes the calculation.

Here's how Order Management sets the Required Fulllment Date.


1. Sets the Required Fulllment Date to the date that your source system provides.
2. If the source system doesn't provide a date, then Order Management sets Required Fulllment Date to
Requested Ship Date.
3. If Requested Ship Date doesn't contain a value, then Order Management sets Required Fulllment Date to
Requested Arrival Date.
4. If Requested Arrival Date doesn't contain a value, then Order Management sets Required Fulllment Date to
Order Date.
5. If Order Date doesn't contain a value, then Order Management sets Required Fulllment Date to System Date.
The operating system of the computer that runs Order Management contains the system date.
Order Management exits this sequence as soon as it successfully sets the date. For example, if your source system
provides a date, then it does only step 1, and doesn't do steps 2 through 5.

Keep this sequence in mind when you set up your integration and orchestration process.

Improve Performance
The way you set up your orchestration processes and orchestration process steps can directly aect performance in
your environment. Here are some tips.
• Remove each step that you don't need. Each step eats up resources and increases processing time. For
example, if you use the predened ShipOrderGenericProcess and don't need to do invoicing, then delete the
Create Invoice and Wait for Invoice steps. Don't use line-selection criteria to skip steps you don't need because
that approach increases processing time and might lead to a step that remains in a Not Started status for a long
time, or a process that seems to take forever to nish.
• Use a separate orchestration process to accomplish each goal. Don't use one large, monolithic process that
has a lot of branches and skipped steps to do all your processing. Instead, use several processes with fewer
branches.

725
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Related Topics
• Guidelines for Seing Up Order-to-Cash

Create

726
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Set Up Orchestration Processes


Set up an orchestration process so it meets your business requirements.
In this example, you create an orchestration process that calls a scheduling service, ships, then bills the sales order.

Summary of the Steps

1. Prepare to set up the orchestration process.


2. Create the orchestration process.
3. Add the orchestration process steps.
4. Deploy the orchestration process. For details, see the Deploy Orchestration Processes topic.

727
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

This topic includes example values. You might use dierent values, depending on your business requirements.

Prepare to Set Up the Orchestration Process


Depending on the complexity of your orchestration process, you might need to do one or more of these steps.
1. Do tasks in the Setup and Maintenance work area that allow you to set up an orchestration process.
2. Create the task types that the orchestration process requires. Also dene the tasks and services that these task
types reference.
3. Create the status codes that the orchestration process requires and specify how the task types, fulllment lines,
and your orchestration process will use them.
4. Create the orchestration subprocesses that the orchestration process will reference.
5. Create the status catalogs that the orchestration process will use for status conditions. Create catalogs for one
of these applications.
◦ Oracle Product Model
◦ Oracle Product and Catalog Management
◦ Oracle Product Hub

Create the Orchestration Process


1. In the Navigator, click Setup and Maintenance.
2. In the Setup and Maintenance work area, go to the task.
◦ Oering: Order Management
◦ Functional Area: Orders
◦ Task: Manage Orchestration Process Denitions
3. On the Manage Orchestration Process Denitions page, click Actions > Create.
4. On the Create Orchestration Process Denition page, set values, then click Save.

Aribute Value

Process Name CustomDOO_ ScheduleAndShip


   
The set up page automatically adds the CustomDOO_ prex. You must use this prex for any
orchestration process you create.
 

Process Display Name CustomDOO_ ScheduleAndShip


   
Enter any value. Don't include spaces. The value you enter will display throughout the Setup
and Maintenance and the Order Management work areas.
 

Process Class Ship Order Class


   
An orchestration process class contains a set of statuses you can assign to the orchestration
process.
 
Select a class that includes the statuses you need for the orchestration process.
 

Set
Common Set

728
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Aribute Value

 
Note.

◦ A set is a collection of business units. Use it to organize business units and control the
business units that can access an orchestration process.
◦ Select the set that allows the business unit to access the orchestration process.

◦ Use the predened Common Set to provide access to many business units.

◦ You must add your business unit to the set you specify.

Add the Orchestration Process Steps


1. On the Step Denition tab, click Actions > Add Row.
2. Set values, then click Save.

Aribute Description

Step Name Enter text that describes the purpose of the step. For this example, enter Schedule Product.
   

Step Type Select a value that indicates the type of processing that this step does.
   
For example, if this step must do conditional branching, then choose Conditional. This
example calls a service, so select Service.
 

Task Type Select the group of services that Order Management uses to do a fulllment task. For this
  example, select Schedule.
 

Task Select the task that this step must perform. For this example, select Schedule.
   

Service Identify the service that this step must call. For this example, select Create Scheduling.
   

3. Repeat steps 1 and 2. Use these values.

Aribute Value

Step Name Reserve Product


   

Step Type Service


   

Task Type Reservation


   

Task Reserve
   

729
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Aribute Value

Service Create Inventory Reservation


   

Tip: To maintain the correct sequence when you add each step, click the step that you most
recently added, then click Add Row. To make sure you don't lose any work, click Save after you add
each step.

4. Repeat steps 1 and 2. Use these values.

Aribute Value

Step Name Ship Product


   

Step Type Service


   

Task Type Shipment


   

Task Ship
   

Service Create Shipping


   

5. Repeat steps 1 and 2. Use these values.

Aribute Value

Step Name Wait for Product Shipment


   

Step Type Service


   

Task Type Shipment


   

Task Ship
   

Service Wait for Shipment


   

Exit Criteria Shipped


   

Note that you also specify the exit criteria in this step.
6. Repeat steps 1 and 2. Use these values.

730
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Aribute Value

Step Name Create Invoice


   

Step Type Service


   

Task Type Invoice


   

Task Invoice
   

Service Create Billing Lines


   

7. Repeat steps 1 and 2. Use these values.

Aribute Value

Step Name Wait for Invoice


   

Step Type Service


   

Task Type Invoice


   

Task Invoice
   

Service Wait for Billing


   

Add Lead-Times for Orchestration Process Steps


Add a rule that sets the lead-time for an orchestration process step according to a set of conditions.
Assume your lead-time to ship the item varies depending on where the inventory organization is located, so you
implement these business rules.

• If the inventory organization is in Denver, then use a two day lead-time


• If the inventory organization isn't in Denver, then use a four day lead-time

731
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Here are the rules you will create.

Summary of the Steps

1. Create the If statement for the rst rule.


2. Create the Then statement for the rst rule.
3. Create the If statement for the second rule.
4. Create the Then statement for the second rule.
This topic includes example values. You might use dierent values, depending on your business requirements.

For a demonstration that creates a business rule, see Creating Business Rules: Demo.

732
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Create the If Statement for the First Rule


1. In the Navigator, click Setup and Maintenance.
2. In the Setup and Maintenance work area, go to the task.
◦ Oering: Order Management
◦ Functional Area: Orders
◦ Task: Manage Orchestration Process Denitions
3. On the Manage Orchestration Process Denitions page, locate the CallCustomerWhenLargeInvoice
orchestration process, then click Actions > Edit.
For details about how to create CallCustomerWhenLargeInvoice, see the Add Branches to Orchestration
Processes topic.
4. On the Edit Orchestration Process Denitions page, in the Process Details area, in the Step Denition list, click
Planning.
5. In the Ship Product row, set the value.

Aribute Value

Lead-Time UOM Days


   

6. In the Lead-Time Expression column, click Click for Rule.


7. In the Lead-Time Expression dialog, click Add Rule > Expand.
If you write a rule for an orchestration process that orchestrates more than one fulllment line, then use
Advanced Mode. However, this example treats all fulllment lines in the same way, so Advanced Mode isn't
required. To use Advanced Mode, you would click Show Advanced Seings, add a check mark to Advanced
Mode, then edit the rule.
8. In the If area, click Left Value.
9. In the Condition Browser, expand DOOSeededOrchestrationRules > DOOFline, click
InventoryOrganizationId, then click OK.
DOOFline is an abbreviation for Distributed Order Orchestration Fulllment line. Oracle replaced the name
Distributed Order Orchestration with the name Order Management in an earlier release. Some rules still use the
old name.
10. In the Right Value aribute, enter 1234440.
Assume 1234440 is the inventory organization ID for Denver.

Create the Then Statement for the First Rule


1. In the Then area, click Add Action > Assert New.
2. Click Select a Target > DooSeededOrchestrationRules.Result.
3. Click Edit Properties.
4. In the Edit Properties dialog, in the ResultObjKey row, enter the value, then click OK.

Aribute Value

Value BigDecimal. valueOf(2)

733
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Aribute Value

   

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 part of the dialog, in the Rule 2 area, click Expand.
3. In the If area of Rule 2, click Left Value, expand DOOSeededOrchestrationRules > DOOFline, select
InventoryOrganizationId, then click OK.

Tip: In some aributes, you can copy the value from one aribute to
another instead of using the drop-down list. For example, you can copy
DooSeededOrchestrationRules.DOOFLine.inventoryOrganizationId from Left Value of the rst rule,
then paste it into Left Value of the second rule.
4. Click the down arrow for the operator, then click isn't.
5. In the Right Value aribute, enter 1234440.

Create the Then Statement for the Second Rule


1. In the Then area for Rule 2, click Add Action > Assert New.
2. Click Select a Target > DooSeededOrchestrationRules.Result.
3. Click Edit Properties.
4. In the Edit Properties dialog, in the ResultObjKey row, enter the value.

Aribute Value

Value BigDecimal. valueOf(4)


   

5. Click OK > Save.


6. On the Edit Orchestration Process Denition page, click Save.

Related Topics
• Demo for Creating Business Rules
• Overview of Using Business Rules With Order Management

Select Fulllment Lines for Orchestration Process Steps


Create a line selection rule that selects fulllment lines, then specify whether the orchestration process step will process
them.
A line selection rule is type of rule that determines whether an orchestration process step processes a fulllment line.

In this example, you create a line selection rule that makes sure Order Management doesn't aempt to ship a
nonshippable item.

734
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Assume you sell digital video recorders. The sales order includes more than one fulllment line for each items.
• Digital video recorder
• Remote control
• Instruction manual
• Extended warranty

Your customers can purchase the extended warranty as a contract online, but its not a shippable item, so Order
Management must not aempt to send it to the fulllment system during the Shipment task. So, you create a rule.
• If Order Management can't ship the item, then don't aempt to ship it.

Here is the rule you will create.

where
• DooSeededOrchestrationRules is a dictionary that contains a set of predened functions, variables, objects, and
other data you can use to dene behavior for an orchestration process.
• DOOFLine contains fulllment line aributes, such as orderedQty, customerPONumber, creationDate, and so
on. You can reference these aributes and use their values in your rule.
• shippableFlag is a fulllment line aribute.
• Y is one possible value of shippableFlag.

735
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

This example includes a business rule that requires you to use a dictionary, fact, and other objects. Its strongly
recommended that you familiarize yourself with these objects before you proceed. For details, see the Business Rules
chapter in the Implementing Order Management book.

Summary of the Steps


1. Create the If statement.
2. Create the Then statement.
This topic includes example values. You might use dierent values, depending on your business requirements.

Create the If Statement


1. In the Navigator, click Setup and Maintenance.
2. In the Setup and Maintenance work area, go to the task.
◦ Oering: Order Management
◦ Functional Area: Orders
◦ Task: Manage Orchestration Process Denitions
3. On the Manage Orchestration Process Denitions page, locate the CallCustomerWhenLargeInvoice
orchestration process, then click Actions > Edit.
For details about how to create CallCustomerWhenLargeInvoice, see the Add Branches to Orchestration
Processes topic.
4. On the Edit Orchestration Process Denitions page, in the Process Details area, in the Step Denition list, locate
the Ship Item row.
5. In the Ship Item row, in the Line Selection Criteria column, click Click for Rule.
6. In the Line Selection Criteria dialog, click Add Rule > Expand.
7. In the If area, click Left Value, expand DOOSeededOrchestrationRules > DOOFline, click ShippableFlag, then
click OK.
8. In the Right Value aribute, enter "Y". You must include the double quotation marks.

Create the Then Statement


You will create this Then statement.
• assert new resultObjKey:DooSeededOrchestrationRules.DOOFLine.fulfillLineId

where
• Assert New adds the result into the Result fact of the DooSeededOrchestrationRules dictionary.
• resultObjKey is a property of Result. It species the fulllment line to examine.
• DooSeededOrchestrationRules.DOOFLine.fulfillLineId species to use the value of the fulfillLineId aribute in
the DOOFLine fact of DooSeededOrchestrationRules.

Create the Then statement.


1. In the Then area, click Add Action > Assert New.
2. Click Select a Target > 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, then click OK > OK.
6. In the Line Selection Criteria dialog, click Validate, make sure the Validation Log that displays doesn't contain
errors, then click Save.

736
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

7. On the Edit Orchestration Process Denition page, click Save.

Prevent Orchestration Process from Shipping Return Lines


Add a lter to a line selection rule that makes sure the shipping task doesn't aempt to ship a return line.
The CategoryCode aribute contains ORDER for an order line that's going to fulllment, and RETURN for a return line.
You can use CategoryCode to lter out return lines.

Here's the lter you add to each step.

737
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Try it.

1. In the Setup and Maintenance work area, go to the task.

◦ Oering: Order Management


◦ Functional Area: Orders
◦ Task: Manage Orchestration Process Denitions
2. On the Manage Orchestration Process Denitions page, search for ShipOrderGenericProcess, then click
Actions > Duplicate.

You can't modify the predened process, so you create a duplicate and modify it instead. Notice the process
name.

(CopyOf)CustomDOO_ShipOrderGenericProcess

Use this process in your deployment.


3. On the Edit Orchestration Process Denition page, locate the schedule row.

Step Step Name

100 Schedule
   

4. On the step 100 row, in the Line Selection Criteria column, click Click for Rule.
5. In the Line Selection Criteria dialog, click Expand, then notice the predened rule. Locate the last condition,
immediately above the THEN area.
6. On the row you just located, click the down arrow at the far right of the row, then click Simple Test.
7. In the new row, enter "ORDER", change is to equals ignore case, then enter
DooSeededOrchestrationRules.DOOHeader/childFLines.categoryCode.

Verify the entire row looks like.

"ORDER" equals ignore case DooSeededOrchestrationRules.DOOHeader/childFLines.categoryCode


8. Click Validate, then click Save.
9. Repeat these steps for the Create Reservation step.
10. Repeat these steps for the Create Shipment Request step.

Deploy
Deploy Orchestration Processes
Release and deploy an orchestration process that you create so its available throughout Order Management.
If you use one of these predened orchestration processes, then you must deploy it, but its not necessary to release it.

• ShipOrderGenericProcess
• ReturnOrderGenericProcess

738
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Summary of the Steps


1. Release the orchestration process.
2. Deploy the orchestration process.

Release the Orchestration Process


1. In the Navigator, click Setup and Maintenance.
2. In the Setup and Maintenance work area, go to the task.
◦ Oering: Order Management
◦ Functional Area: Orders
◦ Task: Manage Orchestration Process Denitions
3. On the Manage Orchestration Process Denitions page, locate the orchestration process denition you must
release, then click Actions > Edit.
4. On the Edit Orchestration Process Denition page, click Actions > Release.
Order Management does these steps.
1. Validates orchestration process logic to make sure it correctly created the process.

Validation What Happens Next

Doesn't nd any errors. Order Management continues the release.


   
An orchestration process that doesn't contain errors is valid.
 
A valid orchestration process might include warning messages, but these messages don't
stop the release from proceeding.
 

Finds errors. Order Management stops the release and displays an error icon next to the orchestration
  process name. It keeps these errors until the next time it runs the validation.
 
You must resolve errors before you can continue the release.
 

2. Finishes the validation.


3. Updates the status of the orchestration process to Released.
4. Makes the orchestration process denition read-only.
5. Creates and saves the BPEL artifacts that Order Management uses to deploy and run the orchestration process
in a production environment.
You can release more than one version of an orchestration process in a single day. You must reject the previous version
before you can release the next version on the same day.

Deploy the Orchestration Process


1. Click Actions > Deploy Process.
2. In the Deploy Process dialog, enter your password, then click Deploy.
If you can't access the Manage Orchestration Process Denition page to deploy the orchestration process for some
reason, then you can use Oracle Middleware to deploy it. For details, see the Use Oracle Middleware to Deploy
Orchestration Processes topic.

739
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Use Oracle Middleware to Deploy Orchestration Processes


If you can't use the Manage Orchestration Process Denition page to deploy an orchestration process for some reason,
then use Oracle Middleware to deploy it.
Summary of the Steps
1. Release the orchestration process. For details, see the Deploy Orchestration Processes topic.
2. Download the orchestration process.
3. Modify the SOA conguration plan.
4. Deploy the JAR le.

Download the Orchestration Process


You deploy the downloaded artifacts to the server. You use Oracle Setup Manager to export the artifacts, and Oracle
Middleware to deploy them.
1. On the Manage Orchestration Process Denitions page, select the orchestration process you must deploy, then
click Edit.
2. On the Edit Orchestration Process Denition page, click Actions > Release.
3. In the Download Generated Process dialog, click Download.
4. Save the archive le that Order Management displays to a local directory.
5. Open the archive le you saved.

Modify the SOA Conguration Plan


You use an Oracle Service-Oriented Architecture (SOA) conguration plan to dene the URL and properties to use for
dierent environments. Order Management uses the plan to search the SOA project for values it must replace so the
project supports each environment.

Modify this SOA conguration plan.


<?xml version="1.0" encoding="UTF-8"?>
<SOAConfigPlan
xmlns:jca="http://platform.integration.oracle/blocks/adapter/fw/metadata"
xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
xmlns:orawsp="http://schemas.oracle.com/ws/2006/01/policy"
xmlns="http://schemas.oracle.com/soa/configplan">
<composite name="*">
<import>
<searchReplace>
<search/>
<replace/>
</searchReplace>
</import>
<service name="client">
<binding type="ws">
<attribute name="port">
</attribute>
</binding>
</service>
<reference name="*">
<binding type="ws">
<attribute name="location">
<searchReplace>
<search>http://localhost_am:port</search>
<replace>http://actualDOOADFserver:port</replace>
</searchReplace>

740
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

<searchReplace>
<search>http://localhost_soa:port</search>
<replace>http://actualDOOSOAserver:port</replace>
</searchReplace>
</attribute>
</binding>
</reference>
</composite>
</SOAConfigPlan>

Note.
• Replace each host name with the Oracle Application Development Framework (ADF) server.
• Replace each port with the port that your organization uses for Order Management and the server and port that
Supply Chain Management uses for SOA. Use the external-facing URLs of the servers.

Deploy the JAR File


Use one of these tools.
• Oracle Enterprise Manager Middleware Control
• Ant command line tool
• Oracle WebLogic Scripting Tool

The JAR le resides in a Deploy folder. The Deploy folder resides in a folder that uses the name of the orchestration
process you downloaded.

For details about how to deploy an SOA composite application, see Oracle Fusion Middleware Administrator's Guide for
Oracle SOA Suite and Oracle Business Process Management Suite.

Subprocess and Branch


Orchestration Subprocesses
Use an orchestration subprocess to increase the eciency of your design.
You can add a subprocess to an orchestration process, then reuse it in another orchestration process. You can also use a
subprocess to manage a large orchestration process. In general, its easier to manage a large orchestration process that
includes subprocesses than to manage a large orchestration process that doesn't.

Example of a Subprocess
Assume you use dierent steps to process dierent sales orders, depending on the item. However, all orders use these
billing steps.
• Create invoice.
• Wait for invoice.
• Send request to activity system that noties customer of payment receipt.
• Send request to activity system that creates coupons.

So, you create an orchestration subprocess that includes these steps, and then add it to each orchestration process you
use.

741
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Add Branches to Orchestration Processes


Create a branching condition that determines whether to run an orchestration process branch.
An orchestration process branch is a path in an orchestration process that the process runs when the ow meets a
condition.

For example, assume you sell commercial computer systems, and you must implement a business rule.

• If the sales order is valued at $50,000.00 or more, then make sure a representative calls the customer before
sending the invoice for the order.

Here's the orchestration process ow you create for this example.

742
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Note.
• Each step in the ow includes the step number, task name, task type, and service name.
• The Conditional Node indicates that an orchestration process is about to branch. The rst step of the branch
contains the condition.
• If the ow.
◦ Meets the condition. The orchestration process runs the steps on the branch that notify the
representative.
◦ Doesn't meet the condition. The orchestration process runs the steps on the branch that don't notify
the representative.
• Order Management adds an empty default branch when it runs the orchestration process. If the orchestration
process includes only one branch, then it isn't necessary to set an Otherwise condition.

This example uses a rule that processes only one fulllment line. To write a rule for an orchestration process that
processes more than one fulllment line, you use advanced rules. For details, see the Overview of Using Business Rules
With Order Management topic.

Summary of the Set Up


1. Set up routing that noties the representative.
2. Set up the orchestration process.
3. Set up the orchestration process steps.
4. Create the If statement.
5. Create the Then statement.
6. Test your set up.
This topic includes example values. You might use dierent values, depending on your business requirements.

Set Up Routing That Noties the Representative


This example sends a notication to a representative to call the customer if the invoice is valued at $50,000.00 or more.
You set up the routing that enables the notication. This setup is specic to this example. Other branching usages
might not require this setup, or they might require some other setup.
1. Create the routing rules that enable the send. For details, see the Create Routing Rules That Send Notications
topic.
2. Create the connector that you referenced in the routing rules in step 1.
3. Use the Manage Web Service Details page to create the connector.

Set Up the Orchestration Process


Here are the values you set in the header of the orchestration process for this example.

Aribute Value

Process Name CallCustomerWhenLargeInvoice


   

Process Display Name Call the Customer


   

Process Class Ship Order Class


   

743
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Aribute Value

Set Common Set


   

For details about how to set up an orchestration process, see the Seing Up Orchestration Processes topic.

Set Up the Orchestration Process Steps


You will create these steps.

1. Add a step.

Aribute Value

Step Name Schedule Item


   

Step Type Service


   

744
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Aribute Value

Task Schedule
   

Service Create Scheduling


   

2. Add another step.

Tip: To maintain the correct sequence when you add each step, click the step you most recently
added, then click Add Row.

Aribute Value

Step Name Reserve Item


   

Step Type Service


   

Task Reserve
   

Service Create Inventory Reservation


   

3. Add another step.

Aribute Value

Step Name Ship Item


   

Step Type Service


   

Task Ship
   

Service Create Shipping


   

4. Add another step.

Aribute Value

Step Name Wait for Item to Ship


   

Step Type Service

745
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Aribute Value

   

Task Ship
   

Service Wait for Shipment


   

Exit Criteria Shipped


   

Fulllment Completion Step Contains a check mark.


   

5. Add another step.

Aribute Value

Step Name Conditional Node


   

Step Type Conditional


   

6. Add another step.

Aribute Value

Step Name Phone Customer


   

Step Type Service


   

Task Activity
   

Service Create Activity


   

Evaluation Sequence 1
   

7. Add another step.

Aribute Value

Step Name Wait for Phone Customer


   

Step Type Service

746
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Aribute Value

   

Task Activity
   

Service Wait for Activity


   

Exit Criteria Completed


   

8. Add another step.

Aribute Value

Step Name Create Invoice


   

Step Type Service


   

Task Invoice
   

Service Create Billing Lines


   

9. Add another step.

Aribute Value

Step Name Wait for Invoice


   

Step Type Service


   

Task Invoice
   

Service Wait for Billing


   

Exit Criteria Billed


   

10. In the Step Denition list, click the Conditional Node step, then add another step. This step creates the
Otherwise branch.

747
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Aribute Value

Step Name Otherwise Create Invoice


   

Task Type Invoice


   

Task
  Otherwise Create Invoice

Each task name you associate with a task type must be unique. You associated the Invoice
task with the Invoice task type earlier in this procedure, so you must create a new task name.

To do this, In the Task aribute, click the Search down arrow, then click Create. In the Create
Task Name dialog, enter values.

◦ Code: 1

◦ Name: Otherwise_Create_Invoice

◦ Display Name: Otherwise Create Invoice

◦ Task Type: Invoice

Click Save and Close.

Service Create Billing Lines


   

Evaluation Sequence 2
   

Otherwise Contains a check mark.


   

Planning Default Branch Contains a check mark.


   

11. In the Step Denition list, click the Otherwise Step - Create Invoice step, then add another step. This step
creates the Wait for Invoice Step on the Otherwise branch.

Aribute Value

Step Name Otherwise Wait for Invoice


   

Step Type Service


   

Task Otherwise Create Invoice


   

Service Wait for Billing


   

748
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Aribute Value

Exit Criteria Billed


   

12. In the Step Denition list, click the Wait for Invoice step, then add another step. This step merges the branch
back to the main ow.

Aribute Value

Step Name Merge


   

Step Type Merge


   

Create the If Statement


You will create the next rule.

Start by creating the If statement.


• If the extendedAmount aribute on the fulllment line is more than 50000

Do it.
1. In the Step Denition list, in the Phone Customer step, in the Branching Condition column, click Click for Rule.

749
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

2. In the Branching Condition Rules dialog, click Add Rule, then click Expand.
3. Delete the value Rule 1 , and then enter Condition for invoices valued at more than 50000 dollars.
4. Click Left Value.
5. In the Condition Browser dialog, expand DooSeededOrchestrationRules > DOOFLine, click
extendedAmount, then click OK.

where

◦ DooSeededOrchestrationRules is a dictionary that includes predened rule sets, facts, functions,


variables, bucket sets, links, and functions you can use to orchestrate fulllment.
◦ DOO means distributed order orchestration, which is an earlier name for order orchestration.
◦ FLine means fulllment line
◦ extendedAmount is a fulllment line aribute that stores the total value of the sales order.
6. Click Is, and then click More Than.
7. Click Right Value.
8. In the Condition Browser dialog, enter 50000, then click OK. Don't include commas in your value.

Create the Then Statement


You will create the Then statement.

• ( resultObj:DooSeededOrchestrationRules.Boolean.TRUE )

where

• resultObj is a variable in the DooSeededOrchestrationRules dictionary. You use it to store the result of the
business rule.
• Boolean sets the value of resultObj to TRUE.

Do it.

1. In the Then area, click Add Action > Assert New.


2. Click Select a Target, then click DooSeededOrchestrationRules.Result.
3. Click Edit Properties.
4. In the Properties dialog, in the ResultObj row, click Value.
5. In the Condition Browser dialog, expand DooSeededOrchestrationRules > Boolean, click True, then click OK.
6. Make sure the Properties dialog contains these values.

Name Type Value

resultObj Object DooSeededOrchestrationRules.


    Boolean.TRUE
 

resultObjKey Object Leave this cell empty.


     

viewRowImpl oracle. jbo. server. viewRowImpl Leave this cell empty.


     

750
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

For example.

7. Click OK.
8. In the Branching Condition Rules dialog, click Save.
9. On the Edit Orchestration Process Denition page, click Save.

Test Your Set Up


1. Verify that you correctly dened the orchestration process steps and ow.

◦In the header of the Edit Orchestration Process Denition page, click Actions, then click Generate
Process Diagram.
◦ Make sure the diagram includes the same steps and logic that the diagram at the beginning of this topic
displays.
2. Test the nonbranching ow.

◦ In the Order Management work area, create a sales order that's valued at less than $50,000.00.
◦ Verify that Order Management ships the item without requesting that the user call the customer.
3. Test the branching ow.

◦ Create a sales order that's valued at more than $50,000.00.


◦ Verify that Order Management doesn't ship the item until the activity that the Wait for Phone Customer
step references reaches a Completed state.

Related Topics
• Demo for Creating Business Rules

Parallel Processing in Orchestration Processes


Your orchestration process can process more than one task at a time, in parallel. Use this feature to process dierent
sets of fulllment lines when each set needs a dierent set of task types.

751
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Assume your customer purchases a laptop computer that includes a service contract, and your business ow requires
that the fulllment system ship the laptop in a truck at the same time that it sends the service contract through email.
You can use parallel processing to ship the laptop and send the email at the same time.

This orchestration process includes branches that run in parallel with one another.
• Step 300 begins the parallel branching.
• Steps 400 and 500 run in one branch at the same time that steps 600 and 700 run in a parallel branch.
• The Create Invoice and the Wait for Billing steps occur after step 800. The illustration doesn't include these nal
steps.

The orchestration process plans the ow after it nishes each task. However, if a task requires several days to nish,
then planning data might not be current because the orchestration process can't replan the branch while it waits for

752
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

a long-running task to nish. For details about how to use the Plan Orchestration Processes scheduled process to
schedule an update that occurs at regular intervals, see the Orchestration Processes topic.

Guidelines for Using Parallel Processing


You set up an orchestration process so it uses parallel processing in the same way you set up an orchestration process
to use a conditional branch, but with a few dierences.
• When you create the branch, you select the Parallel step type.
• You don't create branching conditions, set an evaluation sequence, or select Otherwise.

Note.
• Use parallel processing when more than one long-running task must run at the same time. For example, to
send simultaneous requests to two dierent fulllment systems that typically require elapsed time to reply.
• Don't use parallel processing when the reply from a task request occurs almost immediately.
• You can set up parallel processing so more than one task can run at the same time.
• You can lter the fulllment lines of a group so the tasks for some lines in the group run at the same time as
tasks for the other lines.
• You can create a parallel process that doesn't lter lines in a branch so that more than one task is active for
each line.
• Order Management doesn't allow you or a fulllment system user to split a task that resides in a parallel branch.

Assign
Overview of Assigning Orchestration Processes
Create an assignment rule that assigns an orchestration process to one or more fulllment lines of a sales order.
• Assign the orchestration process according to each set of unique conditions.
• Order Management Cloud doesn't version assignment rules so the changes you release take eect
immediately. You can save rules without releasing them.
• Use Otherwise logic to set up a default orchestration process for each orchestration group.
• Create an assignment rule that references data from a dierent product model. For details, see the Use
Business Rules to Get Data from Dierent Product Models topic.
• You don't need to specify versions or eective dates in the assignment rules because the orchestration process
controls them.

Note.
• You must set up your orchestration processes before you create your assignment rule.
• Order Management can't reassign an existing order line to a dierent orchestration process when you revise a
sales order. For details, see the Fix Problems That Occur When Assigning Orchestration Processes topic.
• If a set of fulllment lines are part of a shipment set, then you can't assign dierent orchestration processes to
them. For example, if fulllment line w and fulllment line x are part of a shipment set, then you can't assign
line w to process y and line x to process z. You must use the same orchestration process for lines w and x. Order
Management uses this conguration to make sure it can schedule, reserve, and ship the lines together.

753
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Use Orchestration Groups


Create assignment rules according to orchestration groups. An orchestration group is a collection of fulllment lines
that Order Management processes together. Each orchestration group is a subset of a sales order.

• You create an orchestration group as a shipment set, congured item, or set of order lines.
• An assignment rule processes each orchestration group at run time, so you must add a test that links each
fulllment line with the group. The predened assignment rules already include this test.

Here are the predened groups you can use.

Orchestration Group Description

Standard Groups all fulllment lines that fulll items that aren't congured or are nished items.
   

Congured Item or Kit Groups all fulllment lines that fulll a congured item or kit.
   

Shipment Set Groups all fulllment lines that fulll a shipment set.
   

Examples

Assign an Orchestration Process Description


According To

Item Each sales order for the AS54888 Desktop Computer must use the same processing steps.
   
You write an assignment rule that assigns an orchestration process named AS54888 Desktop
Computer Process to each order line that includes the AS54888 in the Item aribute of the
order line.
 

Customer Customer Computer Service and Rentals requires an inspection step for each sales order.
   
You write an assignment rule that assigns an orchestration process named Computer Service
and Rentals Process to each order line that includes Computer Service and Rentals in the
Customer aribute of the order header.
 

Destination Each sales order that the fulllment system must ship to a country that resides outside of your
  current location requires dierent handling, such as completing customs forms.
 
You write an assignment rule that assigns an orchestration process named International
Orders Process to each order line that includes a foreign country in the Ship-To Address
aribute of the order header.
 

Related Topics
• Return Sales Orders

754
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Assign Orchestration Processes


Create an assignment rule that assigns your orchestration process to a fulllment line.
Assume you must process sales orders dierently depending on quantity. Assume you already created these processes.

Orchestration Process Name Description

Process_ Small_Orders For quantity under 100. Expedite shipping and don't measure impact to inventory.
   

Process_ Medium_Orders For quantity 100 to 999. Use regular shipping and measure impact to inventory only at the
  distributor, not the warehouse.
 

Process_ Large_Orders For quantity over 1,000. Use bulk freight. Measure impact to inventory at the warehouse and
  the distributor, and call the customer to conrm before shipping.
 

755
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Here's the assignment rule you will create.

Summary of the Steps

1. Create and deploy orchestration processes.


2. Create the assignment rule.
3. Create the small order condition.
4. Create the medium order condition.
5. Create the large order condition.
For details about creating business rules, see topic Using Business Rules With Order Management: Overview.

This topic includes example values. You might use dierent values, depending on your business requirements.

Create and Deploy Orchestration Processes

756
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Assume you already created and deployed these orchestration processes.


• Process_Small_Orders
• Process_Medium_Orders
• Process_Large_Orders

For details, see the Seing Up Orchestration Processes topic.

Create the Assignment Rule


1. In the Navigator, click Setup and Maintenance.
2. In the Setup and Maintenance work area, go to the task.

◦ Oering: Order Management


◦ Functional Area: Orders
◦ Task: Manage Process Assignment Rules for Sales Orders
3. On the Manage Orchestration Process Assignment Rules page, click Create New Rule, then set values.

Aribute Value

Name Assign According to Quantity


   

Description Assign dierent orchestration processes depending on quantity.


   

Create the Small Order Condition


1. Create the If statement.

◦ Click New Condition.


◦ In the Create Condition dialog, enter ordered, wait a moment, then click Ordered Quantity (Order Fulll
Line).
Order Fulll Line indicates that the aribute resides on the order fulllment line.
◦ Set the operator to less than ( < ).
◦ Enter 100, then click OK.
2. Create the Do statement.

◦ Click Then > Do > New Action.


◦ In Create Action dialog, enter process, wait a moment, then click Process Name (Order Fulll Line).
The phrase Order Fulll Line indicates that the orchestration process you set will processes order
fulllment lines.
3. Search for your orchestration process.

◦ Click Search > Advanced.


◦ Set Process Name to Contains.

757
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

◦ Enter Process_Small_Orders.

The search is case sensitive.


◦ Click Search.

Note:

If you didn't deploy your orchestration process, then Search won't nd it.
◦ Click the row in the search results.
◦ Click OK.
◦ In the Create Action dialog, click OK.

Create the Medium Order Condition


Do the same steps you used when you created the small order condition, but with these dierences.

• Click Else > If.


• In the If statement, enter 1000.
• In the Do statement, set Process Name to Process_Medium_Orders.

Create the Large Order Condition


Do the same steps you used when you created the medium order condition, but with these dierences.

• Click Else > Do.


• Don't create an If statement.
• In the Do statement, set Process Name to Process_Medium_Orders.

Make sure you activate and publish your rule.

Related Topics
• Use Visual Information Builder
• Manage Process Assignment Rules
• Demo for Creating Business Rules

Pause
Overview of Pausing Orchestration Processes
Use a pause task to temporarily stop an orchestration process from running so it can wait to meet a condition.

758
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

When it meets the condition, the orchestration process releases the pause task, then proceeds to the next orchestration
process step. You can specify a pause task to wait between tasks, or specify when to release the pause and begin the
next orchestration process step.

Note.

1. You add a step that references a pause task in an orchestration process. You can add a pause task step at
any point in the orchestration process. This example includes a simple three step orchestration process. For
example, assume the orchestration process successfully scheduled fulllment, and now must wait to conrm
payment before shipping the item to your customer.
2. You set up a rule that pauses the orchestration process to wait for an event to occur, time to elapse, or for a
dependency to resolve.

759
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

3. You set up a release rule that releases the pause task so the orchestration process can continue to the next
step. Here's how you release a pause task.

◦ Release it automatically when the timer expires, when the ow meets the release condition, or when the
ow doesn't meet any of the conditions.
◦ Allow a user to release it manually in the Order Management work area.
◦ Use a scheduled process that releases it automatically according to a regularly scheduled interval.
◦ Use a web service that informs the orchestration process when to release.

Examples
Pause Until An Event Occurs

Assume you provide a layaway program that allows your customer to reserve an item, then pay for it in installments.
Use a pause task to pause the orchestration process. When the customer pays in full, the orchestration process calls the
Release Paused Tasks service, releases the pause task, then ships the item to the customer.

In another example, assume you must release each sales order to shipping only if inventory is available at the fulllment
location. Use a pause task that pauses the orchestration process until the inventory is available. When the inventory is
available, the web service calls Release Paused Tasks, releases the pause task, then ships the item to the customer.

If you set up a rule that waits for an event to occur, then you typically use a web service to resume the pause task. In this
context, event means something that occurs outside of Order Management Cloud. Its not synonymous with a business
event. For details, see the Pause Orchestration Processes Until an Event Occurs topic.

Pause Until Time Elapses

Assume you prefer not to overload the warehouse with shipment requests that aren't due for delivery for two weeks.
You can pause the orchestration process to wait to send the shipment request to the warehouse until two days before
the scheduled shipment date occurs.

In another example, assume you sell a video game up to seven days before the release date of the game.

• You estimate it requires seven days to schedule and process the sales order before it ships. Use this lead time
so you can ship the game as soon as its available.
• You set up a pause task that pauses the orchestration process before the schedule step occurs, and continues
to pause until the publisher releases the game.
• You set up a rule that releases the pause task according to an extensible exeld that includes a value of the
release date minus seven days. The orchestration process releases the pause task, schedules the sales order,
then resumes processing.

For details, see the Pause Orchestration Processes Until Time Elapses topic.

Pause Until a Dependency Resolves

Consider some examples.

• A customer requests to receive a shipment that includes coee, paper cups, sugar, and creamer at the same
time. One fulllment line fullls each item. For example, fulllment line x fullls the coee, fulllment line y
fullls the cups, and so on. You can use a pause task that pauses each order line until the orchestration process
nishes scheduling each of these lines. The orchestration process periodically evaluates the sales order. It
nishes scheduling all lines, then ships them to the customer at the same time.

760
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

• A customer must receive invoices for all fulllment lines of a sales 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.
• Your company policy requires people in your organization to review and approve each sales order where the
scheduled date occurs after the requested date. You can use a pause task to pause the orchestration process
until these folks nish review and approval.

For details, see the Pause Orchestration Processes Until a Dependency Resolves topic.

Aributes You Set for the Pause Task


The pause task evaluates the condition in the IF statement of your business rule the rst time the rule runs. If the
condition is True, then the pause task pauses the orchestration process.

Here are the aributes you set for a pause task.

Aribute Value

reevaluateFlag • Y. Evaluate the condition every time the orchestration process nishes a step. If the
  condition doesn't evaluate to true, then release the pause task.
For example, assume the orchestration process is processing more than one fulllment
line in a sales order, and that you must evaluate the condition after it processes each
line. You can use reevaluateFlag to evaluate each line.
For another example, assume you must print pictures for customers and then frame
them. You set up a ow that includes a parallel task that prints the picture. You promise
same day shipping, so you periodically examine whether the picture printed so you can
frame it as soon as possible.
• N. Don't evaluate the condition every time the orchestration process nishes a task.
If the IF statement is True, then the orchestration process remains paused until you
explicitly release the pause task.

sacType
  Specify the action to take when your If statement evaluates to True.

Set sacType to one of these values.

• SAC_TYPE_EVENT. Pause the orchestration process until an event occurs.


• SAC_TYPE_TIMER. Pause the orchestration process until the date and time you specify
occurs.
• SAC_TYPE_IMMEDIATE. Release the pause task and resume processing.
• SAC_SYSTEM_EVENT_IPC_PAUSE. Use an interprocess communication (IPC) to
pause according to an event across orchestration processes.

Note that sac is an abbreviation for start after condition.

Related Topics
• Manage Order Management Parameters
• Manage Order Aributes That Identify Change

761
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Guidelines for Pausing Orchestration Processes


Use guidelines to help make sure your pause task works correctly.

Add Pause Task


Add a step that references a pause task.

Note.

• In the Setup and Maintenance work area, use the Edit Orchestration Process Denition page.
• Add a pause step. Set values.

Aribute Value

Step Type Service

762
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Aribute Value

   

Task Type Pause


   

Service Pause Process


   

• Click the link in the Start After Condition aribute to set up your release rule. Starting in Release 13C, the label
for Start After Condition changed to Pause Rule.

You typically use line-selection criteria to lter fulllment lines that the orchestration process step processes.
However, line-selection criteria isn't available for a pause task because the pause task examines every
fulllment line in the sales order, by default.

Add Release Rule

763
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Note.

• Use advanced mode.


• Use Assign New or Assign.
• Specify sacResult.

Aribute Description

sacType Required
   

764
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Aribute Description

sacEventName Optional, depending on the type of pause. For example, if the rule pauses according to a
  dependency to resolve, then you must include sacEventName.
ReevaluateFlag  
  For details, see the Overview of Pausing Orchestration Processes topic.
waitDateTime  
 
 

• Don't set default value for other aributes.

Don't Specify Evaluation Intervals That Are Too Short

If you set up your pause task so the evaluation interval is too short, then the orchestration process might evaluate the
pause condition an excessive number of times and degrade performance. For example, assume you.

• Create a pause step that pauses the orchestration process until Scheduled Ship Date occurs.
• Set reevaluateFlag to Y.
• Evaluate the condition one time every ve minutes.

Assume ve days typically elapse between the time the pause step runs and when Scheduled Ship Date occurs. On
average, the orchestration process will evaluate the condition 1,440 times.

• 12 times for each hour, multiplied by 24 hours, multiplied by ve days, equals 1,440

This processing consumes a lot of resources, can aect performance, and might result in memory problems that can
cause your runtime environment to fail. So, set up your pause step so it evaluates the condition less frequently. In this
example, the evaluation could probably occur one time every two hours without aecting the orchestration process in a
negative way.

Use the Number of Times to Retry Pause order management parameter to control the maximum number of times
the orchestration process evaluates the condition before it temporarily pauses the pause task and displays an error
message informing your users to click Recover to manually recover the pause. For details, see the Manage Order
Management Parameters topic.

Evaluate Conditions Again

Use the Recover Errors scheduled process to evaluate the conditions again. For example.

1. Set up Recover Errors so it runs on the pause task.


2. Set Number of Times to Retry Pause to 10.
3. At run time, Order Management retries 10 times.
4. If all 10 retries fail, then Order Management places the pause task on the error and displays a message that it
exceeded the maximum number of retries.
5. The Order Entry Specialist uses the Recover Order action to recover the sales order.
6. Each order line that's in error retries pause 10 times.
7. If the condition.

◦ Satises during retry. Order Management releases the pause.


◦ Doesn't satisfy. Order Management sets the pause task back to an error state.

Set Up Pause Task That Occurs When Revising Sales Orders

765
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Pause task rules run each time the Order Entry Specialist revises a sales order. You can set aributes that control this
behavior.

Note.

• If your pause task doesn't reference an extensible exeld, then disable the Use Flexeld Aributes option to
instruct the orchestration process to skip the pause step when the value in an extensible exeld changes.
• If you don't need to run your pause task when revising a sales order, then write a compensation paern.

For example, assume you write a pause step that waits for payment. The Order Entry Specialist manually
indicates that the customer sent payment, and the pause ends. Some time later, the Order Entry Specialist
revises the sales order in a way that doesn't aect the payment amount, such as modifying the ship-to address.
It isn't necessary to pause to wait for payment after the revision, so you can write a compensation paern that
skips pause on the payment step.
• The orchestration process uses the aributes you specify on the Order Aributes That Identify Change page
to determine when to compensate when revising a sales order. Use it to make sure your pause task runs only
if the revision that the Order Entry Specialist makes aects an aribute that your pause task references. For
details, see the Manage Order Aributes That Identify Change topic.

766
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Pause According to Time


Apply guidelines when you set up a rule that pause according to time.

Note.
• Use the Assign action to set the waitDateTime variable.
• Don't specify a duration for waitDateTime. For example, if you specify a duration of 5 hours, then the rule might
convert it to a date and time that already occurred, and the rule will never pause the task because the date that
it uses to determine whether to pause already occurred. Instead, specify a date and time.
For example, Header.getAdjustedDate(null, 1) species to get the current system date, and then wait for
current system date plus one day before releasing the pause.
Use dateTime for the rst parameter in the function. For example, to wait until two days before the schedule
ship date, use Header.getAdjustedDate(FLine.ScheduleShipDate,-2).

767
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

• reevaluateFlag evaluates the conditions in the IF part of the rule to determine whether the condition changed.
In general, set reevaluateFlag to N unless your rule requires periodic evaluation. If you set reevaluateFlag to
Y, then carefully consider the interval you use for waitDateTime. For example, if you set getAdjustedDate
to refresh every minute, then reevaluateFlag will cause the rule to run the IF statement every minute until it
evaluates the condition in the IF statement to True.

Pause Large Sales Orders

Use SAC_SYSTEM_EVENT_IPC_PAUSE and set reevaluateFlag to Y to cause the rule to examine every orchestration
process instance that's in a wait state for the sales order each time an orchestration process step nishes. For
example, assume a sales order includes 100 fulllment lines, and 75 of them are in a wait state according to
SAC_SYSTEM_EVENT_IPC_PAUSE. The rule will reevaluate each of the 75 lines every time it runs.

If a sales order includes a large number of fulllment lines, and if you must pause according to a dependency, then
don't use SAC_SYSTEM_EVENT_IPC_PAUSE. Instead, set up a rule that uses SAC_TYPE_TIMER, and that examines all
fulllment lines but only after time elapses. Specify an appropriate interval. For example, if you determine that most
fulllment lines on a large sales order ship within six hours, and you only need to invoice once every 12 hours, then use
an interval of eight hours.

768
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Use Timers with Extensible Flexelds

Assume you must limit the time you allow your business partners to provide quotes to 90 days. Assume you already
dened an extensible exeld with a context named Quote and segment named quoteexpiration to allow the Order
Entry Specialist to use the Order Management work area to specify the quote expiration date.

Create a pause task that expires on the date and time that the expire quote segment species. This segment resides in
Quote context of an extensible exeld. You create these rules.

769
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Rule Description

Pause for 90 Days Pause for 90 days without conditions.


   

Pause Until Quote Expires Pause task that expires on the date and time that the expire quote segment species. This
  segment resides in the Quote context of an extensible exeld. If Pause Until Quote Expires
expires, then it will override Pause for 90 Days.
 

Here's the rst rule.

Note.

770
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Code Description

Priority equals High Make sure you run this rule before you run any other rule.
   

Header is a Declare variable Header, then load values into Header from object DOOHeader of method
DooSeededOrchestrationRules. DooSeededOrchestrationRules. DOOHeader contains order header aributes and their values.
DOOHeader and  
  This If statement doesn't include conditional logic because we must run the rule in all
conditions.
 

DooSeededOrchestrationRules. Create a new instance variable SAC, set it to type SacResult in method
SacResult SAC new DooSeededOrchestrationRules.
DooSeededOrchestrationRules.  
SacResult()
 

header. sacResult = SAC Set the value of object sacResult on the order header to the value that SAC contains.
   

header. sacResult. reevaluateFlag "N" The IF statement doesn't contain a condition that we must reevaluate.
   

header. sacResult. sacType = Specify the type of pause as a timer.


DooSeededOrchestrationRules.  
SacResult. SACTYPETIMER
 

header. sacResult. waitDateTime


header. GetAdjustedDate(null90) Get the current date, add 90 days to it, and store the result in parameter waitDateTime of
  object sacResult on the order header. The rule won't release the pause until waitDateTime
occurs.

Function GetAdjustedDate uses these parameters.

• First parameter. A date, date variable, or null for current date.


• Second parameter. Number of days. Use a whole number or a fraction, such as 0.5 for
12 hours.

GetAdjustedDate adds the number of days to the rst parameter, then returns the result as
date and time.

Here's the If statement for the second rule.

771
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Note.

Code Description

Priority equals Medium Make sure you run this rule after rule Pause for 90 Days.
   

If equals True If all conditions in statement If are true, then override rule Pause for 90 Days.
   

772
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Code Description

Header is a Declare variable Header, and then load values into Header from object DOOHeader of method
DooSeededOrchestrationRules. DooSeededOrchestrationRules.
DOOHeader and  
  DOOHeader contains order header aributes and their values.
 

Fline is a Declare variable Fline (fulllment line), and then load values into Fline from object DOOFline of
DooSeededOrchestrationRules. method DooSeededOrchestrationRules. DOOFline (Distributed Order Orchestration Fulllment
DOOFline and Line) contains fulllment line aributes and their values.
   

header. childFLines RL. contains ine Declare variable ine into the rules language (RL) dictionary, then set the value of ine to the
  value that childFLines contains.
 
This condition makes sure variable ine contains a child fulllment line of the parent sales
order that the orchestration process instance is processing. It also makes sure you correctly
declare the variable into the dictionary.
 

ineEFF is a Declare variable ineEFF, then store the value of object FlexContext into this variable.
DOOSeededOrchestrationRules.  
FlexContext Note that method DooSeededOrchestrationRules contains FlexContext.
   

ineEFF isn't null Proceed to the next AND only if ineEFF contains a value.
   

ine. exContexts contains ineEFF Proceed to the next AND only if variable ineEFF references an extensible exeld on the
  fulllment line.
 
To reference an extensible exeld on the order header, use header. exContexts instead of
ine. exContexts.
 

ineEFF. context isn't null Proceed to the next AND only if the context contains a value.
   

ineEFF. context equals ignore case Proceed to the next AND only if context equals the string Quote.
"Quote"  
 

ineEFF. Proceed to the THEN statement only if the Order Entry Specialist enters a value in the exeld.
getFlexAributeDateValue("quoteexpiration")
 
isn't null
 

Here's the Then statement for the second rule.

773
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Note.

Code Description

header. sacResult. sacType = Set SacResult so it uses the timer.


DooSeededOrchestrationRules.  
SacResult. SACTYPETIMER
 

header. sacResult. reevaluateFlag "N" Don't reevaluate the condition when the timer expires.
   
This rule doesn't evaluate according to a timer. Instead it waits until the quote expiration date
occurs, so reevaluate isn't necessary.
 
If the user submits a revision that includes a new value for the date, then the rule reevaluates
the date and time, and sets this new time as part of compensation.
 

header. sacResult. Set variable waitDateTime of rule set sacResult on the order header to the value that the Order
waitDateTime ineEFF. Entry Specialist entered into the exeld.
getFlexAributeDateValue("quoteexpiration")
 
 

774
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Pause According to Event


Here's an example that uses a pause task when a web service sends an event that requests a payment check.

Note.

• Assume the application sets paymentTermId to 1 when it requires the orchestration process to pause and
makes sure you received payment from your customer.
• Most orchestration processes process one fulllment line at a time when they pause according to time or an
event. If you pause according to time or event, then, to lter fulllment lines, use one of these codes.

Code Description

Header. childFLines Reference the fulllment line that the orchestration process is processing.
   

Header. allFLinesInTheOrder References all fulllment lines in the sales order that the orchestration process is processing.
   

775
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

• Use isn't null. If your rule examines an aribute that doesn't contain a value, then your rule might fail with
results you can't predict.
• Use Assign. If you use Assert New, then the rule creates more than one instance, and it might fail with results
you can't predict.
• If you use Assign New for a rule in a pause rule set, then you must set priority for the Assign New rule to
Highest, and make sure no other rule in the set is Highest.

Pause According to Dependency


Here's an example that pauses the orchestration process until a dependency resolves. The dependency is to wait for all
lines to ship before continuing to the invoicing step.

Note.
• The Pause step references the pause task. The Pause step resides between the Shipping step and the Invoicing
step in the orchestration process.
• If no fulllment line meets any condition in the IF statement, then all fulllment lines have shipped, the rule
releases the pause, and the ow continues to the next orchestration process step.

776
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Note.

Code Description

Header is a Declare variable Header, and then load values into Header from object DOOHeader of method
DooSeededOrchestrationRules. DooSeededOrchestrationRules.
DOOHeader  
  DOOHeader contains order header aributes and their values.
 

There is a case where Ask a question. Does the sales order include at least one fulllment line that order fulllment
  hasn't shipped, and that order fulllment can ship?
 

Fline is a Declare variable Fline (fulllment line), and then load values into Fline from object DOOFline of
DooSeededOrchestrationRules. method DooSeededOrchestrationRules.
DOOFline and  
  DOOFline (Distributed Order Orchestration Fulllment Line) contains fulllment line aributes
and their values.
 

Header. allFLinesinTheOrder Examine all fulllment lines in the sales order, including lines that the orchestration process
  isn't currently processing.
 
A dependency might exist between the fulllment line that the orchestration process is
currently processing, and other fulllment lines in the sales order, so you must inspect all of
them.
 

Fline. shippableFlag is "Y" If aribute shippableFlag on the fulllment line is Y, then proceed.
   
Make sure each fulllment line is shippable. Some items can't ship, such as a subscription. If
a fulllment line contains a subscription, then shippableFlag is N for this line, the rule ignores
this line, and moves to the next line.
 

Fline. actualShipDate is null If aribute actualShipDate on the fulllment line doesn't contain a value, then it indicates the
  fulllment line hasn't shipped, and the rule must pause the orchestration process.
 

Fline. orderedQty more than 0 If aribute orderedQty on the fulllment line is 0, then it indicates the fulllment line is a
  canceled line, the rule ignores this line, and moves to the next line.
 

SAC_ SYSTEM_ EVENT_ IPC_PAUSE Use SAC_ SYSTEM_ EVENT_ IPC_PAUSE where IPC means Interprocess Communication. The
  rule evaluates this type of pause each time a task nishes for each fulllment line.
 

reevaluateFlag = Y Evaluate the condition each time an orchestration process step nishes.
   
In this example, the Shipping step ships the fulllment lines, so the rule must evaluate after the
Shipping step nishes for each fulllment line to determine whether order fulllment shipped
all fulllment lines.
 

Example of Grouping Values and Using Extensible Flexelds

Assume you must modify the pause task so the orchestration process sends all fulllment lines to invoicing as a single
group, including lines that fulllment can ship and can't ship instead of only lines that fulllment can ship. An extensible

777
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

exeld identies the group. You can use the same Then statement, but the If statement is dierent. Here's the rst part
of the If statement.

Note.

Code Description

currentFline is a Declare variable currentFline, and then store aributes of the fulllment line that the
DOOSeededOrchestrationRules. orchestration process is currently processing into this variable.
DOOFLine  
 

778
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Code Description

header. childFLines RL. contains Declare currentFline into the rules language (RL) dictionary, and then set the value of
currentFline currentFline to the value that childFLines contains.
   
This condition makes sure variable currentFline references a fulllment line that the
orchestration process is processing. It also makes sure you correctly declare the variable into
the dictionary.
 

allFlines is a Declare variable allFlines, and set it to type DOOFLine.


DOOSeededOrchestrationRules.  
DOOFLine
 

header. allFLinesInTheOrder RL. Declare variable allFlines into the rules language dictionary, and set the value of allFlines to the
contains allFlines value that allFLinesInTheOrder contains.
   
This condition makes sure you correctly declare the variable into the dictionary.
 

currentFlineEFF is a Declare variable currentFlineEFF, and set it to type FlexContext.


DOOSeededOrchestrationRules.  
FlexContext
 

currentFline. exContexts RL.contains Declare currentFlineEFF into the rules language dictionary, and set the value of
currentFlineEFF currentFlineEFF to the value that exContexts contains.
   
This condition makes sure you correctly declare the variable into the dictionary.
 
exContexts is a list of context rows for the extensible exeld. FlexContext is a type of row or
variable.
 

Here's the second part of the If statement.

779
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Note that extensible exeld context FulllLineContext1 and segment FL1AributeChar1 dene one group.

For example, assume the sales order contains 10 fulllment lines and you must group them into two sets of ve lines
each. You can use.

• FulllLineContext1 and FL1AributeChar1 to dene GROUP1 that contains the rst ve lines
• FulllLineContext2 and FL1AributeChar2 to dene GROUP2 that contains the last ve lines

Here's the code from second part of the If statement.

Code Description

allFlineEFF is a Declare variable allFlineEFF, and store the value of object FlexContext into this variable.
DOOSeededOrchestrationRules.  
FlexContext Method DooSeededOrchestrationRules contains FlexContext.
   

FLATTR = "FL1AributeChar1" Declare variable FLATTR (exeld aribute), and set it to FL1AributeChar1.

780
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Code Description

   
You reference extensible exeld aribute FL1AributeChar1 in more than one location in this
rule. For eciency, and to avoid problems because of typographical errors, you can declare
FLATTR one time, set it to FL1AributeChar1, and then reference FLATTR instead of declaring
FL1AributeChar1 more than one time.
 

currentFline. fulllLineId isn't Proceed to the next AND only if aribute fulllLineId in variable currentFline and aribute
allFlines. fulllLineId fulllLineId in variable allFlines don't reference the same fulllment line.
   

currentFlineEFF. context equals Get the value of the exeld context from currentFlineEFF.
ignore case "FulllLineContext1"  
  Proceed to the next AND statement only if context contains string FulllLineContext1.
 
equals ignore case species to ignore the case sensitivity of string FulllLineContext1. This
condition avoids the situation where your deployment might use some other case for this
aribute.
 

currentFlineEFF. Use method getFlexAributeValue to get the value of aribute FL1AributeChar1 from the
getFlexAributeValue. (FLATTR) isn't extensible exeld on the current fulllment line.
null  
  Proceed to the next AND only if FL1AributeChar1 contains a value.
 
Recall that FLATTR contains FL1AributeChar1.
 

currentFlineEFF. Use method getFlexAributeValue to get the value of aribute FL1AributeChar1 from the
getFlexAributeValue. (FLATTR) isn't extensible exeld on the current fulllment line.
null  
  Proceed to the next AND only if FL1AributeChar1 contains a value.
 
Recall that FLATTR contains FL1AributeChar1.
 

allFlineEFF. context equals ignore Get the value of the exeld context from allFlineEFF.
case "FulllLineContext1"  
  Proceed to the next AND statement only if context contains string FulllLineContext1.
 

allFlineEFF. getFlexAributeValue. Get the value of aribute FL1AributeChar1 from allFlineEFF.


(FLATTR) isn't null  
  Proceed to the next AND only if FL1AributeChar1 contains a value.
 

currentFlineEFF. Proceed to the next AND only if the extensible exeld aribute contains the same value on
getFlexAributeValue. (FLATTR) is the current line and on all lines.
allFlineEFF. getFlexAributeValue.  
(FLATTR) This condition makes sure these fulllment lines are part of the same group.
   

Release Pause and Resume Orchestration Process


Set Up the Default Release Rule

781
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

If you set up more than one rule on the start after condition, then you must set the release rule to the highest priority of
all these rules.

Apply these guidelines when you dene the release rule.

782
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Note.

• Order Management runs the rule with the highest priority rst.
• The release rule has the highest priority, so it runs rst.
• Don't use the If statement on the release rule to dene the condition that your business logic requires. Instead,
set up your conditional logic on the pause rule.
• The rule editor requires that you set up a condition on the release rule so it passes validation, so set up a
condition that's always true.
• Assign New creates a new instance of SacResult so you can assign values to it while the rules run.

783
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

• If the ow doesn't meet the conditions in the pause rule, then the release rule releases the pause. For example,
if actualShipDate in the pause rule contains a value for each fulllment line, then.
◦ All fulllment lines already shipped.
◦ The ow hasn't met the pause rule condition that pauses the task.
◦ Flow is ready to proceed to the next orchestration process step.
◦ Flow returns to the release rule.
◦ The release rule sets SacResult to SAC_TYPE_IMMEDIATE.
◦ The release rule releases the pause.
◦ Flow continues to the next orchestration process step.

Resume the Paused Orchestration Process

Its important to resume the orchestration process that your pause task paused. If you use.
• SAC_TYPE_TIMER or SAC_SYSTEM_EVENT_IPC_PAUSE. Let the condition evaluate and release the process,
or use one of the set ups described in this section.
• SAC_TYPE_EVENT. You must use one of the set ups described in this section.

Note: You must make sure to release a paused orchestration process. If you don't, then the orchestration
process will remain in a paused state, which might result in failed sales orders, failed order fulllment, and so
on.

Release the pause task that's pausing the orchestration process. Try one of.
• Automatic. Use the Release Pause Tasks scheduled process to release a pause task that's waiting for a business
event to nish. Use a variety of parameters to identify the pause task to release, such as Item, Customer, Task
Name, and so on.
You can also set the Manual Release Type parameter.
◦ Tasks That Exceed Maximum Retries. Use this choice for most situations.
◦ Tasks That Can't Establish Wait. Release pause task that fails to release because of some problem that's
internal to Order Management. Set this value only in consultation with Oracle Support.
• Web service. Use a web service to automatically release the pause task.
• Manual. In the Order Management work area, navigate to the Orchestration Process page, then click Release
Pause Task. You must use the Order Orchestration Error Recovery Manager role. For details, see the Resume
Paused Sales Orders topic.

Test Your Set Up


Test your set up in a development environment. Use these conditions.
• Sales order that includes one fulllment line.
• Sales order that includes more than one fulllment line. This test helps to make sure you set up your rules
so they examine fulllment lines that the current orchestration process instance isn't examining, but where a
dependency exists between these fulllment lines and the fulllment line that the instance is examining.
• If your data includes a ship set, then include a ship set in your test.
• If your data includes a congured item, then include a congured item in your test.
• Aributes that don't contain a value.

784
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

• Aributes that contain values that result in condition evaluating to false.


• Aributes that contain values that result in condition evaluating to true.
• Order revision.
• Change order.
• If your rules reference them, then test extensible exelds.

Related Topics
• Manage Order Management Parameters
• Manage Order Aributes That Identify Change
• Guidelines for Creating Business Rules

Pause Orchestration Processes Until Events Occur


Use a pause task to temporarily stop an orchestration process from running so 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 must provide your
Gold customers an opportunity to order the book before your company releases it to the public. You can set up an
orchestration process that allows a Gold customer to order the book but pauses processing so it doesn't aempt to ship
the book before the release date occurs.

You create these rules.


• If the customer is Gold, then pause the orchestration process.
• If the customer isn't Gold, then skip the pause task.

Summary of the Set Up


1. Create the orchestration process.
2. Add orchestration process steps.
3. Create If statement for rst rule.
4. Create Then statement for rst rule.
5. Create second rule.
6. Deploy the orchestration process. For details, see the Deploy Orchestration Processes topic.
This topic includes example values. You might use dierent values, depending on your business requirements.

For background details about.


• The properties you set in this topic for the pause task, see the Overview of Pausing Orchestration Processes
topic.
• The business rule you create in this topic, see Overview of Using Business Rules with Order Management.

Create the Orchestration Process


1. In the Navigator, click Setup and Maintenance.
2. In the Setup and Maintenance work area, go to the task.
◦ Oering: Order Management
◦ Functional Area: Orders
◦ Task: Manage Orchestration Process Denitions
3. On the Manage Orchestration Process Denitions page, click Actions > Create.

785
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

4. On the Create Orchestration Process Denition page, set values, then click Save.

Aribute Value

Process Name Pause_for_Gold


   

Process Display Name Pause_for_Gold


   

Process Class Ship Order Class


   

Set Common Set


   

Add Orchestration Process Steps


You will add these steps.

Add the orchestration process steps.

1. On the Step Denition tab, click Actions > Add Row.


2. Set values, then click Save.

Aribute Value

Step Name Schedule Goods


   

Step Type Service


   

Task Schedule
   

786
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Aribute Value

Service Create Scheduling


   

3. Add more steps. Repeat steps 1 and 2. Use these values.

◦ Create Reservation
◦ Create Shipment
◦ Wait for Shipment Advice
◦ Create Invoice
◦ Wait for Invoice

Note.

◦ Set the Step Type aribute for all steps to Service.


◦ Set other aributes so they reect step behavior.

For example, for the Create Reservation step, set these values.

Aribute Value

Step Type Service


   

Task Reserve
   

Service Create Inventory Reservation


   

◦Make sure you set the Exit Criteria aribute for each wait step. For example, set Exit Criteria for the Wait
for Shipment Advice step to Shipped.
4. Add the pause step. Click the Create Reservation step, click Add Row, set values in the new row, then click
Save.

Aribute Value

Step Name Pause


   

Step Type Service


   

Task Pause
   

Service Pause Process


   

787
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Create If Statement for First Rule


You will create the start-after condition, which is a condition on a pause task in an orchestration process step that
species when to pause processing before calling the next step, or when to resume processing. This condition
determines whether the customer is Gold.

You will create this If statement.

where
• DOOFLine is a function in dictionary DooSeededOrchestrationRules.
• DOO is an abbreviation for distributed order orchestration, which is an earlier name for order orchestration.
• FLine is an abbreviation for fulllment line.
• demandClassCode is a fulllment line aribute. This aribute stores the customer class, such as Gold, Silver, or
Bronze.
• isn't determines whether demandClassCode contains Gold.
• For details about these values, see the Guidelines for Pausing Orchestration Processes topic.

Create the If statement for the rst rule.


1. Create the rule.
◦ On the Pause step, in the Pause Rule column, click Click for Rule.
◦ In the Start After Condition dialog, click Add Rule, then replace Rule 1 with Pause for Gold Customers.

◦ Click Expand > Show Advanced Seings.


◦ Add a check mark to Advanced Mode.

788
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

2. Specify the dictionary and facts to examine.

◦ In the IF area, in the window to the left of Is A, enter header.


◦ Set the window to the right of Is A to DooSeededOrchestrationRules.DOOHeader.
◦ Click Add Paern.
◦ In the window to the left of Is A, enter FLine.
◦ Set the window to the right of Is A to DooSeededOrchestrationRules.DOOFLine.
3. Make sure to evaluate only fulllment lines.

◦ Under FLine, click Add Test.


◦ Click Left Value.
◦ In the Condition Browser, expand Header, click ChildFLines, then click OK.
◦ Change Is to Contains.
◦ Click Right Value.
◦ In the Condition Browser, click FLine, then click OK.
4. Make sure the aribute you're about to test isn't empty.

◦ On the test you just added, to the far right, click the down arrow, then click Simple Test.
◦ On the new line that displays, click Left Value.
◦ In the Condition Browser, expand FLine.

Notice that each value under FLine references a fulllment line aribute.
◦ Click demandClassCode, then click OK
◦ Change Is to Isn't.
◦ Click Right Value.
◦ In the Condition Browser, click null, then click OK.
5. Determine whether the customer is Gold.

◦ On the test you just added, to the far right, click the down arrow, then click Simple Test.
◦ On the new line that displays, click Left Value.
◦ In the Condition Browser, expand FLine.
◦ Click demandClassCode, then click OK.
◦ In the Right Value window, enter "Gold".

You must include the double quotation marks ( " " ).

789
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Create Then Statement for First Rule


You will create this Then statement.

For brevity, this screen print doesn't include the entire value for the event.

Create the Then statement for the rst rule.

1. In the Then area, click Add Action > Assign.


2. Click Select a Target, then click header.SacResult.
3. In the window to the right of the equal sign ( = ), enter this value.

( eventName:"Gold Preorders",
reevaluateFlag:"N",sacType:DooSeededOrchestrationRules.SacResult.SAC_TYPE_EVENT )

where

◦ eventName is a variable that you can use to help track the status of the pause task. The Order
Management work area uses the text you enter wherever it displays status details, such as in the Gan

790
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

chart on tab Orchestration Plan of page Orchestration Process that the user can access from page
Manage Orchestration Process. This example species to use event Gold Preorders.
◦ reevaluateFlag:"N" species not to evaluate this rule again.
◦ sac is an abbreviation for start after condition.
◦ sacType species the dictionary, rule set, and event to use for the start after condition.
◦ DooSeededOrchestrationRules is a dictionary that contains predened rules you can use in your business
rule.
◦ SacResult is a rule set in DooSeededOrchestrationRules. It contains events and variables you can use to
specify how to handle the result of a start after condition.
◦ EVENT is an event in SacResult. It species to raise a business event.
◦ A pause type of EVENT causes the orchestration process to pause until an event occurs.
◦ An aribute 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. This event isn't related to the events that the event
framework in Oracle Middleware uses.
◦ You must include double quotation marks ( " " ).
4. Click Save.

791
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Create the Second Rule


You will create this rule.

Create the second rule.

1. On the Pause step, in the Pause Rule column, click Click for Rule.
2. In the Pause Rule Set dialog, in the check box to the left of Pause for Gold Customers, add a check mark.
3. Click Cut > Paste.
4. Scroll down to the boom of the dialog and notice the rule that the paste added.
5. Make these changes to this new rule.

792
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Replace This Value . . . . . . With This Value

Pause for Gold Customers Skip Customers Who Are Not Gold
   

FLine. demandClassCode is "Gold" FLine. demandClassCode isn't "Gold"


   

header. sacResult = header. sacResult = ( eventName: "Gold Preorders", ( reevaluateFlag: "N" sacType:
( eventName: "Gold Preorders", DooSeededOrchestrationRulesSacResultSACTYPE IMMEDIATE )
reevaluateFlag: "N"sacType:  
DooSeededOrchestrationRulesSacResultSACTYPEEVENT
Start after condition
) IMMEDIATE ends the pause task and allows the orchestration process
  to continue to the next step.
 

6. Click Save.
7. On the Edit Orchestration Process Denition page, click Save.

Related Topics
• Demo for Creating Business Rules

Pause Orchestration Processes Until Time Elapses


Set up a pause task to temporarily stop an orchestration process from running until time elapses.
Assume your supply chain analysis determines it typically requires two days to ship goods from warehouse to customer
when your customer orders through your legacy system. Your supply chain uses just-in-time fulllment. You don't want
to send the order to shipping too early to avoid the cost of reserving inventory any time longer than necessary to meet
the requested delivery date. So you set up a pause task that pauses the orchestration process until two days before the
scheduled ship date occurs.

You create a business rule.


• If source system is Legacy, then release pause on ShipDate minus two.

Summary of the Set Up


1. Set up orchestration process.
2. Create If statement.
3. Create Then statement.
4. Deploy the orchestration process. For details, see the Deploy Orchestration Processes topic.
This topic includes example values. You might use dierent values, depending on your business requirements.

For background details about.


• Properties you set for the pause task, see the Overview of Pausing Orchestration Processes topic.
• Business rules, see Overview of Using Business Rules With Order Management.

Set Up Orchestration Process


1. In the Navigator, click Setup and Maintenance.

793
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

2. In the Setup and Maintenance work area, go to the task.

◦ Oering: Order Management


◦ Functional Area: Orders
◦ Task: Manage Orchestration Process Denitions
3. On the Manage Orchestration Process Denitions page, click Actions > Create.
4. On the Create Orchestration Process Denition page, set values, then click Save.

Aribute Value

Process Name Pause_for_Time


   

Process Display Name Pause_for_Time


   

Process Class Ship Order Class


   

Set Common Set


   

5. Set up orchestration process steps.

Follow the instructions in section Dene the Orchestration Process Steps of topic Pause Orchestration
Processes Until an Event Occurs.

794
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Create If Statement
Create the If statement that determines whether the source system is Legacy.

Create the If statement.

1. Create the rule.

◦ On the Pause step, in the Pause Rule column, click Click for Rule.
◦ In the Start After Condition dialog, click Expand > Show Advanced Seings.
◦ Set values.

795
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Aribute Value

Name Rule That Pauses Until Ready to Ship


   

Description If source system is Legacy, then release pause on ShipDate minus two.
   

Advanced Mode Contains a check mark.


   

Tree Mode Doesn't contain a check mark.


   

2. Specify the header.

◦ In the IF area, in the Left Value aribute, enter Header.


◦ Set the eld that's located to the right of Is A to DooSeededOrchestrationRules.DOOHeader.
◦ In the IF area, click the down arrow next to the magnifying glass, then click Delete Test.
3. Specify the line.

◦ Click Add Paern.


◦ In the left eld, under Add Test, enter Line.
◦ Set the eld that's located to the right of Is A to DooSeededOrchestrationRules.DOOFLine.
4. Add the test.

◦ Immediately under the left eld that contains the value Line, click down arrow > Simple Test.
◦ Click Left Value.
◦ In the Condition Browser, expand Header.

Notice that the list displays order header aributes you can use to specify which aribute to examine. For
this example, this If statement creates a lter that causes the rule to only consider source orders where
aribute Source Order System contains a value of LEG, where LEG is an abbreviation for the term legacy.
◦ Click sourceOrderSystem > OK.
◦ In the Right Value aribute, enter "LEG".

796
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Create the Then Statement


This statement adds the pause and species to release it two days before the scheduled ship date occurs.

Create the Then statement.

1. Use Assign New to create a variable named DateTime. You will use this variable to calculate the amount of time
to delay shipment.

◦ In the Then area, click Add Action > Assign New.


◦ Click Select a Target > DooSeededOrchestrationRules.Timestamp.
◦ In the empty aribute immediately to the right of Select a Target, enter DateTime.

Don't include quotation marks. Adding DateTime in this aribute creates the variable that this example
uses for the date calculation.
2. Choose the fulllment line aribute that you will use to calculate the date.

◦ Click Expression Value.


◦ In the Condition Browser, expand Line.

The dialog displays a list of fulllment line aributes. You can set up you rule so it considers the value of
one of these aributes.
◦ Click scheduleShipDate > OK.
◦ Make sure the aribute where you added DateTime still contains DateTime.
◦ Click Add Action > Modify.
◦ Click Select a Target > DateTime.
3. Calculate the amount of time to delay shipment.

◦ Click Edit Properties.


◦ In the Properties dialog, in the Time row, click Value.
◦ In the Condition Browser, expand DateTime, then click Time.

Note that the Condition Browser adds a value of DateTime.time to aribute Expression.
◦ In the Expression aribute, append -(2*24*60*60*1000) to the end of DateTime.time.

797
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

where

• 2 is the number of days.


• 24 is the number of hours in one day.
• 60 is the number of minutes in one hour.
• 60 is the number of seconds in one hour.
• 1000 is the number of milliseconds in one second.

This value calculates the number of milliseconds so the pause task ends two days before the
orchestration process schedules the order lines for shipping.

You can use function getAdjustedDate instead of DateTime.time. For details, see the Guidelines for
Pausing Orchestration Processes topic.
◦ Make sure the Expression aribute includes DateTime.time-(2*24*60*60*1000), then click OK.

For example.

798
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

◦ Make sure the Properties dialog includes this value.

◦ Click OK.
4. Pause the orchestration process.

You will set these properties.

( reevaluateFlag:"N", sacType:DooSeededOrchestrationRules.SacResult.SAC_TYPE_TIMER,
waitDateTime:DateTime )

◦ Click Add Action > Assert New.


◦ Click Select a Target > DooSeededOrchestrationRules.SacResult.
◦ Click Edit Properties.
◦ In the Properties dialog, in the reevaluateFlag row, in the Value aribute, enter "N". You must include the
double quotation marks.
◦ In the sacType row, click Value.
◦ In the Condition Browser dialog, expand DooSeededOrchestrationRules > SacResult, click
SAC_TYPE_TIMER, then click .

A pause type of TIMER causes the orchestration process to pause until time elapses.
◦ In the Properties dialog, in the waitDateTime row, click Value.

799
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

◦ In the Condition Browser, click DateTime, then click OK.


◦ Make sure the Properties dialog contains these values.

5. Click OK, then, in the Pause Rule dialog, click Save.


6. On the Edit Orchestration Process Denition page, click Save and Close.

Related Topics
• Demo for Creating Business Rules
• Overview of Using Business Rules With Order Management

Pause Orchestration Processes Until Dependencies Resolve


Set up a pause task to temporarily stop an orchestration process from running until a dependency resolves.
This example coordinates orchestration processes to make sure Order Management invoices all the fulllment lines
that a sales order contains at the same time, even if the shipment dates vary. The orchestration process uses the same
sequence of steps to process each fulllment line, but these lines might not be synchronized.

Assume a school district places a sales order for 600 new history books and requires that they receive the invoice for
the sales order only after Order Management ships all books.

Assume that the orchestration process must get the books from these warehouses.
• Fulllment line 1 gets 80 books from the Seale warehouse
• Fulllment line 2 gets 400 books from the Denver warehouse
• Fulllment line 3 gets 120 books from the Chicago warehouse

You set up an orchestration process that processes the fulllment lines, pauses until fulllment shipped all lines,
resumes processing, then sends the lines to billing.

800
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Summary of the Steps

1. Set up the orchestration process.


2. Create the rst rule.
3. Create the If statement for the second rule.
4. Create the Then statement for the second rule.
This topic includes example values. You might use dierent values, depending on your business requirements.

For background details about.

• Properties you set for the pause task, see the Overview of Pausing Orchestration Processes topic.
• Business rules, see Overview of Using Business Rules With Order Management.

Set Up the Orchestration Process


For an example that describes how to do this set up, see the Pause Orchestration Processes Until an Event Occurs topic.

1. Create a new orchestration process and set up the header.


2. Add orchestration process steps.

◦ Schedule
◦ Reserve
◦ Ship
◦ Wait for Shipment
◦ Pause
◦ Invoice
◦ Wait for Billing

Create the First Rule


You will create a business rule.

801
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

where.
• DooSeededOrchestrationRules. A dictionary that contains predened rules you can use in your business rule.
• DOOHeader. An object in the DooSeededOrchestrationRules dictionary that stores details about the sales order
header.
• Assign New. Species to assign DOOHeader as a new object in the DooSeededOrchestrationRules dictionary.
This assignment makes the object available throughout your rule.
• SacResult. A rule set in the DooSeededOrchestrationRules dictionary. It contains events and variables you can
use to specify how to handle the result of a start after condition.
• SAC. A value you can set for SacResult. sac is an abbreviation for start after condition.
• The rst Assign. Species to set the value of SacResult to SAC.
• sacType. A property of SacResult. sacType stores the value that the rule uses to determine whether to pause
the orchestration process or release it.
• SAC_TYPE_IMMEDIATE. A value of sacType. If sacType contains IMMEDIATE, then the rule will immediately
release the pause task.
• The second Assign. Species to set sacType to SAC_TYPE_IMMEDIATE.

Create the rst rule.


1. On the Pause step, in the Pause Rule column, click Add Rule.
In the Start After Condition dialog, click Add Rule > Expand > Show Advanced Seings, then set values.

Aribute Value

Name Default Rule for Dependent Pause


   

Description Default rule that pauses orchestration process until a dependency resolves.
   

Priority Highest
   

Advanced Mode Contains a check mark.


   

2. In the eld below If, enter an alias, such as Header.


3. In the eld to the right of Is A, select DooSeededOrchestrationRules.DOOHeader.
4. Click the down arrow next to Right Value, then click Delete Test.
If you remove the test, then the rule always applies the actions that the Then area contains.
5. In the Then area, click Add Action, then click Assign New.
6. Click Select a Target, then click DooSeededOrchestrationRules.SacResult.
7. In the eld to the left of the equal sign (=), enter SAC.
8. In the eld to the right of the equal sign (=), click Expression Value.
9. In the Condition Browser dialog, expand DooSeededOrchestrationRules, expand SacResult, click New, then
click OK.
10. Click Add Action > Assign.
11. Click Select a Target, then click Header.sacResult.
12. In the eld to the right of the equal sign (=), enter SAC.
13. Click Add Action > Assign.

802
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

14. Click Select a Target, then click Header.sacResult.sacType.


15. In the eld to the right of the equal sign (=), click Expression Value.
16. In the Condition Browser dialog, expand DooSeededOrchestrationRules, expand SacResult, click
SAC_TYPE_IMMEDIATE, and then click OK.
17. Click Validate, then click Save.

Create the If Statement for the Second Rule


You will create this rule.

It states that if the actual ship date isn't null on all fulllment lines, then release the pause task.

First, you create the If statement.

803
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

where.

• There is a Case Where. Species to pause all shipped lines even if the fulllment system shipped all lines except
one line.
• OrderHeader/allFLinesIntheOrder. Allows Order Management to coordinate across more than one
orchestration process where more than one orchestration process processes the fulllment lines for the sales
order.
• actualShipDate is null. Determines whether any of the fulllment lines haven't shipped. actualShipDate is null
when orchestration starts. Orchestration sets actualShipDate to a value when it ships the item.

Create the If statement for the second rule.

1. On the Pause step, in the Pause Rule column, click Add Rule.

In the Start After Condition dialog, collapse the rule you just created.
2. click Add Rule > Expand > Show Advanced Seings, then set values.

Aribute Value

Name Rule for Pause Dependency


   

Description Rule that pauses orchestration process until a dependency resolves.


   

Priority Medium
   

Advanced Mode Contains a check mark.


   

Tree Mode Contains a check mark.

804
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Aribute Value

   

3. Set Root to DooSeededOrchestrationRules.DOOHeader.


4. In the If area, in the eld to the left of Is A, replace the default value with an alias, such as OrderHeader.
5. Click the down arrow to the right of Right Value, and then click Delete Test.
6. Click Add Paern to the right of the If statement.
7. To the right of the empty elds, click Surround Paern with Parenthesis, then click Surround.
8. In the list of values under And, click There is a Case Where.
9. In the eld on the left, under There is a Case Where, enter FLine.
10. In the eld to the right of Is A, select OrderHeader/allFLinesIntheOrder.
11. Click the down arrow next to Add Test, then click Simple Test.
12. Click Left Value.
13. In the Condition Browser, expand FLine, click actualShipDate, then click OK.
14. Click Right Value.
15. In the Condition Browser, click null, then click OK.

Create the Then Statement for the Second Rule


You will create a Then statement.

For details about these properties, see the Overview of Pausing Orchestration Processes topic.

Create the Then Statement for the second rule.


1. In the Then area, click the down arrow next to Add Action, then click Assign.
2. Click Select a Target, then click OrderHeader.sacResult.eventName.
3. Click Expression Value.
4. In the Condition Browser, expand DooSeededOrchestrationRules, expand SacResult, select
SAC_SYSTEM_EVENT_IPC_PAUSE, then click OK.
This step sets up the rule to evaluate fulllment lines until the ow ships all of them, and then to release them.
Interprocess communication (IPC) implements a pause according to an event.
5. Click the down arrow next to Add Action, then click Assign.
6. Click Select a Target, then click OrderHeader.sacResult.reevaluateFlag.
7. In the eld to the right of the equal sign (=), enter "Y".
You must include the double quotation marks.

805
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

8.Click the down arrow next to Add Action, then click Assign.
9.Click Select a Target, then click OrderHeader.sacResult.sacType.
10. Click Expression Value on the same line.
11.In the Condition Browser, expand DooSeededOrchestrationRules, expand SacResult, click
SAC_TYPE_EVENT, then click OK.
12. Click Validate, then click Save.

Related Topics
• Demo for Creating Business Rules

Resume Paused Orchestration Processes


Use a scheduled process or a public service to release a pause task so your orchestration process can automatically
resume processing sales orders.

Use a Scheduled Process


1. In the Navigation, click Scheduled Processes.
2. On the Scheduled Processes page, click Schedule New Process.
3. In the Schedule New Process dialog, set the value, and then click OK.

Aribute Value

Name Release Pause Tasks


   

4. Use one of the parameters to specify the orchestration process you must resume.
For example, if you set up a pause task on an orchestration process that's waiting for the Gold Preorders event,
then set the event parameter to Gold Preorders.
5. Click Submit.
For an example that uses this scheduled process, see the Pause Orchestration Processes Until an Event Occurs topic.

Use a Public Service


An application that resides outside of Order Management Cloud can call the ReleasePausedTasks operation of the
Receive Order Request Service to release a pause task. Use the seings of this service to identify the pause tasks to
release. The event handler calls the service to release the pause tasks according to the seings that you specify.

To get the aributes that the sales order references, you can use the order capture service that requests order details.

Related Topics
• Operations and Aributes You Can Use with the Receive Order Request Service

Hold

806
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Guidelines for Seing Up Holds on Sales Orders


Use these guidelines to help set up sales order holds.

Determine the Type of Hold You Need


You can apply dierent kinds of holds.

Type Description

Generic Hold that you apply on any step of an orchestration process. It doesn't apply a hold for a
  specic task. You enable Hold All Services when you create the hold code.
 

Service Hold that you apply on a specic task type and service, such as the Create Billing Lines service
  of the Invoice task type. You specify the service when you create the hold code.
 

System
  Hold that Order Management automatically applies and releases. Here are some examples.

• Hold_for_Change_Request. Order Management applies the Hold_for_Change_Request


hold when the user revises a sales order so no other user or process can modify the
sales order during the revision.
• DOO_CreditCheck. Order Management applies this hold when the customer exceeds
their credit limit. For example, if credit check fails because the customer exceeded their
credit limit, then you don't want the orchestration process to proceed to the ship step
and ship the item.

807
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Create Your Hold Code

Note.

• Use the Setup and Maintenance work area to manage hold codes, orchestration processes, and task types.
• Use the hold code to specify the task to hold, such as creating the invoice.
• Specify the service, or specify the task type.

808
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

If You Don't Enable the Hold All If You Enable the Hold All Services Option
Services Option

The service you specify aects The task type you specify aects each orchestration process step that references the task
each orchestration process step that type.
references the service.

Assume you.
Assume you.
◦ Add a check mark to Hold All Services for the HOLD CREATE SHIP hold.
◦ Don't add a check mark to
Hold All Services for the ◦ You leave the Services tab empty.
HOLD CREATE SHIP hold.
◦ On the services tab, you
specify the Create Billing
Your hold aects step 300 and step 400 because these steps reference the Shipment task
type.
Lines service.

Your hold aects only step Use this option when you don't any part of the task to run. Let's say you're shipping a highly
300 of orchestration process ammable, dangerous item. Before shipping, you place a hold to verify the carrier is licensed
ShipOrderGenericProcess because to handle hazardous material. Enable the Hold All Services option on the shipping task type
step 300 is the only step that to make sure no part of shipping runs.
references the Create Shipping
service.

Use this option when you want


some of the services of the task
type to run but not others. For
example, you want to put a hold
on Create Shipping until you
verify the orchestration process
successfully created the shipment
request, but you want the process
to automatically do the Wait for
Shipment task after you remove the
hold for Create Shipping.

• Use the Applicable Roles tab to specify who can apply and release the hold, such as the Order Manager.
Note that you can't specify a role for applying a system hold, but you can specify a role to release a
DOO_CreditCheck hold.
• As an option, use the Set aribute of the hold code to specify the business unit where Order Management
applies the hold. You can also use Set to create a set of hold codes and apply them all to the same business
unit.
• Order Management automatically enables the Hold Tasks In Progress option when the user applies it on the
Order page in the Order Management work area or when you import a hold. Disable this option only if you
haven't set up your fulllment system to correctly interpret it.
• Order Management comes with a number of predened hold codes that hold a variety of task types and
services. Add your own hold code only if the predened ones don't meet your needs.
• Don't set the End Date for a predened, system hold code, such as HOLD_FOR_CHANGE_REQUEST.
Order Management uses these codes internally. If you set the end date on one, you might introduce
errors in your implementation. Examine the description to determine whether a predened hold code is a
system hold code. The description usually identies system holds. For example, here's the description for
HOLD_FOR_CHANGE_REQUEST.
System defined hold code used in change management process

809
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

• If you set the End Date for a hold code, then you can't apply the hold after the end date occurs, but you can
release the hold after the end date occurs.
• If you don't see the task type and service you need on the Services tab, then use the Manage Task Types page
to specify the tasks and services that you can choose for the hold. You must set the Hold Enabled option to
make the service display on the Services tab. You can't enable some services for hold, such as Billing Response
or Wait for Billing. For details, see the Set Up Task Types for Holds topic.
• If you create a hold code for a long-running task, such as a shipping or invoicing task, then set it up so Order
Management applies it on a wait step.

Using this approach will help to avoid a concurrency problem that happens when the user revises a sales order
while a long-running task is running. Placing the hold on a wait step helps to make sure any actions that were in
process nish before the user can revise the order.

An orchestration process that references a service that does a Wait operation is a wait step. To determine which
services do a wait operation, go to the Manage Task Types page in the Setup and Maintenance work area,
click the row that includes your task type of interest, such as Shipment, then, in the Details area, examine the
services. Look for services that do a Wait operation.

Apply the hold on the Wait for Shipment service for a shipment task, and the Wait for Billing service for an
invoice task. Each of these services do a wait operation.

Points to Consider

• Your downstream fulllment systems can't nish the task until you release the hold.
• Order Management ignores a hold that you apply on a pause task. The pause task will resume according to its
own conditions.
• For a congured item, make sure you apply the hold on the congured item. Don't apply a hold on a congure
option. For details, see the Sales Order Hold topic.
• You can't enable a hold on a service that uses a Wait, Apply Hold, Release Hold, or Inbound operation. For
example, the Wait for Shipment task places the orchestration process in a wait state that's eectively the
same as a hold, so its not necessary to place a hold when the process is already waiting. If you must hold the
orchestration process, then add the hold to the step immediately before the Apply Hold, Release Hold, or
Inbound operation step.

Example Hold Codes


Here are some examples you might nd useful.

Code Name Task Type Service to Hold

DOO_ACTIVTY HOLD CREATE ACTIVITY Activity Create Activity.


       

DOO_SCHDL SCHLD Schedule Create Scheduling and Cancel


      Scheduling.
 

DOO_SCHLD_ALL SCHLD_ALL - All scheduling services.


       

DOO_RSRV RESRV Reservation Create Reservation and Cancel


      Reservation.

810
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Code Name Task Type Service to Hold

DOO_RSRV_ALL RESRV_ALL - All reservation services.


       

DOO_ SHIP_CREATE HOLD CREATE SHIP Shipment Create Shipping.


       

DOO_SHIP_ALL SHIP_ALL - All shipping services.


       

DOO_RCV_CREATE HOLD CREATE RECEIVE Return Create Expected Receipt


      Advice.
 

DOO_ INVOICE_ CREATE HOLD CREATE INVOICE Invoice Create Billing Lines.
       

See Where You Can Release Holds

If I Apply Hold Here Can I Release it on Create Can I Release It in Fulllment Can I Release It Through
Order or Revise Order Page View in Order Management Web Service
in Order Management Work Work Area
Area

Create Order or Revise Order Yes Yes Yes, but only if you applied the
Page in Order Management     hold on the order header or
Work Area order line.
   
You can't use the web service
to release a hold that you
apply on a fulllment line on
the Revise Order page.
 

Fulllment View Yes, but only if you applied the Yes Yes, but only if you applied the
  hold on the order header or   hold on the order header.
fulllment line.  
  You can't use the web service
You can't use the Revise to release a hold that you
Page to release a hold apply on a fulllment line in a
that you applied on an fulllment view.
order line because you  
already submied the order,
and Order Management
transformed the order line to a
fulllment line.
 

Web Service Yes, but only if you applied the Yes Yes
  hold on the order header.    
 
You can't use the Create page
or Revise page to release a
hold that you apply on an

811
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

If I Apply Hold Here Can I Release it on Create Can I Release It in Fulllment Can I Release It Through
Order or Revise Order Page View in Order Management Web Service
in Order Management Work Work Area
Area

order line or fulllment line


through the web service.
 

Make Sure You Have the Privileges


A job role has privileges. Make sure you sign in with a job role that has the privileges you need.

What I Need to Do Job Role You Need to Do It Formal Name of Job Role

Set up a hold code. Order Administrator ORA_ DOO_ ORDER_ ADMINISTRATOR_


    JOB
 

Apply, release, or view a hold on a sales Order Entry Specialist or Order Manager ORA_ DOO_ ORDER_ ENTRY_
order, order line, or fulllment line on the   SPECIALIST_JOB ORA_ DOO_ ORDER_
Create Order page, Revise Order page, or MANAGER_JOB
in a fulllment view.  
 

View a hold on an orchestration process in Order Manager ORA_ DOO_ ORDER_ MANAGER_JOB
a fulllment view.    
 

Apply or release a hold through a web Create your own role.


service.   Add privileges to your role.
 
• DOO_MANAGE_ORDER_ORCHESTRATION_DECO
• DOO_MANAGE_ORDER_ORCHESTRATION_ORDE

Import Holds Through Web Service


Use a web service to import holds.

Here's an example payload that applies the DOO_SHIP_ALL hold on order line 101 for source order 20156 that you
import from source system LEG.
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope>
<soapenv:Header/>
<soapenv:Body>
<dood:RequestHoldProcessRequest>
<!-1 or more repetitions:-->
<dood:ApplyHoldRequestParams>
<dood:SourceOrderSystem>LEG</dood:SourceOrderSystem>
<!--Optional:-->
<dood:SourceOrderId>20156</dood:SourceOrderId>
<!--Optional:-->
<dood:SourceLineId>101</dood:SourceLineId>
<!--Optional:-->
<dood:SourceHoldCode>DOO_SHIP_ALL</dood:SourceHoldCode>
<!--Optional:-->
<dood:HoldComments>Hold Shipping</dood:HoldComments>
<!--Optional:-->

812
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

<dood:SourceOrderNumber></dood:SourceOrderNumber>
<!--Optional:-->
<dood:SourceOrderLineNumber></dood:SourceOrderLineNumber>
<!--Optional:-->
<dood:HoldName></dood:HoldName>
<!--Optional:-->
<dood:AppliedBy>?</dood:AppliedBy>
</dood:ApplyHoldRequestParams>
</dood:RequestHoldProcessRequest>
</soapenv:Body>
</soapenv:Envelope>

Here's an example payload that releases the hold.


<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope>
<soapenv:Header/>
<soapenv:Body>
<dood:ReleaseHoldProcessRequest>
<!-1 or more repetitions:-->
<dood:ReleaseHoldRequestParams>
<dood:SourceOrderSystem>LEG</dood:SourceOrderSystem>
<!--Optional:-->
<dood:SourceOrderId>20156</dood:SourceOrderId>
<!--Optional:-->
<dood:SourceLineId>101</dood:SourceLineId>
<!--Optional:-->
<dood:SourceHoldCode>DOO_SHIP_ALL</dood:SourceHoldCode>
<!--Optional:-->
<dood:HoldReleaseReasonCode>DOO_RELEASE_SHIP</dood:HoldReleaseReasonCode>
<!--Optional:-->
<dood:HoldComments>Remove Hold</dood:HoldComments>
<!--Optional:-->
<dood:SourceOrderNumber>?</dood:SourceOrderNumber>
<!--Optional:-->
<dood:SourceOrderLineNumber>?</dood:SourceOrderLineNumber>
<!--Optional:-->
<dood:HoldName>?</dood:HoldName>
<!--Optional:-->
<dood:HoldReleaseReasonName>?</dood:HoldReleaseReasonName>
<!--Optional:-->
<dood:ReleasedBy>?</dood:ReleasedBy>
</dood:ReleaseHoldRequestParams>
</dood:ReleaseHoldProcessRequest>
</soapenv:Body>
</soapenv:Envelope>

Note.
• Use web service ReceiveOrderRequestService. For details, see the Web Services You Can Use to Integrate Order
Management topic.
• To apply a hold on the order header, include a value for SourceOrderId but not for SourceLineId. The hold will
apply to the header and all lines in the order.
• To apply or release a hold on the order line, you must include a value for SourceOrderId and for SourceLineId.
• Apply or release a hold on more than one sales order. Use the same soapenv:Header and soapenv:Body, and
include a separate RequestHoldProcessRequest section or ReleaseHoldProcessRequest section for each sales
order. For example.
<soapenv:header> ..... </soapenv:header>
<soapenv:body>
<RequestHoldProcessRequest>
<SalesOrderNumber>1234</SalesOrderNumber>
<SalesOrderSystem>GPR</SalesOrderSystem>
</RequestHoldProcessRequest>

813
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

<RequestHoldProcessRequest>
<SalesOrderNumber>2345</SalesOrderNumber>
<SalesOrderSystem>GPR</SalesOrderSystem>
</RequestHoldProcessRequest>
</soapenv:body>

• You can't include RequestHoldProcessRequest and ReleaseHoldProcessRequest in the same soapenv:Body.


• The web service imports the order with the Hold Tasks In Progress option as enabled when applying or
releasing a hold.
• If you apply or release a hold on any source line that's part of a shipment set, then Order Management applies
or releases the hold on all lines that are part of the set.
If you apply a hold on a line that's part of a shipment set, then Order Management queries the database to
determine whether other lines in the same shipment set exist on the sales order. If it doesn't nd any other lines
in the set, then it applies the hold only on the line that you specify in the payload. The same behavior applies
when you release a hold.
Assume shipment set n includes lines x, y, and z. If your import applies a hold on line x, then Order
Management applies the same hold on lines y and z. Order Management applies the hold on lines y and z even
if you don't include them in your payloads.
• You can't use the web service to apply or release a hold on a sales order that's in Draft status.

Migrate Your Hold Setups


For details, see the Copy Setups Between Instances of Order Management topic.

Related Topics
• Sales Order Hold
• Web Services You Can Use to Integrate Order Management
• Copy Setups Between Instances of Order Management

Use Holds to Stop Orchestration Processes


Set up a hold code that allows your users to place a hold on a sales order.
The hold stops the service that the orchestration process references.

You can set up a hold code only for a hold that originates in Order Management. You can't use it for a hold that
originates in some other application.

Summary of the Set Up

Assume you're an order administrator for Vision Corporation, and your sales engineers have informed you that a
problem might exist with an item. You must create a hold code that your users can use to temporarily hold all sales
orders that reference the item while your sales engineers investigate the problem.
1. Create a hold code.
2. Specify job roles that manage holds.
3. Create a release reason.
4. Test your set up.
This topic includes example values. You might use dierent values, depending on your business requirements.

814
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Create a Hold Code


1. In the Navigator, click Setup and Maintenance.
2. In the Setup and Maintenance work area, go to the task.

◦ Oering: Order Management


◦ Functional Area: Orders
◦ Task: Manage Hold Codes
3. On the Manage Hold Denitions page, click Actions > Add Row, then set values.

Aribute Value

Code hold_ item_issue


   

Name Hold to Investigate Item


   

Description This hold allows us to investigate a problem that occurred with the item.
   

Hold All Services Contains a check mark.


   
This value species to apply a hold on all services. Task layer services determine whether
Order Management aaches a hold code to the fulllment line, or to the sales order for one
or more fulllment tasks that the orchestration process references.
 

Set COMMON
   
You can use Set to specify the business unit set that Order Management uses with a hold
code. You can assign a hold code to a single business unit, or you can assign more than one
hold code to sets of business units. These sets can share hold codes.
 

4. Optional. Specify each service where Order Management must apply the hold.

For example, do these steps to apply the hold only for the Shipment service.

◦ Make sure the Hold All Services option doesn't contain a check mark.
◦ In the Hold to Investigate Item: Services area, click Actions > Select and Add.
◦ In the Select and Add: Services dialog, leave all aributes empty, then click Search.
◦ Click a row that displays Shipment in the Task Type column.
◦ For this example, you must apply the hold to all services, so click Cancel, then add a check mark to option
Hold All Services.
5. Click Save.

Specify Job Roles That Manage Holds


As an option, you can specify who can apply or release a hold according to the job role that the user uses when signing
into Order Management.

815
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Order Management might place a sales order on hold for a variety of reasons. Your business requirements might
demand that a person who possesses the correct knowledge or authority to release a hold. Controlling holds according
to job role helps you improve security by limiting functionality according to role. It also helps you decrease order
processing time and reduce downstream problems that might be related to a hold that nobody released.

For example, allow role x to apply and release hold 1, and apply hold 2 but not release hold 2.

Assume you must allow the Order Manager job role to apply and release a hold, and allow the Order Entry Specialist job
role to apply a hold but not release it.

Specify job roles that manage holds.


1. In the Details area, click Applicable Roles, then, in the Apply Hold area and in the Release Hold area, make sure
the Selected Roles option is black.
2. Click Actions > Select and Add.
3. In the Search dialog, search for Order Manager, then click Apply > OK.
4. Click Actions > Select and Add.
5. In the Search dialog, search for Order Entry Specialist, then click Apply > OK.
6. In the Details area, set options for the roles.

Role Apply Hold Release Hold

Order Manager Contains a check mark. Contains a check mark.


     

Order Entry Specialist Contains a check mark. Doesn't contain a check mark.
     

816
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

7. Click Save and Close.


Create Your Own Job Role

If none of the predened job roles meet your needs, then create your own job role.

Assume users in the Vision Services department of Vision Corporation receive service calls from customers
who are inquiring about the status of a sales order, such as what item the customer ordered, and expected
delivery date. The user must view the sales order, but not edit it. Assume you already created a user named
order_entry_specialist_vision_services to meet this requirement.

For details about job roles, see the Assign Job Roles in Order Management topic.

Create your own job role.

1. Examine the predened job roles to determine whether any of them meet your needs.

◦ Scan the Security Reference for Order Management book.


◦ For this example, examine the Privileges section in the Job Role: Order Entry Specialist chapter, then
notice the View Orders privilege.
2. Sign into Oracle Applications with job role IT Security Manager (ora_fnd_it_security_manager_job).
3. Create the job role.

◦ In the Navigator, click Setup and Maintenance.


◦ In the Setup and Maintenance work area, go to the task.

• Oering: Order Management


• Functional Area: Users and Security
• Task: Manage Job Roles
◦ On the Roles page, click Create Role, set values, then click Next.

Aribute Value

Role Name View Orders


   

Role Code view_orders


   

Role Category SCM - Job Roles


   

◦ Click Add Function Security Policy.


◦ In the Add Function Security Policy dialog, search for View Orders, click Add Privilege to Role, conrm
the addition, then click Cancel.
◦ On the Create Role View Orders: Function Security Policies page, click Next several times until you reach
the Users page.
◦ On the Create Role View Orders: Users page, search for, then add the
order_entry_specialist_vision_services user.

The values you can search for depend on the users you created in your environment.
◦ Click Next > Save and Close.

817
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

4. Get LDAP (Lightweight Directory Access Protocol) changes.

◦ In the Navigator, click Scheduled Processes.


◦ On the Scheduled Processes page, run the Retrieve Latest LDAP Changes scheduled process.
◦ In the Conrmation dialog, note the process number, such as 75603.

On the Scheduled Processes page, click Actions > Refresh. Continue to refresh until the status of your
scheduled process is Succeeded.
5. Synchronize users and roles.

◦ In the Navigator, click Setup and Maintenance.


◦ On the Setup and Maintenance page, search for, then open Run User and Roles Synchronization.

For details about this task, see book SCM Cloud: Implementing Common Features for Oracle SCM Cloud.
◦ On the page that displays, click Submit.
6. Use the Manage Hold Denitions page to add your new job role to the hold code.

818
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Create a Release Reason


Create a reason that your user can choose to indicate why they released the hold.

Try it.

1. In the Setup and Maintenance work area, go to the task.

◦ Oering: Order Management


◦ Functional Area: Orders
◦ Task: Manage Order Lookups
2. On the Manage Order Lookups page, enter the value, then click Search.

819
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Aribute Value

Lookup Type DOO_ HLD_ RELEASE_REASON


   

3. In the DOO_HLD_RELEASE_REASON: Lookup Codes area, click Actions > New then set values.

Aribute Value

Lookup Code doo_ hldrel_ item_ok


   

Display Sequence 1
   

Start Date The current date.


   

End Date One week from today.


   

Meaning Fixed Problem with Item


   

Description Fixed the problem with the item.


   

4. Click Save and Close.

Test Your Set Up


1. Sign into Order Management with the Order Manager job role.
2. In the Order Management work area, on the Overview page, click Actions > Manage Orders.
3. On the Manage Orders page, enter the value, then click Search.

Aribute Value

Status Equals Processing


   

4. In the search results, in the Order column, click a link.


5. On the Order page, in the Order Lines area, click Apply Hold.
6. In the Apply Hold dialog, set the value, then click Save and Close.

Aribute Value

Hold Name Hold to Investigate Item


   
This is the name of the hold that you created earlier in this topic.
 

820
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

7. In the Order Lines area, to verify that Order Management placed a hold on the order line, make sure it displays
the On Hold icon.

8. Click the arrow next to Apply Hold, then click Release Hold.
9. In the Release Hold dialog, set values, then click Save and Close. You dened these values earlier in this topic.

Aribute Value

Hold Name Hold to Investigate Item


   

Release Reason Fixed the Item Problem


   

10. Sign out of Order Management, then sign back in with the Order Entry Specialist role.
11. Repeat the steps described above, but verify that Order Management doesn't display Release Hold when you
click the arrow next to Apply Hold.

Related Topics
• Sales Order Hold

821
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Manage Sales Order Holds Across Systems


Use a web service to manage sales order holds across systems and channels, including your source systems and
fulllment systems.

Note.

• Apply or release a hold regardless of the channel where you applied it.
• Apply hold n in fulllment system x, then release it in fulllment system y.
• Use web services to communicate changes through Order Management to your fulllment systems.

822
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

• Release holds in the Order Management work area.

Here's an example web service payload that uses the SourceHoldCode aribute to apply and release a hold.

Note.
• The top line in the image is truncated. Here's the full line.

<soapenv:Evelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:dood=href

• Release a hold regardless of the channel that applied the hold. For example, assume fulllment system
x is a channel, fulllment system y is a channel, and the Order Management work area is a channel.
Assume fulllment system x uses a web service to apply hold on sales order 759674. You can use the Order
Management work area to release the hold on sales order 759674.
• Use a web service to release a hold on a sales order header that the Order Management work area applied.
• Use a web service to apply a hold on a fulllment line.
• Use the Order Management work area to manually release a hold that a web service automatically placed.
• Use the Order Management work area to manually apply a hold on a Draft sales order.

823
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

• Use the Order Lines tab in a fulllment view in the Order Management work area to apply a hold on a fulllment
line. The Order page that you access from the Manage Orders page is an example of a fulllment view.

Note the limitations.

• You can't use a web service to apply a hold on a Draft sales order.
• Release a hold on a fulllment line only from the Order Lines tab in a fulllment view in the Order Management
work area.
• You can't use a web service to release a hold on a fulllment line.
• You can't use a web service to apply a hold on a fulllment line when the web service integrates with an order
capture system. Most order capture systems focus on inputs to sales order, such as customer and item. They
don't integrate directly with a fulllment system, so they don't provide or manage the details that a fulllment
line hold requires.

Related Topics
• Sales Order Hold
• Guidelines for Using Web Services to Integrate Order Management

824
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Set Up Task Types for Holds


The Order Entry Specialist can choose the service when placing a hold on a sales order or order line, such as the
shipping service. If you create your own task type that references the service, then you must set up the task type so it
supports the hold.

825
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Assume you create your own task type named My Shipment. You want to allow the Order Entry Specialist to place the
sales order on hold when the order reaches the orchestration process step that references the My Shipment task type.

1. In the Setup and Maintenance work area, go to the task.

◦ Oering: Order Management


◦ Functional Area: Orders
◦ Task: Manage Task Types
2. On the Manage task types page, click Actions > Add Custom, set values, then click Save.

Aribute Value

Task Type My Shipment


   

Description My Shipment
   

3. Click the row that contains My Shipment in the Task Type column.
4. Click Services.

Notice that the Manage Task Types page automatically adds a create service and enables it for holds.

Code Name Operation Code Hold Enabled

My Shipment Create My Shipment Create Create Contains a check mark.


       

Don't modify this service.


5. Add a service that applies the hold and another one that releases the hold.

For example.

Code Name Operation Code Hold Enabled

Hold My Shipping Hold My Shipping Apply hold Doesn't contain a check mark.
       

Release Hold on My Shipping Release Hold on My Shipping Release hold Doesn't contain a check mark.
       

6. Click Save and Close.

Related Topics
• How Data Flows Through Order Management
• Actions You Can Set When Routing Requests to Fulllment Systems

826
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Fulllment Task
Fulllment Tasks
Use a task type to specify the type of fulllment task that the orchestration process step does, such as schedule a
fulllment line for shipment, ship it, or conrm delivery.
A task type is group of services that Order Management uses to do a fulllment task. It represents a common
business function that processes a sales order from the time your user creates the sales order to the time that Order
Management sends the order to your order fulllment system.

827
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Here are some typical task types, the services they call, and the sequence you use to run them. This example starts with
reservation.

Note.

• Each predened task type comes with a set of services.


• Reservation is an example of a task type. It contains a set of services that communicate with your fulllment
system to reserve inventory according to the Item aribute and Quantity aribute of your fulllment line. For
example, it uses the Create Inventory Reservation service to reserve supply in inventory.

828
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

• A typical sequence is to use services to reserve inventory for your item, schedule it for shipping, ship it, then
invoice it.
◦ Create Inventory Reservation
◦ Create Schedule
◦ Create Shipping
◦ Create Billing Lines

You can.
• Use a task to represent the services that the task type references. For example, if you create a Ship Goods task
that references services from the Shipment task type, then the Order Management work area displays Ship
Goods when a Shipment service runs, regardless of whether it calls the Create Shipment service or the Update
Shipment service. The Order Management work area doesn't display the service. It displays only the task.
• Create a new task type.
• Add more than one task to your new task type, such as ShipGoods or ShipWidgets.
• Add a predened service to your new task type.
• Edit the service names of an activity or task type you create.

You can't.
• Modify the name of a task type after you create it because other objects in your setup might reference the
name.
• Modify or delete a predened task type.
• Edit or delete a predened service.

Predened Task Types


To reduce set up time and maintenance, use a predened task type. Create a new task type only if the predened ones
don't meet your needs.

Here are some task types you frequently use.

Task Type Description

Schedule Schedule the fulllment line.


   

Reservation Reserve inventory for the item.


   

Shipment Communicate with your fulllment system to ship the item.


   

Invoice Communicate with your billing system to create an invoice for the fulllment line.
   

Return Communicate with your fulllment system to return the item.


   

FulllOrder Integrate between Order Management and an Enterprise Resource Planning (ERP) system.
  Note that fulllment tasks can run more than one fulllment action through a single request,
such as shipment and invoice.

829
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Task Type Description

Pause Temporarily pause processing to wait until a date to occur, an event to occur, or a dependency
  to resolve before proceeding to the next orchestration process step.
 
Use the pause task to coordinate processing across more than one fulllment line in one sales
order.
 

Activity Communicate with your fulllment system to manage a human activity, such as install the
  AS54888 Desktop Computer.
 

DOO_ Procurement Source and ship the item when you procure the item from an organization that resides outside
  of your typical supply chain.
 

DOO_Supply Communicate with Oracle Fusion Supply Chain Orchestration so you can use more complex
  logic when you source the item.
 

Use the Manage Task Types page in the Setup and Maintenance work area to get the complete list of task types and the
services you can use with each task type.

830
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Create Your Own Task Type


The Create Orchestration Process Denition page references the Manage Task Types page to get the values it displays
for the task, type task, and service that you can choose on each step.

Note.

• Use the Manage Task Types page to create your own task type.
• Add services to your task type.
• For example, the Schedule task type includes services.

◦ Create Scheduling

831
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

◦ Update Scheduling
◦ Cancel Scheduling

• Set the task type, task, and service on the step.

Task Services
Use dierent task services to fulll dierent types of fulllment requests.

Note.

• You set the task service on the orchestration process step.

832
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

• Each service does a specic fulllment task, such as Create Scheduling.


• The service communicates a fulllment request to an application in your fulllment system. For example.

◦ The Create Scheduling service communicates with Order Promising.


◦ The Create Inventory Reservation, Create Shipping, and Wait for Shipment services communicate with
Inventory Management.
◦ The Create Billing Lines and Wait for Billing services communicate with Receivables.

• Fulllment systems communicate updates back to the services, such as status.


• Communication occurs through the external interface.
• You can set up other fulllment systems. For details, see the Integrate chapter in the Implementing Order
Management book.

Activity Services
Activity services send an activity request to your fulllment system. The fulllment system creates and fullls the
activity, then sends replies and updates to the activity service. The activity service interprets these replies and updates.

An activity is an event that occurs outside of Order Management Cloud. For example, an orchestration process might
include an activity task type to set up a network router.
• An activity contains the details needed to nish the task.
• Your users can do an activity as part of nishing order fulllment. Order Management can assign an activity to
one of your users.
• Each activity includes aributes, such as subject, activity type, earliest start date, due date, scheduled duration,
actual duration, percent complete, and assignee.
• Order Management can associate an activity with one or more fulllment lines.
• The activity service doesn't typically immediately fulll an activity task, so a wait service allows the orchestration
process to wait for the activity to nish.
• Order Management doesn't support partial fulllment. An activity step must nish before the orchestration
process can proceed to the next orchestration process step.

Note.

Service Feature Description

Send request to fulllment system. Send a Create Activity request to the fulllment system that creates the activity.
   
If the service receives a change order, then it changes or cancels the activity, as necessary.
 
If Order Management applies a hold on a sales order, then the activity service sends a request
to the fulllment system to hold the activity that's currently in progress.
 

Receive activity status update. You can schedule an orchestration process that periodically gets the updated activity status.
   

Modify activity. • An activity is a predened task type. You can also create a new activity task type, and
  use an extensible exeld to modify an activity.
• You can enable an activity default in a task type or orchestration process step. Default
the activity type so you can categorize activities, then your fulllment system can run
business logic and do validation according to the activity type.

833
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Service Feature Description

• If you don't set the default value for the task type or the orchestration process step, then
Order Management sets the subject of the activity to the name of the step.
• You can use some fulllment systems to create an activity template that supports a
human task. To use the template, you can specify the activity template for a task type
or an orchestration process step that creates the activity according to the predened
template when you dene the task type and the orchestration process.

Reserve, Schedule, and Hold Services


Use these services to orchestrate the item in inventory.

Service Description

Reserve services Send a reservation request to the part of your fulllment system that manages inventory. A
  reservation reserves the supply for a sales order so no other sales order or inventory system
can use the supply.
 

Schedule services
  Send a scheduling request to order promising. For example, to schedule a sales order, remove
the schedule from a sales order, or determine whether the item is available.

• Scheduling applies to fulllment lines that are waiting for manual scheduling and
fulllment lines that fail scheduling in the automated or manual process.
• Scheduling works only for fulllment lines that aren't scheduled. Order Management
doesn't allow automatic rescheduling from the Order Management work area.

Hold services Send a hold request to the fulllment system. For example, the Hold Shipping service can
  send a hold request from Order Management to the part of your fulllment system that does
shipping.
 

Shipment Services
Shipment services send a shipment request to the part of your fulllment system that does shipping.

Service Feature Description

Send shipment request to fulllment If Order Management receives a change order, then the shipment service changes or cancels
system. the shipment request, if necessary.
   
If someone applies a shipping hold, and if the Hold on Running Task option is enabled, and
if the task that's running is a Shipping task, then the shipment service sends a request to the
shipping system to hold the shipment request that its currently processing.
 

Consolidate fulllment lines. Consolidate the fulllment lines of a shipment set or a congured item, then send all the lines
  of the shipment set or the congured item as a group to the shipping system.
 

834
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Service Feature Description

Receive fulllment line details and


status updates from the shipping The shipping system might send fulllment line details to Order Management when a status
system and update business objects update occurs, including before it conrms the shipment. These details might include freight
in Order Management. cost, tracking number, way bill number, and so on.
 
Order Management interprets the update it gets from the shipping system, then uses one of
these predened values to update status.

• Picked
• Packed
• Shipped
• Backordered

Note.

• The shipment service continues to interpret the updates it receives from the shipping
system even after the shipping system ships fulllment lines. It sends details about
these updates to Order Management.
• If the shipping system uses more than one currency to represent cost, then the
shipment service converts them before it sends the update to Order Management.
• If the shipping system uses a unit of measure to represent shipping that's dierent from
the unit of measure that Order Management uses in the sales order, then the shipment
service converts the unit of measure back to the unit of measure that the sales order
uses, then communicates the shipped quantity to Order Management.

Split a fulllment line, shipment set,


or congured item when only part of If only part of a fulllment line ships, then the shipment service splits the line into.
a shipment ships.
  • One fulllment line that includes the quantity that shipped
• Another fulllment line that includes the quantity that didn't ship

If only some fulllment lines ship for a.

• Shipment set. The shipment service removes the lines that didn't ship from the
shipment set.
• Congured item. The shipment service splits the congured item into a shipped item
and an item that hasn't shipped.

Invoice Services
Invoice services send a request to the part of your fulllment system that does billing and interprets the replies it
receives from this system.

• The billing system creates the invoice and the credit transactions.
• Order Management doesn't allow you to modify a fulllment line after the invoice service sends the request.
• If you use a source system that resides outside of Order Management, then the source system must provide
most of the data that the billing system requires to nish billing. Order Management stores these details, then
routes the billing request to the billing system.

835
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Service Feature Description

Send fulllment line details from the


fulllment system. The Create Billing Lines service sends billing details from the sales order or the return order
  each time the fulllment line is eligible for billing. For example, it sends unit list price, unit
selling price, discounts, charges, tax aributes, sales credits, and fulllment details.

• An invoice service sends charges that occur in the order header with the rst fulllment
line that Order Management fullls for the sales order.
• If the fulllment line doesn't include payment details or sales credits, then the invoice
service sends these details from the order header.
• The invoice service sends prepayment details from the order header for all fulllment
lines.
• Order Management doesn't support discounts that occur in the order header.

Return lines The invoice service sends the reference to the original sales order line, the return reason,
  received quantity, and delivered quantity.
 

Shipment set or congured item The invoice service sends the fulllment lines that the shipment set or the congured item
  contains together. If the fulllment system fullls only some lines in the shipment set or
congured item, then the invoice service sends only the fullled lines.
 

Note: A change order from Order Management can't update an invoice. A change to an invoice is typically a
credit from a return order or prepayment. Its not typically a cancel.

The billing system processes the data that it receives, then sends details to the invoice service.
• Invoice details
• Credit memo details
• Billing amount
• Billing date
• Invoice date or credit memo date
• Number
• Status
• Legal entity details

It sends one of these statuses.


• Await Billing
• Billed

Return Services
Return services send a request to the part of your fulllment system that does receiving and interprets the reply and
update that it receives from the receiving system.
• The return service creates a change receipt advice or a cancel receipt advice when Order Management receives
a return request.
• The request might include one or more aribute updates, such as to increase the receipt quantity.
• If Order Management receives a request to change the original copy of the sales order that the customer
returned, then the return service sends a request to the fulllment system that creates the receipt advice.

836
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

• If Order Management receives a request to cancel the original copy of the sales order line that the customer
returned, then the return service cancels the receipt advice. Order Management typically allows cancel until the
fulllment system receives the returned items.
• If the ordered quantity is greater than the delivered quantity on the receipt advice, and if the customer doesn't
require the ordered quantity, then the return service can request to cancel the remaining quantity.

How Return Services Handle Partial Returns

Return services can process a partial receipt, such as the return of only some items of a congured item.

If the customer returns only part of the return, then the return service splits the fulllment line into two lines.

• One line includes a status of Delivered for the items the customer returned
• One line includes the items the customer didn't return

If the customer returns only part of the original order, and if the return includes a congured item or kit, then the return
service splits the fulllment line into two orchestration groups.

• One group includes the fulllment lines that the customer returned
• One group includes the fulllment lines that the customer didn't return or that aren't returnable

How Return Services Handle Events

The receiving system that starts the event might send a status update for the return. For example, if the receiving dock
receives the item, then the receiving system might send a status update that starts an event that creates the receipt
advice. Here are the events in the receiving system that might start a status update in Order Management.

• Receive the item on the receiving dock when the receipt is created.
• Deliver the item into inventory.
• Return the item to a customer.
• Correct the sales order after a receipt transaction occurs. For example, a customer can't return a deliver
transaction.

Fulll Order Services


Fulll order services send a request to and receives a status update from your fulllment system. They can also send a
request to and receive a status update from a system that manages enterprise resource planning (ERP).

Fulll order services can send a request that modies a sales order that resides in Order Management, and that the
fulllment system uses.

• Create.
• Update.
• Place hold.
• Release hold.
• Update status.
• Cancel.

Fulll order services also.

• Send an update to the fulllment system each time Order Management accepts a change order that aects
fulllment.

837
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

• Receive interim and nal status updates from the fulllment system. Fulll order services don't immediately
send a reply. They send the reply when the fulllment activity runs.

For more details, see the Parameters You Can Use When Routing Requests to Fulllment Systems topic.

Related Topics
• How Data Flows Through Order Management
• Actions You Can Set When Routing Requests to Fulllment Systems

Create Your Own Task Type


Create a task type that species the services you need to nish a fulllment task.
Assume you need to create a new task type named Pause_for_Backorder.
1. Add the task type.

◦ In the Navigator, click Setup and Maintenance.


◦ In the Setup and Maintenance work area, go to the task.
• Oering: Order Management
• Functional Area: Orders
• Task: Manage Task Types
◦ On the Manage Task Types page, click Actions > Add Custom.
◦ The page adds a new row. Enter a value.

Aribute Value

Task Type Pause_ for_Backorder


   

◦ Step out of the Task Type aribute.

Notice that the page adds services in the Services list. The page copies the value you enter in the Task Type
aribute, appends it with the type of service, such as Create, then inserts the value in the Code column of the
service. For example.

Code Name

Pause_ for_Backorder Create Pause_ for_Backorder Create


   

Pause_ for_Backorder Inbound Pause_ for_Backorder Inbound


   

Note.

◦ One service references the outbound Create operation code.

838
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

◦ One service references the Inbound operation code.


◦ You can specify a name for each service, and you can add a service that references some other operation
code, such as Change, Get Status, Apply Hold, Release Hold, or Cancel. You must create at least one task
for each new task type.
◦ If you step out of the Task Type aribute, and then come back to the Task Type aribute and change
the value, then the page doesn't update values in the Code column, and values between the task type
and the services it references will be dierent. If you then click Save, the Code aribute in the Services
list becomes read-only and you can't change it. The task type and its services will work, but having code
names that are dierent from the task type might be confusing in other parts of your set up. So, its
recommended that, if you change the Task Type aribute, that you also change the Code in the Services
list before you click Save.

For example, assume you create a new task type, set the Task Type aribute to Pause_for_Backorder,
tab out of the aribute, the page adds service Pause_for_Backorder Create, you change the Task
Type aribute to Pause_for_Backorder_During_Drop_Ship, but the Code aribute in the service is still
Pause_for_Backorder Create. Its recommended that you change the Code column in the services lists to
Pause_for_Backorder_During_Drop_Ship Create before you click Save.
2. Assign a status code to the task type.

Order Management sets a default value for some system status codes, such as Pending, Change Pending,
Cancel, or Canceled. The status code that each task type references also controls the values for the exit criteria
on a wait step that uses the task type, and the value of the task status in the next orchestration process step.
You can create a new status code, or you can assign a status code that already exists.
3. Click Save.
4. Connect Order Management to the fulllment system that will do the tasks and services that your new task type
references.

5. Reference your new task type when you create the orchestration process step.

Reference it in the same way you reference a predened task type.


For details about exit criteria, branches, wait steps, and using a task type in an orchestration process, see the
Orchestration Processes chapter in the Implementing Order Management book.

Optional Setup for New Task Types

Type of Setup Description

Preprocessing
  Add preprocessing logic. For example.

• Set default values for data onto the outbound request.


• Validate data on the outbound request.

Postprocessing
  Add postprocessing logic. For example.

• Set default values for data on the inbound request.


• Validate data on the inbound request.
• Interpret aributes or messages that your fulllment system returns that might require
Order Management to split processing across more than one orchestration process.

839
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Type of Setup Description

Change management Use change management on an orchestration process step that references your new task type.
  Specify the aributes for the task type on the Manage Order Aributes That Identify Change
page.
 
Make sure your task type references the Update service and the Cancel service, and the
connectors that these services require.
 

Hold code To apply a hold to your new service, create hold codes for it. Hold All applies to your new
  service and to services that already exist.
 

Jeopardy threshold To include a jeopardy score for your new task, set up a jeopardy threshold for it.
   

Processing constraint Create a processing constraint that controls when to use your new task. For example, use a
  processing constraint that species the aributes that are required in the outbound request or
on the inbound reply.
 

Data set used as part of outbound


request Consider these requests.
 
• GetValidFLineData
• The preprocessing service
• Routing rules for the interface layer

If you use one of them, then the template task uses a complete data set to communicate Order
Management aributes.

Reduce the data set to make processing more ecient.

Register error messages If your fulllment system sends error messages to Order Management and you prefer to
  process and display them in Order Management, then you must register them.
 

Maintain Data Integrity


Order Management automatically maintains data integrity for your new task type.
• Makes sure the service data object includes data for each required aribute.
• Determines the transaction data to update as a result of the service call to your fulllment system. This data
resides in the transaction tables that Order Management uses.

Maintaining data integrity makes sure the task type you create displays correctly throughout the Order Management
work area. Order Management also makes sure functionality works correctly with your new task type.
• Status update
• Wait step
• Forward planning
• Jeopardy
• Hold processing
• Split processing

840
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

• Change management
• Error recovery

Related Topics
• Manage Connector Details Between Order Management and Your Fulllment System

Guidelines for Reserving Inventory


Reserve inventory to make sure its available for your sales order when its time to pick your item in the warehouse.

841
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Reserve supply for a sales order so no other demand can use the supply. Demand includes other fulllment lines in your
sales order, fulllment lines in other sales orders, transfer orders, work orders, and so on.

You use the Create Inventory Reservations fulllment task to reserve supply. Here's what it does.

• Uses your inventory system to reserve physical supply that currently exists in the warehouse.
• Doesn't reserve future supply, such as supply that's scheduled to be built.
• Reserves supply for each fulllment line.
• Reserves the entire quantity on the fulllment line.

◦ You can't reserve only part of the quantity.

842
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

◦ If the entire quantity isn't available in inventory, then the reservation task doesn't reserve any quantity.

For example, if the quantity on fulllment line x for item AS54888 is 4, and if there's only a quantity of 3
in inventory, then the reservation task doesn't reserve any quantity.
• Reserves only from inventory that's currently available. It doesn't reserve according to date. It reserves from
current inventory even if your sales order includes a scheduled ship date that occurs in the future.
• Automatically reserves each item where you set the Reservable aribute and the Back-to-Back Enabled
aribute to Yes for the item in Product Information Management.
• Reserves items that aren't congured and items that are congured.
• Reserves all items in each assemble-to-order model, pick-to-order model, kit, or ship set together. It doesn't
reserve individual items or only some items in each model, kit, or ship set.

Assume you sell a desktop computer as a model, and the model includes the CPU, memory, hard drive,
monitor, keyboard, and mouse. If inventory has everything in stock except the memory, then the task doesn't
reserve anything.

You can't reserve.

• Coverage, such as a warranty for a desktop computer


• Subscription, such as a magazine subscription
• Item that a lot or serial controls from a specic lot or a specic set of serial numbers
• From a specic subinventory.
• Through a web service.

Set Up Your Orchestration Process


The predened DOO_OrderFulllmentGenericProcess orchestration process comes already set up with a step that
references the create reservation task. Use it to automatically reserve inventory.

• Reserve only according to quantity.


• Your ow must provide the item, quantity, unit of measure, and warehouse.
• Reserve the total requested quantity or it fails. You can't use it to reserve only part of the quantity.
• It doesn't consider the requested date.

843
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Use DOO_OrderFulllmentGenericProcess or create a copy of it, then add an optional pause step.

Note.

• Use the pause step to pause the orchestration process until the shipment is almost ready to ship.
• The reservation step will provide a more accurate picture of supply that's available because it's closer to the
ship date.
• Waiting to reserve supply can also reduce the cost of holding inventory until it's time to ship.

844
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

If you.

• Enable the Manual Aribute on any step in the orchestration process. Order Management enables the
Reserve action on the Management Fulllment Lines page and waits for the user to manually reserve the
fulllment line.
• Don't enable it on any step.. Order Management disables the Reserve action and the process doesn't wait for
the user to manually reserve the fulllment line.

The step details in the graphic might be a lile hard to read. Here are the same details.

Step Step Name Step Type Task Type Task Service Manual

100 Pause for Service Pause Pause Pause Process Doesn't


  Inventory         contain a check
  mark
 

200 Create Service Reservation Reserve Create Contains a


  Reservation       Inventory check mark
  Reservation  
 

Reserve Supply Automatically for Your Item


Try it.

1. Set up your item in Product Information Management.

◦ In the Navigator, click Product Management > Product Information Management.


◦ On the Product Information Management page, search for your item, then open it for editing.
◦ On the Edit Item page, click Specications.
◦ Click Inventory, then set the aribute.

Aribute Value

Reservable Yes
   

◦ Click Sales and Order Management, then set the aribute.

Aribute Value

Back-to-Back Enabled Yes


   

2. Add a reserve step to your orchestration process.

845
Oracle SCM Cloud Chapter 5
Implementing Order Management Orchestrate Fulllment

Reserve Supply Manually for Your Item


Try it.

1. In the Order Management work area, click Tasks > Manage Fulllment Lines, then search for your fulllment
line.
2. In the search results, in the General Tab, click the link next to Orchestration Process Number, such as
300100181483263.
3. On the Orchestration Process page, click Fulllment Lines.
4. Click Actions > Reserve.

Use Global Order Promising


Use Global Order Promising to reserve supply.

• Global Order Promising is an application that collects supply data from a planning system and promises to
reserve the supply it collects.
• Supply isn't physical inventory. Its planned supply that the factory hasn't built yet.
• You can set up Global Order Promising to account for expected future supply and to split a fulllment line.
• Recall that the reservation service in Order Management doesn't consider future supply. It only reserves from
on-hand inventory.
• If you use Global Order Promising to reserve future supply, then don't use the reservation service in Order
Management. Use one or the other, but not both at the same time.

There's a trade o between using Global Order Promising and the reservation service in Order Management. If there
isn't enough supply to fulll the line by the request date, and if you set the Allow Partial Shipments of Lines aribute on
the line to Yes, then.

• The scheduling service in Global Order Promising will split the line into two lines. The second line will contain a
future date.
• The reservation service in Order Management never splits the line, so it fails.

If you use Global Order Promising to schedule your fulllment lines, then consider removing the reserve step from your
orchestration process. If you must keep the reserve step, or if you don't use Global Order Promising, then.

• Enable the Manual property on the step so the user must click a buon when close to the request date.
• Only send lines to the reservation step that you can fulll with the inventory that you have on hand. Or use a
pause step to pause lines that you can't fulll from on-hand inventory. The pause delays the reservation until
nearer the request date.

Another option is to remove the reserve step and let shipping handle reserving inventory.

846
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

6 Business Rules

Overview
Overview of Using Business Rules With Order Management
Set up a business rule in Order Management Cloud to implement a dynamic decision at run time that automates a
company policy, does a calculation, or does some processing.
A business rule is a statement that describes how to implement a business policy or make a business decision. It can
implement logic.

• Enforce a spending policy.


• Constrain a process so it meets a regulatory requirement.
• Compute a discount or premium.
• Provide an oer according to customer value.

Here are some business requirements you can meet with a business rule.

• Set a default value for shipment priority


• If quantity is more than 10, then add free items to the sales order.
• If customer is Computer Service and Rentals, then use orchestration process y to fulll the sales order.
• If destination is Japan, then route shipment through Pacic Northwest Warehouse.

A business rule keeps rule logic separate from the underlying application code, which allows a business analyst to
modify rule logic without using programming code and without interrupting your business process.

Here's an example of a business rule.

• If the sales order is valued at $50,000 or more, then make sure a representative calls the customer before
sending an invoice.

847
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

Here are the types of business rules you can use and where you can use them.

Note.

Type of Business Rule Description

Transform a sales order. Order Management transforms each source order that you create in Order Management or
that it receives from a source system so it can optimize order fulllment. You can write a rule
• Pretransformation to. . .
• Product Transformation
• Populate order aributes before transformation.
• Posransformation
• Transform a source order.

848
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

Type of Business Rule Description

• Populate order aributes after transformation.

For example.

• Populate an aribute on a fulllment line. If the item is a widget, then populate the
Request Date aribute on the fulllment line.
• Convert a measurement. If the item is a widget, then convert the value in the Size
aribute from centimeters to inches in the fulllment line.
• Create fulllment lines from one item. For example, if the item is a laptop that includes
a docking station, then transform the item into one fulllment line for the laptop and
another fulllment line for the docking station.

For details, see the Transform Source Orders to Sales Orders topic.

Process Assignment
  Assign the orchestration process that Order Management runs to process fulllment lines.

For example.

• If the ordered quantity is large, then assign the sales order to an orchestration process
that optimizes scheduling and delivery for large orders.
• If the customer is Important, then assign the sales order to an orchestration process that
expedites delivery.
• If the ship-to address in the order header resides outside of your country, then assign
the sales order to an orchestration process that handles international fulllment, such as
checking for trade compliance.

For details, see the Assign Orchestration Processes topic.

Process a sales order. Set up a rule that aects processing, such as branch in an orchestration process, do a complex
calculation that determines planning lead time, or manage a change that occurs to the sales
• Start After Condition order.
• Branching Condition
• Lead Time Expression For example.
• Line Selection Criteria
• If an invoice exceeds $100,000, then make sure a representative phones the customer.
• If the status of the Create Shipment orchestration process step is Shipped, then send a
Process a change order.
notication to your customer that the sales order is on its way.
• Compensation Paern • If the sales order includes a shippable item, such as a laptop, and an item that isn't
shippable, such as a warranty for the laptop, then make sure the orchestration process
• Cost of Change
doesn't aempt to ship the warranty.

Routing Rule
  Set up a rule that routes a fulllment request to a fulllment system according to an aribute
on the sales order, fulllment line, or orchestration process.

For example.

• If product type is Goods, and if task type is Invoice, then route the request to fulllment
system ABCInvoicingSystem.
• If item is 2TX Server, then route the service request to fulllment system Big Server.

For details, see the Overview of Connecting Order Management to Your Fulllment System
topic.

849
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

For background details about creating Oracle Business Rules, see Designing Business Rules with Oracle Business
Process Management on Oracle Help Center.

Use Visual Information Builder to Create Rules


Prior to Release 12, you use Oracle Business Rules to create rules in Order Management Cloud. Starting with release 12,
you can use Visual Information Builder to create some types of rules, which is a rule editor that supports a simplied
drag-and-drop interface. It helps you visualize data, visualize your business processes, implement your business logic,
and implement your business rule sets.

Starting with release 13B, its strongly recommended that you use only Visual Information Builder for routing,
pretransformation, and assignment rules.

Here are pages you use to access the editors.

Editor for Oracle Business Rules Editor for Visual Information Builder

Manage External Interface Routing Manage External Integration Routing Rules for Sales Orders
Rules  
 

Manage Pretransformation Manage Pretransformation Rules for Sales Orders


Defaulting Rules  
 

Manage Orchestration Process Manage Process Assignment Rules for Sales Orders
Assignment Rules  
 

Examples of Creating Business Rules


Visual Information Builder

See these topics.

• Manage Routing Rules


• Manage Pretransformation Rules
• Manage Process Assignment Rules
• Route Requests from Order Management to Fulllment Systems
• Route Requests to Fulllment Systems Without Cross-References
• Create Cross-References in Order Management
• Integrate Order Management Without Cross-Referencing Customer Aributes

Oracle Business Rules

See these topics.

850
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

Page Topic

Manage Orchestration Process


Denitions See these topics for rules that you set up on an orchestration process.
 
• Set Up Lead-Times for Orchestration Process Steps
• Select Fulllment Lines for Orchestration Process Steps
• Measure the Cost of Change
• Compensate Sales Orders That Change
• Add Branches to Orchestration Processes

See these topics for rules that pause an orchestration process.

• Pause Orchestration Processes Until an Event Occurs


• Pause Orchestration Processes Until Time Elapses
• Pause Orchestration Processes Until Items Are Ready to Ship

See these topics for rules that control status.

• Add Status Conditions to Orchestration Processes


• Add Status Conditions to Fulllment Lines

Transformation Rules • Set Up Transformation Rules


  • Set Up Advanced Transformation Rules

For details about using business rules with extensible exelds, see the Overview of Seing Up Extensible Flexelds in
Order Management topic.

Examples That Include Orchestration Process Aributes

Orchestration Process Aribute Topic

Cost of Change Measure the Cost of Change


   

Compensation Paern Manage Change That Occurs During Order Fulllment


   
Compensate Sales Orders That Change
 

Lead-Time Expression Set Up Lead-Times for Orchestration Process Steps


   

Line Selection Criteria Select Fulllment Lines for Orchestration Process Steps
   

Branching Condition Add Branches to Orchestration Processes


   

Start-After Condition Pause Orchestration Processes Until an Event Occurs


   
Pause Orchestration Processes Until Time Elapses
 
Pause Orchestration Processes Until Items Are Ready to Ship

851
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

Orchestration Process Aribute Topic

You use the Manage Orchestration Process Denitions page to set these aributes. For details, see the Guidelines for
Seing Up Orchestration Process Steps topic.

How Business Rules Work


Write a business rule that uses conditional logic to process a business event.
A business rule uses the sales order as input, uses functions to get details or to do an action on a fact, then provides a
result that Order Management uses to update sales order details.

Assume you must implement a rule.

• If the item is a Green Server, then use priority shipping.

Here's the ow.

852
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

Note.

1. An event occurs that causes Order Management to run the rule. The event depends on the context where you
write the rule. For example, if you set up a rule.

◦ On a step in an orchestration process. The rule runs when the process reaches the step.
◦ On the external interface. The rule runs when a task in the external interface references the rule.
2. If the If statement is true according to the facts, then Order Management activates the rule.

For example.

◦ If the item is a Green Server

853
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

where

• Item is a fact.
• Green Server is a fact.
3. The rule references the dictionary to get the objects it needs at run time.

For example, you create variables and declare objects when you set up the rule. You store these objects in the
dictionary.
4. The rule does the action.

The action is a Then statement. For example.

◦ Use priority shipping.

where

• priority shipping is a fact


For background details about business rules, see Oracle Fusion Middleware User's Guide for Oracle Business Rules.

854
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

Guidelines for Creating Business Rules


Use guidelines to help you create a business rule.

Use Tools and Environments


• Use Visual Information Builder to create all your rules, or use Oracle Business Rules to create all your rules.
Don't use Visual Information Builder to create some rules, and then use Oracle Business Rules to create other
rules.

855
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

• Create all your rules in the same instance of Order Management. Don't create some rules in one instance, and
then some other rules in another instance or environment.
• Some rule dictionaries are available in jDeveloper. However, don't use jDeveloper because problems might
occur during patching, instantiating objects, and migrating. Instead, use the Setup and Maintenance work area
to set up your rules.

Use the work area to migrate setup data from one environment to another environment. You can create rules
for orchestration processes only through the Manage Orchestration Process Denitions page in the Setup and
Maintenance work area. Migration migrates rules that you create when you set up an orchestration process.

Use Auto ll in Visual Information Builder or Oracle Business Rules

Use autofill to display a list of values that are available according to the rule structure that you dene. Autofill helps
to simplify creating the rule because you don't need to research what aributes and facts are available, and you don't

856
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

need to research whether you can use an aribute or fact in the logic you dene. Autofill continues to lter the results
each time you enter another character.

Use the Tree in Visual Information Builder

Use the tree in Visual Information Builder to nd aributes you can use in your rule, then add them.

857
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

The tree displays the hierarchy of the objects you can add to the rule. For example, the Manage External Interface
Routing Rules page displays the hierarchy of aributes you can add. sales order .

• A sales order is an object in Order Management.


• A sales order includes entities, such as.

◦ Order Header
◦ Order Fulll Line

• Each entity includes aributes. For example, here are some aributes in the Order Fulll Line entity.

◦ Business Unit

858
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

◦ Item
◦ Ordered Quantity
◦ And many others

• To add an aribute to your rule, click the aribute, drag, then drop it onto the rule.

For example, drag the Item aribute onto the If statement of your rule.

You can use the tree to set up a wide range of conditional logic that meets your business requirements. If you prefer not
to use the tree, you can search directly in the If statement or Then statement for the entity, aribute, values, and so on.

Use Advanced Mode and Tree Mode in Oracle Business Rules

Use Advanced Mode and Tree Mode to help simplify creating and managing your rule. These modes help structure your
rule to make sure it contains the correct logic structure, and to lter choices available to you to help make sure the rule
references objects correctly according to structure.

859
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

Migrate Between Environments

Specify types of rules to migrate.

860
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

Note.

• In the Setup and Maintenance work area, click Actions > Export > Create New Export.
• Export the business objects you need to run business rules. For example.

◦ Orchestration Transformation Rules


◦ Order Approval Rules.
◦ External integration Routing Rules
◦ Orchestration Process Assignment Rules
◦ Orchestration Process Rule Dictionary

861
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

For details, see these topics.

• Export Oering Setup


• Migrate Business Rules in Order Management

Set Up Rule Logic


• Make sure your rules won't cause a conict at run time.

For example, assume you write rule x that assigns a fulllment line with item type of server to one process, and
you write rule y that assigns server item ABC to another process. A conict might occur. You must revise rule x
so it doesn't specify server item ABC. Oracle Business Rules provide details about potential conicts after you
save the rule.
• If your rule compares one data object to another data object of the same type, then use advanced mode and
create two variables, one variable to represent each data object.

You must specify that variable one is not the same as variable two. Set up this test.

variable1 is not variable2

If you don't set up this test, then Oracle Business Rules will use variable1 and variable 2 to represent the same
object instance when it determines the rule to apply.
• Make sure each rule evaluates to a single result. For example, if you write two rules for the interface layer, then
make sure only one rule evaluates to true. Assume you write two rules.

If Task Type = Shipment return Fusion Shipment


If Task Type = Shipment and Customer = GOLD return Third Party Shipment

These rules look dierent but they each evaluate to true when Task Type equals Shipment and Customer
equals GOLD. To avoid this problem, write If, Then, Else rules in Visual Information Builder to make sure your
rules are mutually exclusive.

862
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

Set Up Rule Logic When You Use Visual Information Builder

Note.

1. Notice the entity. You enter the aribute, such as Order Type, and then the entity that contains the aribute,
such as Order Header, displays immediately under the aribute.

Most aributes on the order header are dierent from aributes on the order line. For example, the order
header includes the Order Type aribute but the order line doesn't. However, the order header and the order
line contain similar or identical aributes. For example, the order header and the order line each include
aribute Shipping Instruction. If your rule must reference Shipping Instruction on the order header, then make
sure you use the order header entity.
2. Is in the List. Use Is in the List to examine the list of values that the aribute references instead of writing an
OR condition. For example, the list of values for Order Type includes Mixed Orders and Standard Orders. If you
don't use Is in the List, then it might be necessary to write a series of OR conditions. For example.

If Order Type equals Mixed Orders, or If Order Type equals Standard Orders

863
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

3. Add the description. Description for the IF statement is optional. However, you can use it to quickly scan your
rule logic without having to drill down into the rule to determine the purpose of the statement. You can also
add a description for the Then clause.
4. Make sure the object isn't empty. Make sure the value of any aribute that your rule references isn't empty. If
your rule references an empty aribute, but depends on a value, then it might fail with unpredictable results.
Use rule logic in Visual Information Builder to simplify creating and managing your rule.

Note.

1. Structure your rule.

◦ Put all your logic in one rule instead of spreading it across more than one rule.

864
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

◦ Write one rule that includes more than one IF_THEN_ELSE statement instead of writing more than one
rule.
◦ Add an IF THEN ELSE structure.
◦ Nest your rules, such as adding another IF after an ELSE.
2. To look for values that aren't in the list, write a rule that looks for values in the list, then add a False condition.
Use False directly in the IF statement to implement a NOT condition rather than adding another rule.
Write More Than One Rule

If you set up more than one rule to meet the same business requirement, then set priority. For details, see the
Guidelines for Pausing Orchestration Processes topic.

Make sure the rules in a single rule set are mutually exclusive.

865
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

A rule set is a group of rules that run together to achieve a business objective. For example, assume you create a pause
rule and a release rule on a pause task. The pause rule and release rule together constitute one rule set. Oracle Business
Rules runs all the rules in a rule set. To avoid logic problems, make sure no two rules can be true at the same time, or
false at the same time.

Dene If Statements
• Use an If Then format that uses natural language when you rst begin writing your rule. For example.

If the item type is server, then add extra packing to the shipping instructions.

866
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

• Remove dependencies where the result of one rule changes the If statement of another rule in a way that
causes innite looping.
• Consider the outcome under a variety of data inputs. The If Then statement is the most common statement.
You can also use If Then Else in advanced mode.
• Add the equivalent of an Else clause so your rule can handle the situation where no condition is met. To avoid
an interruption in processing, this is particularly important when your rule assigns an orchestration process or
routes processing to the interface layer.
• Use a bucket set to simplify If logic in the decision table. Use parameters on actions to provide dierent values
for the same aribute in each rule.
• Use a decision table when you require more than one rule that uses the same set of If statements and Then
statements.

Reference Aributes
• Identify the aributes you will reference in the rule. For example, Item Type and Shipping Instructions are each
an aribute on the fulllment line. For details about Order Management tables that these aributes reference,
see book Tables and Views for Oracle Supply Chain Management Cloud at hps://docs.oracle.com/en/cloud/
saas/supply-chain-management/r13-update18a/oedsc/index.html.
• Add a default, catch all rule that can handle the situation where you must set an aribute value.
• Make sure your rule can handle an aribute that doesn't contain a value, even for aributes that normally do
contain a value.

If the aribute doesn't contain a value, and if your rule does a calculation that requires a value, then it might
create an error or result in a null pointer exception at runtime. For example, an Order Entry Specialist might or
might not set the value for an extensible exeld because adding a value is optional. If your rule references an
extensible exeld, and if this exeld doesn't contain a value at run time, then write your rule so it populates
the exeld with a default value that your rule can use during calculations.

For details about using rules with extensible exelds, see the Overview of Using Extensible Flexelds in Order
Management topic.

867
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

Reference Extensible Flexelds

Apply guidelines when you reference an extensible exeld in Visual Information Builder.

• Its not necessary to examine the context for an empty value.


• Your rule must examine the segment for an empty value.
• Run the Publish Extensible Flexeld Aributes scheduled process whether you use Visual Information Builder or
Oracle Business Rules. This scheduled process updates the rule denitions. You must run it each time you set
up a new or modify an existing extensible exeld so you can view and use them in the rule editors.

Apply guidelines when you reference an extensible exeld in Oracle Business Rules.

868
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

Note.

• Use isn't null to make sure the value of any aribute or object, such as the segment or context, that your rule
references isn't empty. If your rule references an empty aribute, but depends on a value, then it might fail with
unpredictable results.
• Reference the context code, such as HeaderEFF.context.
• Reference the segment name, such as HeaderEFF.getFlexAttributeDateValue("_CompleteCompliancedate").

• If you reference a value set, then Oracle Business Rules uses the VALUE column, by default. If the value set.

◦ Contains a value for ID. The editor uses the ID, and you must write the rule so it uses the ID.
◦ Doesn't contain a value for ID. The editor uses the value.

For example, if you write a rule that references a payment term, then you must make sure the value set
includes a value for ID, and your rule must reference the ID.

More Guidelines for Referencing Aributes

If you use Order Promising, then apply these guidelines.

869
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

Note.

• Order Promising uses the Scheduled Ship Date aribute on the sales order only if you set the Override Schedule
aribute to Yes. If you create a rule that references Scheduled Ship Date, then make sure you override the
schedule.
• Specify the warehouse, or specify the supplier and supplier site. It isn't necessary to specify scheduled arrival
date.
• If you don't make these seings, then Order Promising ignores the scheduled ship date that the rule sets.

You can reference an item aribute in an entity in Visual Information Builder.

870
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

Note.

• You can reference an item aribute from these entities.

◦ Item Denition
◦ Item Category
◦ Related Item

• These entities are children of the Order Fulll Line entity, grandchildren of Order Line, and great grandchildren
of Order Header.
• You can reference an item aribute in Visual Information Builder or Oracle Business Rules.

871
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

• Don't reference an item aribute that ends with sux _OBSOLETE in the aribute name.

Set Up Types of Rules


Transformation Rule

Note.

• Use the Then to set values.


• Use a product transformation rule to add new order line or to delete an existing order line.

Here's some code that adds a new fulllment line for item 12345678.

OrderTransformationRules.AddNewOrderLine (newItemId:12345678, viewRowImpl:fline.viewRowImpl)

This code deletes the fulllment line that references item 12345678.

OrderTransformationRules.DeleteOrderLine (fulfillmentLineId:12345678, viewRowImpl:fline.viewRowImpl)

• Use a posransformation rule to modify an aribute on a new order line.


• Use the ModifyEntity function to set a value.

This example code modies the ShippingInstructions aribute. It sets the contents of the aribute to the text
Sales credits are 17.

872
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

PostTransformationRules.ModifyEntity(attrName:ShippingInstructions, attrValue: "Sales credits are 17.")

• Make sure you use each rule only to do work for its intended design. For example, use a product transformation
rule only to transform the product. Don't use it to implement some other functionality.

Interface Routing Rule

Note.
• Use parameters, such as Maximum Lines to Aggregate, to aggregate the lines you send to your fulllment
system.
• For details about how to set aributes, see the Actions You Can Set in Routing Rules topic.
• Run several tests and measure the results. Optimize values for each parameter after each test.

873
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

Compensation Paern

Note.

• Use Advanced Mode.


• Use the Assign action.
• Assign a value for the compensation paern. For example.

Assign header.mRuleDecision.compensationPattern = "CANCEL_CREATE"

• Don't use this rule to set the default value for any other aribute.

Cost of Change Rule

874
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

Note.

• Use Advanced Mode.


• Use the Assign action.
• Assign a numeric value, such as 10 to costOfChange. For example.

assign Header.mRuleDecision.costOfChange = 10

• Don't use this rule to set the default value for any other aribute.

Guidelines for Rules in Orchestration Processes


For details about seing these rules, see the Guidelines for Seing Up Orchestration Process Steps topic.

875
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

Lead-Time Expression Rule

Note.

• Use Advanced Mode.


• Use the Assign action.
• Assign a datetime value. For example.

assign Header.mRuleDecision.leadTime = (Fline.scheduleShipDate.time - CurrentDate.date.timeInMillis)/


(1000*60*60*24)

• Don't use this rule to set the default value for any other aribute.

Line-Selection Rule

876
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

Note.

• Use Advanced Mode.


• Use the Assert action.
• Assert value for fulllLineId. For example.

assert DooSeededOrchestrationRules.Result (resultObjKey.Fline.fulfillLineId)

• Don't use this rule to set the default value for any other aribute.

Branching Condition Rule

877
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

Note.

• Use Advanced Mode.


• Use the Assign action.
• Assign the Boolean to True. For example.

assign Header.mRuleDecision.isOrchStepExecutable = DooSeededOrchestrationRules.Boolean.TRUE

• Don't use this rule to set the default value for any other aribute.

878
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

Guidelines for Pause Tasks


Set up a pause task on an orchestration process. For details, see the Guidelines for Pausing Orchestration Processes
topic.

Related Topics
• Overview of Using Extensible Flexelds in Order Management
• Guidelines for Pausing Orchestration Processes
• Overview of Seing Up Extensible Flexelds in Order Management

Parts of a Business Rule


A business rule contains an If statement and a Then statement.
For example.

• If the sales order is valued at $50,000.00 or more, then make sure a representative calls the customer before
sending an invoice.

Here's a rule in Oracle Business Rules editor.

879
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

Note.

1. Left Value of the If statement. Species the object the rule compares in the If statement.

In this example, Left Value contains a string.

DooSeededOrchestrationRules.DOOFLine.extendedAmount

where

◦ DooSeededOrchestrationRules is the name of a dictionary. A dictionary is an XML le that contains rules
organized in rule sets, facts, functions, variables, bucket sets, links, the data model, and so on.
◦ DOOFLine is an object in the dictionary.

• DOO is an abbreviation for distributed order orchestration, which is a name Order Management
used in earlier releases. It means the same as order orchestration.
• extendedAmount is a fulllment line aribute. It contains the total value of the sales order.
• FLine is an alias for fulllment line.
• DOOFLine contains the data model for the fulllment line in order orchestration. For example,
DOOFLine contains the fulllment line aributes, such as orderedQty, customerPONumber,
creationDate, and so on. You can reference these aributes and use their values in your rule.
2. Right Value of the If statement. Species the value the rule uses to determine whether the If statement is
true. The example contains a literal value of 50000. You can also reference an object from the dictionary. If you
reference an object, then the rule uses the value that the object contains at run time to make the comparison.
3. Action. Species how to add your target to the dictionary. You can specify a variety of actions. Assert New
means to add a new fact to the dictionary.

A fact is transactional data that the rule uses, such as the items on a sales order.

◦ An object stores this data. You reference the object when you create a rule.
◦ Order Management provides a hierarchy of facts according to the transactional data for the sales order in
each dictionary.
◦ Each object instance corresponds to a single fact.
◦ You must assert each fact before you can use it in a rule. Assert makes the fact available so you can
reference it elsewhere in the rule, such as in the properties of the Target.
4. Target. Species the object that the rule modies when the If statement evaluates to true. In this example,
if extendedAmount is more than 50000, then the rule will assert the Result object as a fact into the
DooSeededOrchestrationRules dictionary.
5. Edit Properties. Species the properties of the target. If the rule evaluates the If statement to true, then the rule
modies the values of the properties of the target according to how set up these values. Here's the code that
this example uses for the properties.

( resultObj:DooSeededOrchestrationRules.Boolean.TRUE )

where

◦ resultObj is a property of the Result fact that the target species.


◦ Boolean is a variable in the DooSeededOrchestrationRules dictionary.
◦ TRUE species to set the Boolean variable to TRUE.

880
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

The Then statement sets the resultObj property of the Result fact to TRUE. This example is a branching
condition, so the orchestration process examines the value of resultObj at run time. If it contains TRUE, then
the process runs the branch that makes sure a representative phones the customer.

Migrate Business Rules in Order Management


Migrate your business rules across dierent instances of Order Management Cloud. For example, migrate business
rules from your test environment to your production environment.
Here are the types of rules you can migrate.
• Approval
• External interface routing
• Pretransformation
• Posransformation
• Transformation
• Product transformation
• Process assignment

Note.
• Business rules that you add to an orchestration process are part of the orchestration process denition. You
use the Functional Setup Manager to export these denitions from one environment and to import them into
another environment.
• In most situations, an upgrade or patch won't aect your rules, with these exceptions.
◦ The upgrade or patch might overwrite modications you make to a predened rule or decision table.
◦ The upgrade or patch might change rule behavior, and this change might aect the behavior of your
business rules.

Migrate business rules in Order Management.


1. Make sure the source environment and the target environment are on the same release.
You can't migrate rules across dierent releases. To get your rules into a new release, upgrade the source
environment so its on the same release as the target environment, then migrate your rules.
2. Make sure each of your rule species aribute values that exist.

Example Rule Description

Assume you create rule in Oracle If Business Unit 203 or FulllOrdID 207 doesn't exist in your target environment, then
Business Rules. the migration will fail. To avoid this error, make sure these entities exist in your target
  environment.
If Business Unit equals "203", then  
set FulllOrdID to "207"
 

Assume you create a rule in Visual If Business Unit Vision Operations or Warehouse Singapore Distribution doesn't exist in your
Information Builder. target environment, then the migration will fail. To avoid this error, make sure these entities
  exist in your target environment.
 

881
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

Example Rule Description

If Business Unit equals "Vision


Operations" then set Warehouse to
"Singapore Distribution"
 

3. Make sure each rule operation that uses Starts with or Contains includes the full aribute value or ID value.
4. For each aribute that your rule references in the source environment, make sure you also set up each of these
aributes in the target environment.

For example, if a rule in your source environment references the Primary Salesperson aribute, then make sure
the target environment also includes Primary Salesperson.
5. Make sure none of the rules you're about to migrate contain errors.

◦ Test each rule in the source instance.



Make sure your rules specify values that use the same data type, and that the aribute can contain the
data type.
◦ The migration examines each rule in the source that you specify to migrate. If any of these rules contain
an error, then the migration will fail.
6. Make sure the rules you migrate replace the functionality that rules in your target environment requires.

Migration deletes all rules in the target environment before it does the migration, including rules you don't set
up in the source. For example, if the target includes rules x, y, and z, and if the source includes rules x and y,
then the migration deletes rules x, y, and z from the target, then copies rules x and y from the source to the
target. If the target depends on rule z, then copy rule z to the source before you do the migration.
7. Make sure you release each rule you must migrate.

If you create a business rule in the source environment but don't release it, then the migration won't migrate
the rule. Migration only migrates rules you save and release.
8. If your rule references an extensible exeld, then make sure you set up each of exeld in the same way in the
source environment and in the target environment.

The Manage Conguration Packages page doesn't examine your extensible exeld setup. You must manually
examine your setup.
9. Migrate your rules.

◦ In the Navigator, click Setup and Maintenance.


◦ On the Setup page, click Tasks > Manage Conguration Packages.
◦ On the Manage Conguration Packages page, search for your conguration package.
◦ In the search results, click the row that includes your conguration package, then click Export Setup
Data.
◦ On the Export Setup Data page, click Next > Submit.

The Setup and Maintenance work area exports business rules from your source environment and
imports them into your target environment.

Related Topics
• Export Setup Data Using Implementation Project

882
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

Oracle Business Rules


Use the Business Rules Editor
Use an editor to edit Oracle Business Rules.
For a generic demonstration of how to create a rule, see the Demo for Creating Business Rules topic.

Summary of the Steps

1. Access the rule editor.


2. Add the If statement.
3. Add the Then statement.

Access the Rule Editor


1. In the Setup and Maintenance work area, go to the task.

◦ Oering: Order Management


◦ Functional Area: Orders
2. Open one of these pages.

◦ Manage Orchestration Process Denitions


◦ Manage Product Transformation Rules

The page you access depends on the set up you must do. For this example, you modify an orchestration
process denition, so open Manage Orchestration Process Denitions.
3. Access the rule editor.

You access the rule editor in dierent ways, depending on the page you use. For this example, you click Add
to Rule in the Pause Rule column on the step of an orchestration process. For an example, see the Pause
Orchestration Processes Until Events Occur topic.

883
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

Add the If Statement


You will create this statement.

Do it.

1. Click the magnifying glass (Left Value) to access the Condition Browser.

The Condition Browser displays objects that come predened in the dictionary. It also displays objects that you
assert into the dictionary while you create your rule.

The browser lters the items it displays according to where you access it. This behavior helps make sure you
only choose objects that make sense in the context where you access the browser. For example, here's the
dictionaries that the browser displays when you create a start-after condition.

2. Expand the DooSeededOrchestrationRules dictionary.

884
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

The browser displays the objects that this dictionary contains, including facts, variables, and so on.

You usually use only some of the objects that are available in the dictionary. For example, here are the objects
you typically use in the DooSeededOrchestrationRules dictionary.

◦ Result
◦ Date
◦ Timestamp

◦ DOOHeader
◦ SacResult
◦ DOOFLine

885
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

Get assistance from Oracle to use other objects or other dictionaries.


3. In DooSeededOrchestrationRules, expand DOOFLine, then notice the aributes. These aributes display on the
order fulllment line in the Order Management work area.

where

Browser Text Description

DOOFLine Fact in the DooSeededOrchestrationRules dictionary


   

886
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

Browser Text Description

DOO Abbreviation for distributed order orchestration, which is an earlier name for order
  orchestration.
 

FLine Abbreviation for fulllment line.


   

billToCustomerId Fulllment line aribute. This aribute stores an identication number for the customer. Its
  the same number that displays in the Order Management work area.
 

toString Includes conversions you can make on the aribute.


   

A sales order uses the demandClassCode aribute to allow you to classify the customer. Assume your rule must
examine the value of demandClassCode, so scroll down, click demandClassCode, then click OK.

The rule editor adds the aribute to the statement.

887
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

4. Click Right Value (the magnifying glass) to access the Condition Browser.

The Right Value window species the value that the If statement uses to determine whether its True. Similar
to Left Value, you can expand DooSeededOrchestrationRules to access objects in the dictionary. You can also
specify a string.

For this example, enter "GOLD" in the window, then click OK. You must enclose the string with double quotation
marks.

888
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

889
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

Add the Then Statement


1. In the Then area, click Add Action > Asset New.

Choose an action. For this example, you will assert the Then statement as a new fact into the dictionary.

Action Description

Assert Add a fact into the dictionary.


   
You can also reassert an object. A reassert updates the dictionary so it reects the new state
of the object whether or not you changed the object.
 
Reassert doesn't create a fact. If your rule requires more than one fact for a fact type, then
you must assert each of these facts as a separate object.
 

890
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

Action Description

Assert New Add a new fact into the dictionary.


   

Assign Assign a value to a variable in the dictionary.


   

Call Call a function from the dictionary.


   

Modify Modify a data value that's associated with a matched fact in the dictionary.
   

Retract Remove a fact from the dictionary.


   

Other Actions Advanced mode displays more actions, but you don't use most of them. For details, see How
  to Use Advanced Mode Action Forms in Oracle Fusion Middleware User's Guide for Oracle
Business Rules.
 

2. Click Select a Target.

891
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

The target species the object this rule will modify if it evaluates to true.

For this example, select object SacResult, where sac means start after condition. The rule will modify this
value.

3. Click Edit Properties.

If you click Edit Properties, the rules editor gets the properties of the object that you selected as the target, then
displays them in the Properties dialog. In this example, it displays the properties of SacResult.

892
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

4. In the reevaluateFlag row, in the Value column, enter "N". You must include the double quotation marks.

Each target contains a dierent set of properties, so you must set them dierently depending on your business
requirements. In this example, reevaluateFlag species to evaluate the result of the start after condition again
after the rule runs. You don't want this reevaluation, so set reevaluateFlag to N.
5. In the Value column, click Value (the magnifying glass).

Use the sacType property to specify the action to take when the If statement evaluates to true. In this example,
you must pause the orchestration process while it waits for an event to occur. The EVENT pause type causes

893
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

the orchestration process to pause, so you set sacType. For details about seing properties for the start after
condition, see the Use Holds to Pause Orchestration Processes topic.

894
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

6. In the Condition Browser, expand DooSeededOrchestrationRules > SacResult, click SAC_TYPE_EVENT, then
click OK.

895
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

7. Verify that the Properties dialog displays your seings, then click OK.

Notice that the Then area displays a string representation of the properties you set. Use this string to quickly
assess the action the rule will do. Here's the complete business rule.

Related Topics
• Pause Orchestration Processes Until Events Occur
• Use Holds to Stop Orchestration Processes

896
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

Use Advanced Mode and Tree Mode in Business Rules


Use advanced mode in a business rule to set priority, set variables, dene collections, and so on.
• Set the rule priority when you must process more than one rule.
• Set the variable name for an object so the rule can compare two instances of an object or so you can create a
hierarchical relationship.
• Set up collections of objects in one business rule.
• Use complex rule logic, such as If Then Else, or more than one If statement.
• Use Tree Mode to maintain the object hierarchy.

Use Advanced Mode


Here's the top part of a rule that uses Advanced Mode.

Here are the aributes that are available in the rule header when you use Advanced Mode.

Aribute Description

Eective Date Determines when the business rule is available to use.


   

Priority
  Determines when to run each rule when you create a set of rules.

• You use Priority only rarely.


• Priority isn't an absolute value because Order Management might run a rule more
than one time in a single session. Also, input values to the rule might change, and the
sequence that Order Management uses to activate them might also aect priority.
• You can't use Priority across more than one set of rules.

Active Makes the business rule available for use.


   

897
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

Aribute Description

If Active doesn't contain a check mark, then Order Management doesn't include it during
validation, even if Order Management previously released it as an active rule.
 

For examples that use Advanced Mode, see the Get Data from Product Information Management topic.

Use Tree Mode


A business rule uses facts to evaluate rules at run time.

• The business rule uses the data model from Order Management to identify each fact it must use.
• A fact doesn't include data that resides outside of Order Management.
• Use facts for transformation, process assignment, and external interface routing according to business
components in Oracle Application Development Framework (ADF), specically view objects (VO) that expose the
data model.
• View objects provide a hierarchical view of transactional data, such as a sales order. However, each business
rule converts them into rule language (RL) facts. Facts in rule language don't include a hierarchy. You don't
need to manage rule language facts, but this conversion might aect how you create your rule.
• If the fact is a business component in Application Development Framework, and if your rule uses more than
one object type, then you must make sure your rule reestablishes the view object (VO) hierarchy. Reestablishing
the hierarchy makes sure each rule performs at an optimal level.

Properties of Business Component Facts in the Application Development Framework

Property Description

ViewRowImpl References a row in a view object. You use ViewRowImpl to access a row in a database table.
   
You typically specify this property in the result. Its required in a transformation rule. Its
optional for other business rules.
 
The Business Components for Java framework instantiates an object of ViewRowImpl for each
record that the view object query returns for the row.
 

key_values References the oracle. rules. sdk2. decisionpoint. KeyChain object. You can use this property to
  get the set of key values for this row and the parent rows of this row. This property is optional.
 

You can use Advanced Mode with an explicit join to reestablish the hierarchy. You can also use Tree Mode to more
clearly represent the hierarchy in the rule editor.

Maintain the Object Hierarchy


You must maintain the object hierarchy when you use advanced mode or tree mode.

898
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

Advanced Mode Advanced Mode and Tree Mode

If you use Advanced Mode and Tree Mode, then you can select objects in the existing
If you use only Advanced Mode, hierarchy, such as Header, Line, and FulllLine.
and if the If statements and Then  
statements in your rule will process a If you use an extensible exeld, then you might need to create more joins.
public view object on the sales order,  
then your rule must make sure it
joins each public view object so it
accurately represents the sales order
hierarchy. For example.

• Join the header public view


object with the line public view
object.
• Join the line public view object
with the fulllment line in the
public view object.
• And so on.

Note.
• If you use Tree Mode, then also use Advanced Mode because Advanced Mode helps you to maintain the
hierarchy.
• If you use only Advanced Mode to maintain the object hierarchy, then you must explicitly specify the hierarchy.
For an example, see the Get Data from Product Information Management topic.
• If you use Tree Mode to set the root of an object hierarchy, then the rules editor displays objects only at the
root level or below the root level while you create the rule. This ltering helps to make sure you correctly
maintain the object hierarchy.
• Tree Mode uses the forward slash (/) to indicate hierarchy.

For an example that uses Tree Mode to maintain the object hierarchy and that uses the forward slash, see the Use
Extensible Flexelds in Line-Selection Rules topic.

Related Topics
• Use Extensible Flexelds in Line-Selection Rules
• Get Data from Product Information Management

Use Decision Tables and Bucket Sets in Business Rules


Use a decision table to create a set of IF statements displayed as a table. If your set up must analyze more than
one combination of aribute values, then the decision table is more compact and intuitive to use than a number of
individual IF statements.
The decision table doesn't require you to use all If statements and Then statements in every rule.

See these topics for examples that use a decision table and bucket set.
• Create Transformation Rules
• Assign Orchestration Processes

For background details about decision tables, see Working with Decision Tables in Oracle Fusion Middleware User's
Guide for Oracle Business Rules.

899
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

Here's an example that uses a decision table. It labels each If statement as a Condition and each Then statement as an
Action.

Use Bucket Sets


A bucket is a container that sets up a list of values or a range of values that the If statement uses to determine whether
its true.

A bucket set is a container you can use to hold the overall range of values that a group of buckets denes. Use it to
constrain the values that the If statement and the facts in a decision table will consider.

900
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

Assume you create a Colors bucket set that includes string values of red and purple. You can write a rule for each color.
You can also write one rule for blue and another rule for purple.

In another example, assume you create a Numbers bucket set that uses integers instead of strings. You can then create
buckets in the Numbers bucket set. Here's the buckets.

• Less than 1
• 1 to 10
• Greater than 10

You can't add a bucket set to a fact.

901
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

You can create a bucket set that species aliases for data that might be dicult to recognize, such as identication
numbers. You can use the toString() function in the If statement to convert the value from the Long data type to a
String alias, such as a product code. In this set up, the bucket set maps each identication number to the product code.

Here's an example bucket set that chunks ranges of values into a large, a medium, and a small bucket.

Ways to Dene a Bucket Set

Way Description

Create a local list of values or a list of Create the bucket set in the decision table.
ranges.  
 

Manually create a global bucket set. Create the bucket set in a product transformation rule, then select bucket set values from a list
  of values for each decision table that the rule page displays.
 
The list of values only includes values that match the data type you're seing up. For example,
assume you set up one bucket set that includes numeric values, another bucket set that
includes text values, then add an If statement that examines numeric data. The list of values in
the If statement will display values only from the bucket set that contains numeric data.
 

Automatically create a global bucket Use the Generate Bucket Sets scheduled process to create a bucket set from transactional data.
set.  
 

902
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

Use Predened Bucket Sets

Predened Bucket Sets Predened Bucket Sets

ORAAccountingRules ORAInvoicingRules
   

ORACurrencies ORAShipmentPriority
   

ORADemandClasses ORAFreightTerms
   

ORAFOB ORAReceiptMethods
   

ORAModeOfTransport ORAConversionType
   

ORAPaymentTerms ORACarrier
   

ORASalesCreditTypes ORASupplier
   

ORAServiceLevel ORASupplierSite
   

ORATaxClassicationCodes ORAReturnReason
   

ORATaxExemptionReason ORACancelReason
   

ORAUOM ORAReturnReason
   

ORAWarehouses Not applicable


   

903
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

Refresh Data in Bucket Sets


To keep each bucket set up to date with data in the entities that the bucket set references, set the Refresh Collected
Data option to Yes on the Generate Bucket Sets scheduled process.

Calculate Dates in Business Rules


You can calculate a date in a business rule.
• A business rule doesn't come predened with functions that do date arithmetic, such as Scheduled Ship Date
minus 1.

• To avoid data type and object hierarchy problems, you can't use a business rule to do date arithmetic with a
fact. However, you can create a rule that does date arithmetic in an orchestration process.
• A date aribute use the time stamp data type.

Here's an example that uses an If statement to set up fline as the alias for the fulllment line. It compares the time of
the scheduled ship date to the current date, and uses milliseconds in the comparison conversion.

If fline.scheduleShipDate.time>=CurrentDate.date.timeInMillis

In another example, here's some code that calculates the scheduled arrival date to occur three days after the current
date.

If fline.scheduleArivalDate.time>= CurrentDate.date.timeInMillis+3*24*60*60*1000

where
• 3 is the number of days.
• 24 is the number of hours in one day.
• 60 is the number of minutes in one hour.

904
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

• 60 is the number of seconds in one hour.


• 1000 is the number of milliseconds in one second.

Here's a dialog that sets up a business rule for the line selection criteria in an orchestration process.

Note.

Rule Part Code

If the requested arrival date occurs DooSeededOrchestrationRules. DOOFLine. requestArrivalDate. time more than CurrentDate.
earlier than three days after the date. timeInMillis+3*24*60*60*1000
current date, then skip this step.  
 

Action Assert New


   
DooSeededOrchestrationRules. Result(DooSeededOrchestrationRules. DOOFLine. fulllLineId)
 

If you use this kind of calculation in the THEN clause, then make sure your rule doesn't modify or overwrite the original
value. You might need to assign a temporary variable to hold the calculation before your rule populates the result
object.

905
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

Create Temporary Variables


Use a Timestamp object to create a temporary variable, such as to provide an oset to a data aribute. For example,
three days before the scheduled ship date. The Assign New action instantiates the variable, provides an alias, and
sets the initial value.

Here's an example of a lead time expression in a business rule on an orchestration process. fline represents the
fulllment line object and DateTime represents the temporary variable.

Action Code

Assign New DooSeededOrchestrationRules. Timestamp DateTime = ine. scheduleShipDate


   

Modify DateTime(time: DateTimetime-(2*24*60*60*1000))


   

Assert New DooSeededOrchestrationRules. Result(resultObj: DateTime)


   

Use Date Functions in Advanced Mode

Function Example

before(Timestamp| javautilDate) If ine. RequestArrivalDate. before(ine. ScheduleArrivalDate) is true


   

after(Timestamp| javautilDate) If ine. RequestArrivalDate. after(ine. ScheduleArrivalDate) is true


   

compareTo(Object| Timestamp| If ine. RequestArrivalDate. compareTo(ine. ScheduleArrivalDate) is -1


javautilDate)  
 

equals(Object| Timestamp) If ine. RequestArrivalDate. equals(ine. ScheduleArrivalDate) is true


   

Note.

• Use these functions for each aribute that's a Timestamp data type, including a temporary variable that you
declare with the Timestamp object.
• You can manually enter the function after you select the aribute. You can also open the Expression Builder,
click the Functions tab, then open the folder next to the date aribute.
• The format for each function, except compareTo, is true or false, and this format doesn't require quotation
marks.
• Here's the format that compareTo uses.

◦ -1. The object to the left of compareTo occurs before the object to the right of compareTo.
◦ 0. The object to the left of compareTo occurs at the same time as the object to the right of compareTo.

906
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

◦ 1. The object to the left of compareTo occurs after the object to the right of compareTo.

Manage Errors and Conicts in Business Rules


Manage errors and conicts that might occur with your business rule.

Manage Errors
Each business rule validates your syntax when you save your rule. It displays errors in the error pane at the boom of
the page or dialog.

• Click Validate to validate your rule before you save it.


• Click the arrow on the boom right corner of the page or dialog to examine the error.
• Double-click an error message to open the rule that contains the error and to automatically highlight the object
that the error aects.

For example.

Manage Conicts
Each business rule provides conict management for your decision tables.

• The business rule displays conicts between the If statement and the Then statement.
• You can use the exclamation point (!) on the tool bar to toggle visibility of the conict.

907
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

• The business rule identies each rule that the conict aects, including rules that depend on a conicted rule.
For example, if rule A is conicted, and if Rule B depends on Rule A, then Rule B also displays as conicted.
• An icon on the decision table toolbar identies a missing set up in your business rule. For example, if you add
bucket set elements but don't use them in your rule, then the page displays an icon.
• The page might display the rules you must add to correct the set up. You can select a rule to add it to your set
up, but you aren't required to select them. Instead, you can create a dierent rule to correct the set up.
This feature is useful when you create a bucket set that includes a large number of values. Each bucket set
allows you to choose Otherwise when it isn't necessary to individually specify each selection.

Here's an example where a new rule is in conict with three other rules.

Demo for Creating Business Rules


Watch: This video tutorial illustrates how to create a business rule in Order Management Cloud. It creates a pause task rule
that coordinates the fulllment lines of a sales order that Order Management runs in dierent orchestration processes.

Functions You Can Use in Business Rules


Use a function in your business rule to get details or to do a calculation.
Here are the functions you can use in a product transformation, orchestration process assignment, or external interface
routing rule. You can't use them on an orchestration process.

Aribute Description

ModifyEntity
  Modify an entity.

908
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

Aribute Description

Use this function with a pretransformation rule, transformation rule, or posransformation


rule.

Use these arguments.

• arName(String)
• arValue(Object)
• viewRowImpl(oracle.jbo.server.ViewRowImpl)

Note.

• If you don't use the list of values to set arName(), then you must enclose the aribute
that you provide with quotation marks.
• The name of the aribute is the required data type, not the value of the aribute at run
time.
• Make sure your rule populates the ModifyEntity arguments when your rule uses them to
do an action.
• ModifyEntity behavior is dierent from the Modify action you use on menus on the
Manage Product Transformation Rules page.

AddNewOrderLine
  Add an order line to a sales order.

Use this function only with a transformation rule.

Use these arguments.

• newItemId(Long)
• viewRowImpl(oracle.jbo.server.ViewRowImpl)

DeleteOrderLine
  Delete an order line from a sales order.

Use this function only with a transformation rule.

Arguments.

• fulllmentLineId(Long)
• viewRowImpl(oracle.jbo.server.ViewRowImpl)

For example.

• Delete fulllment line 1 and fulllment line 2

Note that viewRowImpl(oracle.jbo.server.ViewRowImpl) represents the current object instance. For example, a
fulllment line record.

Functions You Can Use with Rules On an Orchestration Process


Use these functions in a rule that you create on an orchestration process. You can't use them with product
transformation, orchestration process assignment, or external interface routing.

909
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

These functions work at the aribute level. You can nd them on the Functions tab of the Expression Builder dialog as
the rst entries under each object.

You can also use predened date functions on each date aribute.

Date Functions You Can Use On an Orchestration Process

Function Description

getAdjustedDate(Timestamp, Double) Add or subtract the value of argument Double (in days) from the Timestamp argument,
  depending on the sign, and then returns the result in the Timestamp argument.
 

subtractFromDate(Timestamp, Subtract the value of the second Timestamp argument from the rst Timestamp argument.
Timestamp)  
  If the second Timestamp argument is empty, then subtractFromDate subtracts the current
date from the rst Timestamp argument.
 
subtractFromDate returns the number of days as a BigDecimal() value.
 

Change Management Functions You Can Use On an Orchestration Process

Function Description

hasChanges() Determine whether extensible exeld values in the change order are dierent from values
  that the previous version of the sales order contains.
 

getAribute(String) Get the name of an aribute.


   
Use getAribute on the order header, fulllment line, orchestration process, or task.
 

getTransactionalAribute(String) Get the name of a transactional aribute.


   
You can use getTransactionalAribute only on a fulllment line.
 

getFlexContext(String) Gets the name of the extensible exeld context.


   
Use getFlexContext only on a fulllment line.
 

You can also use these functions. You must prex the aribute name with an underscore (_), and you must enclose the
aribute name in quotation marks.

Function Description

aributeChanged(String) Determine whether the value of an aribute in the change order is dierent from the value that
  the previous version of the sales order contains.
 
Use it on the order header, fulllment line, or extensible exeld context.

910
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

Function Description

getFlexAributeValue(String) Get the value of an extensible exeld aribute of data type String.
   
Use it only on an extensible exeld context.
 

getFlexAributeDateValue(String) Gets the value of an extensible exeld aribute of data type Date in time stamp format.
   
Use it only on an extensible exeld context.
 

getFlexAributeNumValue(String) Get the value of an extensible exeld aribute of data type Number.
   
Use it only on an extensible exeld context.
 

For details about using a business rule with an extensible exeld, see the Use Extensible Flexelds with Order
Management topic.

911
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

Example of Choosing a Function


Use the Functions tab in the Expression Builder dialog to get a list of arguments you can use. For example, with method
getFlexAributeDateValue.

Visual Information Builder


Use Visual Information Builder
Use a drag-and-drop interface to create a business rule. Visualize data, visualize your business processes, and
implement business logic.

912
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

Examine the Behavior of a Predened Rule


Observe how the rule editor establishes a condition.

• If task type is shipment, then set the connector to Connect to Oracle Fusion Shipping System

Do it.

1. In the Setup and Maintenance work area, go to the task.

◦ Oering: Order Management


◦ Functional Area: Orders
◦ Task: Manage External Integration Routing Rules for Sales Orders
2. On the Manage External Interface Routing Rules page, notice the predened routing rules.

Use this page to.

◦ Activate or inactivate a rule.


◦ Create a new rule.
◦ Change the rule priority.
◦ View, modify, duplicate, or delete a rule.
◦ Publish active rules.
3. Right-click Shipping Task Routing, then click Actions > Edit.
4. Click IF, then notice the phrase Task Type is Equal to Shipment.
5. Click DO, then notice the phrase Set Connector Name, Connector Name: Connect to Oracle Fusion Shipping
System.
6. Click Close.

Limitations
• You can't use a decision table. If you created a rule in an earlier version of Order Management that uses a
decision table, and if you prefer to use Visual Information Builder to replace this rule, then use the IF-THEN-
ELSE structure in Visual Information Builder to replace the decision table. For an example, see the Manage
Process Assignment Rules topic.
• Don't use Visual Information Builder and Oracle Business Rules at the same time in the same implementation.
Use Visual Information Builder or Oracle Business Rules for all your rules.
• You can't create a global variable for use in a rule.
• You can't create collections of objects in conditions.
• Don't reference an object that includes the text _Obsolete when you create your rule. _Obsolete indicates that
business rules might no longer support the object in the current or future release.

913
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

Manage Routing Rules


Use Visual Information Builder to create routing rules.
Assume you must create a routing rule.

• If the task type is Compliance Check, and if the compliance value is less than 100, then set the connector to
ComplianceCheckConnector, and set the interface type to SDO.

Here's the rule you will create.

914
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

Summary of the Steps


1. Create the If statement.
2. Create the Then statement.
3. Activate and publish your rule.
This topic includes example values. You might use dierent values, depending on your business requirements.

Create the If Statement


1. In the Setup and Maintenance work area, go to the task.
◦ Oering: Order Management
◦ Functional Area: Orders
◦ Task: Manage External Integration Routing Rules for Sales Orders
2. On the Manage External Interface Routing Rules page, click Create New Rule.
3. Set values.

Aribute Value

Name Routing Rule for Compliance Check


   

Description Route sales orders according to results of the compliance check.


   

4. Name the If statement so it describes the meaning of the condition.


◦ In the If area, click Enter Description.
◦ In the Enter Description dialog, enter Task Type = Compliance Check and Compliance Value Is Less Than
100, then click OK.
5. Click New Condition (the dashed circle in the IF area).
6. In the Create Condition dialog, enter Task, wait a moment, then click Task Type (Order Header).
Notice that the dialog displays suggestions when you wait after you nish typing.
7. In the Create Condition dialog, click Search.
8. In the Search dialog, enter Compliance, then click Search.
9. Choose Compliance Check, click OK > OK.
Notice that area IF displays the condition.
◦ Task Type is Equal to Compliance Check

10. Click AND.


11. In the Create Condition dialog, enter Compli, then wait a moment.
Notice that the dialog displays a number of aributes, such as Compliance Date (Header Compliance Details).
Extensible exelds that you set up on the order header provide values for these aributes. The order header
displays them as aributes in the Order Management work area.
12. Click Compliance Value (Header Compliance Details).
13. Change the operator from = (equal), to < (less than).
14. Change the value from 0.0, to 100, then click OK.

915
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

Notice that the IF area displays the condition.


◦ Task Type is equal to Compliance Check AND Compliance Value < 100

Create the THEN Statement


1. Click THEN > DO.
2. Name the DO so it reects the meaning of the action.
◦ In the DO area, click Enter Description.
◦ In the Enter Description dialog, enter Set connector to ComplianceCheckConnector and interface type to
SDO, then click OK.
3. Click New Action (the dashed circle in the DO area), then click Perform an Action.
4. In the Create Action dialog, set the action to Set Connector Name, then click Search.
5. In the Search dialog, enter %Compli%, then click Search.
The percentage symbols (%) are wildcards that search for all values before and after the text Compli. This
search returns services that the Manage Connector Details page contains, and that contain the text Compli.
6. In the Description area, click Compliance check system conn. . ., then click OK.
7. In the Create Action dialog, click OK.
8. In the DO area, click AND > Perform an Action.
9. In the Create Action dialog, set the action to Set Interaction Interface Type.
10. Set Interaction Interface Type to SDO.
If you are a new customer, then you must set Interaction Interface Type to SDO for any interaction interface
that you set up. Use EBM only for backward compatibility to a prior release.
11. Click Save and Close.

Activate and Publish Your Rule


1. On the Manage External Interface Routing Rules page, notice that the Active indicator for the Routing Rule for
Compliance Check rule is grey.
2. Right-click Routing Rule for Compliance Check, then click Actions > Edit.
3. In the Routing Rule for Compliance Check dialog, add a check mark to the Activate Rule option, then click Save
and Close.
Notice that the Active indicator for Routing Rule for Compliance Check is green.
4. Click Publish.
Order Management publishes each of the rules that are active on the Manage External Interface Routing Rules
page.

Related Topics
• Route Requests from Order Management to Fulllment Systems

Manage Pretransformation Rules


Use Visual Information Builder to manage a pretransformation rule that sets the default value of an aribute according
to the value of another aribute.

916
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

You will create a pretransformation rule.

• If order type is Government, then set warehouse to Denver Manufacturing.

For example.

Summary of the Steps

1. Create the If statement.


2. Create the Then statement.
3. Activate and publish your rule.
This topic includes example values. You might use dierent values, depending on your business requirements.

Create the If Statement


1. In the Setup and Maintenance work area, go to the task.

◦ Oering: Order Management

917
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

◦ Functional Area: Orders


◦ Task: Manage Pretransformation Rules for Sales Orders
2. On the Manage Pretransformation Defaulting Rules page, click Create New Rule.
3. Set values.

Aribute Value

Name Pretransformation Default Rule for Warehouse


   

Description Use warehouse Denver Manufacturing for government sales orders.


   

4. Name the If statement so it describes the meaning of the condition.


◦ Click Enter Description.
◦ In the Enter Description dialog, enter Order Type = Government, then click OK.
5. Click New Condition (the dashed circle in the IF area).
6. In the Create Condition dialog, enter order type, wait a moment, then click Order Type (Order Header).
Notice that the dialog displays suggestions when you wait after you nish typing.
7. Accept the is equal to condition, set order type to Government, then click OK.
The IF area displays the condition.
◦ Order Type is equal to Government
8. Click And.
9. In the Create Condition dialog, enter ware, wait a moment, then click Warehouse (Order Fulll Line).
10. Change = to Is Blank, then click OK.
The IF area displays the condition.
◦ Warehouse is blank
Make sure the aribute you set in a pretransformation rule is empty before you set the value. This test
helps to make sure the rule doesn't evaluate or change a value that the rule or the Order Entry Specialist
already set.

Create the THEN Statement


1. Click THEN > DO.
2. Name the DO so it describes the meaning of the action.
◦ Click Enter Description.
◦ In the Enter Description dialog, enter Set warehouse to Denver, then click OK.
3. Click New Action (the dashed circle in the DO area).
4. In the Create Action dialog, enter ware, wait a moment, then choose Warehouse (Order Fulll Line).
5. In the Create Action dialog, click Search.
6. In the Search dialog, enter Denver, then click Search.
7. Under Warehouse Name, click Denver Manufacturing, then click OK.
8. In the Create Action dialog, click OK.

918
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

The DO area displays the condition.

◦ Warehouse is set to Denver Manufacturing

9. Click Save and Close.

Activate and Publish Your Rule


1. On the Manage External Interface Routing Rules page, notice that the Active indicator for the
Pretransformation Default Rule for Warehouse rule is grey.
2. Right-click Pretransformation Default Rule for Warehouse, then click Actions > Edit.
3. In the Pretransformation Default Rule for Warehouse dialog, add a check mark to the Activate Rule option,
then click Save and Close.

Notice that the Active indicator for the Pretransformation Default Rule for Warehouse rule is green.
4. Click Publish.

Order Management publishes each of the rules that are active on the Manage Pretransformation Defaulting
Rules page.

A More Complex Example


Add more complexity to your rule. For example, allow your fulllment system to use one carrier for large source orders
you create in your legacy system, and another carrier for all other sales orders.

• If the source system is a legacy system, and if the quantity is more than 1,000, and then use carrier Fedex, else
use carrier UPS.

In your shipping environment, assume you typically use Fedex (Federal Express) to deliver small to medium size
packages, and you use UPS (United Parcel Service) to deliver large packages.

919
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

You can add the OR, ELSE, THEN, and AND conditions to meet your business requirements.

Related Topics
• Transformation Rules
• How Order Management Transforms Source Orders Into Sales Orders
• How Order Management Transforms Order Lines Into Fulllment Lines

920
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

Manage Process Assignment Rules


Assign an orchestration process according to dierent conditions.
For example, assign dierent orchestration processes to handle source orders that Order Management receives from
dierent source systems, assign them dierently depending on whether the order is a new sales order or a return, or
assign them depending on the value of an aribute, such as the line type is a credit.

You will create a rule.

921
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

Summary of the Steps


1. Create the routing rule and the rst If condition.
2. Create the Then for the rst If.
3. Create the second If.
4. Create the Then for the Second If.
5. Create the third If.
6. Create the Then for the Third If.
7. Create the Do that assigns the orchestration process when receiving returns for credit.
8. Create the Do that assigns the orchestration process for all other returns.
9. Create the Do that assigns the orchestration process for all other sales orders.
10. Activate and publish your rule.
This topic includes example values that demonstrate how you can use Visual Information Builder to create a complex
process assignment rule. You might use dierent values, depending on your business requirements.

Part One
Create the Routing Rule and First IF Condition
1. In the Setup and Maintenance work area, go to the task.
◦ Oering: Order Management
◦ Functional Area: Orders
◦ Task: Manage Process Assignment Rules for Sales Orders
2. On the Manage Orchestration Process Assignment Rules page, click Create New Rule.
3. Change the rule name.

Current Name New Name

New Rule Default Process Assignment Rule


   

4. Name the If statement so it reects the meaning of the condition.


◦ Click Enter Description.
◦ In the Enter Description dialog, enter source system = BM-CPQ, then click OK.
This IF statement looks for source orders that are coming in from one channel in an integration, named
BM-CPQ (Big Machines - Congure, Price, and Quote).
5. In the Aributes tab, in the Search eld, enter Source order, then wait a moment.
Notice that the dialog displays suggestions when you wait after you nish typing.
6. Click Source Order System (Order Header).
Notice that the object hierarchy in the Aributes tab highlights the aribute that the search results returned,
such as Source Order System.
7. Drag the Source Order System aribute from the Aributes tab, then drop it onto the area IF.
8. In the Create Condition dialog that displays after you release the mouse buon, accept is equal to as the
condition, then, in the list that displays immediately below is equal to, click the down arrow.
Notice that the list displays the source systems that are set up for this deployment.

922
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

9. Set the source system to BM_CPQ, then click OK.

Notice that the IF area now displays a condition.

◦ Source Order System is equal to BM_CPQ

Create the THEN for the First IF


1. Click THEN > DO.
2. Name the DO so it reects the meaning of the action.

◦ Click Enter Description.


◦ In the Enter Description dialog, enter Set process name to DOO_Billonly, then click OK.
3. Click New Action (the dashed circle in the DO area), then click Perform an Action.
4. In the Create Action dialog, enter process name, wait a moment, click Process Name (Order Fulll Line), then
click Search.
5. In the Search dialog, enter DOO_Bill, then click Search.
6. In the ProcessName area, click DOO_BillonlyGenericProcess, then click OK.
7. In the Create Action dialog, click OK.

Notice that the DO area now displays text.

◦ Process Name is set to DOO_BillonlyGenericProcess

8. Click Save.
Create the Second IF
1. Below the IF area, click ELSE > IF.
2. Name the If statement so it describes the meaning of the condition.

◦ In the IF area, click Enter Description.


◦ In the Enter Description dialog, enter category = ORDER, then click OK.
3. In the Aributes tab, notice that the object hierarchy displays as a navigation tree, then browse through the
tree.

◦ Click Aributes > Order Header.


◦ In the Order Header branch, click Order Line.
◦ In the Order Line branch, click Order Fulll Line.
◦ In the Order Fulll Line branch, click Category.
◦ Drag aribute Category from the Aributes tab, then drop it onto the IF area.
4. In the Aributes tab, browse through the object hierarchy.
5. In the Create Condition dialog that displays, notice that the condition defaults to Category is equal to Order,
then click OK.
Create the THEN for the Second IF
1. In the area to the right of condition IF category = ORDER, click THEN > DO.
2. Name the DO so it describes the meaning of the action.

◦ Click Enter Description.


◦ In the Enter Description dialog, enter Set process name to DOO_GenericFulfillmentProcess, then click OK.

923
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

3. Click New Action (the dashed circle in the DO area), then click Perform an Action.
4. In the Create Action dialog, enter process name, wait a moment, click Process Name (Order Fulll Line), then
click Search.
5. In the Search dialog, enter DOO_, then click Search.
6. In the ProcessName area, click DOO_OrderFulllmentGenericProcess, then click OK.
7. In the Create Action dialog, click OK.
Notice that the DO area displays text.

◦ Process Name is set to DOO_OrderFulfillmentGenericProcess

8. Click Save.
Create the Third IF

Assign the orchestration process to use when handling a return.


1. Below the IF category = ORDER area, click ELSE > IF.
2. Name the If statement so it describes the meaning of the condition.

◦ Click Enter Description.


◦ In the Enter Description dialog, enter category = RETURN, then click OK.
3. Click New Condition (the dashed circle in the IF area).
4. In the Create Condition dialog, enter category, wait a moment, then click Category (Order Fulll Line).
5. Set the condition to is equal to Return goods, then click OK.
Notice that the IF area now displays text.
Category is equal to Return goods

Create the THEN for the Third IF

Returns for dierent types of fulllment lines might require Order Management to use dierent fulllment processing.
In this example, you set up the rule to consider only returns for credit.
• If Line Type isn't empty, and if Line type is equal to Return for credit

Do it.
1. In the area to the right of condition IF category = RETURN, click THEN > IF.
2. Name the IF so it describes the meaning of the action.

◦ Click Enter Description.


◦ In the Enter Description dialog, enter line type = credit only, then click OK.
3. Click New Condition (the dashed circle in the IF area).
4. In the Create Condition dialog, enter line type, wait a moment, then click Line Type (Order Fulll Line).
5. Set up the rule to handle an empty line type value.

◦ Set the operator to is blank, then click OK.


Its important to include a condition that can handle a situation where the value of the line type is empty.
If you don't create this condition, then the rule might fail and cause an error.
Notice that the IF area displays text.
Line Type is blank

924
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

◦ In the upper right corner of the Line Type is Blank area, click Select (the circle with the solid line), then
wait for it to display a blue check mark.
◦ In the upper left corner of the page, next to the trash can, click Group.
Notice that the IF Line Type = Credit Only area now displays the This Condition is True area around the
Line Type is Blank area. This grouping is equivalent to adding parenthesis inside your statement.
In this example, you group Line Type is Blank to test whether this statement is true or false. To group a
set of statements, you select each statement, then click Group.
◦ Click true.
Notice that true changes to false. In this example, when you run the rule, you must make sure the line
type is blank condition is false because you want Order Management to assign the orchestration process
only if the line type contains a value.
6. In the IF line type = credit only area, click the AND that resides outside of the this condition is false area.

7. In the Create Condition dialog, enter line type, wait a moment, then click Line Type (Order Fulll Line).
8. Set the condition to is equal to Return for credit, then click OK.
Notice that the IF area now displays text.
◦ Line type is equal to Return for credit
9. Click Save.

Part Two
Create the DO That Assigns the Orchestration Process When Receiving Returns for Credit
1. In the area to the right of condition IF line type = credit only, click THEN > DO.
2. Name the DO so it describes the meaning of the action.
◦ In the DO area, click Enter Description.
◦ In the Enter Description dialog, enter Set process to BillOnly, then click OK.
3. Click New Action (the dashed circle in the DO area).

925
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

4. In the Create Action dialog, enter process name, wait a moment, click Process Name (Order Fulll Line), then
click Search.
5. In the Search dialog, enter %Bill%, then click Search.

The percentage symbols (%) are wildcards that search for all values before and after the text Bill. This search
returns orchestration process names that contain the text Bill.
6. In the ProcessName area, click DOO_BillOnlyGenericProcess, then click OK.
7. In the Create Action dialog, click OK.

Notice that area DO displays text.

◦ Process Name is set to DOO_BillOnlyGenericProcess

Create the DO That Assigns the Orchestration Process for All Other Returns
1. Immediately below the IF line type = credit only condition , click ELSE > DO
2. Name the DO so it describes the meaning of the action.

◦ In the DO area, click Enter Description.


◦ In the Enter Description dialog, enter Set process to Return Process, then click OK.
3. Click New Action (the dashed circle in the DO area).
4. In the Create Action dialog, enter process name, wait a moment, click Process Name (Order Fulll Line), then
click Search.
5. In the Search dialog, enter %Return%, then click Search.
6. In the ProcessName area, click ReturnOrderGenericProcess, then click OK.
7. In the Create Action dialog, click OK.

Notice that the DO area displays text.

◦ Process Name is set to ReturnOrderGenericProcess

8. Click Save.
Create the DO That Assigns the Orchestration Process for All Other Sales Orders

Assign the orchestration process to use for the sales orders that don't meet the other IF conditions.
1. Immediately below the IF category = RETURN condition, click ELSE > DO.
2. Name the DO so it describes the meaning of the action.

◦ In the DO area, click Enter Description.


◦ In the Enter Description dialog, enter Set process to ShipOrder Generic, then click OK.
3. Click New Action (the dashed circle in the DO area).
4. In the Create Action dialog, enter process name, wait a moment, click Process Name (Order Fulll Line), then
click Search.
5. In the Search dialog, enter Ship, then click Search.
6. In the ProcessName area, click ShipOrderGenericProcess, then click OK.
7. In the Create Action dialog, click OK.

Notice that the DO area displays text.

◦ Process Name is set to ShipOrderGenericProcess

8. Click Save.

926
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

Activate and Publish Your Rule

1. On the Manage Orchestration Process Assignment Rules page, notice that the Active indicator for the Default
Process Assignment Rule rule is grey.
2. Right-click Default Process Assignment Rule, then click Actions > Edit.
3. In the Default Process Assignment Rule dialog, add a check mark to option Activate Rule, then click Save and
Close.

Notice that the Active indicator for the Default Process Assignment Rule rule is green.
4. Click Publish.

Order Management publishes each of the rules that are active on the Manage Orchestration Process
Assignment Rules page.

Related Topics
• Overview of Assigning Orchestration Processes

927
Oracle SCM Cloud Chapter 6
Implementing Order Management Business Rules

928
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

7 Features

Approvals
Overview of Seing Up Approval
Set up Order Management Cloud to route each sales order for sales order approval.
Sales order approval is a process that includes one or more approvers who must approve a sales order before Order
Management sends it to order fulllment. An approval rule determines whether to do approval. Here are some
examples.

Assume your company policy limits the discount you provide to your customer to 10%. Create a rule to implement the
policy.

If an Order Entry Specialist adds a 20% discount, then route the sales order to an Order Manager for approval.

Note.

• You can set it up to accept or reject the sales order according to a variety of approval rules, and on a variety of
sales order aributes.
• Use approval to streamline how you enforce a policy, such as to streamline communication between the Order
Entry Specialist and one or more approvers, and to improve the experience for people who enter and approve
the order.
• Approving the sales order before starting order fulllment can reduce the number of sales orders that Order
Management must return to Draft status because they don't meet a fulllment requirement for some reason,
which in turn reduces rework after fulllment starts.

929
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Approval includes at least one Order Entry Specialist and one or more approvers. Consider an example where you need
approval when the sales order total exceeds $10,000.

Note.

1. An Order Entry Specialist creates a sales order, and then clicks Submit.

Alternatively, Order Management receives a source order from a source system.

930
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

2. If the Source Order System value that you set in the Start Approval Process for Sales Orders order management
parameter matches the source order system aribute of the sales order, and if Source Order System is Yes, and
if you create an approval rule.

◦ Then. Order Management sets the order status to Approval Pending and routes the sales order for
approval.
◦ Else. Order Management doesn't evaluate any approval rules, even if dened, and proceeds to step 5.
3. The rule you create on the Manage Order Approval Rules page routes the sales order through the approval
process, such as assign and route the sales order to an order manager.
4. The approver uses their Pending Notications page or worklist to view and approve the approval request.

If the approver rejects the approval request, then Order Management sets the sales order status to Draft,
unlocks it, routes it back to the person who created the sales order, and displays a message on the Order page
that describes the rejection.

The person who creates the order can use the Approval Notes tab on the sales order to get approval details,
including suggested actions the approver entered in comments when rejecting the approval request. For
example.

◦ Split the sales order into two separate orders so the total amount of the sales order doesn't
exceed $10,000
5. Order Management sets the order status to Processing, then sends it to order fulllment.
6. Order fulllment fullls the sales order.

Related Topics
• Get Approvals for Sales Orders
• Overview of Approval Management

Guidelines for Seing Up Approval


Use guidelines to help you set up approval, including seing the order management parameter, creating your approval
rule, and the approval task.
For details about how to set up other parts of approval, see the Dene Approval Management section in the
Implementing Common Features for SCM book.

931
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Set Up the Order Management Parameter


Use the Start Approval Process for Sales Orders order management parameter to enable approval and specify the
source system where you need approval.

For example, assume your in house sta has authority to set discounts that exceed 10%, and they use the Order
Management work area to create sales orders. You also receive orders from a partner, but the partner isn't authorized to
provide these discounts.

Note.

• Go to the Setup and Maintenance work area.

932
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

• Search for the Manage Source Systems task, then use the Create Source System page to create your source
system.

For details, see the Integrate Order Management with Source Systems topic.
• Use the Manage Order Management Parameters page to add your source system to the Start Approval Process
for Sales Orders parameter.
• At run time, Order Management will do approval for each source order where the Source System aribute
equals Partner.
• In this example, the All source system and GPR source system are each No, so the rule runs only when the
source system is Partner.

If you set the Start Approval Process for Sales Orders aribute to No, then the ow doesn't do approval and
proceeds directly to fulllment.

933
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Create Your Rule


Search for Manage Order Approval Rules in the Setup and Maintenance work area. For details, see the Overview of
Using Business Rules With Order Management topic.

Create Condition

Specify the condition that determines when to do approval according to the value of an aribute.

• Choose from a wide range of aributes.

◦ Order header aribute


◦ Order line aribute

934
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

◦ Order total
◦ Order charge
◦ Price adjustment
◦ Validation
◦ Order type aribute on the order header

The Manage Order Approval Rules page lters the aributes you can use. Use the tree to choose the aribute, or, more
simply, enter it in the If statement. If you use the Tree, only use aributes under the Order Header branch. Don't use the
HierarchyPrincipal or Task branches.

For example, in the If area.

• Click New Condition (the dashed circle).


• In the Create Condition dialog, enter adj, wait a moment, then click Manual Adjustment Type.
• Set the condition to Manual Adjustment Type is equal to Discount Percent, then click OK.
• Click And.
• In the Create Condition dialog, enter adj, wait a moment, then click Manual Adjustment Value.
• Set the condition to Manual Adjustment Value > 10, then click OK.

Specify the Action

What should we do if the condition evaluates to true? You have a range of choices, such as Assign to Individual, Assign
to Group, Assign to Supervisors, and so on. The rule editor lters your choices depending on the action you choose.

935
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

For example, if you choose.

• Assign to Individual. A dialog displays where you can choose the individual. It includes other options, such as
Information Only or Approval Required.
• Assign to Group. A dierent dialog displays where you can choose the group.

936
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

• Assign to Supervisors. A dierent dialog displays where you can specify the approval chain, rst approver,
level of supervisors, highest approver, and so on.

• Click Then > Do.


• Click New Action > Perform an Action.
• In the Create Action dialog, click Assign to Supervisors.
• Set the value in Approval Chain Based On rst. It aects values you can chose in other aributes, such as First
Approver.

Here's the rule for this example.

937
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

The rule is

If Manual Adjustment Type is Discount Percent, and if Manual Adjustment Value is greater than 10, then assign
approval to Diane Cho.

Notes

• Order Management doesn't come with predened approval rules because they're specic to your requirements.
If you need approval, then you must create an approval rule.
• Sign in with privilege fom_manage_order_approval_rules_priv.
• Approval evaluates each order line, one at a time, sequentially.
• If more than one rule applies for dierent order lines, then approval creates a separate approval ow for each
line that requires approval.

938
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

For example, if approval rule b applies to line 1, and approval rule c applies to line 2, then approval sends
approval request x for line 1 and request y for line 2. The approvers in request x might be dierent from the
approvers in request y, depending on how you set up your rules.
• You can set up a group of approvers. For example, get three separate approvals from user x, user y, and user z
for a single approval request. Use the Manage Approval Groups page in the Setup and Maintenance work area,
and assign the group in your rule. Approval will send notication to each user, sequentially. For example, it will
send notication to user, x, and then y, and then z.

Limitations.

• Order Management approves only the entire sales order. It can't approve only an order line.
• You can't start approval according to order status. For example, you can't start approval depending Draft status
or Processing status. Approval automatically sets status to Approval Pending.
• You can't start an approval ow according to a change in an aribute value during order revision.
• You can't start an approval ow according to comparison between dierent versions of the sales order.
• Use an approval only before Order Management submits the sales order to order fulllment. You can't do
approval during order fulllment.

Use the Primary Total

If your condition references the order total, then make sure your rule species the primary total.

A sales order includes more than one total. For example, it includes the header total, total list price, total net price, total
tax, total credit, and so on. The header total is the primary total. In the price breakdown dialog, it displays on the Pay
Now row.

Assume you create an approval rule that lters only according to Order Total Amount is greater than 10,000. At
runtime, the rule will create a separate approval request for each order total that's greater than 10,000 although you
require only one approval request for the sales order.

To avoid this problem, add another condition that lters approval according to Primary equals Yes. This way, the rule
evaluates only the primary order total, ignores the other totals, and sends only one approval request.

For example.

939
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

940
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Set Up Approval Task


An approval is a type of human task. Set it up to control runtime behavior.

Note.

• Use the Manage Task Congurations for Supply Chain Management task in the Setup and Maintenance work
area.
• Search for and edit task ApprovalHumantask. Don't edit the TaskApproval task because its for supply orders,
not sales orders. Don't edit ApproversTask. Its for another type of ow.
• Use the tabs to specify a range of behavior.

941
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Tab Description

Assignees Who approves.


   

Deadlines When to approve.


   

Notications How to notify approvers and others in the approval ow.


   
Make sure you only add users you have already set up in an Oracle Fusion Application.
 

Access
 
◦ Who can access data

◦ Who can take what actions

Conguration Specify other congurations.


   

• Use participant when you set up the worklist. Don't use other levels, such as position.

942
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Notications

Note.

• Use the Task Status list to specify when to send a notication when the approval status changes.
• Example statuses include Assign, Complete, Error, Request Info, Suspend, Withdraw, Resume, and so on.
• Specify who to send the notication to, such as Assignees, Initiator, Approvers, and so on.
• The initiator is the person who creates the sales order and requests approval. The task assignee is the person
who approves the request.
• The list comes predened to send a notication to the task assignee when the ow changes the status to
Assign, and to send a notication to the initiator when the ow changes the status to Complete.

943
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

• You can change the status, add new statuses, and delete statuses. For example, an approver can Request
Information, Suspend, Withdraw, or Resume an approval request. You can send a notication each time the
approver takes one of these actions.
• As an option, add text to include in the notication header.

Set up other notications.

Note.

944
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Aribute Value

Email "From" Display Name Specify text to include in the From line of the email message.
   
For details about seing up email, see the Overview of Seing Up Workow Email Notications
topic.
 

Group Notication Conguration Specify whether to send a separate email to each recipient or to send only one email to all
  recipients.
 

Don't Send Multiple Notications for


the Same Human Task Event Send only one approval request for each sales order.
 
Assume your order includes two approvals.

• Rule x on line 1 sends approval to Diane Cho.


• Rule y on line 2 also sends approval to Diane.

Enable this aribute so approval sends only a single request for the entire order instead of
sending a separate request for each rule.

Make Notication Actionable Let the recipient take action directly in the notication.
   

Access

945
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Use the Access tab to specify who can see what, where.

Note.

• Access determines visibility of data, such as the history section and comment section of the approval request in
Order Management.
• Specify who, such as administrator, approver, assignee, creator, owner, or reviewer.
• Specify data, such as aachments, assignees, comments, dates, and history.
• Specify what the user can see, such as read aachments or read comments.

Use the Actions area of the Access tab to specify who can do what, where.

946
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Note.

• Access determines visibility of actions in the approval request.


• Specify who, such as assignee or owner.
• Specify what the user can do, such as approve, reject, request information, reassign, escalate, suspend, or
withdraw.

For details, see these topics.

• Set Up Approval Tasks for Sales Orders


• Overview of Approval Management

947
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Conguration

Aribute Description

Allow All Participants to Route Task to Allow a participant to send the approval request to another user.
Other Participants  
  Assume you're an approver and have a large backlog of approval requests. You need to
reassign the request to another approver. Enable this aribute so the approver can route the
approval to another participant.
 

Allow Participants to Edit Future Allow a participant in the approval ow to add another downstream participant.
Participants  
 

Allow Initiator to Add Participants Allow the person who creates the sales order to add an approver or reviewer to the approval
  request.
 

Mandate Comments Before Updating Make comments required and use them to establish an audit trail.
These Outcomes  
 

Complete Parallel Subtasks Early Use a subtask to separate an approval request into dierent parts.
   
Complete Parent Tasks of Early Assume you work at company headquarters and receive a large order with a quantity of 1,000.
Completing Subtasks You are authorized to approve large quantities for the customer but you rst must make sure
  you can deliver the quantity by the delivery date. Create a subtask and approval will send a
request to someone in your warehouse or factory to verify they can meet the delivery deadline.
 

Handle Trade Compliance


• You can create a condition for trade compliance, such as trade compliance status, screening type, compliance
type, result, or reason.
• If you need approval for trade compliance, and if the trade compliance status is Hold or Failed, then, as an
option, you can route the sales order for approval. Its a business decision whether to reject the sales order or
release it to order fulllment.

For example, if the hold occurs because of a licensing eective date, then the Order Manager can choose to
release the sales order to fulllment, then manage the license problem at some later time.

Related Topics
• Overview of Using Business Rules With Order Management
• Manage Order Management Parameters
• Overview of Approval Management
• More Setup for Workow Email Notications

948
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Set Up Approval Rules for Sales Orders


Set up an approval rule that routes a sales order to one or more approvers.
Assume you must create a routing rule.

• If the order total is greater than $10,000, and if the Primary is yes, and if the customer is Computer Service and
Rentals, then request and get approval from a manager.

Here's the rule you will create.

Summary of the Set Up

1. Create the approval rule and the IF.


2. Create the rst AND.

949
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

3. Create the second AND.


4. Create the DO.
5. Activate and publish your rule.
6. Test your set up.
This topic includes example values. You might use dierent values, depending on your business requirements.

Create the Approval Rule and the IF


1. Sign into Order Management with administrative privileges.
2. Set the Start Approval Process for Sales Orders order management parameter to Yes for all source systems.

For details, see the Manage Order Management Parameters topic.


3. In the Navigator, click Setup and Maintenance.
4. In the Setup and Maintenance work area, go to the task.

◦ Oering: Order Management


◦ Functional Area: Orders
◦ Task: Manage Order Approval Rules
5. On the Manage Order Approval Rules page, click Create New Rule.
6. Change the rule name.

Current Name New Name

New Rule Get Approval for High Value Sales Orders


   

7. Name the If statement so it reects the meaning of the condition.

◦ Click Enter Description.


◦ In the Enter Description dialog, enter High Value Sales Orders, then click OK.
8. Click New Condition (the dashed circle in the IF area).
9. In the Create Condition dialog, enter order total, wait a moment, then click Order Total Amount (Order
Header > Order Totals).

Notice that the dialog displays suggestions when you wait a moment after you nish typing.
10. In the Create Condition dialog, set values, then click OK.

Field Value

Aribute Order Total Amount


   

Condition greater than ( > )


   

Value 10000
   

950
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Notice that the IF area now displays the condition.


◦ Order Total Amount > 10,000
11. Click Save.

Create the First AND


1. Click AND.
2. In the Create Condition dialog, enter primary, wait a moment, then click Primary (Order Header > Order
Totals).
3. In the Create Condition dialog, set values, then click OK.

Field Value

Aribute Primary
   

Condition Is equal to
   

Value Yes
   

Notice that the IF area now displays the condition.


◦ Primary is equal to Yes
4. Click Save.

Create the Second AND


1. Below Primary is equal to Yes, click AND.
2. In the Create Condition dialog, enter customer, wait a moment, then click Customer (Order Header).
3. In the Create Condition dialog, set values.

Field Value

Aribute Customer
   

Condition Equals ( =)
   

4. Click Search.
5. In the Search dialog, in the Name aribute, enter Computer Service and Rentals, then click Search.
6. In the search results, click Computer Service and Rentals, then click OK.
7. In the Create Condition dialog, click OK.
Notice that the IF area now displays the condition.
◦ Customer = Computer Service and Rentals

951
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

8. Click Save.

Create the DO
1. Click THEN > DO.
2. Name the DO so it reects the meaning of the action.
◦ Click Enter Description.
◦ In the Enter Description dialog, enter Assign to Order Manager, then click OK.
3. Click New Action (the dashed circle in the DO area), then click Perform an Action.
4. In the Create Action dialog, set the action to Assign to Job Level.
5. In the Create Action dialog, verify the values.

Field Value

Action Assign to Job Level


   

Required Action Approval Required


   

Approval Chain Based On Task Creator


   

First Approver Manager


   

Minimum Job Level of Top Approver 1


   

Utilized Approvers All Levels


   

6. Click Search.
7. In the Search dialog, next to Users, enter manager, then click Search.
8. In the Search for Highest Possible Approver dialog, in the manager row, click the radio buon, then click OK.
9. Verify that Highest Possible Approver contains manager, then click OK.
Notice that the DO area now displays the condition.
◦ Assign to Job Level

10. Click Save and Close.

Activate and Publish Your Rule


1. On the Manage Order Approval Rules page, notice that the Get Approval for High Value Sales Orders rule is
grey.
2. Click Get Approval for High Value Sales Orders.
3. In the Get Approval for High Value Sales Orders dialog, add a check mark to the Activate Rule option, then click
Save and Close.
Notice that the Active indicator for Get Approval for High Value Sales Orders is green.
4. Click Publish.

952
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Order Management publishes the active rules that display on the Manage Order Approval Rules page.

Test Your Set Up


1. Sign into Order Management with the Order Entry Specialist job role, create a sales order, then click Submit.

Aribute Value

Customer Computer Service and Rentals


   

Amount Add items to an order line so that the Amount exceeds $10, 000.
   

2. Verify that Order Management updates the order status to Approval Pending.
3. Click View Approval Information, then verify the approval details reect the approval rule you created.

4. In a separate browser session, sign into Order Management with the Order Manager job role.
5. Open the Pending Notications page, locate the link for the approval request, such as Action Required:
Approval Request for Order 258093, then click Approve.
6. Navigate to the browser session for the Order Entry Specialist, refresh the page, then verify that the order
status is now Processing.

953
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Related Topics
• Get Approvals for Sales Orders
• Manage Order Management Parameters

Set Up Approval Tasks for Sales Orders


An approval is a type of task. You can set it up so it meets your needs.
Here's your scenario.
• Diane Cho needs to approve each approval request and Li Yu needs to review it.
• The approver must approve the request within one day.
• Send a notication to the.
◦ Assignee when approval assigns the task.
◦ Initiator when approval is done.
◦ Owner when an error occurs.
Include text in the notication that approval sends to the approver.
Please approve the request for this sales order.

• Send a reminder to the approver one hour before the approval request expires.
• Include text in the From line of the email notication.
Order Entry Specialist Requests Your Approval

• Send only one email to all users who participate in the approval request. Don't send separate emails.
• Allow everyone to read aachments and comments, but don't allow reviewers to edit them.
• Allow the assignee and owner to send an information request, but allow only the assignee to approve it.
• Assume your company policy requires an audit trail, so make sure each approval and each rejection contains a
comment.

Summary of the Setup


1. Set up assignees and deadlines.
2. Set up notications.
3. Set up access.
4. Set up conguration.

Set up Assignees and Deadlines


1. In the Navigator, click Setup and Maintenance.
2. In the Setup and Maintenance work area, go to the task.
◦ Oering: Order Management
◦ Functional Area: Customers
◦ Task: Manage Task Congurations for Supply Chain Management
3. On the BPM Worklist page, search for ApprovalHumantask.
4. In the search results, click ApprovalHumantask, then click Edit Task.

954
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

5. Click Assignees, then set values.

Aribute Value

Task Owner Diane Cho


   

Reviewers Li Yu
   

6. Click Deadlines, then set values.

Aribute Value

Due Date Contains a check mark


   

Day 1
   
The approval request will expire one day after approval sends the request to the approver.
 

Hour 0
   

Minutes 0
   

Set Up Notications
1. Click Notications.

Notice the Task Status list comes predened with a separate row for three dierent statuses.

Task Status Recipient

Assign Assignees
   

Complete Initiator
   

Error Owner
   

2. Add a notication message.

◦ In the assign row, in the Notication Header column, click the pencil.
◦ In the Edit Notication Message dialog, enter text, then click OK.

Please approve the request for this sales order.

955
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

The notication that approval sends to the approver will include this text.
3. Add a reminder.

◦ Click Enable Reminder, set values, then click Save.

Aribute Value

Repeat 1
   

Initiating Action Before Expiration


   
Approval will send the reminder before the deadline that you set earlier in this
procedure expires.
 

Frequency Day 0
   
Hour 4
 
Minutes 0
 
Approval will send the reminder four hours before the deadline expires. You set the
deadline at 1 day, so approval will send the reminder 20 hours after approval sends the
request to the approver.
 

4. Expand More, then set values.

Aribute Value

Email "From:" Display Name Add text.


   
Approval will add your text to the From line of the email notication that it sends to the
approver.
 
You must enclose your text with double quotation marks (" ").
 

Group Notication Conguration


  Specify how to display the email message. You can.

◦ Send individual emails.

◦ Send individual emails and include a form in each one.

◦ Send one email to all recipients.

Set Up Access
1. Click Access, then set values.

956
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Task Content Individuals with Read Access Individuals with Write Access

Aachments Make sure only the Reviewers option


  Make sure each option contains a check doesn't contain a check mark.
Comments mark.  
 
◦ Admin

◦ Approvers

◦ Assignees

◦ Creator

◦ Owner

◦ Reviewers

2. Expand Actions, then set values.

Task Action Individuals with Access

Information Request
  Make sure each option contains a check mark.

◦ Assignees

◦ Owners

Approve Make sure only the Assignees option contains a check mark.
   

Set Up Conguration
1. Click Conguration, then set values.

Aribute Value

Mandate Comments Before


Updating These Outcomes Make sure each option contains a check mark.
 
◦ Approve

◦ Reject

2. click Save, then click Commit Task.

Related Topics
• Overview of Using Business Rules With Order Management
• Manage Order Management Parameters
• Overview of Approval Management
• More Setup for Workow Email Notications

957
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Migrate Approval Rules Between Instances of Order Management


Migrate approval rules that you create in one instance of Order Management Cloud to another instance of Order
Management Cloud.
• You can migrate your rules from one instance of Order Management to another instance of Order
Management. For example, you can migrate from your test instance to your production instance.
• Each instance must be on the same release.
• Migration deletes all rules in the target instance, then copies all rules in the source instance to the target.
Migration deletes rules in the target even if there's no matching rule in the source.
• Migration copies only the If condition of each rule. It doesn't copy the Then part of the rule. During testing, you
typically use the Then part to assign approval to a specic test user. However, you need to replace the test user
with an actual user in your production environment, so you need to redo the Then statement after you migrate.
• If even one rule contains an error, then migration fails and it won't migrate any rule.

This topic includes example values. You might use dierent values, depending on your business requirements.

Migrate approval rules between instances of Order Management.


1. Sign into the Order Management instance where you must create the approval rule, then create the approval
rule that you must export.
Make sure you activate and publish your approval rule.
2. Create the implementation project.
◦ In the Navigator, click Setup and Maintenance.
◦ On the Setup page, click Tasks > Manage Implementation Projects.
◦ On the Implementation Projects page, click Actions > Create.
◦ On the Basic Information page, set the value, then click Next.

Aribute Value

Name Project to Migrate Approval Rules


   
You can use any text. Tab out of the Name aribute after you enter the value to
populate other aributes.
 

◦ On the Select Oerings to Implement page, in the Order Management row, add a check mark to Include,
then click Save and Open Project.
◦ In the Task Lists and Tasks area, click Actions > Select and Add.
◦ In the Select and Add dialog, set Search to Task, search for Manage Order Approval Rules, then click
Apply > Done.
◦ On the Implementation Project page, click Done > Done.
3. Create the conguration package you will use to implement the project that you created in step 2.
◦ On the Setup page, click Tasks > Manage Conguration Packages.
◦ On the Manage Conguration Packages page, click Actions > Create.

958
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

◦ On the Create Conguration Package page, in the Source Implementation Project area, set values.

Aribute Value

Name Project to Migrate Approval Rules


   

Export Setup Task List and Setup Data


   

◦ In the Conguration Package Details area, make a note of the value that displays, then click Next >
Submit.

Aribute Value

Name Project to Migrate Approval Rules_1


   

◦ In the Warning dialog that displays, click Yes.


◦ On the Manage Conguration Packages page, in the Project to Migrate Approval Rules_1 area, monitor
the status. Click Refresh until the value displays.

Aribute Value

Status Completed Successfully


   

◦ In the Download column, click Download, then click Download Conguration Package.
◦ Save the le to a location on your computer. Make a note of the location and the le name, such as
Project to Export Approval Rules_1_20180310_1805.zip.
◦ Click Done, then sign out of Order Management.
4. Import the rule dictionary that you downloaded in step 4.

◦ Sign into the Order Management instance where you must import the approval rules.
◦ In the Navigator, click Setup and Maintenance.
◦ On the Setup page, click Tasks > Manage Conguration Packages.
◦ On the Manage Conguration Packages page, click Upload, locate the le you downloaded in step 4, click
Get Details > Submit.
◦ In the Search Results area, click the row that includes the value.

Aribute Value

Name Project to Migrate Approval Rules_1


   

◦ In the Project to Migrate Approval Rules_1 area, verify the values.

959
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Aribute Value

Name Project to Migrate Approval Rules_1


   

Type Upload
   

Status Completed Successfully


   

◦ Click Import Setup Data.


◦ On the Import Setup Data page, in the Import Options area, note the value, then click Submit.

Aribute Value

Process Name Project to Migrate Approval Rules_1


   

◦ In the Search Results area, click the row that includes the value.

Aribute Value

Name Project to Migrate Approval Rules_1


   

◦ In the Project to Migrate Approval Rules_1 area, verify values.

Aribute Value

Name Project to Migrate Approval Rules_1


   

Type Import Setup Data


   

Status Completed Successfully


   

5. Navigate to the Manage Order Approval Rules page, then verify that your approval rules imported successfully.

Related Topics
• Get Approvals for Sales Orders
• Manage Order Management Parameters

960
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Credit Check
Overview of Seing Up Credit Check
Use credit check in Order Management to minimize the nancial risk that your organization assumes during day-to-day
operations. Validate each sales order and verify your customer has credit available that's sucient to cover the cost of
purchase.
For example.

• Screen each sales order for customer credit at order submit.


• Do credit check according to order type.
• Automatically release credit hold after the credit check issue resolves and proceed to fulllment.
• Check credit before shipment during a long fulllment cycle. Credit status might change during fulllment.
• Allow only some users to manually release a credit check hold.

961
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Order Management can do a credit check on each sales order or on each order line, and can hold an order line that
doesn't pass credit check.

Note.

1. The Order Entry Specialist creates a sales order in Order Management, adds order lines, sets payment terms,
payment method, and Bill-to Customer, then clicks Submit.
2. If you set the Activate Credit Check on Order Submit order management parameter to.

◦ Yes.. Order Management calls the credit check service in Receivables.


◦ No. Order Management orchestrates fulllment.

962
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

3. Do credit check.
◦ Receivables does credit check. If credit check.
• Passes. Receivables sends the result to Order Management, and Order Management orchestrates
fulllment.
• Fails. Credit check continues.
4. Order Management processes the sales order depending on how you set the value of the Credit Check Failure
at Order Submit order management parameter.

Value Description

Save Order in Draft Status Save the sales order in Draft status and don't proceed to fulllment. Wait for the credit
  analyst to approve or decline.
 

Submit the Order with Hold on Lines Save the sales order in Processing status, place a hold on each order line that fails credit
That Failed Credit Check check, then send order lines that aren't on hold to fulllment.
   

For details, see the Handle Credit Check Failure section later in this topic.
5. Receivables creates a case folder for the credit request and determines credit status.

Status Description

Open Receivables authorizes credit and sets Authorization Status to Open.


   

Failed Receivables sends the credit check result to Order Management, including credit
  authorization number, credit authorization amount, and credit expiration date.
 

The credit analyst uses the Credit Reviews page in the Receivables work area to examine the case folder, then
approves or declines the credit request. Receivables sends the result of the credit review to Order Management.
6. If the credit analyst.
◦ Approves. Receivables sends the authorization ID, date, Bill To, and release reason to Order
Management. Order Management sets the status to Processing and orchestrates fulllment for the entire
sales order.
◦ Declines. Order Management sets the status to Draft and doesn't send any part of the sales order to
fulllment. The Order Entry Specialist must revise the sales order.
Note.
• Credit check establishes a credit line only for a single currency, and only for the customer account.
• Order Management runs credit check when the user submits the sales order, and immediately before running
approval. If credit check succeeds, and if approval fails, then Order Management removes authorization for the
authorization number, then gets a new authorization number after the user resubmits the sales order.
• If the Order Entry Specialist modies an aribute that aects payment sometime after Order Management runs
credit check, then Order Management runs credit check again. Bill-To Customer is an example of an aribute
that aects payment.

963
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

• If the Order Entry Specialist cancels a sales order before fulllment nishes, then Order Management
communicates with Credit Management in Receivables to reverse the credit amount of the sales order. It
reverses this amount in the customer account in Oracle Fusion Financials.

Calculate Available Credit


Here's the equation that Receivables uses when it calculates available credit.

• Credit limit, minus the open balance, minus total outstanding authorization, equals available credit.

Receivables also does this.

• Uses invoice details to determine the open balance


• Sums the amounts of an authorization to determine the total outstanding authorization

For example, assume a customer account contains these values.

• Credit limit is $2,000


• Open balance is $0
• Outstanding authorization is $500
• Customer orders an item that costs $1,000

Receivables does these calculations.

• $2,000 credit limit, minus $0 open balance, minus $500 outstanding authorization, equals $1,500 available
credit.
• $1,500 available credit exceeds the $1,000 item cost, so Receivables authorizes the purchase, and then sends
an authorization number, expiration date, authorization amount of $1,000, and available credit to Order
Management. Receivables uses the same currency that the sales order uses.

You can use the Receivables work area to dene a dierent formula, such as modifying credit limit, including shipping
charges and taxes, and so on. For details, see Oracle Credit Management User Guide on Oracle Help Center.

Handle Credit Check Failure


Order Management processes credit check dierently depending on the value you set for the Credit Check Failure at
Order Submit order management parameter.

Save Order in Draft Status

This section assumes you enable the Credit Management feature in Receivables.

If any order line fails credit check, then the entire sales order fails during order submit.

Order Management processes the sales order.

1. Saves the sales order in status Credit Review Pending.


2. Doesn't submit the sales order to order fulllment.
3. Doesn't apply a credit check hold on any order line.
4. Receivables opens a case folder for the sales order in Credit Reviews.
5. The credit analyst sets the recommendation and closes the case folder in Credit Management.
6. Order Management does these steps.

◦ Updates the Credit Authorization Number aribute and the Expiration Date aribute on the sales order.

964
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

◦ Displays a message for the fulllment lines. The message contains case folder details, such as Closure
Date, Status, and Closed By. For details, see the Release Holds for Order Lines That Fail Credit Check
topic.
◦ Changes order status and continues processing depending on how the credit analyst sets the
recommendation.

Credit Analyst's Result in Order Management


Recommendation

Approve Source Transaction


Credit Request Depends on whether you implement trade compliance check or order approval.
 
• Don't implement. Changes order status to Processing, automatically removes
credit hold, and proceeds to order fulllment.
• Do implement. Sets status according to the state of compliance check or order
approval, then proceeds to compliance check or order approval.

Decline Source Transaction Credit Change order status to Draft.


Request  
  The Order Entry Specialist must revise and resubmit the sales order.
 

Submit Order with Hold on Lines that Failed Credit Check

This section assumes you enable the Credit Management feature in the Receivables work area.

Order Management does these steps.


1. Submits the sales order to order fulllment even if credit check fails.
2. Applies a credit check hold on each order line that fails credit check.
3. Holds the lines that fail credit check on the rst step of the orchestration process.
4. Opens a case folder for the sales order in Credit Management.
5. Sends fulllment lines that pass credit check to the next step in the orchestration process.
6. The credit analyst sets the recommendation and closes the case folder in Credit Management.
7. Order Management does these steps.
◦ Updates aributes and displays a message. This behavior is similar to the behavior that occurs when you
use Save Order in Draft Status.
◦ Changes order status depending on how the credit analyst sets the recommendation when closing the
case folder.

Recommendation Result in Order Management

Approve Source Transaction Release credit check hold on fulllment lines and send them to order fulllment.
Credit Request  
 

Decline Source Transaction Credit Doesn't release credit check hold on fulllment lines. These lines remain on hold, and
Request Order Management doesn't send them to order fulllment.
   
The Order Entry Specialist can query or cancel failed lines, but can't revise them.
 

Revising Sales Orders

965
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Note.

• If a revision fails credit check, then Order Management sets the status to Credit Review Pending regardless of
how you set the order management parameter.
• If the sales order or order revision is in the Credit Review Pending status, then the Order Entry Specialist can't
make any changes. The Order Entry Specialist must use the Revert to Draft action, and then make changes.
• If you enable or don't enable the Credit Management feature.

◦ Enable. Order Management waits for the credit analyst to close the case folder before submiing failed
lines to order fulllment.
◦ Don't enable. The Order Entry Specialist must manually revise the revision to a draft, modify the sales
order, such as delete lines that failed credit check, reduce quantity so the sales order total doesn't exceed
credit limit, and so on, and then resubmit.
• The revision must successfully pass credit check so Order Management can merge the Draft sales order into
the Processing instance of the same sales order that's currently running in order fulllment.

Behavior When You Don't Enable Credit Management

This section assumes you don't enable the Credit Management feature in Receivables, and credit check fails during
order submit.

1. Order Management takes action depending on the value of the Credit Check Failure at Order Submit
parameter.

Value Result

Save Order in Draft Status Set order status to Credit Review Pending.
   
Wait for the credit analyst to resolve the issue and close the case folder.
 
Don't submit any order lines to order fulllment.
 

Submit Order with Hold on Lines Set order status to Processing.


that Failed Credit Check  
  Place each order line that fails credit check on credit check hold.
 
Submit all order lines, including order lines that fail credit check, to order fulllment.
 

2. Credit analyst resolves the issue and closes the case folder.
3. Order Entry Specialist must revise the sales order, then resubmit it.

Related Topics
• Release Holds for Order Lines That Fail Credit Check
• Reauthorize Payment
• Manage Order Management Parameters

966
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Guidelines for Seing Up Credit Check


Use these guidelines to help you set up credit check in Order Management.

Determine When to Check Credit


Credit check during order entry or order fulllment.

967
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Note.

• Option 1. Check credit when the Order Entry Specialist clicks Submit when creating or revising a sales order.

◦ Submit the sales order to order fulllment but hold order lines that fail credit check.
◦ Don't submit the sales order to order fulllment. Instead, set the status to Credit Review Pending, and
route the sales order to a credit analyst to do credit check.
• Option 2. Check credit during order fulllment. For example, add a credit check step to the orchestration
process after scheduling and reserving the item, but before shipping it.
• Option 3. Check credit during order entry at order submit, then check credit again during order fulllment.

Order Management processes credit check dierently during order submit or order fulllment.

Question Check Credit On Submit Check Credit During Order Fulllment

How does Order Management send order Send order lines as a group according to Send one fulllment line at a time.
lines to Credit Management? bill-to customer.  
   

What happens when an order line fails Set fulllment line to error.
credit check? Order Management does one of these.  
 
• Place order line on credit check
hold.
• Lock order line, set status to Credit
Review Pending, and wait for credit
analyst to review case folder.

How can an order line that fails credit


check proceed? Order Entry Specialist does one of these. Do one of these.
 
• Manually releases hold. • Order Entry Specialist revises the
• Revises the sales order to status sales order.
Draft, modies it, and submits it • Credit analyst adjusts credit limit,
again. then Order Management runs
a scheduled process that you
dene that retries the orchestration
process step. The Order Entry
Specialist can also manually retry.

Limitations Credit check occurs only for all order lines Order Entry Specialist can't manually
  in the entire sales order. You can't check proceed past the credit check. Can only
credit for a single line or only for some retry the step.
lines.  
 
Order Entry Specialist can't modify
aributes that aect credit while the
fulllment line is on credit check hold.
Order Entry Specialist can only cancel the
line.
 

Order Management processes credit check dierently depending on the state of the order lines.

968
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

State of Order Lines Check Credit On Submit Check Credit During Order Fulllment

In draft. Allow all changes. Fulllment hasn't started, so allow all


    changes.
Make changes, then recheck credit on all  
lines.
 

Order Management rechecks each line Allow all changes. Apply normal change
Lines are in order fulllment, and. that it checked earlier during submit. processing.
It does the recheck regardless of the  
• Before credit check step. change. It creates a new authorization. If Order management nished credit
• In error because credit check failed   check during order fulllment, and if credit
during fulllment. check fails when processing the change,
• Credit check nished. then Order Management doesn't allow the
Order Entry Specialist to revise the sales
order. You must use error recovery to x
the problem.
 

In order fulllment, on credit hold. Allow all changes. Apply normal change
  If changed aributes. processing.
 
• Aect credit. Reject revision.
• Don't aect credit. Recheck credit.

Check Credit During Order Fulllment


Here's when you can check credit during order fulllment.

• Your fulllment cycles run for a long time. For example, run credit check immediately before shipping to make
sure credit authorization hasn't expired while process the sales order through fulllment.
• You import sales orders from a source system, the source system already checked credit, so you don't want
to check credit again when submiing the order to fulllment. But you also don't want to send the order to
shipping if credit authorization expired. A long delay might exist between the time the source system checks
credit and when the item is ready to ship.

969
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Here's how it works.

Note.

1. Order Entry Specialist clicks Submit.


2. The orchestration process starts fulllment, such as schedule inventory, reserve inventory, then reaches credit
check step.
3. If the expiration date of the credit authorization is expired, or if Order Management hasn't already done credit
check at least one time, then the orchestration process sends a request to Receivables to do credit check on
fulllment lines.

◦ If credit check passes the rst time Receivables performs credit check, then it creates an authorization
number and authorization expiration date.

970
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

For example, assume you do credit check during order submit on January 1, 2019, credit check passes,
and Receivables sets the expiration date to January 10, 2019. If the orchestration process runs the credit
check step on.

• January 2 during fulllment, then it won't run credit check again, but will instead proceed to the
next orchestration process step.
• January 11, then it will run credit check again.
◦ The orchestration process sends only the fulllment lines that require credit check. It doesn't send the
entire sales order.
4. If credit check fails, then the fulllment line goes into error and processing stops.

◦ Credit analyst must adjust credit in Credit Management in Receivables.


◦ Orchestration process will run credit check step again after credit analyst adjusts credit.

971
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Set the Order Management Parameter


Set the value for the Credit Check Failure at Order Submit order management parameter.

Note.

Value Description

Save Order in Draft Status


  Save the sales order in the Draft status. Don't send any lines to order fulllment.

972
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Value Description

Use when.

• Your sales order includes more than one value for Bill-to Customer on the order lines,
and you must move the order to fulllment only if credit check passes for all bill-to
customers.
• You don't need to do credit check during fulllment.
• You don't need to release credit check hold so fulllment can continue. You can wait for
the credit analyst to resolve the hold.

Submit Order with Hold on Lines that


Failed Credit Check Save the sales order in Processing status, place a hold on each order line that fails credit check,
  then send order lines that aren't on hold to fulllment.

Use when.

• Your sales orders sometimes include more than one value for Bill-to Customer on the
order lines, and you must move the order to fulllment even if credit check fails for
some or all bill-to customers.
For example, if credit check for Bill To Customer x succeeds, and if credit check for Bill
To Customer y fails, then Order Management can send order lines for customer x to
order fulllment, and place order lines for customer y on hold.
If order lines include only one Bill To Customer value, then Order Management uses the
order total when it checks credit.
• You don't revise aributes that aect credit check, or you might cancel the failed lines.
• You must release credit check hold so fulllment can continue, even if you must
manually release the hold.

Frequent Implementation Questions

Question Description

Why does Order Management place The orchestration process orchestrates and Order Management tracks each fulllment line
credit check hold on the fulllment separately so they can optimize fulllment.
line instead of on the order header  
when all fulllment lines of the sales For example, if supply is available for lines x and y but not z, then it can reserve supply and
order fail credit check? move to the next orchestration process step for x and y.
   
If Order Management placed the hold on the sales order instead of the fulllment lines, then it
would have to pause orchestration for all lines while it waits for supply to become available for
z.
 

How can we allow fulllment lines Manually release the credit check hold. To make sure you don't ship a line that fails credit
that are on credit check hold to check, add another orchestration process step that does credit check. Add it after the
proceed beyond scheduling? scheduling step.
   

Assume credit check fails during You must retry the step and it must pass credit check so the fulllment line can move forward
fulllment and the credit check step is in the ow.
in error. Can we manually get that line  
past the credit check step? You can't manually remove a hold because Order Management doesn't place a hold when
  credit check fails during fulllment. It only places the line in error.
 

973
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Related Topics
• Release Holds for Order Lines That Fail Credit Check
• Reauthorize Payment
• Manage Order Management Parameters

Set Up Credit Check


Do the setup tasks, such as making sure the customer record meets requirements, verifying customer account setup,
and so on.
1. Make sure the customer record exists in Oracle Fusion Financials, and make sure the billing account for the
customer meets these requirements.
◦ Is active.
◦ Has an established credit line.
◦ Make sure the Include in Credit Check option for the account contains a check mark.
◦ Set these aributes on the account.
• Credit Limit
• Credit Currency
• Order Amount Limit
2. Verify customer account setup.
◦ Sign into Order Management with administrative privileges.
◦ In the Navigator, click Setup and Maintenance.
◦In the Setup and Maintenance work area, go to the task.
• Oering: Financials
• Functional Area: Customers
• Task: Create Customer
◦ On the Create Organization Customer page, in the Organization Information area, search for the
customer account you must verify.
◦ Click Prole History, then verify the aributes that aect credit, such as Credit Line and Credit Currency.
To get details about how to do these set ups, see Oracle Credit Management User Guide.
• Automatically do credit check in Order Management. You must enable the Credit Management in
Oracle Receivables feature.
• Use Credit Management in Oracle Fusion Financials to enable the customer for credit check, set up
the customer credit prole, and so on.
3. Optional. Enable the Credit Management in Receivables feature.
Enable the AR_CREDIT_MGMT lookup code. Use the Manage Standard Lookups page in the Setup and
Maintenance work area.
4. Set up these order management parameters.
◦ Activate Credit Check on Order Submit
◦ Credit Check Failure at Order Submit

974
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

For details, see the Manage Order Management Parameters topic.


5. Optional. Set up credit check to occur during order fulllment.

Set Up Credit Check to Occur During Order Fulllment


In some situations, order fulllment might require days to complete because of a variety of factors. For example.

• Inventory is out of stock for the item and requires several days to replenish.
• The credit that's available for a customer might decrease during this time because the customer continues to
make other purchases.

975
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

You can add a credit check step at any point in the orchestration process. For example, to occur immediately before
shipping. Use this functionality to make sure the credit check is accurate and up to date so you don't ship an item when
customer credit no longer covers the purchase amount.

For example, you can add a credit check step to an orchestration process immediately after the Reserve step, and
immediately before the Ship step.

Here's the values you set for the credit check step you add.

976
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Aribute Value

Step Name Enter text that describes the step, such as Credit Check.
   

Task Type DOO_ CreditCheck


   

Task DOO_ CreditCheck


   

Service Create Credit Check Request


   

If credit check fails when you run it from the DOO_CreditCheck task, then credit check sets the task to an error state,
stops processing order lines, and pauses the orchestration process. To recover, you must set up the Recover Tasks
scheduled process. Aempting to release a hold won't resume processing.

If you add a credit check step to an orchestration process, and if the orchestration process already checked credit for
the sales order before order submit, then Order Management examines the expiration date of the credit check.
• If the current date occurs after the expiration date. Order Management does the credit check.
• If the current date occurs on or before the expiration date. Order Management doesn't do the credit check.

For details, see the Set Up Orchestration Processes topic.

Related Topics
• Manage Order Management Parameters
• Orchestration Processes

Allow Users to Close Case Folders


Set up Order Management to allow the user to review customer credit and approve the case folder.
In most organizations, the person who books sales orders and views them go on credit check hold doesn't sign in
with a role that allows them to review customer credit or approve the case folder. However, some users, such as Order
Manager, might need to review and approve.

For details about case folders and the set ups you must do to use them, see these books on My Oracle Support.
• Oracle Financials Cloud, Implementing Receivables Credit to Cash
• Oracle Financials Cloud, Using Receivables Credit to Cash

In this example, you will allow user Aaron Holmes to close case folders.
1. Assign a role to your user that allows the user to view and approve credit.
For details, see Oracle Credit Management User Guide.
2. Sign into Order Management with the predened it_security_manager job role.
3. In the Navigator, click Setup and Maintenance.
4. In the Setup and Maintenance work area, go to the task.
◦ Oering: Order Management

977
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

◦ Functional Area: Users and Security


◦ Task: Manage Job Roles

The Security Console displays the Roles page after you click Manage Job Roles. For details, see book
Securing Oracle HCM Cloud.
5. Add your user to the Credit Manager job role.

◦ On the Roles page, search for, then open the Credit Manager job role.
◦ Click Actions > Copy Role.
◦ In the Copy Options dialog, click Copy Top Role and Inherited Roles > Copy Role.
◦ On the task-based page that displays, click Next four times until Users is the active step on the task line.
◦ On the Copy Role Credit Manager Custom Users page, click Add User.
◦ In the Add User dialog, in the search window, enter the predened user ar_mgr_operations, then click
Search.

If you don't use a predened user, but instead create your own user, then make sure the user includes a
role that allows the user to close case folders.
◦ In the search results, click the row that contains Aaron Holmes, the user you must add, then click Add
User to Role > Cancel.
◦ Conrm that the Copy Role Credit Manager Custom Users page displays the user you just added, then
click Next > Submit and Close.
6. Import the user and role.

◦ In the Navigator, click Scheduled Processes.


◦ On the Scheduled Processes page, click Schedule New Process.
◦ In the Schedule New Process dialog, click the down arrow, search for Import User and Role Application,
then click OK > OK.
◦ In the Process Details dialog, click Submit.
◦ On the Scheduled Processes page, click Actions > Refresh.

Repeat until this value displays for the Import User and Role Application scheduled process.

Aribute Value

Status Succeeded
   

7. Sign out of Order Management.

Related Topics
• Manage Order Management Parameters
• Orchestration Processes

978
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Control Who Can Release Credit Check Hold


Set up a hold code to control who can release a credit check hold in the Order Management work area.
Order Management comes predened to allow any user to release a credit check hold in the Order Management work
area. In this example, assume you must allow only the Order Manager to release credit check hold.

1. Examine the predened behavior.

◦ Sign into Order Management with the order_entry_specialist role.


◦ Open a sales order that's on hold.
◦ In the Order Lines area, click Apply Hold > Release Hold.

979
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

◦ Notice that you can use the Release Hold dialog to set values and release the hold.

2. Specify the role that can release credit check hold.

◦ Sign into Order Management with administrative privileges.


◦ In the Navigator, click Setup and Maintenance.
◦ In the Setup and Maintenance work area, go to the task.

• Oering: Order Management


• Functional Area: Orders
• Task: Manage Hold Codes

980
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

◦ On the Manage Hold Denitions page, click Query by Example, enter the value, then press Enter on your
keyboard.

Aribute Value

Name Credit Check Hold


   

◦ In the Details area, click Applicable Roles > Selected Roles.


◦ Click Actions > Select and Add.
◦ In the Select and Add dialog, search for this value.

Aribute Value

Role Order Manager


   

◦ In the search results, click the row that includes Order Manager, then click Apply > OK.
◦In the Details area, make sure the Release Hold aribute contains a check mark, then click Save and
Close.
3. Test your set up.

◦ Sign into Order Management with the order_entry_specialist role.


◦ Open the sales order, then click Apply Hold > Release Hold.
◦ In the Release Hold dialog, verify that you can't set the Hold Name aribute, and can't release the hold.
◦ Sign out of Order Management, then sign into Order Management with the order_mgr_operations role.
◦ Open the sales order, verify you can set the Hold Name aribute in the Release Hold dialog, then click
Save and Close.
◦ On the Order page, wait a moment, then click Refresh.

Notice that Order Management changes the Status aribute on the order line from Not Started to
Scheduled. If the status doesn't change, wait a moment, then try again.
◦ Click Actions > Switch to Fulllment View.
◦ Click Fulllment Lines.

981
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

◦ In the Details area, click Holds, then examine the release details.

Related Topics
• Manage Order Management Parameters
• Orchestration Processes

982
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Import Source Orders That Include Credit Check


Control how Order Management handles credit check for each source order that you import from a source system.
Use a web service or le-based data import. This example does credit check in the source system.

Set aributes in the payload you use to import your source order.

983
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Aribute Description

PreCreditCheckedFlag
  Set the value.

• True. Don't check credit. Order Management won't do credit check on the source order
even if you enable credit check for the business unit.
• False. Do check credit.

CreditCheckAuthorizationCode Set to any numeric value, such as 9090.


   
Order Management uses the value that you set to populate the Credit Reference aribute on
the order line.
 
If you import a source order, and if a sales order already exists in Order Management that
matches the source order, then Order Management examines the value of Credit Reference in
the sales order. If Credit Reference isn't equal to the value of CreditCheckAuthorizationCode,
then Order Management checks credit for the source order.
 

CreditCheckAuthorizationExpiryDate
  Set to a date value, such as 2016-10-05T10:00:00Z.

Order Management uses the value that you set to populate the Expiration Date aribute on the
order line.

If the current date.

• Occurs after CreditCheckAuthorizationExpiryDate. Order Management checks credit.


• Occurs on or before CreditCheckAuthorizationExpiryDate. Order Management
doesn't check credit.

Note.

• You can reference PreCreditCheckedFlag from a transformation rule or an order management extension.
• You can send PreCreditCheckedFlag only through order import.
• PreCreditCheckedFlag doesn't display in the Order Management work area.

To view the code and date, in the Order Management work area, navigate to a fulllment view, then open a sales order.
On the Order page, in the Fulllment Line Details area, in the Aributes area, on the Billing tab, in the Credit Approval
area, note.

• CreditCheckAuthorizationCode displays in the Credit Reference aribute.


• CreditCheckAuthorizationExpiryDate displays in the Expiration Date aribute.

For example.

984
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Here's an example payload.


<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Header><your security details></
soap:Header>
<soap:Body>
<ns1:process xmlns:ns1="http://xmlns.oracle.com/apps/scm/doo/decomposition/receiveTransform/receiveSalesOrder/
DooDecompReceiveOrderComposite">
<ns1:OrchestrationOrderRequest xmlns:ns2="http://xmlns.oracle.com/apps/scm/doo/decomposition/receiveTransform/
receiveSalesOrder/model/">
<ns2:SourceTransactionNumber>RD_CC_TEST_0907_1</ns2:SourceTransactionNumber>
<ns2:SourceTransactionSystem>LEG</ns2:SourceTransactionSystem>
<ns2:RevisionSourceSystem>LEG</ns2:RevisionSourceSystem>
<ns2:SourceTransactionIdentifier>RD_CC_TEST_0907_1</ns2:SourceTransactionIdentifier>
<ns2:BuyingPartyId>1006</ns2:BuyingPartyId>
<ns2:BuyingPartyName></ns2:BuyingPartyName>
<ns2:BuyingPartyNumber></ns2:BuyingPartyNumber>

985
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

<ns2:BuyingPartyContactId></ns2:BuyingPartyContactId>
<ns2:BuyingPartyContactName></ns2:BuyingPartyContactName>
<ns2:BuyingPartyContactNumber></ns2:BuyingPartyContactNumber>
<ns2:CustomerPONumber></ns2:CustomerPONumber>
<ns2:TransactionalCurrencyCode>USD</ns2:TransactionalCurrencyCode>
<ns2:TransactionalCurrencyName></ns2:TransactionalCurrencyName>
<ns2:TransactionOn>2017-06-07T10:10:10</ns2:TransactionOn>
<ns2:PlacedOn></ns2:PlacedOn>
<ns2:RequestingBusinessUnitIdentifier>204</ns2:RequestingBusinessUnitIdentifier>
<ns2:TransactionTypeCode></ns2:TransactionTypeCode>
<ns2:CurrencyConversionType></ns2:CurrencyConversionType>
<ns2:CurrencyConversionRate></ns2:CurrencyConversionRate>
<ns2:CurrencyConversionDate></ns2:CurrencyConversionDate>
<ns2:TransactionDocumentTypeCode></ns2:TransactionDocumentTypeCode>
<ns2:CancelReasonCode></ns2:CancelReasonCode>
<ns2:CancelReason></ns2:CancelReason>
<ns2:RequestCancelDate></ns2:RequestCancelDate>
<ns2:Comments></ns2:Comments>
<ns2:BatchIdentifier></ns2:BatchIdentifier>
<ns2:RequestingLegalUnitIdentifier>204</ns2:RequestingLegalUnitIdentifier>
<ns2:RequestingLegalUnit></ns2:RequestingLegalUnit>
<ns2:OrigSystemDocumentReference>ManualShipmentProcess</ns2:OrigSystemDocumentReference>
<ns2:InterfaceStatus></ns2:InterfaceStatus>
<ns2:PartialShipAllowedFlag>false</ns2:PartialShipAllowedFlag>
<ns2:FreezePriceFlag>true</ns2:FreezePriceFlag>
<ns2:OperationMode></ns2:OperationMode>
<ns2:PreCreditCheckedFlag>true</ns2:PreCreditCheckedFlag>
<ns2:OrchestrationOrderRequestLine>
<ns2:SourceTransactionLineIdentifier>101</ns2:SourceTransactionLineIdentifier>
<ns2:SourceTransactionScheduleIdentifier>101</ns2:SourceTransactionScheduleIdentifier>
<ns2:SourceTransactionLineNumber>1</ns2:SourceTransactionLineNumber>
<ns2:SourceTransactionScheduleNumber>1</ns2:SourceTransactionScheduleNumber>
<ns2:ProductIdentifier>149</ns2:ProductIdentifier>
<ns2:ProductNumber></ns2:ProductNumber>
<ns2:ProductName></ns2:ProductName>
<ns2:OrderedQuantity>10</ns2:OrderedQuantity>
<ns2:CanceledQuantity></ns2:CanceledQuantity>
<ns2:OrderedUOMCode>Ea</ns2:OrderedUOMCode>
<ns2:RequestedFulfillmentOrganizationIdentifier>204</ns2:RequestedFulfillmentOrganizationIdentifier>
<ns2:RequestedFulfillmentOrganizationCode></ns2:RequestedFulfillmentOrganizationCode>
<ns2:BusinessUnitIdentifier></ns2:BusinessUnitIdentifier>
<ns2:BusinessUnitName></ns2:BusinessUnitName>
<ns2:RequestingBusinessUnitIdentifier>204</ns2:RequestingBusinessUnitIdentifier>
<ns2:RequestingBusinessUnitName></ns2:RequestingBusinessUnitName>
<ns2:CancelReasonCode></ns2:CancelReasonCode>
<ns2:CancelReason></ns2:CancelReason>
<ns2:SubstitutionAllowedFlag></ns2:SubstitutionAllowedFlag>
<ns2:SubstitutionReasonCode></ns2:SubstitutionReasonCode>
<ns2:CustomerPONumber></ns2:CustomerPONumber>
<ns2:CustomerPOLineNumber></ns2:CustomerPOLineNumber>
<ns2:CustomerPOScheduleNumber></ns2:CustomerPOScheduleNumber>
<ns2:CustomerProductIdentifier></ns2:CustomerProductIdentifier>
<ns2:TransactionLineTypeCode></ns2:TransactionLineTypeCode>
<ns2:ParentLineReference></ns2:ParentLineReference>
<ns2:RootParentLineReference></ns2:RootParentLineReference>
<ns2:ShippingInstructions>XYZ</ns2:ShippingInstructions>
<ns2:PackingInstructions>XYZ</ns2:PackingInstructions>
<ns2:InvoicingRuleCode></ns2:InvoicingRuleCode>
<ns2:InvoicingRule></ns2:InvoicingRule>
<ns2:AccountingRuleCode></ns2:AccountingRuleCode>
<ns2:AccountingRule></ns2:AccountingRule>
<ns2:RequestedShipDate></ns2:RequestedShipDate>
<ns2:RequestedArrivalDate>2015-11-15T10:10:10</ns2:RequestedArrivalDate>
<ns2:ScheduleShipDate>2015-11-15T10:10:10</ns2:ScheduleShipDate>
<ns2:ScheduleArrivalDate>2015-11-15T10:10:10</ns2:ScheduleArrivalDate>
<ns2:DemandClassCode></ns2:DemandClassCode>

986
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

<ns2:DemandClass></ns2:DemandClass>
<ns2:IncotermCode></ns2:IncotermCode>
<ns2:Incoterm></ns2:Incoterm>
<ns2:ShippingCarrierCode></ns2:ShippingCarrierCode>
<ns2:ShippingCarrier></ns2:ShippingCarrier>
<ns2:PaymentTerms></ns2:PaymentTerms>
<ns2:PaymentTermsCode>1</ns2:PaymentTermsCode>
<ns2:TransactionCategoryCode>ORDER</ns2:TransactionCategoryCode>
<ns2:ReturnReasonCode></ns2:ReturnReasonCode>
<ns2:ReturnReason></ns2:ReturnReason>
<ns2:ShippingServiceLevelCode></ns2:ShippingServiceLevelCode>
<ns2:ShippingServiceLevel></ns2:ShippingServiceLevel>
<ns2:ShippingModeCode></ns2:ShippingModeCode>
<ns2:ShippingMode></ns2:ShippingMode>
<ns2:ShipmentPriorityCode></ns2:ShipmentPriorityCode>
<ns2:ShipmentPriority></ns2:ShipmentPriority>
<ns2:InventoryOrganizationIdentifier>204</ns2:InventoryOrganizationIdentifier>
<ns2:InventoryOrganization></ns2:InventoryOrganization>
<ns2:FreightTermsCode></ns2:FreightTermsCode>
<ns2:FreightTerms></ns2:FreightTerms>
<ns2:RequestCancelDate></ns2:RequestCancelDate>
<ns2:OriginalProductIdentifier></ns2:OriginalProductIdentifier>
<ns2:OriginalProductName></ns2:OriginalProductName>
<ns2:OriginalProductNumber></ns2:OriginalProductNumber>
<ns2:ShipToPartyIdentifier>1006</ns2:ShipToPartyIdentifier>
<ns2:ShipToPartyName></ns2:ShipToPartyName>
<ns2:ShipToPartyNumber></ns2:ShipToPartyNumber>
<ns2:ShipToPartySiteIdentifier>1036</ns2:ShipToPartySiteIdentifier>
<ns2:ShipToAddress1></ns2:ShipToAddress1>
<ns2:ShipToAddress2></ns2:ShipToAddress2>
<ns2:ShipToAddress3></ns2:ShipToAddress3>
<ns2:ShipToAddress4></ns2:ShipToAddress4>
<ns2:ShipToCity></ns2:ShipToCity>
<ns2:ShipToPostalCode></ns2:ShipToPostalCode>
<ns2:ShipToState></ns2:ShipToState>
<ns2:ShipToProvince></ns2:ShipToProvince>
<ns2:ShipToCountry></ns2:ShipToCountry>
<ns2:ShipToContactPartyIdentifier></ns2:ShipToContactPartyIdentifier>
<ns2:ShipToContactPartyNumber></ns2:ShipToContactPartyNumber>
<ns2:ShipToContactPartyName></ns2:ShipToContactPartyName>
<ns2:BillToCustomerIdentifier>1002</ns2:BillToCustomerIdentifier>
<ns2:BillToCustomerName></ns2:BillToCustomerName>
<ns2:BillToCustomerNumber></ns2:BillToCustomerNumber>
<ns2:BillToAccountSiteUseIdentifier>1009</ns2:BillToAccountSiteUseIdentifier>
<ns2:BillToAddress1></ns2:BillToAddress1>
<ns2:BillToAddress2></ns2:BillToAddress2>
<ns2:BillToAddress3></ns2:BillToAddress3>
<ns2:BillToAddress4></ns2:BillToAddress4>
<ns2:BillToCity></ns2:BillToCity>
<ns2:BillToPostalCode></ns2:BillToPostalCode>
<ns2:BillToState></ns2:BillToState>
<ns2:BillToProvince></ns2:BillToProvince>
<ns2:BillToCountry></ns2:BillToCountry>
<ns2:BillToAccountContactIdentifier></ns2:BillToAccountContactIdentifier>
<ns2:BillToAccountContactName></ns2:BillToAccountContactName>
<ns2:BillToAccountContactNumber></ns2:BillToAccountContactNumber>
<ns2:PartialShipAllowedFlag>false</ns2:PartialShipAllowedFlag>
<ns2:FulfillmentLineIdentifier></ns2:FulfillmentLineIdentifier>
<ns2:ShipToRequestRegion></ns2:ShipToRequestRegion>
<ns2:RequestedSupplierCode></ns2:RequestedSupplierCode>
<ns2:RequestedSupplierName></ns2:RequestedSupplierName>
<ns2:RequestedSupplierNumber></ns2:RequestedSupplierNumber>
<ns2:RequestedSupplierSiteCode></ns2:RequestedSupplierSiteCode>
<ns2:SupplierAddressLine1></ns2:SupplierAddressLine1>
<ns2:SupplierAddressLine2></ns2:SupplierAddressLine2>
<ns2:SupplierAddressLine3></ns2:SupplierAddressLine3>

987
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

<ns2:SupplierAddressLine4></ns2:SupplierAddressLine4>
<ns2:SupplierAddressCity></ns2:SupplierAddressCity>
<ns2:SupplierAddressState></ns2:SupplierAddressState>
<ns2:SupplierAddressZipCode></ns2:SupplierAddressZipCode>
<ns2:SupplierAddressProvince></ns2:SupplierAddressProvince>
<ns2:SupplierAddressCountry></ns2:SupplierAddressCountry>
<ns2:FulfillmentMethodCode></ns2:FulfillmentMethodCode>
<ns2:Comments></ns2:Comments>
<ns2:ReferenceTransactionLineId></ns2:ReferenceTransactionLineId>
<ns2:InterfaceStatus></ns2:InterfaceStatus>
<ns2:UnitListPrice>5</ns2:UnitListPrice>
<ns2:UnitSellingPrice>5</ns2:UnitSellingPrice>
<ns2:ExtendedAmount>100</ns2:ExtendedAmount>
<ns2:BatchIdentifier></ns2:BatchIdentifier>
<ns2:DestinationShippingOrganizationIdentifier></ns2:DestinationShippingOrganizationIdentifier>
<ns2:DestinationShippingLocationIdentifier></ns2:DestinationShippingLocationIdentifier>
<ns2:EarliestAcceptableShipDate></ns2:EarliestAcceptableShipDate>
<ns2:LatestAcceptableShipDate></ns2:LatestAcceptableShipDate>
<ns2:EarliestAcceptableArrivalDate></ns2:EarliestAcceptableArrivalDate>
<ns2:LatestAcceptableArrivalDate></ns2:LatestAcceptableArrivalDate>
<ns2:PromiseShipDate></ns2:PromiseShipDate>
<ns2:PromiseArrivalDate></ns2:PromiseArrivalDate>
<ns2:SubInventoryCode></ns2:SubInventoryCode>
<ns2:SubInventory></ns2:SubInventory>
<ns2:ShipSetName></ns2:ShipSetName>
<ns2:TaxExemptFlag>S</ns2:TaxExemptFlag>
<ns2:TaxClassificationCode></ns2:TaxClassificationCode>
<ns2:TaxExemptionCertificateNumber></ns2:TaxExemptionCertificateNumber>
<ns2:TaxExemptReasonCode></ns2:TaxExemptReasonCode>
<ns2:DefaultTaxationCountry></ns2:DefaultTaxationCountry>
<ns2:FirstPartyTaxRegistration></ns2:FirstPartyTaxRegistration>
<ns2:ThirdPartyTaxRegistration></ns2:ThirdPartyTaxRegistration>
<ns2:DocumentSubType></ns2:DocumentSubType>
<ns2:FinalDischargeLocationIdentifier></ns2:FinalDischargeLocationIdentifier>
<ns2:ProductFiscalCategoryIdentifier></ns2:ProductFiscalCategoryIdentifier>
<ns2:ProductType></ns2:ProductType>
<ns2:ProductCategory></ns2:ProductCategory>
<ns2:TransactionBusinessCategory></ns2:TransactionBusinessCategory>
<ns2:AssessableValue></ns2:AssessableValue>
<ns2:UserDefinedFiscClass></ns2:UserDefinedFiscClass>
<ns2:IntendedUseClassificationIdentifier></ns2:IntendedUseClassificationIdentifier>
<ns2:FOBPointCode></ns2:FOBPointCode>
<ns2:FOBPoint></ns2:FOBPoint>
<ns2:OrigSystemDocumentReference>ORIGSYS</ns2:OrigSystemDocumentReference>
<ns2:OrigSystemDocumentLineReference>ORIGSYSLINE</ns2:OrigSystemDocumentLineReference>
<ns2:CreditCheckAuthorizationCode>1235</ns2:CreditCheckAuthorizationCode>
<ns2:CreditCheckAuthorizationExpiryDate>2016-11-15T10:10:10</ns2:CreditCheckAuthorizationExpiryDate>
<ns2:ContractStartDate></ns2:ContractStartDate>
<ns2:LineCharge>
<ns2:ChargeDefinitionCode>QP_SALE_PRICE</ns2:ChargeDefinitionCode>
<ns2:ChargeSubtypeCode>ORA_PRICE</ns2:ChargeSubtypeCode>
<ns2:PriceTypeCode>ONE_TIME</ns2:PriceTypeCode>
<ns2:PricedQuantity>1</ns2:PricedQuantity>
<ns2:PricedQuantityUOMCode>Ea</ns2:PricedQuantityUOMCode>
<ns2:PrimaryFlag>true</ns2:PrimaryFlag>
<ns2:ApplyTo>PRICE</ns2:ApplyTo>
<ns2:RollupFlag>false</ns2:RollupFlag>
<ns2:SourceChargeIdentifier>SC1</ns2:SourceChargeIdentifier>
<ns2:ChargeTypeCode>ORA_SALE</ns2:ChargeTypeCode>
<ns2:ChargeCurrencyCode>USD</ns2:ChargeCurrencyCode>
<ns2:SequenceNumber>1</ns2:SequenceNumber>
<ns2:PricePeriodicityCode></ns2:PricePeriodicityCode>
<ns2:GsaUnitPrice></ns2:GsaUnitPrice>
<ns2:ChargeComponent>
<ns2:ChargeCurrencyCode>USD</ns2:ChargeCurrencyCode>
<ns2:HeaderCurrencyCode>USD</ns2:HeaderCurrencyCode>

988
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

<ns2:HeaderCurrencyExtendedAmount>97</ns2:HeaderCurrencyExtendedAmount>
<ns2:PriceElementCode>QP_NET_PRICE</ns2:PriceElementCode>
<ns2:SequenceNumber>2</ns2:SequenceNumber>
<ns2:PriceElementUsageCode>NET_PRICE</ns2:PriceElementUsageCode>
<ns2:ChargeCurrencyUnitPrice>97</ns2:ChargeCurrencyUnitPrice>
<ns2:HeaderCurrencyUnitPrice>97</ns2:HeaderCurrencyUnitPrice>
<ns2:RollupFlag>false</ns2:RollupFlag>
<ns2:SourceParentChargeComponentId></ns2:SourceParentChargeComponentId>
<ns2:SourceChargeIdentifier>SC1</ns2:SourceChargeIdentifier>
<ns2:SourceChargeComponentIdentifier>SCC1</ns2:SourceChargeComponentIdentifier>
<ns2:ChargeCurrencyExtendedAmount>97</ns2:ChargeCurrencyExtendedAmount>
</ns2:ChargeComponent>
<ns2:ChargeComponent>
<ns2:ChargeCurrencyCode>USD</ns2:ChargeCurrencyCode>
<ns2:HeaderCurrencyCode>USD</ns2:HeaderCurrencyCode>
<ns2:HeaderCurrencyExtendedAmount>97</ns2:HeaderCurrencyExtendedAmount>
<ns2:PriceElementCode>QP_LIST_PRICE</ns2:PriceElementCode>
<ns2:SequenceNumber>1</ns2:SequenceNumber>
<ns2:PriceElementUsageCode>LIST_PRICE</ns2:PriceElementUsageCode>
<ns2:ChargeCurrencyUnitPrice>97</ns2:ChargeCurrencyUnitPrice>
<ns2:HeaderCurrencyUnitPrice>97</ns2:HeaderCurrencyUnitPrice>
<ns2:RollupFlag>false</ns2:RollupFlag>
<ns2:SourceParentChargeComponentId></ns2:SourceParentChargeComponentId>
<ns2:SourceChargeIdentifier>SC1</ns2:SourceChargeIdentifier>
<ns2:SourceChargeComponentIdentifier>SCC2</ns2:SourceChargeComponentIdentifier>
<ns2:ChargeCurrencyExtendedAmount>97</ns2:ChargeCurrencyExtendedAmount>
</ns2:ChargeComponent>
</ns2:LineCharge>
</ns2:OrchestrationOrderRequestLine>

</ns1:OrchestrationOrderRequest>
</ns1:process>
</soap:Body>
</soap:Envelope>

Related Topics
• Reauthorize Payment
• Overview of Importing Orders into Order Management

Extend Credit Check


Use an order management extension to modify credit check behavior.

Skip Credit Check for Order Revisions


Use PreCreditCheckedFlag in an order management extension to skip credit check when the Order Entry Specialist
revises the sales order. For example, here's some pseudocode.
If the sales order is a change order, and if Credit Management isn't enabled, then set PreCreditCheckedFlag
to true.

Seing PreCreditCheckedFlag to true instructs Order Management to skip credit check.

Here's the code.


import oracle.apps.scm.doo.common.extensions.ValidationException;
Boolean isCCMgmtEnabled = false;
BigDecimal refHeaderId = header.getAttribute("ReferenceHeaderId");
if(refHeaderId != null)
{

989
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

def lookupVO =context.getViewObject("oracle.apps.financials.assets.shared.publicView.LookupPVO");


def vc = lookupVO.createViewCriteria();
def vcrow = vc.createViewCriteriaRow();
vcrow.setAttribute("LookupType", 'AR_FEATURES');//ACCOUNT_TYPE AR_FEATURES
vcrow.setAttribute("EnabledFlag", 'Y');
vcrow.setAttribute("LookupCode", 'AR_CREDIT_MGMT');
def rowset = lookupVO.findByViewCriteria(vc, -1);
rowset.reset();
if(rowset.hasNext()){
isCCMgmtEnabled = true;
}
if(!isCCMgmtEnabled)
header.setAttribute("PreCreditCheckedFlag", "Y");
}

Skip Credit Check When Lines Are On Hold


Skip credit check when an order line in a change order is on credit check hold. Here's some example pseudocode.
If the sales order is a change order, and if no order lines in the original order are on credit check hold,
and if Credit Management isn't enabled, then set PreCreditCheckedFlag to true.

Here's the code.


import oracle.apps.scm.doo.common.extensions.ValidationException;
Boolean isCCMgmtEnabled = false;
BigDecimal refHeaderId = header.getAttribute("ReferenceHeaderId");
Boolean ccHoldFoundOnOriginalLines = false;
if(refHeaderId != null)
{
def holdInstanceVO =context.getViewObject("oracle.apps.scm.doo.publicView.analytics.HoldInstancePVO");
def hodlInstanceVc = holdInstanceVO.createViewCriteria();
def holdInstanceVrow = hodlInstanceVc.createViewCriteriaRow();
holdInstanceVrow.setAttribute("HeaderHeaderId", refHeaderId);
holdInstanceVrow.setAttribute("FulfillLineOnHold", 'Y');
def holdInstanceRowset = holdInstanceVO.findByViewCriteria(hodlInstanceVc, -1);
holdInstanceRowset.reset();
while(holdInstanceRowset.hasNext())
{
def holdInstance = holdInstanceRowset.next();
def holdDefs = holdInstance.getAttribute("HoldDefinition");
String holdCode = holdDefs.getAttribute("HoldHoldCode");
if("DOO_CREDIT_CHECK".equalsIgnoreCase(holdCode))
{
ccHoldFoundOnOriginalLines = true;
break;
}
}
if(!ccHoldFoundOnOriginalLines)
{
def lookupVO =context.getViewObject("oracle.apps.financials.assets.shared.publicView.LookupPVO");
def vc = lookupVO.createViewCriteria();
def vcrow = vc.createViewCriteriaRow();
vcrow.setAttribute("LookupType", 'AR_FEATURES');//ACCOUNT_TYPE AR_FEATURES
vcrow.setAttribute("EnabledFlag", 'Y');
vcrow.setAttribute("LookupCode", 'AR_CREDIT_MGMT');
def rowset = lookupVO.findByViewCriteria(vc, -1);
rowset.reset();
if(rowset.hasNext())
{
isCCMgmtEnabled = true;
}
if(!isCCMgmtEnabled)
header.setAttribute("PreCreditCheckedFlag", "Y");
}

990
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Related Topics
• Overview of Creating Order Management Extensions

Projects
Overview of Seing Up Projects in Order Management
Create and fulll sales orders that include project aributes, such as Project Number, Task Number, and Expenditure
Organization.
Store project details on sales orders and order lines to reduce order processing time and improve the accuracy of
tracking cost, revenue, and protability throughout your supply chain.
• Store project details on each sales order.
• Fulll all sales order for one project from the same inventory.
• Examine the cost of services and items that you shipped for the project.
• Compare budgeted costs to actual costs.
• Create an invoice according to percent complete or milestone.
• Manage more than one project from the same set of warehouses while maintaining visibility to material and
cost for each project.
• Ship each sales order for your project from project inventory or common inventory, according to your business
rules.
To maintain your Project-Driven Supply Chain, you want to make sure you ship inventory for the project only
for sales orders or transfer orders that are specic to the project. If you ship from common inventory, then you
can send the cost of goods sold to the project.
• Create a business rule that reserves project-specic inventory rst, then reserves the remaining quantity from
common inventory.
• Set up orchestration so it reserves order line quantity in project-specic inventory, a mix of project-specic and
common inventory, or only common inventory.
• If you ship from common inventory, then you can send the cost of shipped goods to the project during
shipment.
• Use the ProjectRecordIndicator aribute to prevent Order Management from sending project-specic order
lines to Receivables. Use the indicator when you set up your orchestration process and set up your assignment
rule.

For example, Green Corp. bids on a project to design and supply 100 custom baeries for an electric vehicle
manufacturer. Green Corp. expects design and development will require 100 hours at a cost of $50,000, and it will cost
$1,000 to manufacture each unit. Green Corp. adds 40% overhead and prot, and bids the job at $210,000, or $2,100
for each baery. Green Corp. decides to run invoicing from the sales order when it ships the rst 20 baeries, and then
again when it ships the remaining 80.

Green Corp. creates a project to capture cost and revenue, and then to calculate gross margin for the project.
• Set up a project with a cost budget of $150,000 and revenue budget of $210,000.

991
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

• Use the existing Quick Charge Baery item as the base item. Don't modify the original set up for this item
because most items on the project are minor variances of Quick Charge Baery.
• Standard cost for Quick Charge Baery is $1,000.
• Charge 90 hours at a total of $45,000 directly to the project for design and development.
• Include $100,000 for material in the project.
• Project creates invoice for $210,000.

The project captures cost for manufacturing, design and development. It also captures revenue. For brevity, this
example doesn't include shipping and other costs.

How it Works

992
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Note.
1. Create a sales order that includes project details, such as project number, task number, and so on.
Order Management gets the list of projects dened in Project Management, lters them according to Sales
Order Business Unit and Warehouse Business Unit, then displays them as choices in the Edit Project Details
dialog on the order line.
The user clicks Submit, then Order Management validates each order line that includes project details. For
example, Order Management makes sure.
◦ The project that the user chooses is associated with a project contract.
◦ The value in the Ship-to Address aribute on the order line matches the value in the Ship-to Address for
the contract.
◦ The value in the Bill-to Address aribute on the order line matches the value in the Bill-to Address for the
contract.
If validation fails, Order Management displays an error and the user must update the order and submit again.
For details about how to set up and manage projects, see book Using Project Costing on Oracle Help Center.
2. An orchestration process orchestrates fulllment for the item, including schedule, reserve, and ship.
The ProjectRecordIndicator aribute comes predened as set to No. If the Order Entry Specialist adds project
details, then Order Management sets it to Yes, then sends it in a request to Warehouse Management. Shipping
ships the order line, then uses the indicator to determine whether to add project details to the inventory
transaction.
3. Fulllment.
◦ Global Order Promising promises and schedules without the context of the project, project task, or other
project details, and updates order fulllment details.
Global Order Promising determines the warehouse for the order line, then Order Management
validates the line again immediately before the orchestration process sends the line to shipping. Order
Management also sets the Scheduled Ship Date to the Expenditure Item Date so it reects the actual
transaction date.
◦ Inventory Management reserves the item in inventory.

Warehouse Management creates the shipment, picks the item from inventory, ships the item, then sends
shipment conrmation to Cost Management.
4. Cost Management uses the sales order as input when it does cost accounting.
5. Project Management imports costs into the project.
If you enable Grants Management, then the Order Management work area displays the Contract Number and Funding
Source aributes.

You can't.
• Include project details in a drop-ship or back-to-back ow. For details, see the Overview of Drop Ship in Order
Management topic and the Overview of Back-to-Back Fulllment topic.
• Send a transfer order that includes project details through Order Management.
• Use project details with sales orders that you capture through a business-to-business ow (B2B) or electronic
data interchange (EDI).
• Use project details to bill an item that provides a service, such as a coverage or subscription.
• Do order promising according to project or project task.

993
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Extend
Include project aributes in an order management extension.

Order Management calls Project Management when the On Start of Submission event occurs. The call validates the
changes that the Order Entry Specialist makes.

For example.
if("PROJECT EXTN".equals(header.getAttribute("CustomerPONumber"))){
def lines = header.getAttribute("Lines"){

while(lines.hasNext()){
def line = lines.next();
if("N".equals(line.getAttribute)("ProjectRecordIndicator"))){
def rowIter = line.getAttribute("Projects");
def row = rowIter.createRow();
row.setAttribute("ProjectNumber","BAT-PJCBAT-Proj-02");

994
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

row.setAttribute("TaskId",new BigDecimal"1000000019394094");
row.setAttribute("ExpenditureType","Cartridges");
row.setAttribute("ExpenditureOrganization","Vision Operations");
row.setAttribute("ExpenditureItemDate",java.sql.Date.valueOf("2018-07-30"));
rowIter.insertRow(row);
}
}
}

Note.

• Examine the ProjectRecordIndicator aribute to determine whether the order line contains project details.
• Set a value for each of the required project aributes.

◦ ProjectNumber
◦ TaskId
◦ ExpenditureType
◦ ExpenditureOrganization
◦ ExpenditureItemDate

• Use extension event On Save, On Start of Submission, or On End of Submission to read project aributes on the
order line and ProjectRecordIndicator.
• Use the On Save event or the On Start of Submission event to update project aributes on the order line.
• Use an extension to set the default value of a project aribute when the value is empty.
• Don't use.

◦ On End of Submission to update project aributes.


◦ Any extension event to update ProjectRecordIndicator.
◦ An extension to override an existing value of a project aribute.

995
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Constrain
The DOO_PRJ_FULFILLMENTLINE_UPDATE processing constraint comes predened to prevent the Order Entry
Specialist from updating a fulllment line that includes project details. You can disable it to meet your business
requirements. For details about how, see the Processing Constraints topic.

Related Topics
• Dierent Ways of Managing Project Lifecycle
• Overview of Back-to-Back Fulllment
• Overview of Creating Order Management Extensions
• Guidelines for Importing Orders into Order Management
• Overview of Implementing Project Execution Management

996
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Import Your Project Details


Use a web service, le, or REST API to import project details into Order Management Cloud.
For example.
• Import the project number, task number, expenditure organization, and other aributes for each project.
• Set the default value for expenditure type, user dened aributes, contract number, and funding source when
you do your import.
• Include pricing in the source order that you import, or leave pricing empty in the source order and do pricing in
Order Management.

Import Through Web Services


Use web service orderImportService to import a sales order that includes project details.

Here's the part of the payload where you include project details. All aributes are required.
<ns2:Project xmlns:pjc="http://xmlns.oracle.com/apps/flex/scm/doo/processOrder/pjcDff/" xmlns:xsi="http://
www.w3.org/2001/XMLSchema-instance">
<ns2:PJCDFFVA xsi:type="pjc:OmSalesOrder">
<pjc:projectId_Display>PDSC-CT-PDSCM1X-004</pjc:projectId_Display>
<pjc:taskId_Display>1.1.1</pjc:taskId_Display>
<pjc:expenditureItemDate>2019-03-20</pjc:expenditureItemDate>
<pjc:expenditureTypeId_Display>Material</pjc:expenditureTypeId_Display>
<pjc:organizationId_Display>Vision Operations</pjc:organizationId_Display>
</ns2:PJCDFFVA>
</ns2:Project>

where

Aribute or Code Value

pjcD Indicates that you're using a descriptive exeld to store project details.
   
You must use this value.
 

xsi:type Identies the source type as OmSalesOrder, which means Order Management sales order.
   
You must use this value.
 

projectId_ Display Value that uniquely identies the project.


   
This example uses 1.1.1 as the value.
 

expenditureItemDate Date to expense the item.


   
You must use the Year-Month-Day format.
 
For example, 2019-03-20 indicates March 20, 2019.
 

expenditureTypeId_ Display Identies the type of expenditure, such as Material.

997
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Aribute or Code Value

   

organizationId_ Display Identies the business unit, such as Vision Operations.


   

Reservation ID The example payload doesn't include this aribute. The web service uses the aribute only for
  earlier releases. For the current release, the value is empty, and the web service doesn't use it.
 

_Display indicates to use the value when we display the aribute in an Oracle Fusion application.

Here's an example payload that contains the same project details.


<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns1:createOrders xmlns:ns1="http://xmlns.oracle.com/apps/scm/fom/importOrders/orderImportService/types/">
<ns1:request xmlns:ns2="http://xmlns.oracle.com/apps/scm/fom/importOrders/orderImportService/">
<ns2:Order>
<ns2:SourceTransactionIdentifier>RRFPDSC_TEST_112</ns2:SourceTransactionIdentifier>
<ns2:SourceTransactionSystem>LEG</ns2:SourceTransactionSystem>
<ns2:SourceTransactionNumber>RRFPDSC_TEST_112</ns2:SourceTransactionNumber>
<ns2:BuyingPartyName>FOM-Customer-001</ns2:BuyingPartyName>
<ns2:BuyingPartyContactName>James Pattison</ns2:BuyingPartyContactName>
<ns2:CustomerPONumber>PDSCSPBU</ns2:CustomerPONumber>
<ns2:TransactionalCurrencyCode>USD</ns2:TransactionalCurrencyCode>
<ns2:TransactionOn>2019-08-22T00:00:00.000</ns2:TransactionOn>
<ns2:RequestingBusinessUnitName>Vision Operations</ns2:RequestingBusinessUnitName>
<ns2:OrigSystemDocumentReference/>
<ns2:TransactionTypeCode>STD</ns2:TransactionTypeCode>
<ns2:FreezePriceFlag>false</ns2:FreezePriceFlag>
<ns2:FreezeShippingChargeFlag>false</ns2:FreezeShippingChargeFlag>
<ns2:FreezeTaxFlag>false</ns2:FreezeTaxFlag>
<ns2:ShipToPartyName>FOM-Customer-001</ns2:ShipToPartyName>
<ns2:ShipToAddress1>1045, 5th Avenue</ns2:ShipToAddress1>
<ns2:ShipToCity>San Diego Country Estate</ns2:ShipToCity>
<ns2:ShipToPostalCode>92065</ns2:ShipToPostalCode>
<ns2:ShipToState>CA</ns2:ShipToState>
<ns2:ShipToCountry>US</ns2:ShipToCountry>
<ns2:ShipToPartyContactName>James Pattison</ns2:ShipToPartyContactName>
<ns2:BillToPartyType>ORGANIZATION</ns2:BillToPartyType>
<ns2:BillToCustomerName>FOM-Customer-001</ns2:BillToCustomerName>
<ns2:BillToCustomerIdentifier>300100046859202</ns2:BillToCustomerIdentifier>
<ns2:BillToAddress1>1045, 5th Avenue</ns2:BillToAddress1>
<ns2:BillToCity>San Diego Country Estate</ns2:BillToCity>
<ns2:BillToPostalCode>92065</ns2:BillToPostalCode>
<ns2:BillToState>CA</ns2:BillToState>
<ns2:BillToCountry>US</ns2:BillToCountry>
<ns2:BillToAccountContactName>James Pattison</ns2:BillToAccountContactName>
<ns2:SalesChannel>Direct</ns2:SalesChannel>
<ns2:Salesperson>Paul Robert Scholes</ns2:Salesperson>
<ns2:SalesCredit>
<ns2:SourceTransactionSalesCreditIdentifier>OSC-001</ns2:SourceTransactionSalesCreditIdentifier>
<ns2:SalesPerson>Paul Robert Scholes</ns2:SalesPerson>
<ns2:Percent>100</ns2:Percent>
<ns2:SalesCreditTypeCode>1</ns2:SalesCreditTypeCode>
<ns2:SalesCreditTypeReference>Quota Sales Credit</ns2:SalesCreditTypeReference>
</ns2:SalesCredit>
<ns2:Line>
<ns2:SourceTransactionLineIdentifier>101</ns2:SourceTransactionLineIdentifier>
<ns2:SourceTransactionScheduleIdentifier>101</ns2:SourceTransactionScheduleIdentifier>
<ns2:SourceTransactionLineNumber>1</ns2:SourceTransactionLineNumber>

998
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

<ns2:SourceTransactionScheduleNumber>1</ns2:SourceTransactionScheduleNumber>
<ns2:ParentLineReference/>
<ns2:RootParentLineReference/>
<ns2:TransactionCategoryCode>ORDER</ns2:TransactionCategoryCode>
<ns2:ProductNumber>OM-PDSC-STD-03-C</ns2:ProductNumber>
<ns2:OrderedQuantity>100</ns2:OrderedQuantity>
<ns2:OrderedUOM>Each</ns2:OrderedUOM>
<ns2:RequestedFulfillmentOrganizationCode>PDSCM1</ns2:RequestedFulfillmentOrganizationCode>
<ns2:CustomerPONumber>NKPO2017/10/005/01</ns2:CustomerPONumber>
<ns2:CustomerPOLineNumber>1</ns2:CustomerPOLineNumber>
<ns2:RequestedShipDate>2019-06-30T23:08:52Z</ns2:RequestedShipDate>
<ns2:PaymentTerms>30 Net</ns2:PaymentTerms>
<ns2:PartialShipAllowedFlag>false</ns2:PartialShipAllowedFlag>
<ns2:Comments/>
<ns2:TaxExempt>S</ns2:TaxExempt>
<ns2:ShipToPartyName>FOM-Customer-001</ns2:ShipToPartyName>
<ns2:ShipToAddress1>1045, 5th Avenue</ns2:ShipToAddress1>
<ns2:ShipToCity>San Diego Country Estate</ns2:ShipToCity>
<ns2:ShipToPostalCode>92065</ns2:ShipToPostalCode>
<ns2:ShipToState>CA</ns2:ShipToState>
<ns2:ShipToCountry>US</ns2:ShipToCountry>
<ns2:ShipToPartyContactName>James Pattison</ns2:ShipToPartyContactName>
<ns2:BillToPartyType>ORGANIZATION</ns2:BillToPartyType>
<ns2:BillToCustomerName>FOM-Customer-001</ns2:BillToCustomerName>
<ns2:BillToCustomerIdentifier>300100046859202</ns2:BillToCustomerIdentifier>
<ns2:BillToAddress1>1045, 5th Avenue</ns2:BillToAddress1>
<ns2:BillToCity>San Diego Country Estate</ns2:BillToCity>
<ns2:BillToPostalCode>92065</ns2:BillToPostalCode>
<ns2:BillToState>CA</ns2:BillToState>
<ns2:BillToCountry>US</ns2:BillToCountry>
<ns2:BillToAccountContactName>James Pattison</ns2:BillToAccountContactName>
<ns2:Project xmlns:pjc="http://xmlns.oracle.com/apps/flex/scm/doo/processOrder/pjcDff/" xmlns:xsi="http://
www.w3.org/2001/XMLSchema-instance">
<ns2:PJCDFFVA xsi:type="pjc:OmSalesOrder">
<pjc:projectId_Display>PDSC-CT-PDSCM1X-004</pjc:projectId_Display>
<pjc:taskId_Display>1.1.1</pjc:taskId_Display>
<pjc:expenditureItemDate>2019-03-20</pjc:expenditureItemDate>
<pjc:expenditureTypeId_Display>Material</pjc:expenditureTypeId_Display>
<pjc:organizationId_Display>Vision Operations</pjc:organizationId_Display>
</ns2:PJCDFFVA>
</ns2:Project>
<ns2:AdditionalFulfillmentLineInformationCategories
xsi:type="ns12:j_FulfillLineEffDooFulfillLinesAddInfoprivate" xmlns:ns12="http://xmlns.oracle.com/
apps/scm/doo/processOrder/flex/fulfillLineCategories/" xmlns:ns22="http://xmlns.oracle.com/apps/scm/doo/
processOrder/flex/fulfillLineContextsB/" xmlns:ns8="http://xmlns.oracle.com/apps/scm/doo/processOrder/
model/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ns8:Category>DOO_FULFILL_LINES_ADD_INFO</ns8:Category>
<ns12:FulfillLineEffBShipment__InstructionsprivateVO>
<ns8:ContextCode>Shipment Instructions</ns8:ContextCode>
<ns22:packInstructions>OM-PI-Test</ns22:packInstructions>
<ns22:shipInstructions>OM-SI-Test</ns22:shipInstructions>
<ns22:handlingCost>12.5</ns22:handlingCost>
<ns22:needByDate>2018-10-15</ns22:needByDate>
<ns22:expectedPickDate>2018-10-15T12:12:12</ns22:expectedPickDate>
</ns12:FulfillLineEffBShipment__InstructionsprivateVO>
</ns2:AdditionalFulfillmentLineInformationCategories>
</ns2:Line>
<ns2:Line>
</ns2:Order>
</ns1:request>
</ns1:createOrders>
</soap:Body>
</soap:Envelope>

999
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

For brevity, this payload contains only one order line. To see a more complete payload, see White Papers for
Order Management Cloud (Doc ID 2051639.1) at hps://support.oracle.com/epmos/faces/DocumentDisplay?
_afrLoop=472607338634463&id=2051639.1. Download aachment Payloads and Other Files That Support
Implementation.

Validate Project Details in Fulllment Lines


Use web service orderImportService to validate the combination of project aributes on a fulllment line. Do it right
after the user submits a new order or revises an existing one, or during a shipment task.

The web service validates the business unit for the selling prot center and the warehouse during the On Submission
event.

For example, the web service makes sure.

• The user provides values for each required aribute in the Edit Project Details dialog.

◦ Project Number
◦ Task Number
◦ Expenditure Organization
◦ Expenditure Item Date
◦ Expenditure Type

• The ow has assigned a contract to the project.


• The expenditure item date that the user set occurs within the project start date and nish date.
• The bill-to address on the sales order matches the bill-to address of the contract.
• The ship-to address on the sales order matches the ship-to address of the contract.

If validation fails, then Order Management displays a warning or error and a suggestion of how to x it.

Order Management does these validations to prevent problems from occurring during shipping or when it invoices the
contract. For example, if the ship-to location on the sales order doesn't match the ship-to location on at least one of the
contract lines, then the sales order might use an incorrect tax when Order Management invoices the contract for the
project. Shipping might also ship the item to an incorrect location. The user would need to change the fulllment line
and manually recover the order so Order Management can send the corrected lines to shipping.

Here's an example response that the web service sends when the expenditure item date occurs outside the project
dates.
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns1:createOrders
<ns0: createOrdersResponse xmlns:ns0="http://xmlns.oracle.com/apps/scm/fom/importOrders/orderImportService/
types/">
<ns1:result xsi:type="ns0:OrderImportResponse xmlns:ns1=
"http://xmlns.oracle.com/apps/scm/fom/importOrders/orderImportService/">
<ns0:Order>
<ns0:SourceTransactionNumber>RRFPDSC_TEST_112</ns0:SourceTransactionNumber>
<ns0:SourceTransactionIdentifier>RRFPDSC_TEST_112</ns0:SourceTransactionIdentifier>
<ns0:SourceTransactionSystem>LEG</ns0:SourceTransactionSystem>
<ns0:OrderNumber>514626</ns0:OrderNumber>
<ns0:HeaderId>xsi:nil="true"</ns0:HeaderId>
<ns0:OrderStatus>DOO_DRAFT</ns0:OrderStatus>
<ns0:ReturnStatus>ERROR</ns0:ReturnStatus>
<ns0:MessageName>env:Server</ns0:MessageName>

1000
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

<ns0:MessageText>The submit failed for sales order RRFPDSC_TEST_112 on order line1, in schedule 1. The
expenditure item date occurs outside the project dates. Change the project start and finish dates, or
change the expenditure item date.</ns0:MessageText>
<ns0:flowType>xsi_nil="true"</ns0:flowType>

Import Through Files


Use the DOO_PROJECTS_INT worksheet in the Order Import Template to import your project details.
• Import a batch. Import sales order lines that include project details and lines that don't in the same batch.
• Import project details for shippable items.
• Import congured items.
• Validate the combination of project aributes as part of the order submission process.
• Use the DOO_PROJECTS_INT worksheet in the template to capture project aributes on the sales order line.

Here are the required aributes.

Aribute Value

Source Transaction Identier Enter any alphanumeric text, such as FBDI_ SRK_0318_08.
   

Source Transaction System Enter any alphanumeric text, such as GPR.


   

Source Transaction Line Identier Identify the order line in the source transaction, such as 1.
   

Source Transaction Schedule Identify the schedule in the source transaction, such as 1.
Identier  
 

Project Number, or Project Name, or Identify the project.


Project ID  
  Include a value for at least one of these aributes, such as 300100113461421 for Project ID.
 

Task Number, Task Name, Task ID Identify the task.


   
Include a value for at least one of these aributes, such as 1.1 for Task Number.
 

Expenditure Item Date Date to expense the item.


   
You must use the Year-Month-Day format.
 
For example, 2019-03-20 indicates March 20, 2019.
 

Expenditure Type or Expenditure Identify the type of expenditure.


Type ID  
  Include a value for at least one of these aributes, such as Material for Expenditure Type.
 

Expenditure Organization or Identify the business unit, such as Vision Operations for Expenditure Organization.
Expenditure Organization ID  
 

1001
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Aribute Value

Contract Number or Contract ID If you enable grants for the project, then identify the contract.
   
Include a value for at least one of these aributes.
 

Funding Source Number or Funding If you enable grants for the project, then identify the funding source.
Source Id  
  Include a value for at least one of these aributes.
 

Include values for optional aributes, as necessary.


• BillableFlag
• CapitalizableFlag
• ContractLineId
• WorkType
• WorkTypeId
• FundingAllocationId
• UserDenedAribute 1 through UserDenedAribute n
• ReservedAribute 2 through ReservedAribute n

For some templates that include example values, see White Papers for Order Management Cloud (Doc ID 2051639.1) at
hps://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=472607338634463&id=2051639.1. Download
aachment Payloads and Other Files That Support Implementation.

For more details, see the Guidelines for Importing Orders into Order Management topic. For assistance with using the
template to import project details, contact Oracle support.

Integrate Through REST API


Use project resources in the Sales Orders for Order Hub REST API.

Resource Description

Project Includes the DooOrderPrjId aribute. It identies the project, such as 300100010341182.
   

Project Detail. Includes other project aributes.


   

Here are aributes from an example payload that uses the project detail resource.
"DooOrderPrjId": 300100181049087,
"__FLEX_Context": "OM_Sales_Order",
"__FLEX_Context_DisplayValue": "SCM: General",
"projectId": 300100010341182,
"projectId_Display": "Projects-TL-Int-01",
"taskId": 300100010341193,
"taskId_Display": "1.1",
"expenditureItemDate": null,
"expenditureTypeId": 10028,

1002
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

"expenditureTypeId_Display": "Material",
"organizationId": 204,
"organizationId_Display": "Vision Operations",
"contractId": null,
"contractId_Display": null,
"reservedAttribute1": null,
"reservedAttribute1_Display": null,
"billableFlag": null,
"billableFlag_Display": null,
"capitalizableFlag": null,
"capitalizableFlag_Display": null,
"workTypeId": null,
"workTypeId_Display": null,

Here's an example payload that creates a sales order for item AS92888 in a project named Projects-TL-Int-01. It includes
display aributes that use values to identify the project, such as projectId_Display.
URL: https://fuscdrmsmc347-fa-ext.myCompany.com:443/fscmRestApi/resources/11.13.20.01/salesOrdersForOrderHub
METHOD: POST
{
"SourceTransactionNumber": "R13_project_valueattrs_01",
"SourceTransactionSystem": "GPR",
"SourceTransactionId": "R13_project_valueattrs_01",
"BusinessUnitId": 204,
"BuyingPartyId": 1006,
"BuyingPartyContactId": 2663,
"TransactionalCurrencyName": "US Dollar",
"RequestedShipDate": "2019-01-20T20:51:21+00:00",
"PartialShipAllowedFlag": false,
"RequestingBusinessUnitId": 204,
"RequestingLegalEntityId": 204,
"FreezePriceFlag": "N",
"FreezeTaxFlag": "N",
"RequestedFulfillmentOrganizationId":207,
"PaymentTerms": "30 Net",
"SubmittedFlag": true,
"billToCustomer": [
{
"CustomerAccountId": 1006,
"SiteUseId": 1025,
"ContactFirstName": "Sarah",
"ContactLastName": "Takesh"
}
],
"shipToCustomer": [
{
"PartyId": 1006,
"SiteId": 1036
}
],
"lines": [
{
"SourceTransactionLineId": "1",
"SourceTransactionLineNumber": "1",
"SourceScheduleNumber": "1",
"SourceTransactionScheduleId": "1",
"ProductNumber": "AS92888",
"OrderedUOMCode": "Ea",
"PurchasingUOMCode": "Ea",
"OrderedQuantity": 1,
"project": [
{
"projectDetail": [
{
"projectId_Display": "Projects-TL-Int-01",
"taskId_Display": 1.1,

1003
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

"expenditureTypeId_Display": "Material",
"organizationId_Display": "Vision Operations",
"contractId": null,
"reservedAttribute1": null,
"billableFlag": null,
"capitalizableFlag": null,
"workTypeId": null
}
]
}
]
}
]
}

Here's another example that creates a sales order for item AS92888 in project 300100010341182. It includes aributes
that use an identier to identify the project, such as projectId.
URL: https://fuscdrmsmc347-fa-ext.myCompany.com:443/fscmRestApi/resources/11.13.20.01/salesOrdersForOrderHub
METHOD: POST

{
"SourceTransactionNumber": "R13_project_Idattrs_01",
"SourceTransactionSystem": "GPR",
"SourceTransactionId": "R13_project_Idattrs_01",
"BusinessUnitId": 204,
"BuyingPartyId": 1006,
"BuyingPartyContactId": 2663,
"TransactionalCurrencyName": "US Dollar",
"RequestedShipDate": "2019-01-20T20:51:21+00:00",
"PartialShipAllowedFlag": false,
"RequestingBusinessUnitId": 204,
"RequestingLegalEntityId": 204,
"FreezePriceFlag": "N",
"FreezeTaxFlag": "N",
"RequestedFulfillmentOrganizationId":207,
"PaymentTerms": "30 Net",
"SubmittedFlag": true,
"billToCustomer": [
{
"CustomerAccountId": 1006,
"SiteUseId": 1025,
"ContactFirstName": "Sarah",
"ContactLastName": "Takesh"
}
],
"shipToCustomer": [
{
"PartyId": 1006,
"SiteId": 1036
}
],
"lines": [
{
"SourceTransactionLineId": "1",
"SourceTransactionLineNumber": "1",
"SourceScheduleNumber": "1",
"SourceTransactionScheduleId": "1",
"ProductNumber": "AS92888",
"OrderedUOMCode": "Ea",
"PurchasingUOMCode": "Ea",
"OrderedQuantity": 1,
"project": [
{
"projectDetail": [
{

1004
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

"projectId": 300100010341182,
"taskId": 300100010341193,
"expenditureTypeId": 10028,
"organizationId": 204,
"expenditureItemDate": "2019-09-24",
"contractId": null,
"reservedAttribute1": null,
"billableFlag": null,
"capitalizableFlag": null,
"workTypeId": null
}
]
}
]
}
]
}

For details about how to use REST API, see Sales Orders for Order Hub at hps://docs.oracle.com/en/cloud/saas/
supply-chain-and-manufacturing/19d/fasrp/api-sales-orders-order-hub.html.

Related Topics
• Guidelines for Importing Orders into Order Management

Set Up Projects in Order Management


Set up Order Management so the Order Entry Specialist can include project details on a sales order.
This topic describes how to set up a few project features that are specic to Order Management. For details about
how to set up projects so they work across your entire supply chain, see the Projects chapter in the Implementing
Manufacturing and Supply Chain Materials Management book on Oracle Help Center.

Modify Invoicing Behavior


Project Contract Billing typically invoices sales order lines that include project details, so you must prevent Order
Management from sending order lines that include project details to Receivables. This section describes how to remove
steps that do invoice tasks from your orchestration process. As an alternative, you can also do one of these set ups.
• Create a new line type, such as Project.
Create an orchestration process that doesn't include an invoice task, then assign the process to the Project line
type.
• Create an orchestration process that does include an invoice task and that uses line selection criteria to skip the
lines that include the Project line type.

In this example, assume you must modify the ShipOrderGenericProcess orchestration process, and that you already
released this process into production.
1. Enable the Process Sales Orders for Projects opt-in feature. For details, see the Opt Into Features in Order
Management topic.
2. Modify the orchestration process.

◦ In the Setup and Maintenance work area, go to the task.


• Oering: Order Management
• Functional Area: Orders

1005
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

• Task: Manage Orchestration Process Denitions


◦ On the Manage Orchestration Process Denitions page, search for ShipOrderGenericProcess, then click
Actions > Edit.
◦ On the Edit Orchestration Process Denitions page, click Actions > Revise Process.
◦ In the Process Details area, delete the Create Invoice step and the Wait for Invoice step.

◦ Deploy your orchestration process, then click Save and Close.


◦ On the Manage Orchestration Process Denitions page, click Cancel.
3. Create a lookup.
◦ In the Setup and Maintenance work area, open the task.
• Oering: Order Management
• Functional Area: Orders

1006
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

• Task: Manage Order Lookups


◦ On the Manage Order Lookups page, create a new lookup.

Aribute Value

Name CUSTOM_ ORA_ DOO_ LINE_TYPES


   

Meaning Line Type for Project Details


   

Description Allow Order Entry Specialist to specify whether order line contains project details.
   

Module Orchestration
   

◦ In the Lookup Codes area, create a code.

Aribute Value

Lookup Code PRJ


   

Meaning Contains Project Details


   

Sequence 1
   

◦ Create another one, then click Save and Close.

Aribute Value

Lookup Code NO_PRJ


   

Meaning Doesn't Contain Project Details


   

Sequence 2
   

Related Topics
• Opt In To Features in Order Management
• Manage Lookups in Order Management

Agreements

1007
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Overview of Seing Up Sales Agreements in Order Management


Set up Order Management so it uses a sales agreement that applies pricing terms when your customer buys from your
company, such as oering a reduced price when buying a specic quantity of an item over time.
Here's what you can do with sales agreements.

• Set up a sales agreement that includes price adjustments in Enterprise Contracts.


• Reference a sales agreement from a sales order in Order Management.
• Apply contract pricing on a sales order.
• Automatically enforce and track contractual price obligations.
• Monitor price adjustments, starting with the sales agreement through the fulllment lifecycle of the sales order.

1008
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Here's how it works.

Note.

1. If you use a web service or le to import the order, and if your source system.

◦ Already priced the order. Skip steps 2 through 7. Instead, validate the order and start orchestration.
◦ Didn't price the order. Go to step 3.
2. The Order Entry Specialist sets the customer and business unit on the order header.
3. Order Management sends the sold-to party, business unit, currency, and current system date to Contract
Management.

1009
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

4. Contract Management searches all of its contracts. It applies lters during the search.

◦ Contract Type equals SalesAgreement.


◦ Business Unit, Currency, and Primary Party equal the values that Order Management sends.
◦ Contract Start Date occurs on or before system date, and Contract End Date occurs on or after system
date.
◦ Contract status equals Active.

Contract Management sends the contracts that pass these lters to Order Management. Here are the aributes
that it sends for each contract.

◦ Contract ID
◦ Version Number
◦ Contract Number
◦ Contract Name
◦ Description
◦ Start Date
◦ End Date
5. Select contract.

◦Order Management displays the list of ltered contracts in the Sales Agreement aribute on the order
header.
◦ If Contract Management sends only one contract, then Order Management sets Sales Agreement to this
contract, by default.
◦ The Order Entry Specialist chooses a contract in the Sales Agreement aribute. Order Management
references this value later when it sets the sales agreement number on each order line.
◦ Order Management searches for an item on the catalog line, then sends a request to Pricing
Administration to calculate price. Assume you already dened an agreement line for the item.
6. Pricing gets contract details from Contract Management, prices the order line, then sends the result to Order
Management.
7. The Order Entry Specialist clicks Submit.
8. Order Management validates the sales order to make sure the contract is active, the current system date occurs
within the contract date, that the contract line and version are valid, then starts orchestration.
Note.

• Order Management processes each order line as soon as the Order Entry Specialist enters it. It repeats step 6
for each order line.
• If the Order Entry Specialist doesn't set an agreement on the order header, and doesn't set an agreement on
the order line, then Pricing prices the item in the same way it prices without an agreement.

1010
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Set Up the Contract


Order Management uses the values you set in the Contracts work area to populate aributes on the sales order.

Here's what Order Management does.


• Filters values that it allows the user to choose in the Sales Agreement aribute.
• Gets values from aributes in Contract Management, then displays them in the sales order.

Aribute in Contract Management Aribute in Sales Order

Contract Number Sales Agreement

1011
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Aribute in Contract Management Aribute in Sales Order

   

Number on the Agreement Line Sales Agreement Line


   

Version Sales Agreement Version


   

Start Date Contract Start Date


   
If you set Start Date on the agreement line in Contract Management, then Contract Start
Date contains the agreement line date.
 

End Date Contract End Date


   
If you set End Date on the agreement line in Contract Management, then Contract End Date
contains the agreement line date.
 

• Applies a 10% discount on each order line when Computer Service and Rentals orders a quantity of 10 or more
of item AS54888.

Pricing calculates price for the item on the catalog line according to the price adjustment you specify in the sales
agreement. The Sales Agreement aribute on the order header species the agreement to apply.

1012
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

1013
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Set Aributes That Aect Price

Note.

Aribute Value

Price Application Rule


  Set to a value.

• Apply to Qualifying Price Lists. Apply the price adjustment that you set up on
the agreement regardless of whether the price list on the sales order matches the
negotiated price list on the sales agreement.
• Enforce Price List and Apply Price. Apply the price adjustment only if the price list on
the sales order matches the negotiated price list on the sales agreement.

Price List Specify the price list to set the price for the item. For details, see the Manage Price Lists topic.
   
Price Type
 
List Price
 

Adjustment Type
  Specify the type of adjustment, such as discount amount or discount percent.

1014
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Aribute Value

Adjustment
  For example, if list price is $1000, and if you set Adjustment Type to Discount Percent,
Adjustment Basis Adjustment to 10, and Adjustment Basis to List Price, then the adjustment equals one of these
  values.

• 1000 list price multiplied by 10 percent equals 100 adjustment


• 1000 list price minus 100 adjustment equals 900 amount

You can also create a tier adjustment according to quantity or extended amount.

For an example that includes a value for each adjustment type, and details about tiers, see the
Add Tiers to Pricing Rules topic.

Allow Price Override on Order Allow the Order Entry Specialist to edit Your Price on the sales order.
   

Apply Pricing Strategy Adjustments Apply adjustments that the pricing strategy calculates.
   
For details, see the How Proles, Segments, and Strategies Work Together topic.
 

Integrate with Pricing Administration

Pricing uses the Apply Pricing Terms pricing algorithm to apply the pricing terms it receives from Contracts.

1015
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

This algorithm evaluates and applies a list of pricing terms to each charge for the item.

• Identify charges to apply pricing term according to charge criteria.


• Get values for the adjustment basis, such as for percent.
• Apply the adjustment, such as apply a 10% discount.
• Apply adjustment according to promotion type, such as adjustment according to a promotion, the contract, or
discount list.
• Adjust running unit price.
• It the item is congured, then roll up charge components for pricing terms that apply to the congured item
and congure options.

1016
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

For an example that modies pricing terms, see the Set Up Discounts That Accumulate or Cascade topic.

Import and Integrate


Use dierent technologies to import or integrate agreements with an external system that resides outside of Order
Management.

Note.

• Use Oracle Application Development Framework (ADF), File-Based Data Import (FBDI), REST API, or electronic
data interchange (EDI) in a Business-to-Business implementation.
• Use these technologies to create, edit, view, or revise sales orders.
• You must enable the Add Sales Agreements to Sales Orders opt-in feature to import or integrate.
• For details about the aributes you can import or integrate, see the Reference for Seing Up Sales Agreements
in Order Management topic.
• Use a POST operation with the Sales Orders for Order Hub REST API.
• Use the Create Order operation or Stage Order operation with an ADF web service.

1017
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Set Up Congured Items


Contracts doesn't integrate with the congurator, so you must set up each congure option individually on the contract
line in the same you set up an item that isn't congured.

Pricing a congured item is similar to pricing an item that isn't congured. Assume the user sets the agreement on the
order header to 101. If the user searches for a congured item on the catalog line, then clicks.

• Congure and Add. Order Management displays the congurator, and Pricing uses agreement 101 to price
each congure option.

If sometime later, the user clicks View Components on the order line, then, in the dialog, Order Management
sets the agreement for each congure option to 101. If the user changes this agreement to 102, then Pricing
uses agreement 102 to price the option.
• Add. Order Management adds an order line, sets the order line agreement to 101, and prices the item and its
congure options according to agreement 101.

If the user changes the order line agreement to 102, clicks Edit on the line and edits the congured item, then
Pricing uses agreement 102 to price congure options.

1018
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Report

Use the Reports and Analytics work area to get data that includes sales agreement aributes.

Expand a subject area.

• Order Management - Order Headers Real Time


• Order Management - Fulllment Lines Real Time

Next, expand Sales Agreement to examine the aributes you can use in your report.

For details, see the Use Reports and Analytics with Order Management topic.

1019
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Other Set Ups

Reference the Sales Agreement aribute in a processing constraint, pretransformation rule, order approval rule, or
order management extension.

What You Can't Do


You can't.
• Reference more than one agreement from one order line.
• Reference an order line agreement for a coverage item.
• Use some party other than the sold-to party Customer from the order header to get agreements.
• Set up an agreement adjustment for a congure option from the Edit Contracts page.

Related Topics
• Manage Price Lists
• Add Tiers to Pricing Rules
• How Proles, Segments, and Strategies Work Together
• Create Discounts That Accumulate or Cascade
• Use Reports and Analytics with Order Management

Set Up Sales Agreements in Order Management


Set up contracts and Order Management so your users can add an agreement to a sales order.
Summary of the Set Up
1. Create the contract.

1020
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

2. Set up Order Management.


This topic includes example values. You might use dierent values, depending on your business requirements.

Create the Contract


See these topics for background details.
• Overview of Enterprise Contracts
• Create a Sales Agreement Line

Create the contract.


1. Sign into Oracle Enterprise Contracts with a role you can use to create contracts, such as Customer Contract
Manager or Customer Contract Administrator.
2. In the Navigator, click Contract Management > Contracts.
3. On the Contracts page, click Actions > Create.
4. In the Create Contract dialog, set values, then click Save and Continue.

Aribute Value

Business Unit Vision Operations


   

Legal Entry Vision Operations


   

Type SalesAgreement
   

Number 101
   
This value will display in the Sales Agreement aribute throughout the Order Management
work area.
 

Primary Party Computer Service and Rentals


   

Start Date 1/01/2019


   

End Date 12/31/2019


   
Leave empty to specify a contract that never ends.
 

Currency USD
   

Item Master Vision Operations


   

Contract Class Agreement


   

Intent Sell
   

1021
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

5. On the Edit Contract page, click Lines > Actions > Add, set values, then click Submit.

Aribute Value

Type Product
   

Name AS54888
   

UOM Each
   

Adjustment Type Discount Percent


   

Adjustment 10
   

Allow Price Override on Order Enabled


   

Minimum Quantity for Order 10


   

Start Date 1/1/19


   

End Date 12/31/19


   

Set Up Order Management


1. Sign in as the order administrator.
2. Enable the Add Sales Agreements to Sales Orders opt-in feature.

If you enable, then Order Management displays sales agreement aributes throughout the Order Management
work area.

For details about how to enable, see the Opt Into Features in Order Management topic.
3. Set parameter Automatically Set Values on Sales Agreement Aributes.

For details, see the Manage Order Management Parameters topic.


4. Promote pricing algorithms.

◦ Sign in as the pricing administrator.


◦ In the Navigator, click Pricing Administration.
◦ On the Overview page, click Tasks > Manage Algorithms.
◦ On the Manage Algorithms page, click Actions > Promote All.

If you extended a pricing algorithm in an earlier release, then you must also create a new version and
reconcile changes. For details, see the Promote Pricing Algorithms Into the Current Release topic.

1022
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Related Topics
• Overview of Enterprise Contracts
• Create a Sales Agreement Line
• Opt In To Features in Order Management
• Manage Order Management Parameters
• Promote Pricing Algorithms Into the Current Release

Aributes You Can Use When Seing Up Sales Agreements in


Order Management
Get details about aributes you can use when you use a web service to communicate or a le to import sales agreement
details.
You can include these aributes in the PricingTerm entity of the Price Sales Transaction service data object when you
use the Pricing Administration work area. For details, see the How Service Mappings, Pricing Algorithms, and Matrixes
Work Together topic.

Include these pricing aributes in your payload.

Aribute Data Type Description

ApplyToEntityCode string Abbreviation that identies the entity


    where Pricing applies the pricing term.
 
Value is LINE.
 
This value references the Order FLine
aribute in Order Management.
 

ApplyToEntityId Long Entity where Pricing applies the pricing


    term.
 
This value references the FLine Id aribute
in Order Management.
 

PricingTermId Long Identies entity PricingTermSDO.


     

SourceIdentierId1 string Optional. Identies the entity for a pricing


    term. For example, Sales Agreement
Header Id or Promotion Header Id.
 
Order Management sends the Contract Id
aribute.
 

SourceIdentierId2 string Optional. Identies the entity for a pricing


    term. For example, Sales Agreement Line
Id or Promotion Line Id.
 
Order Management sends the Contract
Line Id aribute.

1023
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Aribute Data Type Description

SourceIdentierId3 string Optional. Identies the entity for a pricing


    term. For example, Sales Agreement Major
Version Id.
 
Order Management sends aribute
Contract Major Version.
 

SourceIdentierId4 string Optional. Identies the entity for a pricing


    term. For example, Sales Agreement
Status.
 

SourceIdentierId5 string Optional. Identies the entity for a pricing


    term. For example, to support a key that
includes more than one part.
 

SourceName string Value that uniquely identies the source


    of an entity for a pricing term. For
example, Sales Agreement or Promotions.
 

SourceTypeCode string Value that uniquely identies the source


    code of an entity for a pricing term.
For example, SALES_ AGREEMENT or
PROMOTIONS.
 

TermId long Identies the term in the sales agreement.


     

Related Topics
• How Service Mappings, Pricing Algorithms, and Matrixes Work Together

Accounting and Tax


Track Items as Assets in Order Management
Specify how to track an item as an asset in Order Management.
1. Go to the Product Information Management work area.
2. On the Product Information Management page, click Tasks > Manage Items.
3. Locate the item you must modify, then open it for editing.
4. On the Edit Item page, click Specications > Service.
5. Set the value.

1024
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Aribute Value

Enable Asset Tracking


  Set to one of these values.

◦ Full Lifecycle

◦ Customer Asset

For details, see the Monitor Order Fulllment topic.

6. Click Sales and Order Management, then set the value, or leave it empty.

Aribute Value

Sales Product Type


  Use one of these values.

◦ Goods

◦ Software

If Sales Product Type contains one of these values, then Oracle Fusion Installed Base ignores the item even if
you set Enable Asset Tracking to Customer Asset or Full Lifecycle.

◦ Included Warranty
◦ Extended Warranty
◦ Service Level Agreement
◦ Software Maintenance
◦ Preventive Maintenance
◦ Installation
◦ Training
◦ Subscription
◦ One Time Service
7. Optional. Task type DOO_AssetManagement allows Order Management to send a request to Oracle Fusion
Installed Base to create or update an asset. You can set up your own task that DOO_AssetManagement
references, then reference your task from various steps in dierent orchestration processes that you create. For
details about task types, see the Task Types topic.

Create your own task type.

◦ In the Navigator, click Setup and Maintenance.


◦ In the Setup and Maintenance work area, go to the task.

• Oering: Order Management


• Functional Area: Orders
• Task: Manage Task Types

1025
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

◦ On the Manage Task Types page, click View > Query by Example, enter the value, then click the Enter
key on your keyboard.

Aribute Value

Task Type DOO_ AssetManagement


   

◦ In the DOO_AssetManagement Details area, click Tasks > Actions > Add Row, set values, then click Save
and Close.

Aribute Value

Code Create_ Vision_Asset


   

Name Create_ Vision_Asset


   

Display Name Create Vision Asset


   

8. Create an orchestration process or revise the copy of an existing one.

◦ Add a step that references the task type.

Aribute Value

Task Type DOO_ AssetManagement


   

Add this step after the shipment step and before the invoicing step. For example, if you copy, then
modify the copy of predened orchestration process DOO_OrderFulllmentGenericProcess, then add this
step immediately before the Create Invoice step.
◦ If you created your own task type earlier in this procedure, then set the value.

Aribute Value

Task Create Vision Asset


   

Related Topics
• Orchestration Processes
• Monitor Order Fulllment
• Fulllment Tasks

1026
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Set Up Business Units for Selling Prot Centers


Set the selling prot center on a sales order line that's dierent from the business unit on the order header so you can
sell items that belong to more than one prot center in a single sales order.

• Order Management updates the selling prot center every time a downstream system updates the warehouse.
• If the user changes the warehouse in the Order Management work area, then Order Management doesn't
update the selling prot center.
• Order Management prices the order line each time the value in the Selling Prot Center aribute on the order
line changes.
• Order Management communicates the selling prot center to downstream applications, such as Shipping,
Costing, Sales Financial Orchestration, Tax, and Receivables.
• You can reference the selling prot center in the Order Information Service, an order management extension,
or interface mapping.

Here's some notes about tax.


• Use this feature when you have more than one tax registration across regions, such as across states in the
United States. Your users can set the business unit on the order line for the prot center but continue to use a
single business unit in the order header.
• The Selling Prot Center aects tax that Oracle Financials Cloud calculates for each order line according to tax
rules that the taxing authority imposes and that you set up.
• Tax determinants depend on the selling prot center, so Order Management sets the default value for tax
determinants each time it updates the business unit for the selling prot center.
• For details about how to set up tax, see the Oracle Financials Cloud Implementing Tax book on My Oracle
Support.

Set up business units for selling prot centers.


1. Enable the opt-in feature Specify Business Unit for Selling Prot Center for Goods and Services Tax.
2. Set the Business Unit for Selling Prot Center order management parameter.
Order Management will set the value of the Selling Prot Center aribute on the order line to the value you
specify in this parameter. It sets the aribute value when the Order Entry Specialist adds an order line to a sales
order.

Parameter Value Description

Order Management Set the Selling Prot Center aribute on the order line to the same value that the Business
  Unit aribute on the order header contains.
 

Shipping Organization
  Set the Selling Prot Center aribute on the order line to the business unit that the shipping
inventory organization references.

You can use this value for these ows.

◦ Normal shipment.

◦ Drop shipment.

1027
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Parameter Value Description

◦ back-to-back shipment.

◦ Ship but don't bill.

◦ Bill but don't ship.

◦ Return material authorization.

Related Topics
• Opt In To Features in Order Management
• Manage Order Management Parameters

Trade Compliance
Overview of Seing Up Trade Compliance
Use Order Management Cloud with your trade management solution to create and manage trade transactions that
comply with global import trade rules, export global trade rules, and other trade regulations that the country or region
requires.

Some governments and companies impose rules and regulations on trade with dierent countries, people, companies,
nancial institutions, and so on. Use trade compliance to meet these rules.

• Trade compliance is a structure of rules that makes sure trade between countries or regions occurs only
according to the approved laws and guidelines that these countries or regions use.
• Manage legal, regulatory, and corporate requirements for each transaction that crosses a government border,
such as across states, provinces, regions, or countries, according to the unique requirements of each country,
region, company, and so on.

For example, set up trade controls that apply United States rules and Chinese rules on each transaction that
occurs between a company that resides in the United States and another one that resides in China.
• Apply trade controls on various items, such as munitions, computer equipment, licenses, license exceptions,
documents, registrations, and so on.
• Manage trade compliance policy, hold transactions until they clear trade compliance screening, and so on.
• Screen each sales order for restricted parties and sanctioned countries when submiing the sales order in
Order Management.
• Don't screen sales order at submit, but do screen before shipping.
• Screen each sale order at dierent points during a long fulllment cycle.

1028
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Here's an example ow that illustrates how you can use your trade management solution with Order Management.

This supply chain imports raw materials from more than one source into a factory in the United States, sends a partially
nished assembly to a factory in Europe, then sends the nal assembly to distribution centers in more than one country
in Africa.

Each import and export point might require a dierent set of trade compliance rules for each transaction. For example,
you can manage compliance according to trade compliance policies.

• Product classication, such as weapons or dangerous chemicals


• Export and import embargo
• Status on the Denied and Restricted Parties List
• Trade agreement, such as NAFTA (North American Free Trade Agreement)
• Restricted party

Your users can manage compliance in the Order Management work area.

1029
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Related Topics
• Manage Sales Orders That Require Trade Compliance Screening

How Trade Compliance Works in Order Management


Managing a sales order for trade compliance includes more than one job role, such as Order Entry Specialist, Order
Manager, Compliance Manager, and Warehouse Manager.

1030
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Here's an example where Order Management applies trade compliance during screening.

Note.

1. An Order Entry Specialist creates a sales order in the Order Management work area, then clicks Submit. Order
Management validates the sales order in the same way it validates any sales order, then sends it to Global
Trade Management for screening.

◦ If you set order management parameter Check for Trade Compliance When User Submits Sales Order to
Yes, then Order Management sends a request to Global Trade Management to screen the sales order for
trade compliance.
◦ Global Trade Management can screen an item that isn't congured, a congured item, or a change order.

1031
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

◦ You can screen a source order that you import form a source system.
◦ You can screen only for restricted part or sanctioned territory during order submit.
◦ This integration can't screen a return line.
2. Global Trade Management screens the sales order.

◦Apply trade compliance policies that you set up for this integration to the sales order, then create a
screening result. Global Trade Management supports a variety of compliance screening types. For
example, restricted party, sanctioned countries or territories, and trade control.
◦ Set the trade compliance status to Passed, Under Review, or Failed, according to the screening result.
You can't modify this value.
◦ If the trade compliance status is Failed or Under Review, then provide the screening failure reason for
each order line that fails screening.
◦ Send the screening result to Order Management. You can use the screening result in a constraint or
approval rule.
3. Order Management updates the trade compliance status on the sales order according to the most restrictive
trade compliance status that applies on the order lines in the sales order.

For example, if status is Failed for one order line, then the sales order status is Failed.

Here's the hierarchy that Order Management uses to determine which status is most restrictive, where 1 is least
restrictive, and 3 is most restrictive.

1. Passed

2. Under Review

3. Failed

Note.

◦ Global Trade Management typically nishes screening and sends the result to Order Management
without delay. However, Global Trade Management might require a few minutes to screen a large or
complex sales order.
◦ If the sales order hasn't moved to order fulllment, then the Order Entry Specialist can click Actions, then
click Revert to Draft. Order Management will set order status to Draft and stop screening.
4. If screening fails, then Order Management sends the sales order back to the Order Entry Specialist because a
predened processing constraint prevents Order Management from submiing a sales order that includes a
trade compliance exception. The Order Entry Specialist can modify or cancel the sales order.

You can disable the constraint or create a new one that allows the sales order to proceed according to a
condition. For details, see the Constrain Compliance Screening topic.
5. If screening doesn't fail, then Order Management sends the sales order to order fulllment.

If the constraint allows the sales order to proceed according to a condition, then, as an option, you can set up
an approval rule that uses the trade compliance result of the order header or order line to route the sales order
to an Order Manager for approval.
6. As an option, you can also screen during order fulllment according to an orchestration process step that you
set up.
This ow uses Oracle Global Trade Management as the trade compliance solution. You can use your own solution. As
an option, it identies the points where you can screen for trade compliance during order fulllment in Oracle Fusion
Shipping. For details about Global Trade Management and how to set it up, see Oracle SCM Solutions, Global Trade

1032
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Management at hps://www.oracle.com/applications/supply-chain-management/solutions/logistics/global-trade-
management.html.

Guidelines for Seing Up Trade Compliance


Apply guidelines when you set up trade compliance screening in Order Management Cloud.

Enable the Order Management Parameter

1033
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Note.
• Use the Manage Order Management Parameters page in the Setup and Maintenance work area.
• As an option, to screen at order submit, set parameter Check for Trade Compliance When User Submits Sales
Order to Yes.
• This parameter comes predened as No.

Constrain Changes

Note.
• Use the Manage Processing Constraints page in the Setup and Maintenance work area.
• As an option, use the DOO_GTM_EXCEPTION predened processing constraint to implement a condition.

1034
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

if compliance status is not ORA_PASSED, then prevent submit on order header.

• Applies when compliance is under review or when compliance screening fails.


• Comes predened as disabled.
• Applies to the order header. Rejects the entire sales order. Doesn't reject individual order lines.
• Displays a message in the Order Management work area when your user clicks Submit.
• You can't modify this constraint. If it doesn't meet your needs, then create your own constraint. For example, to
apply a constraint only on a specic role.

1035
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Manage Order Approval

Note.

• Use the Manage Order Approval Rules page in the Setup and Maintenance work area to create an approval rule.
• Approval comes predened to display the screening result in the Pending Notications page or worklist for the
approver.
• As an option, you can create an approval rule to request review and approval for each sales order that doesn't
pass screening.

1036
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

For example, if the sales order fails screening, then Order Management rejects the submit and sets the order
status to Draft. You can create an approval rule that allows the sales order to proceed to order fulllment while
compliance is under review.

If compliance check is under review, then allow order submit.

• Test on a variety of conditions, such as Trade Compliance Status of the order header, Trade Compliance
Comment on an order line, and so on.

Choose an action.

1037
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Note.

• Choose an action, such as Assign to Group, Assign to Individual, or Auto Approve.


• Specify details about the action. For example, if you choose Assign to Group, then you can specify the group to
assign.

For details about approvals and how to set them up, see the How Approvals Work in Order Management topic.

Integrate Order Management with Trade Management


You use the same set up that you use to integrate with Transportation Management, but some important dierences.

When Screening Occurs Description

At order submit You must use Integration Cloud Service, and you must set Invocation Mode on the connector
  to Business Event.
 

During order fulllment You can use some other integration service, and you can set Invocation Mode to
  Asynchronous Service or Synchronous Service. However you must set up your own integration
and connector. You can't use the example integrations that Integration Cloud Service provides
as a starting point.
 

For details, see the Set Up Integration section in the Guidelines for Integrating Order Management with Transportation
Management topic.

1038
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Use Your Own Integration Service


If you use your own integration service instead of Integration Cloud Service, then make sure the payload that your
integration sends to Order Management includes the required details.

Note.
• Use TradeComplianceScreeningResultCode to provide the result for each request.
• Use TradeComplianceScreeningResultCode to provide the result for each fulllment line.
• Use FulllmentDetail to provide separate result details for each compliance type. For example, provide a
separate FulllmentDetail for each type.
◦ ORA_SANCTIONED_TERRITORY
◦ ORA_RESTRICTED_PARTY
◦ ORA_TRADE_CONTROL
• Set TradeComplianceScreeningResultCode of the overall result to the most restrictive value from the
FulllmentDetail sections. For example, if. . .
◦ ORA_SANCTIONED_TERRITORY is ORA_PASSED.
◦ ORA_RESTRICTED_PARTY is ORA_PASSED.

1039
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

◦ ORA_TRADE_CONTROL is ORA_FAILED.

Then set TradeComplianceScreeningResultCode of the overall result to ORA_FAILED.

In this example, FulllmentDetail is ORA_PASSED for all compliance types, so


TradeComplianceScreeningResultCode is ORA_PASSED.
• If a compliance check occurs more than one time for a compliance type, then make sure the payload includes
more than one FulllmentDetail for the compliance type.

For example, if compliance checks ORA_SANCTIONED_TERRITORY for the ship to customer and for the bill to
customer, then make sure the payload includes one ORA_SANCTIONED_TERRITORY FulllmentDetail for the
ship to customer, and another ORA_SANCTIONED_TERRITORY FulllmentDetail for the bill to customer.

Structure Your FulllmentDetail

You must include.

• One TradeComplianceTypeCode for each FulllmentDetail.


• One TradeComplianceScreeningResultCode for each FulllmentDetail.

Here are the optional aributes.

• Include one or more comments. For example.

◦ If compliance type is Restricted Party, then use a comment to identify the customer on the restricted
party list.
◦ If compliance type is Sanctioned Country or Territory, then use a comment to identify the country or
territory.

In this example, the screening violation occurs in the International Trac in Arms Regulations trade agreement.
• Include one Trade Control Type for each FulllmentDetail. Its applicable only for these compliance types.

◦ Trade Control
◦ Sanctioned Country or Territory

1040
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Use Lookup Codes for Your Compliance Types

Note.

• Lookup codes and values are predened. You can't modify them, but you can create your own codes. For
details, see the Manage Trade Control Types topic.
• Search for lookup type ORA_DOO_TRADE_COMPLIANCE_TYPE on the Manage Standard Lookups page to
verify codes that your implementation uses.
• Make sure your response payload includes each lookup code. At a minimum, your payload must include these
codes.

◦ ORA_RESTRICTED_PARTY
◦ ORA_SANCTIONED_TERRITORY

1041
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

◦ ORA_TRADE_CONTROL

Include Lookup Codes for Validation Result

Note.
• Search for lookup type ORA_DOO_VALIDATION_RESULT on the Manage Standard Lookups page.
• Make sure your response payload includes each lookup code. At a minimum, your payload must include these
codes.
◦ ORA_FAILED
◦ ORA_PASSED
◦ ORA_HOLD

1042
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Include Lookup Codes for Trade Control

Trade control type claries the government policy, document, agreement, and so on, that Trade Management uses
when it veries trade compliance. Export Administration Regulations and Atomic Energy Act is an example of a
government policy.

Note.

• Search for lookup type ORA_DOO_TRADE_CONTROL_CODE on the Manage Standard Lookups page.
• This lookup type is predened, but comes without lookup codes. You can add your own codes. Here are the
codes that we added in this example.

◦ AT. Antiterrorism.

1043
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

◦ CB. Chemical and Biological Weapons.

Related Topics
• Manage Order Management Parameters

Set Up Trade Compliance in Order Management


Order Management Cloud comes predened with trade compliance screening disabled. You can enable it.
For details about how to set up trade compliance screening to occur during order fulllment, see the Set Up Trade
Compliance During Order Fulllment topic.

Set up trade compliance screening so it occurs before sending the sales order to order fulllment.

1. Set up an integration between Order Management and your trade management system.

You must use Integration Cloud Service.


2. Set the Check for Trade Compliance When User Submits Sales Order order management parameter to Yes.
3. Optional. Do more set ups, according to your business requirements.

◦ Constrain compliance screening.


◦ Require sales order approval.

Related Topics
• Manage Order Management Parameters

1044
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Set Up Trade Compliance so it Happens During Order Fulllment


Set up an orchestration process so it screens order lines for trade compliance during order fulllment.
In this example, you create a duplicate of a predened orchestration process, then add steps to the duplicate.

Note.

• You must add a request step and a wait step.

◦ The request step sends a request to Global Trade Management to screen the sales order.
◦ The wait step pauses the orchestration process while it waits for the reply from Global Trade
Management. The pause makes sure fulllment doesn't nish without rst clearing trade compliance

1045
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

check. The wait step also processes the response depending on the compliance status that Global Trade
Management sends.
• Set up exit criteria for the wait step according to compliance status, and according to your business needs.
• As an option, add a pause step at some point after the wait step to allow for manual intervention. For example,
assume you prefer to allow fulllment to continue while an approver investigates the reason for screening
failure, right up to the point of shipping the item. You can add a pause step immediately before Create
Shipment Request.
• Add the request and wait steps at any point in the orchestration process. For example, screen before creating
the reservation, screen before creating the shipment request, screen after creating the invoice, and so on.
• Use any text for the Step Name aribute.
• You must use the predened value DOO_TradeCompliance for the Task Type aribute and the Task aribute.
• Choose from a variety of services, such as Request Screening for Trade Compliance or Wait for Trade
Compliance Screening.

This topic includes example values. You might use dierent values, depending on your business requirements.

Set up trade compliance so it happens during order fulllment.

1. In the Setup and Maintenance work area, go to the task.

◦ Oering: Order Management


◦ Functional Area: Orders
◦ Task: Manage Orchestration Process Denitions
2. On the Manage Orchestration Process Denitions page, search for the orchestration process.

Aribute Value

Process Name ShipOrderGenericProcess


   

For details about how to set up an orchestration process, see the Set Up Orchestration Processes topic.
3. In the Search Results, click Actions > Duplicate.
4. On the Edit Orchestration Process Denitions page, set values, accept all other default values, then click Save.

Aribute Value

Process Name Orchestration_ Process_ for_ Compliance_ Screening


   
You can enter any value.
 

Process Display Name Orchestration Process for Compliance Screening


   

Description Screen sales order for trade compliance, then process it through order fulllment.
   

5. In the Process Details area, create a step.

1046
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Aribute Value

Step Name Request Trade Compliance Screening


   
You can use any text for the name.
 

Step Type Service


   

Task Type DOO_ TradeCompliance


   

Task DOO_ TradeCompliance


   

Service Request Screening for Trade Compliance


   

Exit Criteria Leave empty.


   

Default Lead Time 1


   

Lead-Time UOM Hour


   
Set aribute Default Lead Time and aribute Lead-Time UOM according to your business
requirements. Order Management will normally create and send the request in a few
seconds.
 
However, set Default Lead Time to 1 hour to account for an unexpected problem, such as
unscheduled network downtime.
 

Update Service Update Screening Request for Trade Compliance


   

Cancel Service Cancel Screening Request for Trade Compliance


   

Use Transactional Item Aributes Contains a check mark.


   

Use Flexeld Aributes Contains a check mark.


   

Compensation Paern Do not dene a rule.


   

Note.

◦ This step calls the service that does compliance screening.


◦ You can place it at any location in the sequence of steps. For this example, assume you prefer to do
screening after scheduling, so place it immediately after the Schedule step.

1047
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

◦ The values for the Task aribute and the Service aribute are required to call the compliance screening
service. Other aribute values are optional.
6. In the Process Details area, create a step immediately after the Request Screening for Trade Compliance step.

Aribute Value

Step Name Wait for Trade Compliance Screening


   
Use any text for the name.
 

Step Type Service


   

Task Type DOO_ TradeCompliance


   

Task DOO_ TradeCompliance


   

Service Wait for Trade Compliance Screening


   

Exit Criteria Passed DOO_PASSED Y


   
Set up the exit criteria to continue processing or stop processing, according to your needs.
 
For example, to require the Order Entry Specialist to modify an order line that doesn't pass
trade compliance screening, use Passed DOO_PASSED Y to allow only Passed status as
the exit criteria. If the compliance screening fails or is under review, then the Order Entry
Specialist can examine the message details that Order Management displays, then decide on
an action to take, such as revise the sales order.
 
For another example, to continue processing order lines while the ship-to-customer is
under compliance review, include status Under Review as part of the exit criteria. Order
Management will process each order line through order fulllment while trade management
reviews the ship-to-customer for trade compliance.
 

Default Lead Time 1


   

Lead-Time UOM Days


   
Set the Default Lead Time aribute and the Lead-Time UOM aribute according to your
needs. This example uses a 1 day lead time to allow Global Trade Management to process
screening that depends on an action in the fulllment system that requires a long time to
resolve.
 

Note.

◦ This step pauses the orchestration process so it waits for the compliance screening service to nish
screening.
◦ The values for aributes Task, Service, and Exit Criteria are required. Other aribute values are optional.
◦ Compliance screening is a long-running task, so you can do compliance screening only through a long-
running task.

1048
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

7. In the Process Details area, click Status Conditions > Orchestration Process Status Values, then add values.

Status Value Expression

Trade Compliance Screening Is "DOO_ TradeCompliance" = "DOO_ AWAITING_ COMPLIANCE_ RSLT"


Pending  
 

Trade Compliance Screening Passed "DOO_ TradeCompliance" = "DOO_PASSED"


   

Trade Compliance Screening Failed "DOO_ TradeCompliance" = "DOO_FAILED"


   

Trade Compliance Under Review "DOO_ TradeCompliance" = "DOO_ UNDER_REVIEW"


   

The exit criteria is DOO_PASSED for the Wait for Trade Compliance Screening step in this example.
8. Optional. To pause fulllment while waiting for compliance review, or while doing more review and approval,
add a pause step after the Wait step.

Constrain Trade Compliance Screening


Specify how Order Management constrains trade compliance during order entry.
Order Management comes predened to use the DOO_GTM_EXCEPTION processing constraint to reject each
sales order that doesn't pass trade compliance screening when the Order Entry Specialist clicks Submit. This
constraint prevents Order Management from sending a sales order that isn't trade compliant to order fulllment. If
DOO_GTM_EXCEPTION doesn't meet your needs, you can disable it.

You can also create a new constraint. For example, create a constraint that rejects a sales order with status Failed but
that doesn't reject an order with status Under Review.

In this example, you create a processing constraint that rejects each sales order that doesn't pass trade compliance
screening.

This topic includes example values. You might use dierent values, depending on your business requirements.

Summary of the Steps

Constrain trade compliance.


1. Prepare your environment.
2. Disable DOO_GTM_EXCEPTION.
3. Create validation rule set.
4. Create processing constraint.

Prepare Your Environment


1. If you haven't enabled trade compliance screening to occur during order submit or order fulllment, then
disable any constraint that references the trade compliance status.
2. If you enabled trade compliance screening to occur only during order fulllment, then disable any constraint
that references the trade compliance status.

1049
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Disable DOO_GTM_EXCEPTION
1. In the Setup and Maintenance work area, go to the task.

◦ Oering: Order Management


◦ Functional Area: Orders
◦ Task: Manage Processing Constraints
2. On the Manage Processing Constraints page, locate predened constraint DOO_GTM_EXCEPTION.
3. Make sure the Enabled option doesn't contain a check mark.
The sales order will pass submit validation and Order Management will send the sales order to order fulllment
even if it doesn't pass compliance screening.

Create Validation Rule Set


1. On the Manage Processing Constraints page, click Validation Rule Sets.
2. Click Actions > Add Row, then set values.

Aribute Value

Name Order with Trade Compliance Exception


   

Description Creates a new constraint that prevents a sales order that doesn't pass trade compliance
  screening from moving to order fulllment.
 

Short Name TML


   
TML is an abbreviation for trade management line. You can use any value.
 

Validation Type Table


   

Entity Order Header


   

3. In the Details area, click Actions > Add Row, then set values.

Aribute Value

Aribute Name Trade Compliance Status


   

Validation Operation Equal to


   

Value String ORA_FAILED


   

4. Click Save > Generate Packages.

1050
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

5. In the Conrmation dialog, click OK.

Create Processing Constraint


1. Click Constraints.
2. Click Actions > Add Row, then set values.

Aribute Value

Constraint Name GTM_ EXCEPTION_ ORDER


   
If you create a new constraint for trade compliance screening, then you must include the text
GTM as part of the constraint name.
 

Display Name Reject Sales Orders that Contain Trade Compliance Exceptions
   

Constraint Entity Order Header


   

Constrained Operation Submit


   

On Operation Action Not allowed


   

Applicable Roles All roles


   

Enabled Contains a check mark.


   

3. In the Conditions tab, click Actions > Add Row, then set values.

Aribute Value

Group Number 1
   

Validation Entity Order Header


   

Invert Validation Rule Set Leave empty


   

Validation Rule Set Order with Trade Compliance Exception


   

Scope Any
   

Record Set Header Default Record Set


   

Message You can't submit the order line because it doesn't pass trade compliance screening.

1051
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Aribute Value

   

Enabled Contains a check mark.


   

4. Click Save.

Set Up Trade Control Types


Set up the trade control types that Order Management uses when it veries a sales order.
The trade control type identies the trade policy, such as antiterrorism or rearms convention.

Assume you must add the Chemical and Biological Weapons trade control type.

This topic includes example values. You might use dierent values, depending on your business requirements.

Summary of the Steps

1. Examine the predened lookup.


2. Manage the predened lookup.

Examine the Predened Lookup


You can use a predened lookup to set the trade control type.

1. Go to the Order Management work area.


2. On the Overview page, click Tasks > Manage Fulllment Line Exceptions.
3. Click a row that displays a yellow or red Trade Compliance Status.
4. In the Fulllment Line details area, click Trade Compliance , then, next to a red or yellow trade compliance
status, click View Details.

The Manage Fulllment Line Exceptions page only displays the View Details link next to a red or yellow trade
compliance status.
5. Examine the predened lookup that displays the trade control type.

1052
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

For example, a fulllment line might reference a trade control, such as Anti-Terrorism, and details about the
control, such as Atomic Energy Act.

Manage the Predened Lookup


Manage the predened lookup that lists the trade control type.
1. In the Navigator, click Setup and Maintenance.
2. In the Setup and Maintenance work area, go to the task.
◦ Oering: Order Management
◦ Functional Area: Orders
◦ Task: Manage Order Lookups
3. On the Manage Order Lookups page, in the Search area, enter the value, then click Search.

Aribute Value

Lookup Type ORA_DOO_TRADE


   

4. In the search results, click the row that contains the value.

Aribute Value

Lookup Type ORA_ DOO_ TRADE_ CONTROL_CODE


   

5. In the Lookup Codes section, click Actions > New, then enter values.

Aribute Value

Lookup Code CHEMICALS_ AND_WEAPONS


   

1053
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Aribute Value

Display Sequence 1
   

Meaning Chemical and biological weapons


   

6. Click Save.

Related Topics
• Manage Sales Orders That Require Trade Compliance Screening
• Manage Lookups in Order Management

Coverage and Subscription


Set Up Coverage for Sales Orders
Set up and manage coverage items in Order Management Cloud. For example, set up a coverage, such as a technical
support for laptop computer that uses a daily, weekly, monthly, or yearly duration.
Summary of the Set Up

1. Administer features and parameters.


2. Create the covered item.
3. Create the coverage item.
4. Set up pricing for the coverage item.
5. Test your set up.
6. Add xed and open-ended coverage.
For background details, see the Coverages and Subscriptions in Sales Orders topic.

This topic includes example values. You might use dierent values, depending on your business requirements.

Administer Features and Parameters


Administer the feature and parameter that aect coverage and subscription.

1. In the Navigator, click Setup and Maintenance.


2. On the Setup page, click Order Management, then click Actions > Change Feature Selection.
3. On the Edit Features page, in the Enable Coverages and Subscriptions row, add a check mark to the Enable
option, then click Done.

Order Management will apply coverage behavior.

◦ Do calculations for coverage items and subscription items.


◦ Allow the Order Entry Specialist to select a covered item when adding a coverage item to a sales order.
◦ Display the Service Details tab on the Fulllment Line page.

1054
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

◦ Display sales order aributes for coverage or subscription throughout the Order Management work area,
such as Duration, Period, Contract Start Date, Contract End Date, Sales Product Type, and Associated
Order Line.
◦ If the Order Entry Specialist chooses a coverage item or subscription, then Order Management disables
actions that don't apply to a coverage item or subscription, such as Edit, Schedule, Check Availability,
Unschedule, Split, Reserve, Unreserve, and Substitute.
◦ Display coverage items for each congure option in a congured item.
4. Click Done.
5. In the Setup and Maintenance work area, go to the task.

◦ Oering: Order Management


◦ Functional Area: Orders
◦ Task: Manage Order Management Parameters
6. On the Manage Order Management Parameters page, set the value.

Parameter Name Value

Coverage Start Date Specify whether to set the start date for a coverage item to the delivery date or the shipment
  date.
 

Create the Covered Item


Create and set up an item so a coverage item can cover it.

1. In the Navigator, click Product Management > Product Information Management.


2. In the Product Information Management work area, on the Product Information Management page, click Tasks
> Create Item.
3. In the Create Item dialog, set values, then click OK.

Aribute Value

Organization Vision Operations


   

Number of Items 1
   

Item Class Root Item Class


   
For details, see the Item Classes topic.
 

Template You can choose any value. For this example, choose Finished Goods.
   

4. On the Create Item page, enter values, then click Save.

1055
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Aribute Value

Item PTO54222 - Sentinel Personal Desktop Computer


   

Description Sentinel Desktop computer.


   

Primary Unit of Measure Each


   

5. Click Specications, then, under Item Organization, click Sales and Order Management.
6. Set the value.

Aribute Value

Sales Product Type


  Choose one.

◦ Goods. A tangible covered item.

◦ Subscription. An item that provides a product or service that recurs, and that includes
a duration and period. For example, a one year subscription to a magazine, a 90 day
subscription for cell phone service, and a six month subscription for software usage
are each an example of a subscription.
◦ Empty.

For this example, choose Goods.

7. Under Item Organization, click Service.


8. Set the value, then click Save.

Aribute Value

Enable Contract Coverage Yes


   
You must enable contract coverage so a coverage item can cover the covered item.
 

Create the Coverage Item


You will create a coverage item that covers the item PTO54222 - Sentinel Personal Desktop Computer. You set up the
coverage item as an extended warranty, to display default values for duration and period, and to allow the Order Entry
Specialist to modify these values.
1. Click Tasks > Create Item.
2. In the Create Item dialog, set values, then click OK.

Aribute Value

Organization Vision Operations

1056
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Aribute Value

   

Number of Items 1
   

Item Class Warranty/ Services


   

Template You can choose any value. For this example, choose Finished Goods.
   

3. On the Create Item page, set values, then click Save.

Aribute Value

Item Variable Extended Warranty for Sentinel Desktop


   

Description Variable warranty for the Sentinel Desktop computer.


   

Primary Unit of Measure Year


   

4. Click Specications, then, under Item Organization, click Sales and Order Management.
5. Set the value.

Aribute Value

Sales Product Type


  Choose one.

◦ Extended Warranty

◦ Service Level Agreement

◦ Software Maintenance

◦ Preventive Maintenance

You can use only these values for a coverage item.

For this example, choose Extended Warranty.

6. Under Item Organization, click Service.


7. Set the Service Duration Type aribute. For this example, set it to Variable.

Value Description

Fixed The Order Management work area will default the values that it displays for Duration and
  Period to the values you set, then make them read-only.

1057
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Value Description

Variable Works the same as Fixed, except the Order Entry Specialist can edit Duration and Period.
   

Open Ended Allows the Order Entry Specialist to edit Duration and Period, but doesn't display a default
  value for these aributes. The Order Entry Specialist must set them.
 

You can't set the Enable Contract Coverage aribute because this aribute allows a coverage item to cover
the item you're dening. However, a coverage item can't cover another coverage item. For example, you can't
create a 1 Year Sentinel Desktop Warranty that covers a 5 Year Sentinel Desktop Warranty.
8. Set the values, click Save and Close, then sign out.

Aribute Value

Duration 5
   

Duration Period Year


   

Note: Its strongly recommended that you set these values. Order Management displays them in
elds that aren't labeled on the catalog line. If you don't set them, then the elds will be empty, and
your users might not understand how to use them.

Set Up Pricing for the Coverage Item


Assume you must allow the Order Entry Specialist to set coverage to recur yearly or monthly, and to calculate the
coverage like this.

• For yearly coverage, charge 20% of the covered item price.


• For monthly coverage, charge 10% of the covered item price.

You must set up a charge for each of these durations. For details, see the Manage Pricing for Covered Items section in
the Oracle SCM Cloud, Administering Pricing book.

Set up pricing for the coverage item.

1. Sign into Oracle Fusion Pricing.

Assume you already set up pricing for covered item PTO54222 - Sentinel Personal Desktop Computer so it
calculates a pricing basis of $500.
2. In the Navigator, click Pricing Administration.
3. On the Overview page, click Tasks > Manage Price Lists.
4. Search for Corporate Segment Price List.
5. In the search results, click Action > Add Row, set values, then click Save.

1058
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Aribute Value

Item Variable Extended Warranty for Sentinel Desktop


   

Line Type Buy


   

If you.

◦ Don't enter a value for Service Duration, then Pricing won't calculate a value for the Duration Extended
Amount aribute.
◦ Enter a value for Service Duration, then Pricing will calculate a value for the Duration Extended Amount
aribute.

If the Service Duration Type is Open Ended for the coverage item in the Product Information Management work
area.

◦ The Search Results area won't display a value for Service Duration Period or Service Duration, and won't
allow you to edit these aributes.
◦ And if Pricing prices the sales order instead of your source system pricing it, then the Order Entry
Specialist must enter a value for Service Duration Period.
6. In the Associated Items column, click Manage Covered Item.
7. On the Manage Covered Items page, in search results, click Add Row, set values, then click Create Charge.

Pricing UOM Coverage UOM Action Type

Each Year Add


     

8. In the Charge area, set values, then click Save and Close.

Aribute Value

Pricing Charge Denition OAL Recurring Charge


   

Calculation Method Covered Item Price Percent


   

Coverage Basis Coverage Basis Your Price


   

Calculation Amount 20
   

Price Periodicity Year


   

1059
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

9. In the search results, click Add Row, set values, then click Create Charge.

Pricing UOM Coverage UOM Action Type

Each Month Add


     

10. In the Charge area, set values, then click Save and Close.

Aribute Value

Pricing Charge Denition OAL Recurring Charge


   

Calculation Method Covered Item Price Percent


   

Coverage Basis Coverage Basis Your Price


   

Calculation Amount 10
   

Price Periodicity Month


   

11. Click Save and Close again, then sign out of Pricing.
Specify Charges for Each Duration

Duration comes predened to display values.

• Year
• Quarter
• Month
• Week
• Day
• Hours
• Minutes

Note.

• Order Management renders pricing details only for each charge that you specify. For example, if you don't
specify a charge for Month, and if your user sets Duration to Month, then the order line for the coverage item
won't display price details, Order Management will display an error message, and the user can't submit the
sales order.
• If you set up a coverage item in the Product Information Management work area, but don't set up pricing for it
in the Pricing Administration work area, then your user might add the coverage item but not be able to submit
the sales order because of a pricing error.

1060
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Caution: If you set up a coverage item in Product Information Management, but incorrectly set up pricing for
it in Pricing Administration, then your user might add the coverage item and successfully submit it without
error, but the pricing values on the order line might not be correct, resulting in overcharging or undercharging
the billing.

Test Your Set Up


1. Sign into Order Management, then create a sales order.
2. On the catalog line, search for the item, then click Add.

Field Value

Select Item PTO54222


   

3. On the catalog line, search for the item.

Field Value

Select Item Variable Extended Warranty for Sentinel Desktop


   

4. Wait for the search to nish, then verify that the catalog line displays these values.

Aribute Value

Duration 5
   

Period Year
   

These are the default values you set up in Product Information Management.
5. Click Select Covered Item, choose the order line to cover, then click Add.
6. Click View > Columns, then click Period.
7. Verify that these values display on the coverage line, by default.

Quantity Your Price Amount Amount for Total Duration Period


Duration

1 100 100 500 5 Year


           

8. Change the quantity on the covered line from 1 to 2, then verify that the coverage line displays these values.

1061
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Quantity Your Price Amount Amount for Total Duration Period


Duration

2 100 200 1000 5 Year


           

9. Change the quantity on the covered line from 2 to 1.


10. Change the Duration to 1, then verify that the coverage line displays these values.

Quantity Your Price Amount Amount for Total Duration Period


Duration

1 100 100 100 1 Year


           

11. Change the Period to Month, then verify that the coverage line displays these values.

Quantity Your Price Amount Amount for Total Duration Period


Duration

1 50 50 50 1 Month
           

12. Change the Period to Day, verify that the coverage line doesn't display price details, click Actions > Reprice
Order, then notice the error message.
Order Management will display an error for any charge you don't set up. Recall that you didn't create a charge
for Day.

Add Fixed and Open-Ended Coverage


The behavior of xed coverage and open-ended coverage is slightly dierent from the behavior for variable coverage.
As an option, you will create a xed coverage item, an open-ended coverage item, then test them.

Add xed coverage and open-ended coverage.


1. Do some set up in Product Information Management.
◦ Use the Product Information Management work area to create the coverage item.

Aribute Value

Organization Vision Operations


   

Number of Items 1
   

Item Class Warranty/ Services


   

Template Finished Goods

1062
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Aribute Value

   

Item Fixed Extended Warranty for Sentinel Desktop


   

Description Fixed warranty for the Sentinel Desktop computer.


   

Primary Unit of Measure Year


   

Sales Product Type Extended Warranty


   

Service Duration Type Fixed


   

Duration 5
   

Duration Period Year


   

◦ Create another coverage item.

Aribute Value

Organization Vision Operations


   

Number of Items 1
   

Item Class Warranty/ Services


   

Template Finished Goods


   

Item Open-Ended Extended Warranty for Sentinel Desktop


   

Description Open-ended warranty for the Sentinel Desktop computer.


   

Primary Unit of Measure Year


   

Sales Product Type Extended Warranty


   

Service Duration Type Open Ended


   

1063
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

2. Set up pricing.

◦ Sign out, and then sign into Oracle Fusion Pricing.


◦ Set up pricing for the xed coverage item on the Corporate Segment Price List.

Aribute Value

Item Fixed Extended Warranty for Sentinel Desktop


   

Line Type Buy


   

Pricing UOM on the Manage Each


Covered Items page  
 

Coverage UOM Year


   

Action Type Add


   

Pricing Charge Denition OAL Recurring Charge


   

Calculation Method Covered Item Price Percent


   

Coverage Basis Coverage Basis Your Price


   

Calculation Amount 20
   

Price Periodicity Year


   

Order Management doesn't allow your user to change the Duration or Period for a xed coverage item,
so you only need to set up a charge for one period.
◦ Add the open-ended coverage item to the Corporate Segment Price List.

Aribute Value

Item Open-Ended Extended Warranty for Sentinel Desktop


   

Line Type Buy


   

◦ Add the charge for Year.

1064
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Aribute Value

Pricing UOM Each


   

Coverage UOM Year


   

Action Type Add


   

Pricing Charge Denition OAL Recurring Charge


   

Calculation Method Covered Item Price Percent


   

Coverage Basis Coverage Basis Your Price


   

Calculation Amount 20
   

Price Periodicity Year


   

◦ Add the charge for Quarter.

Aribute Value

Pricing UOM Each


   

Coverage UOM Quarter


   

Action Type Add


   

Pricing Charge Denition OAL Recurring Charge


   

Calculation Method Covered Item Price Percent


   

Coverage Basis Coverage Basis Your Price


   

Calculation Amount 5
   

Price Periodicity Quarter


   

◦ Add the charge for Month.

1065
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Aribute Value

Pricing UOM Each


   

Coverage UOM Month


   

Action Type Add


   

Pricing Charge Denition OAL Recurring Charge


   

Calculation Method Covered Item Price Percent


   

Coverage Basis Coverage Basis Your Price


   

Calculation Amount 10
   

Price Periodicity Month


   

◦ Add the charge for Week.

Aribute Value

Pricing UOM Each


   

Coverage UOM Week


   

Action Type Add


   

Pricing Charge Denition OAL Recurring Charge


   

Calculation Method Covered Item Price Percent


   

Coverage Basis Coverage Basis Your Price


   

Calculation Amount 7
   

Price Periodicity Week


   

◦ Save your set up, and then sign out of Pricing.

1066
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

3. Test your set up.

◦ Sign into Order Management, then create a sales order.


◦ On the catalog line, search for the item, then click Add.

Field Value

Select Item PTO54222


   

◦ On the catalog line, search for the item.

Field Value

Select Item Fixed Extended Warranty for Sentinel Desktop


   

◦ Wait for the search to nish, then notice that the catalog line displays 5 Year as a read-only value.
◦ Click Select Covered Item, choose the order line to cover, then click Add.
◦ Verify that you can't edit the Duration or Period.
◦ On the catalog line, search for the item.

Field Value

Select Item Open-Ended Extended Warranty for Sentinel Desktop


   

◦ Wait for the search to nish, then notice that the catalog line displays two empty elds, and that you
must set them before you continue. If you don't, then Order Management displays an error.

An open-ended coverage item is similar to a variable coverage item, except Order Management displays
the default values for Duration and Period on the catalog line for a variable coverage item, and doesn't
display any values for an open-ended coverage item. The Order Entry Specialist must set these values for
an open-ended coverage item.
◦ Set values on the catalog line.

Aribute Value

Duration 1
   

Period Day
   

◦ Click Select Covered Item, choose the order line to cover, then click Add.
◦ Verify that the coverage order line for the open-ended coverage doesn't contain prices. You didn't set up
a charge for Day, so no pricing will display, and you can't submit the sales order.

1067
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

◦ Set Period to Year, then verify that these values display on the coverage line.

Quantity Your Price Amount Amount for Duration Period


Total Duration

1 100 100 100 1 Year


           

◦ Set Period to Month, and then verify that the following values display on the coverage line.

Quantity Your Price Amount Amount for Duration Period


Total Duration

1 50 50 50 1 Year
           

◦ Set Period to Week, then verify that these values display on the coverage line.

Quantity Your Price Amount Amount for Duration Period


Total Duration

1 35 35 35 1 Year
           

◦ Set Duration to 2, then verify that these values display on the coverage line.

Quantity Your Price Amount Amount for Duration Period


Total Duration

1 35 35 70 1 Year
           

Related Topics
• Coverages and Subscriptions in Sales Orders
• Coverages and Subscriptions in Sales Orders

Set Up Orchestration Processes for Coverage Items


If you set up an orchestration process that processes a covered item or a coverage item, then you can you use the same
orchestration process instance to process the covered item and the coverage item, depending on your needs. You can
coordinate dierent instances with each other.

Use the Same Orchestration Process Instance


• Make sure the orchestration process uses the same steps, in the same sequence, and at the same time for the
covered item and for the coverage item.

1068
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

• Make sure processing for the covered item and coverage item remain synchronized, and make sure processing
for the covered item doesn't get too far ahead or behind processing for the coverage item.

Do it.

1. Set up your orchestration process. Here's an example.

2. Set up an assignment rule to make sure Order Management uses the same orchestration process instance for
the covered item and for the coverage item.

You set up the rule one time during setup. The orchestration process instance that runs in the runtime
environment is dierent for each sales order or fulllment line.

For details, see the Assign Orchestration Processes topic.

1069
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

3. Set up an expression in the line selection criteria for each orchestration process step that must not run so the
step doesn't call the fulllment task service.

The grey steps in the diagram must not run.

◦ You don't ship a coverage item, such as a warranty, so you set up an expression that prevents the
shipping step from processing the coverage item. Add a line selection criteria that species to process
only shippable lines. Add the criteria to a Scheduling task or Shipping task. Predened orchestration
processes already use this line selection criteria.
◦ The Contracts step doesn't need to run for a covered item, so add a line selection criteria that species to
run this step for each line only when the Sales Product Type species a coverage item.

For details about how to set up an expression, see the Select Fulllment Lines for Orchestration Process Steps
topic.
This orchestration process is only for illustration purposes. You might need a dierent set up for your assignment rules
and expressions.

Using Dierent Orchestration Process Instances


It might be necessary to use one orchestration process instance to process the covered item and another orchestration
process instance to process the coverage item. For example.

• Your business requirements demand that you process them separately.


• An assignment rule assigns separate process instances when creating the sales order.
• Your user uses Revise Order to add coverage to an existing covered item, then Order Management assigns a
separate orchestration process instance even if the assignment rule assigns the same instance that processes
the covered item.

Do it.

1. Set up your orchestration process.

1070
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Here's an example that illustrates how you can use a pause task to coordinate dierent orchestration process
instances.

2. Add a pause task.

◦ The pause task makes sure the orchestration process instance that processes the coverage item doesn't
get too far out in front of the instance that processes the covered item. For example, the Contracts step
must not process the coverage item until after the covered item ships and the Install Base step runs.
◦ You can set the pause exit criteria to a condition, such as Shipped Quantity is greater than zero.
◦ For details, see the Pause Orchestration Processes topic.

This orchestration process is only for illustration purposes. You might need dierent pause tasks.

Related Topics
• Overview of Assigning Orchestration Processes
• Select Fulllment Lines for Orchestration Process Steps

1071
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

• Overview of Pausing Orchestration Processes

Set Up Subscriptions for Sales Orders


Seing up a subscription for a sales order is similar to seing up coverage for a sales order.
• You can include a duration and period.
• You can set up a subscription as a congured item.
• You enable a subscription for Contract coverage similar to how you enable a covered item so its available to
associate with a service.
• You can specify another recurring price for on-going, periodic billing that bills the subscription for the periods
that occur after the rst pay period.
• If you import a subscription, then the import must include the start date, end date, duration, duration UOM.

Assume you must set up an annual subscription for Visions Magazine at a rate of $5 for each week.

Do the set up described in the Set Up Coverage for Sales Orders topic, but with these dierences.
1. Use the Product Information Management work area to create a subscription.

Aribute Value

Organization Vision Operations


   

Number of Items 1
   

Item Class Warranty/ Services


   

Template Finished Goods


   

Item Subscription to Visions Magazine


   

Description Subscription for Visions Magazine, a weekly publication for trade professionals.
   

Primary Unit of Measure Week


   
Pricing typically must reference a primary UOM that it can measure numerically, such as
number of weeks, number of users, or number of hosted environments. If you can't use a
predened UOM, then you must create a new one.
 

Sales Product Type Subscription


   

Service Duration Type Variable


   
You can use Fixed, Variable, or Open-Ended. Use Variable in most situations because it lets
you suggest a default value, but also provides the Order Entry Specialist the exibility to
adjust or negotiate price for each customer.
 

1072
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Aribute Value

If you use Open Ended, then renewal isn't required and the subscription continues until the
Order Entry Specialist ends it. For example, assume your customer buys a subscription to an
electrical utility that must continue indenitely until the customer actively ends it.
 

Duration 52
   

Duration Period Week


   

2. Use the Pricing Administration work area to set up pricing for the subscription on the Corporate Segment Price
List.

Aribute Value

Item Subscription to Visions Magazine


   

Line Type Buy


   

Pricing UOM Week


   

Service Duration Period Week


   

Service Duration 52
   

3. Add the charge for Week.

Aribute Value

Pricing Charge Denition OAL Recurring Charge


   

Calculation Method Price


   

Base Price 5
   

Calculation Amount 20
   

Price Periodicity Week


   

4. Sign out of Pricing Administration, and then sign into Order Management.
5. Add the Subscription to Visions Magazine item to the sales order, then verify that the order line displays these
values.

1073
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Aribute UOM Your Amount Amount Duration Period Billing Number


Price for Total Frequency of Billing
Duration Periods

1 Week 5 5 260 52 Week One Time 1


              Billing  
 

Related Topics
• Coverages and Subscriptions in Sales Orders

Set Up Subscriptions for Covered Items


In this example, set up a covered item for cloud up time, then set up a subscription that allows your users to add the up
time.

Summary of the Steps


1. Add the User UOM.
2. Set up the agreement and the subscription.
This topic includes example values. You might use dierent values, depending on your business requirements.

Add the User UOM


Add a User UOM as a way to measure the type of usage the subscription and the covered item provides.
1. In the Setup and Maintenance work area, go to the task.
◦ Oering: Product Management
◦ Functional Area: Items
◦ Task: Manage Units of Measure
2. On the Manage Units of Measure page, click Manage UOM Classes.
3. On the Manage UOM Classes page, click Actions > Add, set values, then click Save and Close.

Aribute Value

Class Code USE


   

Class Name User


   

Description People who use a subscription


   

UOM Code USR


   

Base UOM Name Users

1074
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Aribute Value

   

BASE UOM Description Someone who uses a subscription


   

Set Up the Agreement and the Subscription


Do the steps described in the Set Up Coverage for Sales Orders topic, but with these dierences.

1. Use the Product Information Management work area to set up the agreement.

Aribute Value

Organization Vision Operations


   

Number of Items 1
   

Item Class Warranty/ Services


   

Template Finished Goods


   

Item Vision Cloud Agreement


   

Description Service agreement to provide up time to the Vision Cloud.


   

Primary Unit of Measure Each


   

Sales Product Type Service Level Agreement


   

Service Duration Type Fixed


   

Duration 3
   

Duration Period Year


   

2. Set up the subscription.

Aribute Value

Organization Vision Operations


   

1075
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Aribute Value

Number of Items 1
   

Item Class Warranty/ Services


   

Template Finished Goods


   

Item Vision Cloud Subscriptions


   

Description Subscriptions for end-user access to the Vision Cloud.


   

Primary Unit of Measure Users


   

Sales Product Type Subscription


   

Service Duration Type Fixed


   

Duration 3
   

Duration Period Year


   

3. Use the Pricing Administration work area to set up pricing for the agreement on the Corporate Segment Price
List.

Aribute Value

Item Vision Cloud Agreement


   

Line Type Buy


   

Pricing UOM (on the Edit Price List Each


page)  
 

Pricing UOM (On the Manage Each


Covered Items page)  
 

Coverage UOM Users


   

4. Add the charge.

1076
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Aribute Value

Pricing Charge Denition OAL Recurring Charge


   

Calculation Method Price


   

Base Price 30000


   

Price Periodicity Year


   

5. Set up pricing for the subscription on the Corporate Segment Price List.

Aribute Value

Item Vision Cloud Subscriptions


   

Line Type Buy


   

Pricing UOM Users


   

Pricing UOM Users


   

6. Add the charge.

Aribute Value

Pricing Charge Denition OAL Recurring Charge


   

Calculation Method Price


   

Base Price 1000


   

Price Periodicity Year


   

7. Sign out of Pricing Administration, then sign into Order Management.


8. Create a sales order, add the Vision Cloud Subscriptions item to the sales order, then verify that the order line
displays these values.

1077
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Quantity UOM Your Price Amount Amount Duration Period


for Total
Duration

1 Users 1,000 1,000 3,000 3 Year


             

9. Search for the Vision Cloud Agreement item on the catalog line, click Select Covered Item, associate it with the
Vision Cloud Subscriptions order line, click Add, then verify that the Vision Cloud Agreement order line displays
these values.

Quantity UOM Your Price Amount Amount Duration Period


for Total
Duration

1 Users 1,000 1,000 3,000 3 Year


             

Related Topics
• Coverages and Subscriptions in Sales Orders

Import Source Orders That Include Coverages or Subscriptions


Import a source order that includes acovered item, coverage item, or subscription into Order Management Cloud.
This topic describes how to import source orders that include coverage. However, you can also use it to import
subscriptions.

Import source orders that include coverage into Order Management.


1. Choose a technology to import your source orders.

◦ Web service in Oracle Application Development Framework (ADF).


◦ Web service in Oracle Service-Oriented Architecture (SOA).
◦ Business-to-business (B2B) messaging in Oracle Collaboration Messaging Framework.
◦ File Based Import. For details, see the Use Files to Import Orders into Order Management topic.
2. Make sure your source order includes the required aributes.

Aribute Value

Document Reference Type Specify the type.


   
It creates a relationship between the covered item and the coverage item.
 

Document Line Id Line Id in the source transaction.


   
This Id identies the coverage item.

1078
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Aribute Value

Document Sub Line Id


  Line Id in the source transaction.

This Id identies the coverage item.

To purchase an item and apply coverage for it.

◦ At the same time. This subline can reside in the same source order.

◦ At some later time. This subline can reside in a closed order line from another sales
order that you already imported.

Document Id Source order Id of the covered line.


   

Document Number Sales order number of the covered line.


   

Document Line Additional Id Line Id from the source transaction.


   
This Id identies the coverage for the root parent of a congured item.
 

The import uses these aributes to establish a relationship between the coverage item and the covered item.
The import process you use must map each of these aributes in the import payload of the source order to an
aribute in a sales order in Order Management.
3. Make sure your source order includes a value for the Number of Billing Periods aribute for the coverage item.
4. Make sure your source order includes values for coverage item aributes, depending on whether the source
order contains price details.

Contains Price Details Doesn't Contain Price Details

Oracle Fusion Pricing won't price the Oracle Fusion Pricing will price the item.
item.

Each of these aributes must contain a value.


◦ Duration Extended Amount
must contain a value, and
this value must use the ◦ Duration
same currency that the order
header uses. ◦ Period

◦ Contract Start Date must


contain a value.
◦ Contract Start Date

◦ Values for Duration, Period,


and Contract End Date can be
empty.

5. Verify seings in the Product Information Management work area.

◦ Make sure you set up the Enable Contract Coverage aribute and Sales Product Type aribute so they
support the covered item. For details, see the Manage Coverage for Sales Orders topic.

1079
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

◦ To specify a subscription item, set Sales Product Type to Subscription. To use a subscription as a covered
item, enable Contract Coverage for the subscription.

A subscription is similar to a coverage item. It includes a Duration, Period, Contract Start Date, and
Contract End Date. In general, the rules that apply when you import a coverage item also apply when you
import a subscription. For details, see the Manage Subscriptions for Sales Orders topic.
6. Set values for duration and period dierently according to your set up.

Service Duration Type in Product Description


Information Management

Fixed Make sure the Duration and Period in the source order match the values you set for Duration
  and Period in Product Information Management.
 

Open Ended If you import a source order that includes a coverage item, and if the coverage item doesn't
  include price details, then make sure the import includes values for Duration and Period.
 

7. Make sure the value of the coverage quantity equals the value of the covered quantity.
8. Make sure the value of the coverage UOM equals the value of the covered UOM.
9. If the coverage item covers a covered item that Order Management already submied to order fulllment, then
make sure the status of the covered item is Closed.
10. Examine your import payload. Make sure the document references that identify the coverage line map to only a
single covered line.

One coverage line can cover only one covered line. A coverage line must not cover more than one covered line.

Import Date and Time


As an option, specify the time stamp for the contract start date and the time stamp for the contract end date for the
coverage or subscription. The time stamp includes the date and time of day.

• If you import the start time stamp, duration, and period, then Order Management uses these values to
automatically calculate the end time stamp for you.
• If you import the start time stamp and the end time stamp, then Order Management uses these values to
automatically calculate the duration and period.

1080
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

For example, use a REST API payload to import the contract duration, start time stamp, and end time stamp.

This example payload imports the OAL_EW_2Y_VAR warranty with.

• A duration of 2
• Period of 0zE
• Contract start time stamp of 2019-12-13T19:51:49+05:30
• No value for the end time stamp

Note.

• Import your time stamp in UTC (Coordinated Universal Time).


• You can include an oset from UTC. For example, 2019-12-13T19:51:49+05:30 includes an oset of +05:30.
• The Order Management database stores time stamp values in UTC. The Order Management work area displays
them in UPTZ (User Preference Time Zone). For details, see the Time Zone Dierences in Order Management
topic.
• Use a whole number for the duration. Don't include a decimal value.

1081
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Use dierent aributes for dierent technologies.

Technology Aributes

Sales Orders for Order Hub REST API • Use the ContractStartDateTime and ContractEndDateTime aributes to import your
or an ADF web service. time stamps for the current release.
  • Use the ContractStartDate and ContractEndDate aributes for earlier releases.
• Use the ServiceDuration aribute to import the duration of a coverage or subscription.
• Use the ServiceDurationPeriodCode aribute to import the period of a coverage or
subscription.

SourceSalesOrderImportTemplate
FBDI template. Use these aributes.
 
• Contract Start Date
• Contract End Date
• Service Duration
• Service Duration Code

Import Coverage with Congured Items That You Already Priced


If the source order contains price details for a congured item, and if you set each of the freeze aributes in the source
order to Y. . .

• Freeze Price
• Freeze Shipping Charges
• Freeze Tax

. . .then make sure the input payload includes coverage for each congure option that you enable for contract coverage.

If you set the Enable Contract Coverage aribute to Y on the Edit Item page in the Product Information Management
work area, then the congure option is enabled for contract coverage.

Make sure your import does these validations.

• If the source order doesn't contain a coverage for each congure option, then reject the source order.
• If the coverage quantity and the UOM for each congure option don't match the line quantity and UOM for the
covered item, then reject the source order.

Make sure it does these validations for each congure option that's enabled for contract coverage.

For details about pricing, see the Overview of Pricing Covered Items topic.

Import Coverage with Congured Items That You Haven't Priced


If the source order doesn't contain price details, and if you set any of the freeze aributes in the source order to N. . .

• Freeze Price
• Freeze Shipping Charges
• Freeze Tax

. . . then Oracle Fusion Pricing will price it.

1082
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Note.
• The source order must include coverage only for the congured item that's the root parent, and not for each
congure option.
• If you enable the congure option for contract coverage, then your import process must create a coverage line
for each congure option. Each congure option can be an option class or option item.
• If the input payload contains a coverage for the root parent and also for one or more congure options, then
your import must reject the source order.

Import Coverage That Includes a Return


You can import a covered item that includes a return.
• You can keep the covered item and return only the coverage item. Make sure your import payload includes only
the return lines for the coverage item.
• If the Contract End Date of the coverage line occurs before the return date of the coverage line, then you can't
return a coverage line.

Here are the details that your return must include.


• Status of the covered line and the coverage line are each Closed.
• Return quantity is greater than zero.
• Return quantity doesn't exceed the quantity that's available to return. For example, if the sales order included a
quantity of 10, and if you already returned a quantity of six, then the return quantity can't exceed four.
• A document reference type of Original_Sales_Order for the return coverage line.
• A document reference type of Source_Coverage_Covered_Association for the covered line.

Note these points when you return a covered item, depending on whether the source order contains price details.

Contains Price Details Doesn't Contain Price Details

If Oracle Fusion Pricing prices the item, then the import payload can specify to return the
If Oracle Fusion Pricing doesn't covered item and the coverage lines.
price the item, then you can return  
the coverage item that covers the Make sure your import payload includes the return line for the covered item. Oracle Fusion
covered item. Applications will create the return lines for the coverage lines.
 
Make sure your import payload
includes these details.

• The quantity and UOM of


the coverage line equal the
quantity and UOM of the
covered line.
For example, assume a sales
order includes a quantity of
5 for the covered item and a
quantity of 5 for the coverage
item. If the return includes a
quantity of 3 for the covered
item, then make sure the
coverage line in the return
includes a quantity of 3.
• Adds the returned quantity to
the quantity that's available.

1083
Oracle SCM Cloud Chapter 7
Implementing Order Management Features

Contains Price Details Doesn't Contain Price Details

• Includes return charges.

If your import payload returns only the coverage item, then note these points.

• The quantity for the coverage line must equal the total returnable quantity of the covered line. Your import
payload can't return only part of the returnable quantity.
• The coverage return UOM in the import payload must equal the covered line UOM.
• If the source order contains price details, then the import payload must include the return charges.

Related Topics
• Overview of Importing Orders into Order Management

1084
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

8 Order Processing

Application Behavior
Use Order Proles to Control Order Management Behavior
Manage predened prole values to control behavior in Order Management Cloud.
Most proles include predened values so you don't need to set them up unless you need dierent values to meet your
deployment requirements.

Control behavior that occurs in the Order Management work area.


1. In the Setup and Maintenance work area, go to the task.

◦ Oering: Order Management


◦ Functional Area: Orders
◦ Task: Manage Order Proles
2. On the Manage Order Proles page, in the Prole Option area, click Search.
3. In the search results, in the Prole Options list, click the prole you must edit.
4. In the Prole Values list, add or delete values, as necessary.

Prole Option Description Where You Can Use It

Currency Conversion Type Specify the value to use when converting Single site and for each user
  a currency in the Order Management work  
area. This value is a conversion type.
 

Display Currency Specify the currency to display in the Single site and for each user
  Order Management work area.  
 

Required Overview Status Filter Specify the default customer to use when Only for a single site
  ltering the summary of status data on the  
Overview page of the Order Management
work area.
 
It allows your users to view summary
data for only one customer at a time.
It removes the All option. Order
Management provides no value, by
default. To improve performance, you can
enter a customer identication number.
 

Skip Availability When Searching for Item Improve performance when the user Only for a single site
  searches for an item on the catalog line.  
If you set this option to Yes, then Order
Management doesn't send a request to
Global Order Promising to determine

1085
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

Prole Option Description Where You Can Use It

whether the item is available. If you don't


use Global Order Promising, then set this
option to Yes.
 

Skip Pricing Totals and Pricing Validation Improve performance. Don't validate the Only for a single site
  price and don't calculate the total price  
when the user clicks Add on the catalog
line.
 

User Request Waiting Period in Seconds Specify the number of seconds to wait Only for a single site
  after an action nishes. This time allows  
each asynchronous web service to nish
before displaying a conrmation message
or a warning message in the Order
Management work area. The default value
is 5.
 

The Where You Can Use It column describes whether you can use the aribute for a single site in your implementation,
and for each user.

Control Behavior During Order Import


Control how Order Management receives and transforms source order into sales orders.

Prole Option Description Where You Can Use It

Retain Sales Order Number Single site and for each user
  Choose one.  

• Y. Use the source order number


that you import from the source
system as the order number during
and after transformation. Order
Management will display the source
order number throughout the
Order Management work area after
transformation and during order
fulllment.
• N

Set Retain Sales Order Number to N

If you set Retain Sales Order Number to N, then Order Management doesn't use the source order number as the order
number during or after transformation.

• Order Management will assign a new order number for the source order and display the new number
throughout the Order Management work area after transformation and during order fulllment.
• If the source order number in the source order you import from the source system isn't unique in the source
system, then you must set this option to N.

1086
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

For example, if source system A contains two source orders that each use order number 12345, then set this
option to N. If source system A contains one source order that uses order number 12345, and if source system B
contains one source order that uses order number 12345, then set this option to Y or N. This set up is necessary
to avoid an error during order import because Order Management requires a unique order number for each
sales order in the same source system.
• If you use Oracle Fusion Order Orchestration and Planning (OPS) as your source system in a channel, then you
must set Retain Sales Order Number to N. Order Management comes predened to use OPS to create the sales
order number when you create a sales order in the Order Management work area, by default. You can't modify
this behavior. Seing Retain Sales Order Number to Y when you use OPS as your source system in a channel
causes conicts with order numbers for sales orders that you create in the Order Management work area. For
details about OPS, see the Integrate Order Management with Source Systems topic.
• The default value is N.

Related Topics
• Integrate Order Management with Source Systems

Use Groups to Manage and Control Sales Orders


Set up the Order Type aribute on the order header to arrange sales orders into groups that you specify, then use these
groups to help manage sales orders and control order processing.
• The Order Entry Specialist can search for sales orders on the Manage Orders page according to order type. This
capability focuses the search and helps improve search productivity.
• The Manage Orders page doesn't come predened to display the Order Type aribute in the search area. The
Order Entry Specialist must click Add Fields, then add it to the search area.
• If you import a source order from a source system, then Order Management will examine the value of Order
Type in the source order to make sure it matches one of the values that you set up for the lookup. If it doesn't
match, then Order Management rejects the import and logs an error.

Use Order Type to Control Processing


Use Order Type in Business Rules

Use the order type in a business rule.

Type of Rule Description

Product transformation
  Use the order type as part of a pretransformation, transformation, or posransformation rule.
For example.

• Write a rule that sets the default value for the order type according to the value of some
other aribute on the order header.
For example, assume your company writes a contract to fulll sales orders from
Customer y over all other customers. You can write a rule if Customer is Y, then
set Order Type to Top Priority, then use an external interface routing rule that
routes the sales order to a fulllment system that prioritizes shipment speed over other
factors, such as cost.
• Write a rule that uses the value of the order type to determine the default value to
display for an aribute on the order header or order line.

1087
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

Type of Rule Description

Order Management runs each pretransformation rule when the user creates or revises a sales
order in the Order Management work area. For example, when the user sets or updates the
Business Unit, Customer, or Order Type, or adds an order line. To avoid overwriting these
selections, you can write a pretransformation rule so it sets a value only if the aribute is
empty.

Process assignment Write a rule that uses the order type to assign an orchestration process.
   
For example, if Order Type is Government - Department of the Interior, then set up an
orchestration process that fullls order lines according to Department of the Interior
procurement requirements.
 

External interface routing Write a rule that uses the order type to determine which fulllment system will fulll the sales
  order.
 
For example, if Order Type is Emergency, then route the sales order to a fulllment system that
prioritizes shipment speed over other factors.
 

Use Order Types in Processing Constraints

Use the order type in the condition or result of a processing constraint. For example, prevent Order Management from
updating an aribute according to the value of some other aribute. You can also use the order type to prevent Order
Management from submiing a sales order. For example.

• If Order Type is x, then don't allow change to aribute y after submit.


• If Business Unit is x, then don't allow change to Order Type after submit.
• If a submit validation occurs, and if Order Type is empty, then raise an error.
• If a submit validation occurs, and if Order Type is x, and if Purchase Order is empty, then raise an error.

Set Up Order Types


In this example, you set up four order types so you can dierentiate between sales orders in a deployment that uses
drop ship.

This topic includes example values. You might use dierent values, depending on your business requirements.

1. In the Setup and Maintenance work area, go to the task.

◦ Oering: Order Management


◦ Functional Area: Orders
◦ Task: Manage Order Lookups
2. On the Manage Order Lookups page, in the Search area, enter the value, then click Search.

Aribute Value

Lookup Code ORA_ DOO_ ORDER_TYPES


   

1088
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

Order Management uses the ORA_DOO_ORDER_TYPES lookup for aribute Order Type, but doesn't come
predened with values for this lookup. If you don't add any values, then Order Management still displays the
Order Type aribute but it won't contain any values.
3. In the Lookup Codes area, click Actions > New to add each lookup code.

Lookup Code Meaning

STD Standard Sales Order


   

STD_DS Drop-Ship Sales Order


   

MIX Standard and Drop Ship Order Lines


   

RETN Return Sales Order


   

You can modify other aributes, as necessary.


4. Click Save and Close.

Related Topics
• Use Visual Information Builder
• Overview of Assigning Orchestration Processes
• Route Requests from Order Management to Fulllment Systems

Modify How Aributes Display in Order Management


Order Management Cloud comes predened with hidden aributes that you can expose so the Order Entry Specialist
can display them in the Order Management work area. You can also modify the display name of aributes to meet your
needs.

1089
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

You can expose and modify aributes in various locations, such as in the sales order header or on the order line. The
Order Entry Specialist then uses the Order Management work area to display them. You use a sandbox to do the
change, test it, publish it, then use the actual work area to verify.

In this example, you create a sandbox named My Sandbox, expose the Primary Salesperson aribute, then modify the
display name so it says My Primary Salesperson.

1. Create your sandbox.

◦ In the Navigator, in the upper-right corner, click your login name.


◦ In the Seings and Actions menu, click Edit Pages.
◦ In the dialog that displays, click Activate Sandbox.

1090
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

◦ On the Sandbox page, click Create Sandbox. create a new sandbox, activate it, then open it.
◦ On the Create Sandbox page, on the Page Composer row.

• In the Active column, add a check mark.


• In the Support Context column, click the pencil, set the Category to Default, then click OK.
◦ Enter a name, then click Create.

Aribute Value

Name My Sandbox
   

◦ On the Sandbox page, in the My Sandbox row, click Enter Sandbox.



Make sure you're in the sandbox. Verify that a banner displays along the top of the Navigator. The
banner includes the name of your sandbox.
2. Open Page Composer.

◦ In the Navigator, click Order Management.


◦ Click Tasks > Manage Orders.
◦ On the Manage Orders page, search for, then open any sales order.
◦ On the Order page, in the upper-right corner, click your login name.
◦ In the Seings and Actions menu, click Edit Pages.

Oracle Page Composer displays, which is a page editor you can use to modify the visual layout that the
Order Management work area uses. You can tell you're in Page Composer because it displays a section
across the top of the page. The section includes tabs, such as Add Content, Select, and Structure.

To modify an aribute in another work area, go to that work area, then go to the page in the work area
that displays the aribute you must modify.

For details about how to use Page Composer, see the Guidelines for Page Modication topic.
3. Expose the aribute.

◦ Click Select.
◦ Click in the lower portion of the order header, for example, below the Customer aribute, then click Edit
Parent Component.
◦ In the Component Properties dialog, click Children, then notice the list of aributes that display.

Each aribute that doesn't contain a check mark is hidden. You can add a check mark to unhide the
aribute.
◦ Add a check mark next to Primary Salesperson, then click Apply > OK.
4. Verify values in the sandbox.

◦ Verify that the order header displays the Primary Salesperson aribute.
◦ In the Order Lines area, click View > Columns, and notice you can display the aribute.
◦ In the upper-right corner, click Close.
◦ On the Order page, click Done.

1091
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

◦ Notice that you can now display the Primary Salesperson aribute on the Manage Orders page.

• In the Search area, click Add Fields.


• In the Search Results, click View, then click Columns, and notice you can display the Primary
Salesperson aribute.
5. Modify the display name.

◦ Navigate back to the order page.


◦ In the order header, click Primary Salesperson, then click Edit Component.
◦ In the Component Properties dialog, next to Label, click Edit > Override, then click OK.
◦ In the order header, click Primary Salesperson, then click Edit Component.
◦ In the Component Properties dialog, in the text window next to Label, enter My before the text Primary
Salesperson, then click OK.
◦ Verify that the order header now displays My Primary Salesperson.
6. Publish.

◦ At the top-right corner, click My Sandbox > Publish.


◦ On the Sandbox Detail page, click Publish.
◦ In the dialog, click Continue to Publish.

You are no longer in the sandbox. You're now back in Order Management.
◦ Repeat the verication you did earlier in the sandbox, but this time use the Order Management work area
outside of the sand box.

Related Topics
• Create and Activate Unied Sandboxes
• Guidelines for Using Page Composer

Set Up Messages in Order Management


Modify a message that displays in the Order Management work area, or create your own message.

Examine a Predened Message


1. Go to the Order Management work area and create a sales order.
2. Add two order lines, assign each line to a shipment set named My_Shipment_Set, then click Submit.
3. Click Actions > Create Revision.
4. Add a new order line and assign it to My_Shipment_Set.
5. To cancel line 2, set the quantity on line 2 to zero.

1092
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

6. Click Submit, then examine the message that displays.

Note.

◦ Order Management doesn't allow you to add a new line and cancel a line in the same shipment set during
the same revision, so it displays the error message.
◦ The predened DOO_ORCHC_SHIPSET_ADD_CANCEL message denes the message text.

1093
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

Modify a Predened Message


Assume you want to add some text to DOO_ORCHC_SHIPSET_ADD_CANCEL.

Try it.

1. Examine the predened message.

◦ Open another browser window.

You open a second browser window so you can toggle between your design time set up in the Setup and
Maintenance work area and run time rendering in the Order Management work area.
◦ In the Setup and Maintenance work area, click Tasks > Search.

1094
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

◦ On the Search page, search for, then open Manage Messages.


◦ On the Manage Messages page, set the value, then click Search.

Aribute Value

Application Order Management


   
You can also search for Distributed Order Orchestration to examine messages that
Order Management displays primarily during order fulllment or during interactions
with a web service.
 

Rene your search. Remove the value from the Application aribute and enter a value in Message Name,
such as DOO_ORCHC_SHIPSET_ADD_CANCEL.

If you don't know the name, then remove the value from the Application aribute and enter a value in the
Module aribute.

Module Message Includes Errors That Occur When. . .

Import Order You import a sales order.


   

Decomposition Preparing a source order for Order Management during order import.
   

Orchestration An orchestration process runs.


   

Task Layer Processing a request through a fulllment task.


   

Process Order Order Management starts to process fulllment. There's usually missing data, aribute
  values aren't correct, there's a problem in communicating with other applications
during fulllment, and so on.
 

Manage Orders You are creating or revising a sales order.


   

Common Order Management encounters any one of a wide variety of problems. The problem
  isn't specic to Order Management. It might occur with other Oracle Fusion
applications. For example, communication with a web service fails, you aempt to use
an application programming interface that Oracle Fusion doesn't support, and so on.
 

Search is additive. For example, if you set Module to Common and Message Name to
DOO_ORCHC_SHIPSET_ADD_CANCEL, then the search doesn't return anything because
DOO_ORCHC_SHIPSET_ADD_CANCEL isn't in the Common module.

Use a wildcard. For example, enter DOO_% in Message Name to return all messages that start with DOO_.
Here are some abbreviations you might nd useful.

1095
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

Abbreviation and Wildcard Return Messages For

FOM_% Order Management Cloud. FOM is an abbreviation for Oracle Fusion Order
  Management
 

DOO_% Distributed order orchestration.


   

QP_% Oracle Fusion Pricing.


   

CTO_% Congured items. CTO is an abbreviation for congure-to-order.


   

CZ_% Conguration model.


   

DOS_% Supply Chain Orchestration


   

◦ Search Message Name for DOO_ORCHC_SHIPSET_ADD_CANCEL.


2. Edit the message.

◦ In the search results, click the line that includes DOO_ORCHC_SHIPSET_ADD_CANCEL in the Message
Name column, then click Actions > Edit.
◦ On the Edit Message page, add your text at the end of the User Details aribute. For example.

Instead, revise the sales order, cancel lines in the shipment set, then submit the order. Wait
for order management to process the revision. Revise the order again, add lines, then submit the
order. Hi there. I am Diane Cho, your order administrator. Please contact me if you need help
with shipping.

Note.

• Don't modify the Message Number. Order Management uses it to uniquely identify the message.
• Examine the Translation Notes. They might contain details that describe when and why a message
displays. Use them to help troubleshoot errors or warnings.
• In general, don't modify predened text in the Short Text aribute. Each message describes an
error or warning condition. Its important to keep the predened Short Text to support these
conditions.
• Short Text has a 160 character limit.
• In general, don't modify predened text in the User Details aribute. If you want to add text, add it
immediately after the predened text.
◦ Click Save.
3. Test your set up.

◦ Go to the Order Management work area in your other browser.


◦ If the work area still displays the error message, then close the message dialog.
◦ Click Submit.

1096
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

◦ Verify that the message displays the text you added.

Create Your Own Message


Assume you must set up a warning message that displays when the Order Entry Specialist enters a quantity of more
than 100 on an order line. The purpose of the message is to make sure the Order Entry Specialist agrees that the
quantity is correct before submiing.
1. Go to the Manage Messages page, then search the predened messages.
Create a new message only if you can't nd a predened message that meets your needs.
2. Click Actions > New, then set values.

Aribute Value

Message Name
  FOM_EXAMINE_QUANTITY

You can enter any text.

Use a format that helps you identify your message and distinguish it from predened
messages that Order Management and other Oracle Applications display.

application_text_description

where

application. Abbreviation that identies the application. Use FOM for Oracle Fusion
◦ Order Management, which is an earlier name for Order Management Cloud, orDOO
for Distributed Order Orchestration.
◦ text_description. Describe the purpose of the message. Use underscores to improve
readability.

Application Order Management


   

Module
  Manage Orders

Here are the modules you typically use when you set Application to Order Management.

◦ Manage Orders

◦ Import Orders

Here are the modules you typically use when you set Application to Distributed Order
Orchestration.

◦ Task Layer

◦ Decomposition

◦ Process Order

◦ Orchestration

Message Number Enter 10000001.


   

1097
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

Aribute Value

Enter any number from 10,000,000 to 10,999,999. The Order Entry Specialist can use this
number when they contact the help desk.
 
At runtime, the message displays the message name, number, and application abbreviation.
For example.
 

Short Text Enter this value.


   
You use one set of curly brackets ( {} ) to enclose a token. A token is a placeholder for
variable content, such as text or a number. Order Management replaces the token with a
value at run time. In this example, it replaces {QUANTITY} with the number that the Order
Entry Specialist enters in the Quantity aribute on the order line.
 

Message Type Warning


   

Category Product
   

Severity Low
   

Logging Enabled Contains a check mark.


   

3. In the Message Tokens area, click Actions > New, then set values.

Aribute Value

Token Name QUANTITY


   

Data Type Number


   

Description Number that the Order Entry Specialist enters in the Quantity aribute on the order line.
   

4. Click Save and Close, and then click Save and Close again.

Guidelines for Managing Shipment Sets


Apply guidelines when you use shipment sets.
• If Order Management applies a hold to one or more lines in a shipment set, then it applies the hold on the
entire shipment set.
• If the fulllment line is part of a shipment set, then you can't.

◦ Split the fulllment line. To split the line, remove it from the shipment set, add a new line, then split
your new line.

1098
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

◦ Substitute an item. To substitute, remove the line that contains the item you must substitute from the
shipment set, then add a new line that contains the substitution.
• If the fulllment line already shipped, or if Order Management already created a request to invoice the line,
then the Fulllment Line Shipment Set Update constraint prevents you from updating the shipment set. The
constraint comes predened as enabled. You can disable it.
• If you remove an order line from a shipment set, then Order Management doesn't update the orchestration
plan.
• If you manually schedule a shipment set, and if you select an option for one or more fulllment lines, and if
these lines are part of a shipment set, then Order Management applies the scheduling option that you select to
all of the fulllment lines that reference the shipment set.
• If you include items that can ship with items that can't ship in the same shipment set, then include a pause step
in your orchestration process only if you need the pause so you can invoice the shippable and nonshippable
items together. For example, you add line 1 that contains the shippable AS54888 Desktop Computer and line 2
that contains the nonshippable warranty that covers the AS54888 in the same set.

Import Shipment Sets


Import your shipment set through the orderImportService or File-Based Data Import.

Here's part of an example payload that includes a shipment set.


<ns2:Line>
<ns2:SourceTransactionLineIdentifier>101</ns2:SourceTransactionLineIdentifier>
<ns2:SourceTransactionScheduleIdentifier>101</ns2:SourceTransactionScheduleIdentifier>
<ns2:SourceTransactionLineNumber>1</ns2:SourceTransactionLineNumber>
<ns2:SourceTransactionScheduleNumber>1</ns2:SourceTransactionScheduleNumber>
<ns2:ProductNumber>AS54888</ns2:ProductNumber>
<!--Parameterize-->
<ns2:OrderedQuantity>15</ns2:OrderedQuantity>
<!--Parameterize-->
<ns2:OrderedUOM>Each</ns2:OrderedUOM>
<!--ns2:OrderedUOMCode>Ea</ns2:OrderedUOMCode-->
<ns2:RequestingBusinessUnitName>Vision Operations</ns2:RequestingBusinessUnitName>
<ns2:ParentLineReference/>
<ns2:RootParentLineReference/>
<ns2:ShippingInstructions/>
<ns2:PackingInstructions/>
<ns2:ScheduleShipDate/>
<ns2:RequestedShipDate>2019-10-14T01:08:52Z</ns2:RequestedShipDate>
<ns2:RequestedFulfillmentOrganizationCode>M1</ns2:RequestedFulfillmentOrganizationCode>
<ns2:ShipToAddress1>102, CityView</ns2:ShipToAddress1>
<ns2:ShipToCity>CHATTANOOGA</ns2:ShipToCity>
<ns2:ShipToPostalCode>37401</ns2:ShipToPostalCode>
<ns2:ShipToState>TN</ns2:ShipToState>
<ns2:ShipToCountry>US</ns2:ShipToCountry>
<ns2:ScheduleShipDateTime>2016-12-20T10:10:10</ns2:ScheduleShipDateTime>
<ns2:ScheduleArrivalDateTime>2016-12-20T10:10:10</ns2:ScheduleArrivalDateTime>
<ns2:ShippingCarrier>DHL</ns2:ShippingCarrier>
<ns2:ShippingServiceLevel>2nd day air</ns2:ShippingServiceLevel>
<ns2:ShippingMode>Air</ns2:ShippingMode>
<ns2:ShipSetName>SS1</ns2:ShipSetName>

Note.

• Use the ShipSetName aribute to specify the shipment set. Include the aribute in the Line hierarchy. This
example sets the name to SS1, and its part of the hierarchy for source transaction line 101. It adds line 101 to
shipment set SS1.

1099
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

• Set ShipSetName to the same value in each line that you need in the set. Assume your set includes lines 101 and
102. Set ShipSetName in line 102 to SS1.
• Make sure each line that's part of the shipment set uses the same value for aributes that aect the set, such as
Warehouse. For a list of these aributes, see the Ship Order Lines in Shipment Sets topic.
• To get the complete payload for this example, go to White Papers for Order Management
Cloud (Doc ID 2051639.1) at hps://support.oracle.com/epmos/faces/DocumentDisplay?
_afrLoop=472607338634463&id=2051639.1. Download the Payloads and Other Files That Support
Implementation aachment. Open the aachment then open source_order_with_shipment_set.txt.

Related Topics
• Cancel Order Lines That Remain in the Same Status
• Ship Order Lines in Shipment Sets

Sales Order Status


Overview
Orchestration Process Status
An orchestration process status indicates the status of an orchestration process throughout Order Management Cloud.
The value Started is an example status. It indicates that Order Management started the orchestration process.
Order Management nishes the fulllment tasks of an orchestration process sequentially according to each
orchestration process step when it processes an order.

Order Management comes predened to use a default set of statuses for fulllment tasks. You can also set up statuses
and sequences. For example, you can set up an orchestration process that uses a set of statuses and rule logic for
textbooks for a college, and set up another orchestration process that uses a dierent set of statuses and rule logic for
textbooks for a primary school.
• You must specify the status that Order Management assigns to an orchestration process at each orchestration
process step. For example, if the Schedule School Books task includes a status of Unsourced, then you must
specify the status that Order Management assigns to the orchestration process for this step.
• You must specify a status that indicates when a task done. You can select only a status that you set up to
indicate that a task is done.
• If you modify the name of the default status, then Order Management displays the modied name throughout
the Order Management work area.
• If you don't set up statuses for an orchestration process, then Order Management uses the predened statuses,
by default.

Status Conditions for Orchestration Processes


You can create a status condition that determines the orchestration process status. For example.
• If the status of the Schedule task is Not Started, then set the orchestration process status to Unscheduled.

Order Management 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.

1100
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

How Order Management Assigns Statuses


1. A fulllment system sends a status update to Order Management.
2. The Interface Layer translates the status into status values that Order Management uses.
3. Fulllment tasks determine the status message to send.
4. The Status Service.

◦ Uses source and target mapping to set the task status.


◦ Sets the orchestration process status according to the statuses of the tasks that the process contains.
◦ Sets the fulllment line status according to the task statuses that the fulllment line references.

Related Topics
• Set Up Orchestration Processes
• Order Management Statuses

Manage Status Values


Use tabs on the Manage Status Values page to manage how Order Management Cloud displays status.

Tab Description

Status Codes Specify the display name that Order Management displays in the Order Management work
  area.
 

Fulllment Lines Create the status values that users can select for a fulllment line in an orchestration process.
   

Task Types Assign a status code to a task type. If a system outside of Order Management Cloud provides
  the status, then assign this status to the fulllment task that references this system. For
example, if a shipping system provides the status, then assign the code to the Shipping task
type.
 

Orchestration Process Classes Assign the status code to fulllment lines or orchestration processes where Order
  Management must use the status.
 
For example, you can use an orchestration process class to control the status codes that an
administrator can choose when creating a status condition for an orchestration process. You
must use the Manage Status Values page to set the status values and to make them available
when you create a status condition.
 

Related Topics
• Order Management Statuses

1101
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

Set Ups
Manage Task Status Conditions
Order Management Cloud fullls each fulllment task one step at a time when it processes a sales order, and it uses a
predened set of sequential statuses to track the progress of each task. You can use the Manage Task Status Conditions
page to manage the status conditions that determine the status of these tasks according to task type.
1. On the Manage Task Status Conditions page, in the task list, click the task type that you must manage.
For example, to manage the status conditions when Order Management processes a return, click the row that
contains Return in the Type column.
2. In the Status Conditions list, modify or add new conditions as necessary.

Aribute Description

Internal Status Value Displays a status that Order Management receives from a fulllment system through a
  fulllment task. For details, see the Task Types topic.
 

Display Status Value Species the value that Order Management displays.
   
For example, assume your fulllment system sends a status of Invoiced for a task, but your
company uses Billed. You can set Display Status Value to Billed to display Billed throughout
the Order Management work area.
 

Mark as Complete If this option contains a check mark, then Order Management considers the task to be done
  when it reaches the condition.
 
For example, assume you click the Return row in the task list on the Manage Task Status
Conditions page, then, in the Status Conditions area, you add a check mark to Mark as
Complete for the Canceled status condition and for the Delivered status condition. In this
example, Order Management considers the task to be done when the task reaches the
Canceled status or the Delivered status.
 

Related Topics
• Task Services

Group Statuses for Orchestration Processes


An orchestration process class is a set of statuses you can assign to an orchestration process. Use it to group statuses so
they're meaningful.
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 dierent values, depending on your business requirements.

Group statuses for orchestration processes.


1. In the Setup and Maintenance work area, go to the task.
◦ Oering: Order Management
◦ Functional Area: Orders

1102
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

◦ Task: Manage Status Values


2. On the Manage Status Values page, click Orchestration Process Classes.
3. In the Orchestration Process Classes list, click Actions > Create, then set values.

Aribute Value

Code Standard_Class
   

Name Standard_Class
   

Description Class for standard orders


   

4. Click Save.
5. In the Status Values area, click Actions > Add Row, then add the value.

Aribute Value

Status Value Scheduled


   

6. Repeat step 5 for each value.


◦ Shipped
◦ Reserved
◦ Billed
◦ Returned to Customer
7. Click Save and Close.
You can now set class Standard_Class in the Process Class aribute on the Edit Orchestration Process Denitions page.
The class that you set determines the values you can select when you set the Status Value on the Status Conditions
tab. For example, if you set Process Class to Standard_Class, then you can use Status Value to select the statuses that
Standard_Class references, such as Shipped.

Related Topics
• Order Management Statuses
• Set Up Orchestration Processes

Fulllment Line
Fulllment Line Status
Specify the status that your orchestration process assigns to a fulllment line.
For example, you can specify that if the Schedule School Books task includes a status of Pending Scheduling, then set
the fulllment line status to Unscheduled.
• The orchestration process step runs fulllment tasks when it processes the fulllment line.

1103
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

• The fulllment line status displays throughout the Order Management work area.
• You can specify dierent sets of statuses and rules for dierent items that the fulllment line references. For
example, specify one set of status conditions for a hard cover book, and another set of status conditions for a
paperback book.
• If you don't create conditions, then Order Management uses the status rule set that it assigns to the default
category.

Use Status Catalogs and Status Categories to Group Fulllment Lines


Use a status catalog to group items that are similar so they can achieve the same statuses at the same time.

You might need dierent fulllment lines to use dierent sets of statuses. For example, a fulllment line you ship, such
as a computer, might need statuses that are dierent from a fulllment line you don't ship, such as a warranty.
• Use a category to make sure Order Management applies the same set of status conditions to specic sets of
fulllment lines. It applies the same status conditions to all fulllment lines that reference the item that resides
in the category.
• Use catalogs and categories in more than one orchestration process.
• Select the status catalog when you set up your orchestration process.
You can only select a catalog that meets these requirements.
◦ The item exists in only one category in the catalog.
◦ The category contains items or subcategories.
◦ The category doesn't contain items and subcategories.
◦ Order Management controls the catalog only for the master, and not for each organization.
• Use the Product Information Management work area to set up the status catalog.

Use Status Rule Sets with Fulllment Lines


Use a status rule set so you can use a single set of rules with more than one fulllment line instead of specifying a
separate rule for each fulllment line. For example.
• If the item is in status Unsourced, then set the fulllment line status to Unscheduled.
• If the Schedule Text Books fulllment task reaches a status of Completed, then set the fulllment line status to
Scheduled.

Note.
• You can use a single status rule set with more than one category. If a parent category and a child category each
reference a dierent status rule set, then Order Management uses the status rule set that the child references.
Use this feature so you can create an All category to handle all items in one orchestration process. Use it to add
a subcategory for a subset of items that must use a dierent status rule set.
• If you migrate an orchestration process between environments, such as from a development environment to
a production environment, then don't modify the status rule set name in either environment. Modifying the
name might prevent Order Management from updating references to other data in the orchestration process.

Set Up the Sequence for the Status Condition


Set up the sequence of status conditions so they match the logical progress of the status that the order line normally
takes during the fulllment line lifecycle. If more than one condition evaluates to true, then the orchestration process
will set the fulllment line status to the status value with the highest sequence number.

1104
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

Here's an example.

Note.

• You use the Sequence aribute in the Orchestration Process Status Values area on the Status Conditions tab of
the Create Orchestration Process Denition page.
• You set the sequence of the status conditions so they match the logical progress of the status. For example,
Sequence 150 for status Awaiting Shipping occurs before Sequence 160, status Shipped. If Awaiting Shipping
and Shipped each evaluate to true, then the orchestration process sets the status to Shipped because 160 is
higher than 150.

Related Topics
• Order Management Statuses

Set Up Fulllment Line Status


Set up the status values that Order Management displays on the fulllment line.
Summary of the Set Up

1. Add the status codes.


2. Add status codes to fulllment lines.
This topic includes example values. You might use dierent values, depending on your business requirements.

1105
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

Add the Status Codes


1. In the Setup and Maintenance work area, go to the task.

◦ Oering: Order Management


◦ Functional Area: Orders
◦ Task: Manage Status Values
2. On the Manage Status Values page, in the Status Codes list, click Actions > Create.
3. In the Create Status Code dialog, enter values, then click Save and Create Another.

Aribute Value

Code SCHED_GOODS
   

Name Scheduled Goods


   
The Order Management work area will display the value you enter.
 

4. In the Create Status Code dialog, enter values, then click Save and Close.

Aribute Value

Code SCHED_CLOTHING
   

Name Scheduled Clothing


   

Add Status Codes to Fulllment Lines


Add the status codes you just created to the fulllment lines.

1. On the Manage Status Values page, click Fulllment Lines > Actions > Select and Add.
2. In the Select and Add dialog, in the Status Code aribute, enter SCHED_GOODS, then click Search.
3. Click SCHED_GOODS > OK.
4. Click Actions > Select and Add.
5. In the Select and Add dialog, in the Status Code aribute, enter SCHED_CLOTHING, then click Search.
6. Click SCHED_CLOTHING > OK.
7. Click Save and Close.
You can now set the status value for the fulllment line in the orchestration process to SCHED_GOODS or
SCHED_CLOTHING.

Related Topics
• Order Management Statuses

1106
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

Status Condition
Add Status Conditions to Orchestration Processes
Add status conditions that specify when to set the status of an orchestration process.
Assume you need an orchestration process that fullls sales orders for company t-shirts, and you must specify the
statuses that the process uses throughout the order life cycle according to the status of the fulllment task.

You will create this status condition.

• If the status of the Schedule task is Scheduled, then set the orchestration process status to Scheduled.

Summary of the Set Up

• Set the orchestration process class.


• Add the status condition.

You typically add more than one status condition to an orchestration process. For brevity, you will add only one in this
topic.

This topic includes example values. You might use dierent values, depending on your business requirements.

Set the Orchestration Process Class


1. In the Setup and Maintenance work area, go to the task.

◦ Oering: Order Management


◦ Functional Area: Orders
◦ Task: Manage Orchestration Process Denitions
2. On the Manage Orchestration Process Denitions page, locate the CallCustomerWhenLargeInvoice
orchestration process, then click Actions > Edit.

For details about how to create this process, see the Add Branches to Orchestration Processes topic.
3. On the Edit Orchestration Process Denitions page, set the value.

Aribute Value

Process Class Standard_Class


   
You must set up Standard_ Class before you can select it. For details, see the Set Up
Orchestration Process Classes topic.
 

4. Click Save.

Add the Status Condition


1. In the Process Details area, click Status Conditions.
2. In the Orchestration Process Status Values list, click Actions > Add Row.
3. In the new row, set values.

1107
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

Aribute 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, then click Insert
Into Expression. Make sure you don't 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", then enter an equal sign (=).
◦ Expand CallCustomerWhenLargeInvoice - Schedule, click SCHEDULED, then click Insert Into
Expression.
◦ Notice that the Expression window contains "Schedule"="SCHEDULED", then click OK.
5. Click Save.

Related Topics
• Add Branches to Orchestration Processes

Add Status Conditions to Fulllment Lines


Add status conditions to a fulllment line that includes more than one item, and where each item needs a dierent
status.
If dierent fulllment lines must use dierent statuses, then you must determine how you will use catalogs and
categories to group the lines. You do this when you create the orchestration process.

Assume you must set up orchestration processes that can handle sales orders for dierent types of t-shirts. You could
use the same orchestration process for dierent types of merchandise, but you prefer to dene statuses for each type
of clothing separately because each clothing type requires a dierent status. To do this, you select the status catalog,
then add the status conditions for a single category of items in the orchestration process.

Summary of the Set Up

• Set the status catalog.


• Add the status condition for each default.
• Add the status condition for the item.

You typically create more than one status condition for each fulllment line. For brevity, in this topic you create only one
status condition for the default category and another status condition for the item.

This topic includes example values. You might use dierent values, depending on your business requirements.

1108
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

Set the Status Catalog


1. In the Setup and Maintenance work area, go to the task.

◦ Oering: Order Management


◦ Functional Area: Orders
◦ Task: Manage Orchestration Process Denitions
2. On the Manage Orchestration Process Denitions page, locate the CallCustomerWhenLargeInvoice
orchestration process, then click Actions > Edit.
For details about how to create this process, see the Add Branches to Orchestration Processes topic.
3. On the Edit Orchestration Process Denitions page, set the value.

Aribute Value

Status Catalog Retail_ Merchandising_ Catalog


   
Retail_ Merchandising_ Catalog is an example catalog. You must use the Product
Information Management work area to dene it and the values that it references before you
can specify it for this orchestration process.
 

If a warning dialog displays, then click OK.


4. Click Save.

Add the Default Status Condition


Add the status condition that the orchestration process will use, by default.
1. In the Process Details area, click Status Conditions > Fulllment Line Status Values.
2. In the Default row, in the Status Rule Set aribute, click the arrow, then click Create.
You will select the statuses that this orchestration process uses, by default. Every row in the Fulllment Line
Status Values list must reference a status rule set, and each rule set must contain at least one status condition.
3. In the Create Status Rule Set dialog, set values.

Aribute Value

Code LargeOrders
   

Name Large Orders


   

Create New Chosen


   

4. Click Save and Close > Save.


5. In the Default row, click Edit Status Rule Set.
6. On the Edit Status Rule Set page, click Actions > Add Row.
7. In the Sequence aribute, enter 1.

1109
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

8. Set the status value.

◦ In the Status Value aribute, click the arrow, then click Search.
◦ In the Search and Select dialog, in the Status Code aribute, enter SCHED, then click Search.
◦ In the list, click Scheduled, 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, then click Insert
Into Expression. Make sure you don't 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", then enter an equal sign (=).
◦ Expand CallCustomerWhenLargeInvoice - Schedule, click SCHEDULED, then click Insert Into
Expression.
◦ Notice that the Expression window contains "Schedule"="SCHEDULED", then click OK.
10. On the Edit Status Rule Set page, add a check mark to Notify External Systems, then click Save and Close.
Notify External Systems allows Order Management to communicate the status to an external system that
resides outside of Order Management. For details, see the Send Notications from Order Management Cloud to
External Systems topic.

Add the Status Condition for an Item


1. In the Process Details area, in the Fulllment Line Status Values list, click Actions > Select and Add: Category.
2. In the Select and Add: Category dialog, select Retailer, then click Save and Close.
3. In the Fulllment Line Status Values list, in the Retailer row, in the Status Rule Set column, click the arrow , then
click Create.
4. In the Create Status Rule Set dialog, set values.

Aribute Value

Code Shirts
   

Name Shirts
   

Create New Chosen


   

5. Click Save and Close > Save.


6. In the Fulllment Line Status Values list, in the Retailer row, click Edit Status Rule Set.
7. Repeat steps 6 through 10 of the Add the Default Status Condition section, earlier in this topic.

Related Topics
• Add Branches to Orchestration Processes
• Order Management Statuses

1110
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

Sales Order Values


Set Up Sequences for Sales Order Numbers
Set up the starting value for your sales order numbers.
In this example, you set up Order Management so it uses 1,000 as the order number for the rst order that your users
create on January 1, 2019.

1111
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

Here's your setup.

This topic includes example values. You might use dierent values, depending on your business requirements.

1. In the Setup and Maintenance work area, click Tasks > Search, search for, then open Manage Document
Sequences.
2. On the Manage Document Sequences page, search for the value.

Aribute Value

Document Sequence Name ORA_ FOM_ DOC_ SEQUENCE_AUTO


   

1112
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

3. In the search results, click Expand, set values, then click Save and Close.

Aribute Value

Initial Value 1000


   

Display Ignore this aribute. Don't set it. Its for internal use only.
   

Start Date 01/01/19


   

End Date Leave empty. Order Management will continue to increment the sales order number in
  perpetuity.
 

Note.

• Order Management uses the predened ORA_FOM_DOC_SEQUENCE_AUTO number sequence to create order
numbers, starting with the value you set in Initial Value.
• Each order number is unique.
• The order number is permanent. Order Management doesn't change the order number even if the user
modies an order aribute.
• If you import orders from a source system through a web service, REST API, a le, or any other way, and if you
set the DOO_RT_USE_ORDER_NUMBER order prole to Y, then Order Management uses order numbers from
your source system and ignores ORA_FOM_DOC_SEQUENCE_AUTO.
• You can't.

◦ Use your own number sequence, except for order numbers you import.
◦ Specify sequence according to determinant type.
◦ Specify gapless or manual sequencing.

Related Topics
• Document Sequences
• Guidelines for Managing Document Sequences

1113
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

Manage Lookups in Order Management


An order lookup species the values that Order Management displays in a list of values. You can set up these values.

Note.
• A list of values is a user interface element that allows your users to choose the value for an aribute. For
example, the user can use a drop down list of values to set the value for the Order Type aribute on the order
header.
• Use the Manage Order Lookups page in the Setup and Maintenance work area to set up the lookup. Set these
aributes.

1114
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

Aribute Description

Lookup Type Specify a group of values.


   
For example, use lookup type ORA_ DOO_ ORDER_TYPES to allow the user to choose from a
list of values for the Order Type aribute on the order header.
 

Lookup Code Specify an abbreviation that represents the meaning. Each code uses one value that the user
  can choose in the list of values.
 

Meaning Specify the user-friendly value to display in the list of values.


   
For example, a table in the Oracle database or a web service payload might contain a value of
STD_DS for a standard drop ship sales order. You can set Meaning to the more user-friendly
value Drop-ship Order.
 
For details about how a web service payload contains coded values, see the Aributes in
Request Payloads That Integrate Order Management topic.
 

Display Sequence
  Specify the sequence of the lookup codes in the list of values.

For example, if Sequence is 1 for Standard Orders, 2 for Drop-ship Orders, and 3 for Mixed
Orders, then the list of value displays values in this sequence.

◦ Standard Orders

◦ Drop-ship Orders

◦ Mixed Orders

Related Topics
• Aributes You Can Use with Web Services

Control Decimal Precision


Use the Quantity Decimal Precision prole to control decimal precision for aributes that store numeric values.
For example, to control decimal precision on the order line quantity that the Order Entry Specialist sets on the Create
Order page, or to control decimal precision during order import.

Precision is the total number of digits that a number contains, where scale species the number of digits that exist to
the right of the decimal point.

For example, the number 17.347 uses a precision of 5 and a scale of 3.

You can't modify precision but you can modify scale. For example, if you set the scale to 3 in the Quantity Decimal
Precision prole, and if the Order Entry Specialist enters 17.3468 for the quantity, then the prole will round 17.3468 to
17.347..

1115
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

Quantity for some items is typically a whole number. For example, most companies sell a desktop computer as a whole
item. Don't use Quantity Decimal Precision to allow only a whole number in the quantity. Instead, you can set the
Indivisible aribute to Yes in the Product Information Management work area when you set up the item.

Here's your scenario.


• You sell a variety of elements from the periodic table according to weight, such as Diamond.
• You sell these elements in grams and milligrams, which is 1/1000 of a gram.
• The value for milligram can range from .001 to .999.
• You already set up an item named Diamond in the Product Information Management work area, and you
specied it to use Gram as the unit of measure.
• You will set the scale to 3.

Set up decimal precision.


1. In the Navigator, click Setup and Maintenance.
2. On the Setup page, click Tasks > Search.
3. On the Search page, search for, then open Manage Administrator Prole Values.
For details about this task, see book SCM Cloud: Implementing Common Features for Oracle SCM Cloud.
4. On the Manage Administrator Prole Values page, in the Search area, enter the value, then click Search.

Aribute Value

Prole Display Name Quantity Decimal Precision


   

5. In the search results, in the Prole Values area, set the value, click Save and Close > Done.

Aribute Value

Prole Value 3
   

You can set decimal precision only at the Site level. You can't set it for each item or for each unit of measure.
6. In the Navigator, click Order Management.
7. On the Overview page, click Create Order.
8. On the Create Order page, in the Select Item window, enter Diamond, then click Search.
9. On the catalog search line, in the quantity window to the left of Gram, set the value to 17.3468, then click Add.
10. Verify that the Create Order page displays a message that it rounded your value to 17.347.

Set Default Values on Sales Orders from Product Information


Management
Use a business rule to get a value for your item from the Product Information Management work area, then use it to set
the default value for an aribute on the sales order.
Here's the example pretransformation rule you will create.

1116
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

If the user adds the AS54888 item, then set the default value for the Accounting Rule attribute to Immediate,
and set the value for the Invoicing Rule to the Arrears Invoice attribute.

This topic includes example values. You might use dierent values, depending on your business requirements.

Summary of the Steps


1. Modify the item.
2. Create the pretransformation rule.

Modify the Item

Do it.
1. Sign into Oracle Fusion Applications with a user role you can use to administer Product Information
Management.
If you don't sign in with this user role, then the Product Information Management work area won't display your
product details and you can't do this procedure.

1117
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

2. Click Tasks > Manage Items, then search.

Aribute Value

Item AS54888
   

3. In the search results, click AS54888.


4. On the Edit Item page, click Specication > Sales and Order Management, set values, then click Save.

Aribute Value

Accounting Rule Immediate


   

Invoicing Rule Arrears Invoice


   

1118
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

Create the Pretransformation Rule

Do it.

1. Sign out, then sign in as the order administrator.


2. In the Navigator, click Setup and Maintenance.
3. In the Setup and Maintenance work area, go to the task.

◦ Oering: Order Management


◦ Functional Area: Orders
◦ Task: Manage Pretransformation Rules for Sales Orders
4. Create a new rule. Test for the item on the fulllment line, then set aribute values on the fulllment line.

◦ Create the If statement.

IF item = AS54888

◦ Create the Then statement.

1119
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

Accounting Rule is set to Immediate

Invoicing Rule is set to Arrears Invoice

Related Topics
• Overview of Assigning Orchestration Processes
• Demo for Creating Business Rules
• Overview of Using Business Rules With Order Management

Get Data from Product Information Management


Create a business rule to get data from the Product Information Management work area and bring it into Order
Management.
In this example, you assign an orchestration process that includes extra steps so order fulllment safely handles
hazardous material, such as packing in a controlled container and shipping through a company that specializes in
shipping hazardous material. The fulllment line doesn't come predened with a hazardous aribute, so you reference
an aribute in Product Information Management instead. Here's the assignment rule you will create.

• If shipping a hazardous material, then use the Ship_Hazardous_Material orchestration process.

1120
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

You create a rule that references the hazardousMaterialFlag aribute in Product Information Management.

For details about how to create a business rule, see the Overview of Using Business Rules in Order Management topic.

Do it.

1. Create the rule.

◦ In the Setup and Maintenance work area, go to the task.

• Oering: Order Management


• Functional Area: Orders
• Task: Manage Process Assignment Rules for Sales Orders
◦ On the Manage Orchestration Process Assignment Rules page, click Create New Rule, then set values.

1121
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

Aribute Value

Name Assign According to Hazardous Material


   

Description Assign orchestration process depending on hazardous material.


   

2. Create the If statement.

◦ Click New Condition.


◦ In the Create Condition dialog, enter haz, wait a moment, then click harzardousMaterialFlag (Item
Denition).

The phrase Item Denition indicates that the aribute resides on an item denition in Product
Information Management.
◦ Set the operator to Is Equal To.
◦ Enter Y, then click OK.
3. Create the Do statement.

◦ Click Then > Do > New Action.


◦ In the Create Action dialog, enter process, wait a moment, then click Process Name (Order Fulll Line).

The phrase Order Fulll Line indicates that the orchestration process you set will process order fulllment
lines.
4. Search for your orchestration process.

◦ Click Search > Advanced.


◦ Set Process Name to Contains.
◦ Enter Ship_Hazardous_Material.

The search is case sensitive.


◦ Click Search.

For this example, assume you already created and deployed this orchestration process. If you didn't
deploy, then Search won't nd it.
◦ Click the row in the search results.
◦ Click OK.
◦ In the Create Action dialog, click OK.
5. Activate and publish your rule.

Related Topics
• Overview of Assigning Orchestration Processes
• Demo for Creating Business Rules
• Overview of Using Business Rules With Order Management

1122
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

Set Default Value for Scheduled Ship Date


Set the default value for the Schedule Ship Date aribute on the fulllment line.
You will create an example rule.

• If the source order header includes PMC, then set the default value for Scheduled Ship Date to the current date.

Note.

• Use Visual Information Builder.


• Enter Source Order (Order Header) when you create the If clause.

1123
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

• Enter values when you create the Then clause.

◦ Override Schedule (Order Fulll Line)


◦ Scheduled Ship Date (Order Fulll Line)

Verify You Collected Shipping Aributes


As an option, you can verify you collected shipping aributes that aect the Schedule Ship Date.

The orchestration process uses shipping aributes when it orchestrates shipment during fulllment.

• Carrier
• Method of Transport
• Service Level

Here's an example payload that includes them.


<coresalesorder:ProcessSalesOrderFulfillment>
<coresalesorder:ModeOfTransportCode>AIR</coresalesorder:ModeOfTransportCode>
<coresalesorder:ServiceLevelCode>1ST</coresalesorder:ServiceLevelCode>
<corecom:PaymentTerm>
<corecom:Code>24</corecom:Code>
</corecom:PaymentTerm>
<corecom:CarrierPartyReference>
<corecom:PartyIdentification>
<corecom:ApplicationObjectKey>
<corecom:ID>DHL</corecom:ID>
</corecom:ApplicationObjectKey>
</corecom:PartyIdentification>
</corecom:CarrierPartyReference>

Use SQL to conrm you collected this data.


select
mai.instance_code
, mxm.entity_name
, mxm.attribute_name
, mxm.Source_value
, mxm.target_value
from
MSC_XREF_MAPPING MXM
, MSC_APPS_INSTANCES MAI
where upper(entity_name) in ('WSH_SERVICE_LEVELS','WSH_MODE_OF_TRANSPORT','CARRIERS') AND
(source_value = 'DHL' or Source_value = 'AIR' or Source_value = '1ST') AND
MAI.instance_id = MXM.SR_instance_id AND
MAI.instance_code = 'LEG'
order by
ENTITY_NAME
, SOURCE_VALUE;

Assume your query returns results.

INSTANCE CODE ENTITY NAME ATTRIBUTE NAME SOURCE VALUE TARGET VALUE

LEG CARRIERS CARRIER_ID DHL 32512


         

LEG WSH_ MODE_ LOOKUP_CODE AIR 39


  OF_TRANSPORT      

1124
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

INSTANCE CODE ENTITY NAME ATTRIBUTE NAME SOURCE VALUE TARGET VALUE

LEG WSH_ SERVICE_ LOOKUP_CODE 1ST 15


  LEVELS      
 

Next, get details about the service level and mode of transport. Query according to the lookup codes from the result of
your rst query.
SELECT
lookup_code
, lookup_type
, meaning
, enabled_flag
, start_date_Active
, end_date_Active
FROM
MSC_SR_LOOKUP_VALUES_vl
WHERE LOOKUP_CODE IN (15,39)
order by
lookup_code;

Here's the result.

LOOKUP_CODE LOOKUP_TYPE MEANING ENABLED_FLAG START_DATE_ACTIVE END_DATE_ACTIVE

15 WSH_ SERVICE_ 1st Class Y 01-JAN-59 Not applicable


  LEVELS        
 

39 WSH_ MODE_ Air Y 01-JAN-59 Not applicable


  OF_TRANSPORT        
 

Next, get details about the carrier. Query according to the lookup code for the carrier from the result of your rst query.
SELECT
tp_id
, partner_name
, party_id
FROM FUSION.MSC_GLOBAL_TRADING_PARTNERS
where tp_id = 32512;

Here's the result.

TP_ID PARTNER_NAME PARTY_ID

32512 DHL DHL


     

Related Topics
• Overview of Using Business Rules With Order Management

1125
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

• Use Visual Information Builder


• Use SQL to Query Order Management Data

Sales Order Constraints


Processing Constraints
Create a processing constraint to control modications the Order Entry Specialist or your source system can make on a
sales order.
A processing constraint is a rule that controls who can change a sales order, what can change in the sales order, and
when the change can occur.

• If an Order Entry Specialist aempts to submit or modify a sales order, order line, or fulllment line, and if a
processing constraint doesn't allow the submit or change, then Order Management rejects it and displays a
message.
• If a source system aempts to submit or modify a sales order, then Order Management rejects it and sends a
return message.
• Order Management also uses the processing constraint to make sure each fulllment request includes the
aributes that it needs to process the request.

For details about how to use a constraint to manage change, including how to set up AND and OR conditions, see the
Guidelines for Managing Change That Occurs During Order Fulllment topic.

Examples

Example Constraint Description

Reject a change when the sales order


is shipping. Assume an orchestration process achieves the shipping stage for a sales order, and a user
  submits a change.

• The shipping stage occurs late in the orchestration process.


• Its expensive and not practical to change the sales order.

Create a constraint that rejects the change after the orchestration process has achieved the
shipment step.

Reject each sales order that doesn't Assume your company doesn't deliver items to an address that doesn't include a ship-to
include required aributes. contact.
   
Create a constraint that rejects the sale order when it doesn't include a ship-to contact.
 

Reject a change that requires


approval. Assume your company doesn't allow the Order Entry Specialist to submit a change if the
  transaction value exceeds $10,000, and if a manager hasn't approved the change.

1126
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

Example Constraint Description

Create a processing constraint that rejects a change when all of these conditions are true.

• The user signed in with the Order Entry Specialist role.


• The transaction exceeds $10,000.
• A manager hasn't approved the change.

Parts of a Processing Constraint

Part Description

Role The job role that the constraint doesn't allow to make the change.
   
For example, you can constrain an Order Entry Specialist from changing a sales order when the
orchestration process proceeds beyond a step that you specify.
 

Action
  The action that the constraint doesn't allow. You can constrain the user from doing these
actions.

• Create
• Validate
• Update
• Split
• Submit
• Cancel
• Delete

Condition The condition that the constraint evaluates to determine whether to apply the constraint. For
  example, you can create a condition that applies a constraint when Order Management books
a sales order.
 

Here's the logic that a processing constraint uses.

• if the validation rule set is true, and if the user aempts an action on the record set that the processing
constraint prevents, then constrain the operation and display a message.

Note.

• If you set up a constraint that doesn't include a condition, then the constraint is always true. For example, the
predened processing constraint that prevents the Order Entry Specialist from deleting a sales order prevents
deletion in all situations.
• You can use a constraint with an extensible exeld.
• You can write a constraint for a sales credit. For example, write a constraint that prevents the user from
updating the sales credit if Order Management already shipped the order line. You can't write a a validation rule
set that constrains a sales credit. For example, you can't write a constraint that prevents the user from updating
the warehouse if the sales credit empty.

1127
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

How It Works

Here's the logic this example uses.

Step Object Description

1 Processing constraint If the Order Entry Specialist role does an


    Update operation on the fulllment line
entity. . .
 

1128
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

Step Object Description

2 Validation rule set . . .and if the Status aribute on the


    fulllment line entity contains a value of
Awaiting Shipment. . .
 

3 Constraint entity . . .then constrain the change that the


    Order Entry Specialist is aempting to
make. . .
 

4 Record set . . .according to the Bill-to Customer


    aribute on the fulllment line entity.
 

Objects You Set Up for a Processing Constraint

Object Description

Validation rule set


  A group of one or more If statements. For example.

• If the order is closed, then reject the change.

In this example, a predened validation rule set named Order is Closed examines the Open
aribute on the order header to determine whether the value is N.

Note.

• Use the validation rule set to restrict the validation that the constraint does to lines that
meet the condition you specify, such as lines that are billed.
• The validation rule set prevents the constraint from examining all lines, which might
degrade performance.
• Create the validation rule set before you create the constraint.
• You can't modify or delete a predened validation rule set, but you can create a new
one.
• You can apply a processing constraint when the condition is true or isn't true.
• You can't enter a value that contains ~ (a tilde) when you dene a validation rule
set because Order Management uses the tilde as a delimiter when it evaluates the
constraint rule at run time.
You might also encounter this problem at run time with some order aributes. For
example, a shipping instruction might contain a tilde.

Record set
  A set of records that Order Management groups according to common aribute values so it
can evaluate a constraint.

For example, to evaluate all sales orders for a customer, specify to evaluate one of these
entities when you create the record set.

• Order header
• order line
• Order fulllment line

1129
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

Object Description

You then select an aribute to rene the record set. For example, to evaluate all sales orders
for a customer, select the Order Header entity, then select the Sold-to Customer aribute.

Validation rule sets and record sets work together to create the conditions where the constraint
constrains the action.

You must create your validation rule sets and record sets rst, then create the constraint.

Constraint entity The business object or orchestration process that the constraint constrains.
   
For example, an order header, or an aribute of an order header, such Latest Acceptable Ship
Date.
 

Constraint package
  A set of triggers that Order Management applies to a table in an Oracle database. A
background process sets triggers when you create a constraint package.

A constraint package can activate a new or modied.

• Validation rule set that's of a table type


• Record set for a processing constraint

Here are the ways you create a constraint package.

• Use the Manage Processing Constraints page or run the Generate Constraint Packages
scheduled process.
• Create or modify a record set or a validation rule set that's of a table type.

You don't need to create a constraint package for a validation that isn't a table type.

Constraint Name
Here are the text strings you can use in the constraint name.

Text String Constraint That Occurs During Validation With. . .

GTM Oracle Global Trade Management.


   

PAYMENT Payment.
   

PRICING Pricing.
   

Constraint name doesn't include Screen for all types during order validation.
GTM, PAYMENT, or PRICING  
 

For example, to indicate payment, use DOO_PAYMENT_EXCEPTION.

1130
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

The text style in the text string isn't case-sensitive. For example, use GTM, Gtm, gtm, gtM, and so on.

You can place the text string anywhere in the constraint name.

Constraint Entities
A constraint entity is the view or orchestration process that a processing constraint constrains.

Type of Constraint Entity Description

View
  Constrain change according to the value of an aribute that a user can view in the Order
Management work area.

Here are the types of view constraint entities you can choose.

• Order Fulllment Line


• Order Line
• Order Header

For example, if you set Order Header as the constraint entity, then the constraint constrains
changes according to the order header.

Use a predened view constraint entity, but you can't create a new one.

The Aribute Details list on the Manage Constraint Entities page displays when you choose a
view constraint entity. Use it to choose the aributes to constrain.

Process
  Constrain an action from occurring at some point in an orchestration process, such as updating
an aribute or deleting a table entity, according to a combination of orchestration process,
task, and service.

For example, the Update Shipping task layer service references the OrderOnlyProcess
constraint entity. Here's what OrderOnlyProcess species.

• Orchestration Process is OrderOnlyProcess


• Task is Shipping
• Service is UpdateShipment

OrderOnlyProcess constrains a change if the OrderOnlyProcess orchestration process is


running, and if this process is currently on the Shipping task, and if this process calls the
UpdateShipment service.

A process constraint entity.

• Considers the current position of the transaction in the orchestration process ow.
• Can validate required aributes for a fulllment request, such as a Create Shipment
request, Update Shipment request, or Create Reservation request.

You can use a predened process constraint entity or create a new one.

1131
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

Manage Processing Constraints


Set up a processing constraint.
Summary of the Steps
1. Create the record set.
2. Create the validation rule set.
3. Create the processing constraint.
4. Test your set up.
In this example, you set up a processing constraint that prevents your users from changing an order fulllment line
that's part of an orchestration process that's in the shipping stage.

This topic includes example values. You might use dierent values, depending on your business requirements.

Create the Record Set


1. In the Setup and Maintenance work area, go to the task.

◦ Oering: Order Management


◦ Functional Area: Orders
◦ Task: Manage Processing Constraints
2. On the Manage Processing Constraints page, click Record Sets > Actions > Add Row, then set values.

Aribute Value

Name Fulllment Lines That Belong to Same Customer


   

Description A record set created on fulllment lines that belong to the same customer.
   

Short Name FCST


   

Entity Order Fulllment Line


   

3. In the Fulllment Lines That Belong to Same Customer area, click Actions > Add Row, then set the value.

Aribute Value

Aribute Name Bill-to Customer


   

4. Click Save > Generate Packages.


5. Notice that the Conrmation dialog displays your request ID, click OK, then wait for the request to nish.
For example.

1132
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

The concurrent request to generate constraints validation packages was submitted. Request ID: 10650.

Create the Validation Rule Set


1. Click Validation Rule Sets.
2. Click Actions > Add Row, then set values.

Aribute Value

Name Shipment Validation Rule Set


   

Description The validation rule set for lines with status Awaiting Shipment.
   

Short Name SHIP


   

Validation Type Table


   

Entity Order Fulllment Line


   

3. In the Shipment Validation Rule Set area, click Actions > Add Row, then set values.

Aribute Value

Aribute Name Status


   

Validation Operation Equal to


   

Value String Awaiting Shipment


   
If you enter your own aribute, then you must enclose the string with double quotation
marks (" ").
 

4. Click Save > Generate Packages.


5. In the Conrmation dialog, click OK.

Create the Processing Constraint


1. Click Constraints.
2. Click Actions > Add Row, then set values.

Aribute Value

Constraint Name Shipping Constraint

1133
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

Aribute Value

   

Display Name Shipping Constraint


   

Constraint Entity Order Fulllment Line


   

Constrained Operation Update


   

Enabled Contains a check mark.


   

3. In the Shipping Constraint area, in the Conditions list, click Actions > Add Row, then set values.

Aribute Value

Group Number 1
   

Validation Entity Order Fulllment Line


   

Validation Rule Set Shipment Validation Rule Set


   

Record Set Fulllment Lines That Belong to Same Customer


   

Message You can't update the fulllment line because its in the shipping stage.
   

4. In the Shipping Constraint area, click Applicable Roles, make sure All Roles is enabled, then click Save.

Test Your Set Up


1. In the Order Management work area, access a fulllment line that's in the Awaiting Shipment status.
2. Aempt to change an aribute.
3. Verify that Order Management doesn't allow you to make the change, and displays the message you entered in
the Message aribute when you set up the constraint.

1134
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

Constrain Changes to Aributes


Constrain the changes your users can make to an aribute.
Order Management comes predened to apply a processing constraint on some aributes but not on others. In this
example, you create a processing constraint that constrains changes on the Latest Acceptable Ship Date aribute on the
order header.

1. In the Setup and Maintenance work area, go to the task.

◦ Oering: Order Management


◦ Functional Area: Orders
◦ Task: Manage Constraint Entities
2. On the Manage Constraint Entities page, in the Entity Type aribute, click View Entity, then click Search.

The Manage Constraint Entities page displays view constraint entities and process constraint entities. Order
Management can constrain changes to any process constraint entity, so it isn't necessary to enable them for
constraint.
3. In the Search Results, click the constraint entity that displays the aribute you must constrain.

For example, to constrain changes to Latest Acceptable Ship Date on the order header, in the Display Name
column, click Order Header.
4. In the Aribute Details list, in the row that contains Latest Acceptable Ship Date in the Aribute column, add a
check mark to the Constraint Enabled option.

Constrain Changes That Users Make in Extensible Flexelds


Constrain changes that your users make in an extensible exeld.
For example, use a processing constraint to prevent the Order Entry Specialist from updating an extensible exeld
when Order Management already closed the fulllment line, or to require the user to enter a value in an extensible
exeld at a step of an orchestration process.

• Use the Manage Constraint Entities page to enable an extensible exeld so you can use it on the Manage
Processing Constraints page.
• Extensible exelds aren't available on the Aributes menu of the Record Sets tab.
• You must enable an extensible exeld before you can use it.
• A processing constraint prevents changes to the order line after Order Management closes the line. If you
set up an extensible exeld on the order line, and if you don't constrain the extensible exeld, then the
constraint doesn't prevent the user from changing the value in the extensible exeld.

Summary of the Set Up

1. Enable the extensible exeld.


2. Create the validation rule set.
3. Create the processing constraint.
4. Test your set up.

1135
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

Here's the constraint you will create.


• If Order Management already closed the fulllment line, then don't allow the user to change the value of the
Subcontractor ID extensible exeld.

This topic uses example values. You might use dierent values, depending on your business requirements.

Enable the Extensible Flexeld


Enable the extensible exeld so the constraint can reference it.
1. If necessary, publish and deploy the extensible exeld.
For details, see the Publish and Deploy Extensible Flexelds topic.
2. In the Setup and Maintenance work area, go to the task.
◦ Oering: Order Management
◦ Functional Area: Orders
◦ Task: Manage Constraint Entities
3. On the Manage Constraint Entities page, set Entity Type to Equals View Entity, then click Search.
4. In the search results, select Order Fulllment Line.
5. In the Aribute Details area, locate the extensible exeld you must enable, make sure Constraint-Enabled
contains a check mark, then click Save and Close > Done.
For this example, enable Subcontractor ID.

Create the Validation Rule Set


1. In the Setup and Maintenance work area, go to the task.
◦ Oering: Order Management
◦ Functional Area: Orders
◦ Task: Manage Processing Constraints
2. On the Manage Processing Constraints page, click Validation Rule Set.
3. Click Actions > Add Row, set values, then click Save.

Aribute Value

Name Fulllment Line Is Closed


   

Description Fulllment line is closed.


   

Short Name FLCLOSE


   

Validation Type Table


   

Entity Order Fulllment Line


   

1136
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

4. In the Details area, click Actions > Add Row, set values, then click Save.

Aribute Value

Aribute Name Open


   

Validation Operation Equal To


   

Value String N
   

5. Click Generate Packages.

Order Management activates the validation rule set so you can use it in your constraint.
If you add more than one line in the Details area of a validation rule set, then Order Management evaluates them
together.

If you select two context and segment aributes, then the aributes must use the same context value. The context is
mutually exclusive. Consider this example.

Context Segment

Dealer Information ID
   

Dealer Information Location


   

Warranty Information ID
   

You can't simultaneously select segment ID for the Dealer Information context and for the Warranty Information
context.

Create the Processing Constraint


1. Click Constraints > Actions > Add Row, set values, then click Save.

Aribute Value

Name Constrain Subcontractor ID


   

Display Name Constrain Subcontractor ID


   

Constraint Entity Order Fulllment Line


   

Constrained Operation Update

1137
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

Aribute Value

   

Aribute Name Subcontractor: ID


   

2. In the Details area, click Actions > Add Row, set values, then click Save.

Aribute Value

Group Number 100


   

Validation Entity Order Fulllment Line


   

Validation Rule Set Fulllment Line Is Closed


   

Scope Any
   

Record Set Fulllment Line Default Record Set


   

Message The fulllment line is closed. You can't modify it.


   

Test Your Set Up


1. In the Order Management work area, open a sales order you already submied.
2. Verify that Order Management doesn't allow you to modify Subcontractor ID on a fulllment line that's closed.

Related Topics
• Overview of Using Extensible Flexelds in Order Management
• Deploy Extensible Flexelds

Change Orders
Overview
Overview of Managing Change That Occurs During Order Fulllment
Order Management Cloud comes predened to process change, but you can modify the set up to meet your needs.
A change order is a change that aects a sales order during order fulllment. It can come from a variety of sources,
such as from a user through an order capture system, a user who uses the Order Management work area, or from

1138
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

change orders you import. For example, you might need to make changes to a sales order after you submit it to order
fulllment.

• Change the quantity and the ship-to address.


• Add more items to a sales order you created yesterday.
• Cancel a sales order or cancel an order line.
• Don't allow changes to a sales order after some point in time or after a condition occurs, such as after pick
release.

Here are some examples of how change can occur.

• Order Entry Specialist uses the Create Order Revision action to revise a sales order or makes changes in
fulllment views. Order Management doesn't apply order management extensions when the user makes a
change in a fulllment view. For details, see the Revise Sales Orders That You Already Submied topic.
• You import change from a channel.

1139
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

How Change Orders Work

Here's the sequence Order Management uses to process change.

1. Receive Change Order. Receive change order from channel.


2. Constrained? Apply processing constraint.

A processing constraint is a rule that controls who can change a sales order, what can change in the sales order,
and when the change can occur.

Order Management examines the header and fulllment lines.

1140
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

Entity Description

Order Header
  Determine whether a processing constraint on header prevents change, and whether the
sales order is closed.

◦ If a constraint doesn't allow change, or if the order is closed, then reject the entire
change and exit this sequence.
◦ Evaluating order header before evaluating order lines prevents Order Management
from unnecessarily processing a closed sales order.
◦ Order Management evaluates aributes when the user creates the revision, and also
when the user submits the revision to make sure other fulllment changes didn't
occur that might aect the order.

Fulllment Line
  Determine whether constraints on the fulllment line allow change.

◦ If a constraint doesn't allow change on any fulllment line, then reject the entire
change and exit this sequence.
◦ Some constraints on a fulllment line don't allow some changes, by default, such as
updating an order line if fulllment line status is Shipped.

3. Transform. Transform the change order.

Order Management does the transformations you set up, such as transforming an aribute value in the source
order to a value that your fulllment system can understand. For details, see the Transformation Rules topic.

If you create an order management extension that aects a change order, then Order Management nishes
transformation, then runs the extension.
4. Delta?. The delta is the dierence between an aribute value in the original sales order and the new value for
the aribute in the change order. For example.

Condition Description

Quantity in original order is 1, and A delta exists, and its value is 2.


Quantity in revised order is 3.  
 

Quantity in original order is 1, and No delta exists.


Quantity in revised order is 1.  
 

Here's how Order Management determines the delta.

◦ Examines set ups to determine which aributes to examine.

• Uses values you specify on the Order Aributes That Identify Change page.
• Examines predened aributes that aect the task. You can't specify to examine or not examine
these predened aributes.
• Examines aributes you add that aect the task. You can specify to examine or not examine
aributes you add.
◦ Identies orchestration process steps that reference these aributes.

1141
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

◦ Analyzes the state of each step. The orchestration process records the state every time it runs a task.
Order Management compares the change order to the existing sales order to determine whether the
value of the aribute changed.
◦ Uses these state details to determine the processing needed to incorporate the change.

In this example, assume the user changed the quantity, and you specied Quantity as a change aribute, so
Order Management starts compensation.
5. Hold Current Task. If a delta exists, then hold the task that's currently running.

A change order requests to change a sales order that an orchestration process is already processing in order
fulllment. The orchestration process runs various tasks during order fulllment, such as schedule, reserve,
ship, or invoice.

For example, assume the orchestration process sent a request to the shipping system to ship the item, is
currently waiting for the shipping system to send a reply, and sets the status to Awaiting Shipping. The change
order might aect shipping, so Order Management sends a request to the shipping system to temporarily stop
processing the task.

Stopping the task allows Order Management to nish the change and prevent the shipping system from
shipping the sales order without the changes that the change order requests.

If the fulllment system can't accommodate the change, then it replies with a rejection, and the sequence ends.
For example, if the fulllment system already shipped the sales order, then its too late to accommodate the
change. Instead, the Order Entry Specialist must create a return order to make the requested changes.
6. Merge. Merge the change order into the sales order that the orchestration process is currently processing.
7. Compensate.
Compensate

A compensation paern is a rule that you set up on an orchestration process step that species adjustments to make
when an order changes.

For example.

• Change order requests to use a dierent warehouse.


• Compensation paern for the Create Shipment step is Redo.
• This step calls the Cancel service to cancel the current request, and the Create service to create a new request
that includes the change order.
• If Order Management receives a change order that includes a new warehouse for this step, then it runs Cancel
and Create again.

Here's how compensation works.

1142
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

1. Check for Delta. Determine whether a delta exists that aects the current task. For example, if the current task
is reservation, and if a delta exists for the Quantity aribute, then the delta aects the reservation task because
the orchestration process must adjust the reserved quantity so it reects the change order.

If the delta determines that an aribute requires compensation, then the orchestration process uses the
compensation paern that the step references to compensate the step.
2. Compensate. Here's what Order Management does.

◦ Runs the orchestration process again.


◦ Sends updates to the fulllment system for each task. If the changed aribute doesn't aect the task,
then the orchestration process applies the aribute change to the sales order but doesn't send an update
to the fulllment system.

You can set up a business rule that determines the action to take according to the compensation paern.

Most orchestration process steps don't include a compensation paern, and they use Update, by default. In this
example, Order Management compensates some steps.

1143
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

Steps That Order Management Description


Compensates

Schedule Cancels the Schedule step, then creates a new instance of this step. Order Promising
  determines availability. Order Management replans fulllment, then assigns a revised date to
each orchestration process step.
 

Create Reservation
  Assume the orchestration process in this example includes a paern for the Create
Reservation step.

◦ If Demand Class Code isn't Gold, then cancel the Create Reservation step, then create
a new instance of this step.

This rule instructs Order Management to release supply and create a new reservation for
all customers except Gold customers. Order Management also updates Create Reservation
according to the new dates, and updates the reserved quantity.

Create Shipment Request Updates the Create Shipment Request step with new dates and new item.
   

The compensating services run, and then nish. These services use FIFO (rst in, rst out) sequence to
compensate the sales order, according to the orchestration process sequence, by default. If Order Management
must cancel the entire sales order, then it uses LIFO (last in, rst out).

If the original orchestration process.


Can accommodate the change. Order Management uses the original orchestration process to continue
processing.
◦ Can't accommodate the change. Order Management cancels the original orchestration process, then
starts a new one that can accommodate the change.
3. Send Update. Compensation nishes. Processing for the orchestration process is now at the same step it was
on when Order Management received the change order.

Order Management sends an update message to your fulllment system to update the original message with
the changed order that includes the changed aributes. For example.

Values Description

Original Values Quantity is 1 and Arrival Date is August 15, 2018


   

Values after compensation sends Quantity is 2 and Arrival Date is August 18, 2018
an Update Inventory message for  
the change order that includes the
changed aributes.
 

Example of Processing Change


Assume you must set up Order Management to compensate change when the Order Entry Specialist changes quantity.

1144
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

You create the ShipOrderGenericProcess orchestration process. Here are the set ups you use.

Set Up Value

Change Mode Advanced


   

Order Aributes That Identify Change


  You include aributes.

• Ordered Quantity
• Demand Class Code
• Requested Ship Date

Cost of Change
  You specify a rule.

If the fulllment line status is.

• Reserved. The cost of change is 15.


• Shipped. The cost of change is 100.

A lower number indicates a lower cost.

You add steps.

Step Name Task Type

1 Schedule Schedule
     

2 Create Reservation Reservation


     

3 Create Shipment Request Shipment


     

4 Wait for Shipment Advice Shipment


     

5 Create Invoice Invoice


     

6 Wait for Invoice Invoice


     

Each step references a task type, and each task type references order aributes that Order Management uses to
determine whether to compensate the sales order. In this example, the Schedule step and the Shipment step each
reference a task type that references the Ordered Quantity aribute.

1145
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

For example, if the user increases Quantity on the sales order, then Order Management must schedule and ship more
supply.

• Assume the Order Entry Specialist submits a sales order for the AS54888 Desktop Computer with a quantity of
1.
• One day later, the Order Entry Specialist clicks Create Revision, changes Quantity to 2, then clicks Submit.

Order Management compensates the Schedule step and the Shipment step.

Guidelines for Managing Change That Occurs During Order Fulllment


Apply guidelines when you specify how to process change that occurs during order fulllment, including how to
compensate change.

1146
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

Import Change From Channel


Import change orders through various channels.

Note.

• A channel can include an order capture system, fulllment system, the Order Management work area, and so
on.
• Order Management cross-references, transforms, validates, and orchestrates the change in a way that's similar
to how it does this work for a new sales order. If rules that control how to process a change exist, then Order
Management applies them. You can use setup options to modify how Order Management does this processing.

1147
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

• Use the same Excel template that you use to import sales orders to import change orders. For details, see the
Import Orders into Order Management topic.
• Use the same web service that you use to create a sales order to import a change order. For details, see the Use
Web Services to Import Orders topic.
• Use only one channel to make changes. For example, use Create Order Revision to make changes, or use a web
service, or use le-based import. Don't use Create Order Revision and web services and le-based import. Using
dierent channels causes confusion when aempting to identify the source of the change.
• Some implementations price the order in a channel, then send it to Order Management.

◦ You can't change pricing that your channel uses to pricing that Oracle Pricing Administration uses.
◦ You can't change pricing that Oracle Pricing Administration uses to pricing that your channel uses.

• Order Management submits the change orders it receives through a web service to order fulllment. You can't
submit a change order through a web service and keep it in Draft status. Order Management only keeps a sales
order in Draft if an error occurs in the change order.
• Order Management doesn't update a sales order that's in Draft status.
• If you use Create Order Revision in the Order Management work area, and must revise the order again, then
use Create Order Revision again. Don't use a web service or le-based import to revise the order again.

Manage aribute values.

• If you change only one line in a sales order, then it isn't necessary to import all order lines.
• To cancel the order line, import a quantity of 0.
• Order Management sets the aribute value to empty for each order line aribute that the channel doesn't send.
For example, if the original order includes a value for Shipping Method, and if the channel sends a change
request that doesn't include Shipping Method, then Order Management sets Shipping Method to empty.
• If the channel revises only the order header, then Order Management revises the header but not the order lines.
• The channel must include a value for each required aribute.
• To cancel an order line, the channel must explicitly request the cancel. Order Management doesn't implicitly
cancel order lines when it revises a sales order.

1148
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

Set Up Orchestration Process


Use the Edit Orchestration Process Denition page in the Setup and Maintenance work area. For details, see the Set Up
Orchestration Processes topic.

You can administer features.

Feature Description

Cost of Change Rule A rule you set up on an orchestration process that species the business cost your
  organization will incur as a result of processing the change.

1149
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

Feature Description

Change Mode
  An option you set on an orchestration process. It determines when Order Management records
the state of the process. It compares these states during order compensation.

Choose a value.

• Advanced. Process change. Record the state of the orchestration process at each
orchestration process step.
• Simple. Process change only on the step that receives change. Record the state of the
orchestration process when it starts and at the step where the orchestration process
receives the change.
• None. Don't allow change. Don't record the state of the orchestration process.

Use Flexeld Aributes An option you set on an orchestration process or orchestration process step that species
  whether to examine exeld aributes when compensating the sales order.
 
If you enable this option, then Order Management examines exeld aributes that the item
references to determine whether it must compensate the orchestration process.
 
For example, assume you create exeld Color. Assume the user changes the value of Color
from Red to Blue. You can use Color during compensation to allow your fulllment system to
reschedule the order line so it ships a blue item instead of a red one.
 
Order Management disables Use Flexeld Aributes and Use Transactional Item Aributes
on each predened orchestration process, by default. You can't enable these options
on a predened orchestration process. However, you can create a copy of a predened
orchestration process, and then enable them on the copy.
 

Use Transactional Item Aributes An option you set on an orchestration process or orchestration process step that species
  whether to examine transactional aributes when compensating a sales order. For details, see
the Transactional Aributes topic.
 
Enable the Use Flexelds Aributes option and the Use Transactional Item Aributes option
only if you will send these aributes to your fulllment system during compensation.
 

Use Dynamic Aributes An option you set that species whether to examine dynamic aributes when compensating a
  sales order.
 

Compensation Paern A rule you set up on an orchestration process step that species the adjustment to make to the
  sales order when the order changes.
 
For example, if Order Management receives a change order that species to ship an item from
a dierent warehouse during the Create Shipment step, then it runs the Cancel service and the
Create service again.
 
If you don't specify a compensation paern, then Order Management uses the predened
compensation paern, by default. A predened paern uses Update, Cancel, or Create.
 

Task Type
  An aribute you set on an orchestration process step. The task type that you select determines
the aributes that Order Management uses when it determines whether it must compensate
the sales order for this step.

1150
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

Feature Description

Order Management comes predened to use a set of aributes for each predened task type.
You can't modify the predened set up, but you can add more aributes. Order Management
doesn't add these aributes to a new task type you add, and it doesn't evaluate this task until
you add these aributes. To add them, you must click Add All.

Reserve Supply

If you reserve or schedule an order line according to future supply, then consider whether your orchestration process
needs the reserve or schedule step. For example, the reservation step examines supply that's currently available, and
then reserves it to make sure your fulllment system can fulll the item. If you don't need to reserve supply, then don't
include the reservation step. If you do need to reserve, then consider making the reservation step a manual step, for
example, so the user must click a buon, such as Reserve.

You can also add a pause step before the reserve or schedule step. The pause task can pause the orchestration process
until the shipment is almost ready to ship, such as 12 hours before scheduled shipment. When the reservation step runs,
it will provide a more accurate picture of supply that's available because its closer to the ship date. Waiting to reserve
supply in this way can also reduce the cost of holding inventory until its time to ship.

Set Up Rule for Cost of Change

1151
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

Note.

• Set up a rule that measures the cost of change. If its too high, reject the change.
• In the header area of the orchestration process, next to Cost of Change Rule, click Click for Rule.
• Use Advanced Mode.
• Use the Assign action.
• Assign a numeric value to Header.mRuleDecision.costOfChange. For example.

Header.mRuleDecision.costOfChange = 10

Set Up Compensation

1152
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

Note.
• Use a compensation rule only to compensate change. If you must also set values for other aributes, then use a
posransformation rule.
• In the steps area of the orchestration process, in the step you must compensate, in column Compensation
Paern, click Click for Rule.
• Use Advanced Mode.
• In the IF statement.

◦ Use a change function, such as aributeChanged or Changed.


◦ Specify the aribute that changed. For example, if the user changed the Item aribute, then use
INVENTORYITEMID.

1153
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

• For example.

Fline.attributeChanged(DooSeededOrchestrationRules.IFLine. INVENTORYITEMID)is true

For a list of aributes you can specify, see topic Reference for Entities and Aributes You Can Use When
Integrating Order Management.
• In the THEN statement.

◦ Use the Assign action.


◦ For example.

header.mRuleDecision.compensationPattern = "CANCEL_CREATE"

◦ Assign a value.

Value Description

UPDATE Update the current fulllment request with the latest aribute value.
   
Each orchestration process comes predened to use UPDATE, by default. If you don't
specify a compensation paern, and if the orchestration process detects a change, then
it will send an update request to the fulllment system.
 

UPDATE_CREATE Update the current fulllment request with the latest aribute value, and also create a
  new request.
 

CANCEL_CREATE Cancel the current fulllment request, and then create a new request that includes the
  latest aribute value.
 

CANCEL_UPDATE Cancel the current fulllment request, and then update another fulllment request with
  the latest aribute value.
 

CANCEL_ UPDATE_CREATE Cancel the current fulllment request, update another fulllment request with the latest
  aribute value, and then create a new request that includes the latest aribute value.
 

NOOP NOOP (No Operation). Don't do any compensation.


   

These values determine what request the orchestration process sends to the fulllment system.

Constrain Change
Use a processing constraint.

• Disallow change that you know your fulllment system can't accommodate, such as changing the supplier for
an item that requires signicant lead time for the supplier to produce.
• Make sure a channel doesn't make a change that your fulllment system can't accommodate.

1154
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

• Make sure the user includes required aributes. For example, assume you add your own numeric aribute x for
invoicing, and invoicing requires aribute x to calculate the invoice. You can use a constraint to make sure the
user adds a value for x, and that the value is numeric.
• If a constraint doesn't meet your business requirement, then set up an order management extension. Use an
extension to validate, then display a message or warning.

Note.

• Set the Constraint Entity aribute to Order Fulllment Line.


• If the Enabled aribute is active on a predened constraint, then you can disable it. Disable a predened
constraint only after you make sure removing the constraint won't negatively aect your implementation.

1155
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

• Use the same value in the Group Number aribute to create an AND condition across constraints. For example,
if you set Group Number to 10 for condition x, and Group Number to 10 for condition y, and if conditions x and
y both evaluate to True, then Order Management applies the constraint.
• Use dierent values in Group Number to create an OR condition. For example, if you set Group Number to 10
for condition x, and Group Number to 20 for condition y, and if condition x or y evaluates to True, then Order
Management applies the constraint.
• Use the Applicable Roles tab to specify the user roles that can or can't edit an aribute according to the
constraint.
• Use the Manage Processing Constraints page in the Setup and Maintenance work area.
• For details, see the Manage Processing Constraints topic.

For example.

1156
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

Here's the logic that this constraint implements.


Prevent user from updating attribute Supplier on fulfillment line.

You set values.

Aribute Value

Constraint Entity Order Fulllment Line


   

Constrained Operation Update

1157
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

Aribute Value

   

Aribute Name Supplier


   

Enabled Contains a check mark


   

Manage Aributes That Identify Change

1158
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

This example implements a condition.


If the user changes Quantity on fulfillment line, then perform compensation during shipping.

Note.
• The user creates a revision, clicks Submit, and then the orchestration process starts.
• The orchestration process reaches a step that uses the Shipment task type, then examines the Manage Order
Aributes That Identify Change page in the Setup and Maintenance work area to determine whether to process
the change.
• For details, see the Manage Order Aributes That Identify Change topic.

For example.

1159
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

Note.

• Set the Task Type aribute to a value, such as Schedule, Reservation, Shipment, and so on, to determine when
to examine the change.
• Specify an entity to determine where the aribute resides.

◦ Order Fulllment Line


◦ Order Line
◦ Order Header

• Specify the aribute to examine, such as Ordered Quantity.


• Use the Add action to add an aribute.
• You can add a predened aribute, such as Ordered Quantity, but you can't disable it.

Other Guidelines
Order Management doesn't run pretransformation rules when you use Create Order Revision. If you must set the
default aribute value on a new order line that the user adds when using Create Order Revision, then create a
posransformation rule that sets the default value.

Your users can use the fulllment view to change a large number of fulllment lines. If you set up a number of business
rules that must run for each change, and if the user submits a large set of changes, then you might encounter degraded
performance. You must test how many fulllment line updates your environment can accommodate, then limit updates
from the fulllment view according to the optimal.

Manage Order Aributes That Identify Change


Set up Order Management to examine an order aribute that identies change in a change order, then compensate the
sales order.
Assume you must create an orchestration process step that uses the Ordered Quantity aribute to identify change.

This topic includes example values. You might use dierent values, depending on your business requirements.

Manage order aributes that identify change.

1. In the Setup and Maintenance work area, go to the task.

◦ Oering: Order Management


◦ Functional Area: Orders
◦ Task: Manage Order Aributes That Identify Change
2. On the Manage Order Aributes That Identify Change page, in the Task Type list, click a task type that looks
like it might meet the needs that your orchestration process step requires.

Order Management comes predened with a number of task types. To reduce maintenance, use a predened
task type before you create a new one.
3. Click the row that includes Shipment, then click Actions > Edit.
4. On the Edit Order Aributes That Identify Change page, in the Orchestration Components list, click a
component that you think might contain the aribute that Order Management must use to identify change.

For this example, click Order Line.


5. Examine the Aributes list.

1160
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

The orchestration process step examines each aribute in this list to determine whether to compensate the
sales order when it receives a change order. If the list includes the aributes that your step requires to identify
change, then set the Task Type aribute on the step to this task type, then exit this procedure.

For this example, the list does include Ordered Quantity, so set Task Type to Shipment.

If the Predened column in the Aributes list includes a check mark, then you can't remove this aribute.
6. If the Aributes list doesn't include the aributes your step needs to identify change, then do these steps.

◦ Click Actions > Select and Add.


◦ In the Change Aributes dialog, click an aribute, such as Scheduled Ship Date.
◦ Click Apply > OK, then exit this procedure.

Here are some set ups you can do on the Manage Order Aributes That Identify Change page.

Set Up Description

Add an aribute to all tasks that the


Task Type list displays. Click Actions > Edit All.
 

Add new task type.


  Click Actions > Create.

On the Create Order Aributes That Identify Change page, add aributes, as necessary.

If you create a new task type, and if you don't use this page to add at least one aribute to the
task type, then Order Management won't examine any aributes when it identies change.

Measure Cost and Compensate


Measure the Cost of Change
Set up Order Management to measure the cost of change.
Cost of change is a numeric value that measures how much a change impacts an orchestration process. For example,
the monetary cost to your company, or the diculty that's associated with incorporating the change. You can create a
business rule that measures the cost of change for an orchestration process.

If the source system requests a determination for cost of change, then Order Management calculates the value, then
returns it to the source system so the customer service representative can choose whether to proceed with the change.
The source system can request the value before it submits the sales order. Order Management also calculates the cost
after it compensates the sales order.

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 Management uses a value of zero to calculate cost.

Assume you need a business rule that measures the cost of change your company will incur when a customer requests
a change. If fulllment line status is.

• Scheduled, then cost is low

1161
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

• Shipped, then cost is high

Here are the rules you will create.

• If fulllment line status is Scheduled, then cost of change is 5.


• If fulllment line status is Shipped, then cost of change is 50.

This example includes a simple business rule you can use with an orchestration process that includes only one line.
You use advanced rules to write a rule that includes more than one line. For details, see the Overview of Using Business
Rules With Order Management topic.

Summary of the Steps

1. Set up your source system.


2. Create If statement for rst rule.
3. Create Then statement for rst rule.
4. Create If statement for second rule.
5. Create Then statement for second rule.
6. Test your set up.
This topic includes example values. You might use dierent values, depending on your business requirements.

Set Up Your Source System


Order Management doesn't display the result when it calculates the cost of change. Instead, you must set up your
source system to get the result from Order Management, then display it so someone who uses the source system can
take the necessary action. To get this result, you can use the GetOrderDetails method of the Get Orchestration Order
web service. For details, see the Overview of Using Web Services with Order Management Cloud topic.

1162
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

Create If Statement for First Rule


Here's the rst rule.

where

Object Description

DooSeededOrchestrationRules Dictionary that contains rule sets, facts, functions, variables and so on for order orchestration.
   

DOOFLine Fact in DooSeededOrchestrationRules. It contains fulllment line aributes.

1163
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

Object Description

   
DOOFLine is an abbreviation for distributed order orchestration (DOO) fulllment line (FLine).
The phrase distributed order orchestration is an earlier name for Order Management Cloud.
 

statusCode Fulllment line aribute.


   
The entire value isn't visible in the screen capture. Here's the full value.
 
DooSeededOrchestrationRules. DOOFLine. statusCode
 

SCHEDULED One value that statusCode might contain.


   

Result Fact in DooSeededOrchestrationRules. You use it to store the results of the business rule
  you're dening.
 

resultObjKey Property of the Result fact.


   

esultObjKey:5 Sets the value of resultObjKey to 5.


   

Create If statement for rst rule.

1. In the Setup and Maintenance work area, go to the task.

◦ Oering: Order Management


◦ Functional Area: Orders
◦ Task: Manage Orchestration Process Denitions
2. On the Manage Orchestration Process Denitions page, locate the orchestration process where you must add
the cost of change rule, then open it for editing.
3. In the Orchestration Process area, next to Cost of Change Rule, click Click for Rule .
4. In the Cost of Change Rule dialog, click Add Rule > Expand > Show Advanced Seings, then set values.

Aribute Value

Name Cost of Change for Scheduled Lines


   

Description This rule measures the cost to change a sales order when the fulllment line status is
  Scheduled. It sets the cost of change to 5.
 

5. Click Left Value.


6. In the Condition Browser dialog, expand DooSeededOrchestrationRules > DOOFLine, then click StatusCode
> OK.
7. In the Right Value aribute, enter "SCHEDULED". You must include the double quotation marks.

1164
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

Create Then Statement for First Rule


1. In the Then area, click Add Action > Assert New.
2. Click Select a Target > DooSeededOrchestrationRules.Result.
3. Click Edit Properties.
4. In the Properties dialog, in the resultObjKey row, enter this value, then click OK.

Aribute Value

Value 5
   

5. Click Collapse.

1165
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

Create If Statement for Second Rule


Here's the second rule.

Create the If statement for the second rule.

1. Click Add Rule > Expand > Show Advanced Seings, then set values.

Aribute Value

Name Cost of Change for Shipped Lines


   

1166
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

Aribute Value

Description This rule measures the cost to change a sales order when fulllment line status is Shipped. It
  sets the cost of change to 50.
 

2. Click Left Value.


3. In the Condition Browser dialog, expand DooSeededOrchestrationRules > DOOFLine, then click StatusCode
> OK.
4. In the Right Value aribute, enter "SHIPPED". You must include the double quotation marks.

Create Then Statement for Second Rule


1. In the Then area, click Add Action > Assert New.
2. Click Select a Target > DooSeededOrchestrationRules.Result.
3. Click Edit Properties.
4. In the Properties dialog, in the resultObjKey row, in the Value column, enter 50, then click OK.
5. In the Cost of Change Rule dialog, click Save.
6. On the Edit Orchestration Process Denition page, click Save.

Test Your Set Up


1. Change a sales order that includes a fulllment line status that's Scheduled.
2. Wait for Order Management to process the change.
3. Make sure your source system displays a value of 5 for the cost of change.
4. Change a sales order that includes a fulllment line status that's Shipped.
5. Wait for Order Management to process the change.
6. Make sure your source system displays a value of 50 for the cost of change.

Related Topics
• Set Up Orchestration Processes
• Demo for Creating Business Rules

Compensate Sales Orders That Change


Create a compensation paern that makes an adjustment when a fulllment task changes a sales order.
A compensation paern is a rule you create on an orchestration process step. It species the adjustment to make when
an order changes. Undo, Redo, Update, Cancel, and None are each an example of a compensation paern.

For example, assume the compensation paern for a Create Shipment step is Redo, and that the step calls the Cancel
service and the Create service. If Order Management receives a change order that includes a new warehouse for the
step, then it runs Cancel and Create again.

Assume you need a compensation paern that pauses the orchestration process until compliance check nishes.

• If compliance details change, then pause the orchestration process until compliance is done.

1167
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

Here's the rule you will create.

where

Code Description

DooSeededOrchestrationRules Dictionary that contains a set of predened business rules for an orchestration process. You
  use it to store objects and their values.
 
DOO means distributed order orchestration, which is a term that Order Management used for
order orchestration in earlier releases.
 

1168
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

Code Description

DOOHeader Object in DooSeededOrchestrationRules. It contains aributes for the sales order header and
  their values.
 

headerEFF Extensible exeld on the order header. For this example, assume you dened an extensible
  exeld that stores details about the compliance check.
 
For details about exelds, see the Overview of Seing Up Extensible Flexelds in Order
Management topic.
 

DooSeededOrchestrationRules. Establishes FlexContexts in the dictionary.


FlexContexts  
 

FlexContext Object that stores the value for the extensible exeld.
   

ComplianceDetails Object that stores compliance details.


   

ComplianceInfo Object that stores compliance information.


   

mRuleDecision. CompensationPaern CompensationPaern is a property of object mRuleDecision. CompensationPaern stores the


  string UPDATE, which is the value that this rule uses to end the condition.
 

Here's a description of how the statement works.

Code Description

header is a Declare header as a temporary variable that stores the value from object DOOHeader of
DooSeededOrchestrationRules. dictionary DooSeededOrchestrationRules.
DOOHeader  
  Proceed to the next AND statement only after you declare header.
 

headerEFF is a Declare headerEFF as a temporary variable that stores the value from object FlexContext of
DooSeededOrchestrationRules. DooSeededOrchestrationRules.
FlexContext  
  Proceed to the next AND statement only after you declare headerEFF.
 

headerEFF isn't null Proceed to the next AND statement only if the extensible exeld on the sales order header
  contains a value.
 
This set up uses headerEFF to store the value of the extensible exeld that stores aribute
Compliance Details on the order header. If the value of Compliance Details is empty, then it
indicates compliance isn't required, compensation isn't required, and the orchestration process
continues to the next orchestration process step.
 

header. exContexts RL. contains Declare headerEFF into the rules language (RL) dictionary, and set the value of headerEFF to
headerEFF the value that exContexts contains.
   

1169
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

Code Description

This condition makes sure you correctly declare the variable into the dictionary.
 
Proceed to the next AND statement only if RL contains headerEFF.
 
Do this test on each of your variables to make sure the declaration is correct. If you don't do
the test, and if the declaration isn't correct, then the rule might fail in a subsequent step.
 

headerEFF. context isn't null Make sure a context is dened for the order header. Proceed to the next AND statement only if
  context contains a value.
 

headerEFF. context equals ignore Get the context and segments for Compliance Details for this variable.
case "ComplianceDetails"  
  Proceed to the next AND statement only if context contains the string ComplianceDetails.
Ignore case sensitivity when examining.
 
if context contains some other value, then it indicates that no other process requested a
compliance check.
 

headerEFF. Make sure aribute ComplianceInfo of the extensible exeld changed. You use
aributeChanged("ComplianceInfo") aributeChanged to determine whether the value for ComplianceInfo is dierent in this
is true revision.
   

This example includes a simple rule that processes only one line. Use an advanced rule to process more than one line.
For details, see the Overview of Using Business Rules With Order Management topic.

Summary of the Steps


1. Create If statement.
2. Create Then statement.
3. Release pause task.
This topic includes example values. You might use dierent values, depending on your business requirements.

Create If Statement
You will create a statement.
• If compliance details changed

Do it.
1. Create the rule.

◦ In the Setup and Maintenance work area, go to the task.


• Oering: Order Management
• Functional Area: Orders
• Task: Manage Orchestration Process Denitions
◦ On the Manage Orchestration Process Denitions page, locate the CallCustomerWhenLargeInvoice
orchestration process, then click Actions > Edit.
For details about how to create CallCustomerWhenLargeInvoice, see the Add Branches to Orchestration
Processes topic.

1170
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

◦ On the Edit Orchestration Process Denitions page, in the Process Details area, in the Step Denition list,
click Change Management.
◦ In the Ship Item row, in the Compensation Paern column, click Click for Rule.
◦ In the Compensation Paern dialog, click Add Rule > Expand, then set values.

Aribute Value

Name Determine Whether Compliance Changed


   

Description If compliance details changed, then pause the orchestration process until compliance is
  done.
 

Eective Date Always


   

Priority Medium
   

Active Contains a check mark.


   

Advanced Mode Contains a check mark.


   

Tree Mode Doesn't contain a check mark.


   

2. Declare variable header.

◦ In the If area, in the window to the left of Is A, enter header.


◦ Set the eld to the right of Is A to DooSeededOrchestrationRules.DOOHeader.
3. Declare variable headerEFF.

◦ Click Add Paern.


◦ In the window to the left of Is A, enter headerEFF.
◦ Set the eld to the right of Is A to DooSeededOrchestrationRules.DOOHeader.
4. Make sure headerEFF contains a value.

◦ Click Add Test.


◦ In the window to the left of Is, enter headerEFF.
◦ Change Is to Isn't.
◦ In the eld to the right of Isn't, click Right Value > null > OK.
5. Declare headerEFF into the rules language (RL) dictionary.

◦ Click the down arrow located to the right of Right Value, then click Simple Test.
◦ In the window to the left of Is, click Left Value, expand header, then click exContexts > OK.
◦ Change Is to RL.contains.

1171
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

◦ In the eld to the right of RL.contains, click Right Value > headerEFF > OK.
6. Make sure context contains a value.

◦ Click Simple Test.


◦ Near the window to the left of Is, click Left Value, expand headerEFF, then click context > OK.
◦ Change Is to Isn't.
◦ In the eld to the right of Isn't, click Right Value > null > OK.
7. Make sure context contains the string ComplianceDetails.

◦ Click Simple Test.


◦ Near the window to the left of Is, click Left Value, expand headerEFF, then click context > OK.
◦ Change Is to Equals Ignore Case.
◦ In the eld to the right of Equals Ignore Case, click Right Value, enter "ComplianceDetails", then click OK.

Make sure you include the double quotation ( " ) marks.


8. Make sure aribute ComplianceInfo of the extensible exeld changed.

◦ Click Simple Test.


◦ Near the window to the left of Is, click Left Value, expand headerEFF, and then click hasChanges.
◦ In the window in the Condition Browser, notice the value.

headerEFF.attributeChanged()

Insert "_ComplianceInfo" between the parentheses, then click OK. For example.

headerEFF.attributeChanged("_ComplianceInfo")

◦ In the window to the right of Is, enter true.

Create Then Statement


Create the statement that pauses the orchestration process until compliance is done.

1. In the Then area, click Add Action > Assign.


2. Click Select a Target, then click header.mRuleDecision.compensationPaern.
3. In the window to the right of the equal sign ( = ), enter "UPDATE".

You must include the double quotation marks.


4. Click Validate, make sure the Validation Log that displays doesn't contain any errors, then click Save.
5. On the Edit Orchestration Process Denition page, click Save.

Pause the Task According to Date


You add this rule in the Pause Rule column on the same step where you added the compensation paern.

Pause Task While Date Is Empty

1172
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

Order Management sets the compliance completion date when compliance check is done. If the date is empty, then it
indicates compliance check isn't done, and the rule doesn't release the pause task. For example.

• If CompleteCompliancedate is empty, then compliance check isn't done. Assign a business event to indicate we
must wait.

Here's the code that the rule uses.


If header is a DooSeededOrchestrationRules.DOOHeader
and if headerEFF is a DooSeededOrchestrationRules.FlexContext and
headerEFF isn't null and
header.flexContexts RL.contains headerEFF and
headerEFF.context isn't null and
headerEFF.context equals ignore case "ComplianceDetails" and
headerEFF.getFlexAttributeDateValue("_CompleteCompliancedate") is null

1173
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

then
assign header.sacResult.sacType = DooSeededOrchestrationRules.SacResult.SAC_TYPE_EVENT
assign header.sacResult.eventName = "Awaiting Compliance Check Completion"
assign header.sacResult.reevaluateFlag = "N"

Pause for Future Date

You can create a rule that pauses until compliance completion date is later than order header date. For example.

• If CompleteCompliancedate occurs after order header date, then compliance check is done. Prepare to release
the pause task.

To prepare to release the pause task, you set waitDateTime to the compliance date. For details about waitDateTime and
sacResults, see the Guidelines for Pausing Orchestration Processes topic.

1174
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

Here's the code that the rule uses.


If header is a DooSeededOrchestrationRules.DOOHeader
and if headerEFF is a DooSeededOrchestrationRules.FlexContext and
headerEFF isn't null and
header.flexContexts RL.contains headerEFF and
headerEFF.context isn't null and
headerEFF.context equals ignore case "ComplianceDetails" and
headerEFF.getFlexAttributeDateValue("_CompleteCompliancedate") isn't null
headerEFF.getFlexAttributeDateValue("_CompleteCompliancedate") more than header.current_date

then
assign header.sacResult.sacType = DooSeededOrchestrationRules.SacResult.SAC_TYPE_TIMER
assign header.sacResult.waitDateTime = headerEFF.getFlexAttributeDateValue("_CompleteCompliancedate")

Release Pause Task


Create a rule that releases the pause task. It doesn't reference the extensible exeld you set up earlier in this topic.
Instead, it uses rules.

• Pause Rule for Null Date


• Pause Rule for Future Date

It uses the values that these rules set for SacResult to determine when to release the pause task.

1175
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

Here's the rule that releases the pause task.

Here's the code that this rule uses.


If header is a DooSeededOrchestrationRules.DOOHeader

then
assign new DooSeededOrchestrationRules.sacResult SAC = new DooSeededOrchestrationRules.sacResult()
assign header.sacResult = SAC
assign header.sacResult.sacType = DooSeededOrchestrationRules.SacResult.SAC_TYPE_IMMEDIATE
assign header.sacResult.reevaluateFlag = "N"

You add this rule in the Pause Rule column on the same step where you added the compensation paern.

Related Topics
• Demo for Creating Business Rules

1176
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

Another Example of Compensating Sales Orders That Change


Set up a compensation paern that allows time to reschedule an orchestration process when a customer requests to
change the ship date.
Here's the rule you will create.

• If the requested ship date is less than or equal to the current date plus three days, then cancel and redo the
Ship Product step.

Here's where you create the rule.

Here's the code that the rule uses.

1177
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

If
DooSeededOrchestrationRules.DOOFLine.requestShipDate same or less than CurrentDate.date.timeInMillis
+3*24*60*60*1000

Then
assert new DooSeededOrchestrationRules.Result (resultObj."CANCEL_CREATE")

where

Code Description

DooSeededOrchestrationRules Dictionary you use to store objects and their values.


   
DOO means distributed order orchestration, which is term that Order Management used for
order orchestration in earlier releases.
 

DOOFLine Object in DooSeededOrchestrationRules. It contains fulllment line aributes and their values.
   

requestShipDate Fulllment line aribute in DOOFLine.


   

time Property of the toLocateString function. This function references the requestShipDate
  aribute.
 

CurrentDate. date. timeInMillis Equation that species to use the date that occurs three days after the current date.
+3*24*60*60*1000  
 

Result Object in DooSeededOrchestrationRules that you use to store the result of the If statement.
   

resultObj Property of the Result object.


   
It stores CANCEL_CREATE, which is the value that this rule uses to end the condition.
 

Summary of the Steps

1. Create If statement.
2. Create Then statement.
This topic includes example values. You might use dierent values, depending on your business requirements.

Create If Statement
You will create a statement.

• If the requested ship date is less than or equal to the current date plus three days

Do it.

1. In the Setup and Maintenance work area, go to the task.

◦ Oering: Order Management


◦ Functional Area: Orders

1178
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

◦ Task: Manage Orchestration Process Denitions


2. On the Manage Orchestration Process Denitions page, locate the CallCustomerWhenLargeInvoice
orchestration process, then click Actions > Edit.

For details about how to create CallCustomerWhenLargeInvoice, see the Add Branches to Orchestration
Processes topic.
3. On the Edit Orchestration Process Denitions page, in the Process Details area, in the Step Denition list, click
Change Management.
4. In the Ship Item row, in the Compensation Paern column, click Click for Rule.
5. In the Compensation Paern dialog, click Add Rule > Expand, then set the value.

Aribute Value

Name Rule to Compensate When Ship Date Changes


   

6. In the If area, click Left Value, expand DOOSeededOrchestrationRules > DOOFline > requestShipDate, then
click time > OK.
7. In the Is list, click Is > Same or Less Than.
8. Click Right Value.
9. In the Condition Browser, expand CurrentDate > Date > Time, then click timeInMillis.

Don't click OK.


10. Near the top of the Condition Browser, in the window, after CurrentDate.date.timeInMillis, add
+3*24*60*60*1000 .

Make sure the window now contains the value. . .

CurrentDate.date.timeInMillis+3*24*60*60*1000

The time function for most business rules work in milliseconds, so you must convert time to milliseconds. The
calculation 3*24*60*60*1000 calculates the total number of milliseconds that three days contains, where.

◦ 3 is the number of days.


◦ 24 is the number of hours in one day.
◦ 60 is the number of minutes in one hour.
◦ 60 is the number of seconds in one minute.
◦ 1000 is the number of milliseconds in one second.
11. Click OK.

Create Then Statement


Create the statement that cancels, then restarts the Ship Product step so Order Management can reschedule the
shipment.

1. In the Then area, click Add Action > Assert New.


2. Click Select a Target, then click DooSeededOrchestrationRules.Result.
3. Click Edit Properties.
4. In the Properties dialog, in the ResultObj row, enter the value.

1179
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

Aribute Value

Value "CANCEL_ CREATE"


   
You must include the double quotation marks (").
 

5. Click OK.
6. Click Validate, make sure the Validation Log that displays doesn't contain any errors, then click Save.
7. On the Edit Orchestration Process Denition page, click Save.

Related Topics
• Demo for Creating Business Rules

Compensate Sales Orders That Are Awaiting Shipping


The compensation paern for the Shipping task uses Cancel and Create to substitute an item during shipping because
Oracle Fusion Shipping supports only cancel and create. You can modify your compensation rule to support shipping.
If you don't use Oracle Fusion Shipping, and if your shipping system.
• Supports Update. You don't need to modify anything.
• Doesn't support Update. You must modify the compensation rule so it uses Cancel and Create.

Note.
• If you need dierent behavior, then you can write a compensation rule according to an item change. Note that
business rules call the Update service for an item change.
• Change management can only identify change to an extensible exeld. However, you can write a
compensation rule that examines the extensible exeld segment so it can determine whether to do
compensation.

Here's the rule you will create.


• If the sales order is at the await shipping step, and if the Order Entry Specialist substituted the item, then
cancel the existing request to ship, create a new request, schedule, reserve, and then send the new request to
shipping.

Each shipping step and reservation step on a predened orchestration process that integrates with shipping already use
this logic. You add this logic only if you set up your own orchestration process.

Compensate sales orders that are awaiting shipping.


1. Use the Manage Orchestration Process Denitions page to open and edit the orchestration process you must
modify.
2. In the row that ships the item, in the Compensation Paern column, click Click for Rule, then add the rule.
Here's the code to use.
Root: DooSeededOrchestrationRules.DOOHeader
If
header is a DooSeededOrchestrationRules.DOOHeader
and there is a case where
fline is a header/childFlines
and fline.attributeChanged(DooSeededOrchestrationRules.IFLine.INVENTORYITEMID) is true
then
assign header.mRuleDecision.compensationPattern = "CANCEL_CREATE"

1180
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

Here's what it looks like.

Notify Systems
Overview of Sending Notications from Order Management to Other Systems
Use a business event to send a notication to a system that resides outside of Order Management Cloud when a change
occurs, such as when details in a sales order or fulllment line change.
You can send the notication to an upstream system, such as an order capture system,, or to a downstream system,
such as a fulllment system or billing system.

1181
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

A business event is something that occurs that's signicant enough that requires in Order Management to take an
action. Here are some examples.

• A change to an order aribute occurs.


• Order Management applies a hold.
• A jeopardy priority changes.
• A fulllment line splits.
• The status on an order header changes.
• A fulllment line closes.
• A fulllment line achieves a status.
• Compensation for an orchestration process nishes successfully or not successfully.

1182
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

Here's how it works.

Note.

1. Order Management monitors conditions that occur during order fulllment according to the trigger points you
specify.

For example, if you enable the Notify External System option for the Shipped status value on a status rule set,
then Order Management communicates the business event each time it sets a fulllment line status to Shipped,
and it sends the business event to the endpoint URL of the connector you set up for the Fulllment Line Status
Update business event. For details about this option, see the Add Status Conditions to Fulllment Lines topic.
2. You use the Manage Business Event Trigger Points page in the Setup and Maintenance work area to specify
the trigger point. If Order Management determines a trigger point occurred, then it uses the Connector Name

1183
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

aribute on the Manage Business Event Trigger Points page to identify the connector to use to communicate to
the external system.
3. The connector communicates with the external system. You use the connector to specify the URL that locate
the external system and the security credentials that your external system requires to communicate data. For
example, the fulllment line status is Shipped, so you notify your invoicing system that the order is ready to
invoice.
4. As an option, you can use the Notify Frequency parameter to specify how frequently Order Management sends
notications. For details, see the Manage Order Management Parameters topic.
You can also use a web service to communicate details about the event.

Manage Business Event Trigger Points


A business event trigger point is the condition that causes a business event to occur.
• You must associate a connector with the business event you specify. For details, see the Send Notications
from Order Management Cloud to External Systems topic.
• The business events that this page displays aren't active, by default, except for business events that monitor
closing a fulllment line.
• A modication you make on this page takes eect immediately.
• The seings you make aect only one instance of Order Management.
• You can't add or delete the business events that this page displays.
• Set up only the business event trigger points you need. Each trigger point might aect system performance.

Use Predened Trigger Points

Predened Business Event Description

Change Order Compensation Send a notication when Order Management nishes processing a change order. If the change
Complete order results in an error, then this business event reports the error.
   

Fulllment Line Status Update


  Send a notication when Order Management changes the status value of a fulllment line.

You can specify the status values that trigger notication.

1. Navigate to the Manage Orchestration Process Denitions page.


2. On the Edit Status Rule Set page, add a check mark to the Notify External System option
next to each status value you want to trigger notication.

Fulllment Line Closed Send a notication when Order Management closes a fulllment line. Some applications, such
  as Cost Management, can use these details to do downstream processing on the fulllment
line.
 

Hold
  Send a notication when a user applies a hold, or when the order capture system or fulllment
system applies a hold on an entity.

• Order
• Order line
• Fulllment line

1184
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

Predened Business Event Description

Note.

• If a hold doesn't go into eect immediately, for example, if the hold applies to a future
task, then Order Management communicates the business event when the hold goes
into eect, not when the request to add the hold occurs.
• If change management releases or applies a hold, then Order Management doesn't
communicate the business event.

Jeopardy Send a notication when process planning changes a jeopardy priority value, such as High,
  Medium, or Low. You can specify the value to notify.
 

Order Aribute Update


  Send a notication when Order Management changes a fulllment line aribute during order
fulllment. You can choose each aribute from the set of aributes that the task references.

• Each aribute that the Order Update - Aributes That Trigger Events area displays
can trigger a business event. These aributes are predened. You can also set up an
extensible exeld that modies these aributes.
If you set up an extensible exeld, then Order Management displays it in the Select and
Add - Aributes That Trigger Events dialog. If you select one or more segments, and
then click OK or Apply, then Order Management displays the segments that you select
in the Order Aribute Update - Aributes That Trigger Events area.
• If Order Management updates more than one aribute of the Order Aribute Update
business event at the same time, then it sends only one notication. This notication
includes details about the aributes it updated.
• The status values in the Order Header Status Update - Status Values That Trigger
Events area start the Order Header Status Update business event. These values are
predened. You can't add status values in this area.

Order Header Status Update Send a notication when Order Management cancels, partially closes, or closes a sales order.
  You can specify the status value to notify.
 

Split Send a notication when a partial shipment occurs or when an integrated system splits a
  fulllment line.
 

Related Topics
• Deploy Extensible Flexelds

Send Notications from Order Management to Other Systems


Set up Order Management to send a notication to a system that resides outside of Order Management.
Summary of the Steps
1. Add the connector.
2. Manage business event trigger points.
3. Set the notication frequency.
This topic includes example values. You might use dierent values, depending on your business requirements.

For background details about how to do the set up, see these topics.
• Guidelines for Integrating Order Management

1185
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

• Overview of Using Integration Cloud Service with Order Management

Add the Connector


Add the connector that Order Management uses to communicate with your external system..
1. In the Setup and Maintenance work area, go to the task.
◦ Oering: Order Management
◦ Functional Area: Orders
◦ Task: Manage External Interface Web Service Details
2. On the Manage Connector Details page, click Actions > Add Row, then set values.

Aribute Value

Target System Select the external system that must receive the notication. This system subscribes to the
  business event.
 

Connector Name Enter text that describes the purpose of the connector. For example, to indicate that you use
  this connector to send notications to a legacy system, enter LEG_ Notication.
 

Connector URL Specify an endpoint URL. The URL is the address of the web service you deploy on the
  external system. Order Management will call this web service, and the web service must
accept the event payload that Order Management sends.
 

User Name Enter the user name that the external system requires.
   

Password Enter the password that the external system requires.


   

Manage Business Event Trigger Points


Manage the business event trigger points that determine when to communicate business events to your external
system.
1. In the Setup and Maintenance work area, go to the task.
◦ Oering: Order Management
◦ Functional Area: Orders
◦ Task: Manage Business Event Trigger Points
2. On the Manage Business Event Trigger Points page, choose a trigger point.
At run time, if the sales order reaches the trigger point you specify, then Order Management calls the web
service you choose in the Connector URL aribute. The web service then sends details of the business event to
the external system. For example, to send a notication when a fulllment line closes, choose the Fulllment
Line Closed trigger point.
3. Click Actions > Add Row.
Some trigger points include the Associated Connectors tab in the details area. If this tab displays, then click it to
add the connector.

1186
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

4. Set values.

Aribute Value

Connector Name Select the connector you added earlier in this topic.
   

Override Default Visibility


  Choose one.

◦ Contains a check mark. Send a notication about each sales order even if the
external system that receives the notication doesn't have any knowledge about the
sales order.
◦ Doesn't contain a check mark. If the external system doesn't have any knowledge
about the sales order, then don't send the notication about the sales order.

Here's an example.

◦ Assume your implementation includes Source System 1 and Source System 2, and
that each of these systems can send a source order to Order Management.
◦ Assume Source System 2 has no knowledge of source orders that originate in Source
System 1, and that you don't want to notify Source System 2 when an event occurs
that's associated with a source order that originates in Source System 1.
◦ If Override Default Visibility doesn't contain a check mark, then Order Management
won't call the connector for Source System 2, and Source System 2 won't receive the
notication.

5. Optional. Repeat step 3 and step 4.

You can associate the same connector with more than one business event, as necessary.
6. Optional. Repeat step 2 through 5 for each trigger point you must administer.
7. Click Save and Close.

Set the Notication Frequency


Use the Notify Frequency parameter to specify how frequently Order Management sends notications. For details, see
the Manage Order Management Parameters topic.

Related Topics
• Manage Order Management Parameters
• Guidelines for Integrating Order Management
• Overview of Using Integration Cloud Service with Order Management

Return Orders

1187
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

Integrate Return Orders


Use a web service or import template to integrate your source system so it supports return orders.

Include aributes in your web service payload.

Aribute Description

UnreferencedReturnFlag
  Specify whether the payload references the original return.

• Y. The payload doesn't reference the original return.


• N. The payload does reference the original return.

Covered aributes, such as Specify covered item details.


CoveredProductIdentier  
 

CancellationEectiveDate Date that reverse billing goes into eect.


   

1188
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

Use services to integrate Order Management with another system in your deployment.
• GetOrderDetails
• OrderInformationService
• OrderFulllmentResponseService

For details, see the Overview of Using Integration Cloud Service with Order Management topic.

Guidelines
Use the Order Import Template

Use the DOO_ORDER_DOC_REFERENCES_INT worksheet in the order import template to identify the original order and
the item you're returning. For details, see the Overview of Importing Orders into Order Management topic.

Prevent Billing System from Rejecting Accounting and Invoicing Rule

If you use an accounting and invoicing rule when you create a sales order, and if you must create a return for an order
that references return lines, then do these steps.
1. Disable the predened DOO_RMA_BILLING_ATTR_CHANGED constraint.
It veries the accounting and invoicing rules between the referenced return line and the original order line. You
don't need it.
2. Write an order management extension that nullies the accounting and invoicing rule for referenced return
lines.

◦ Use the On Start of Submission Request event.


◦ Make sure your extension runs only on return lines that Order Management hasn't yet sent to billing, and
on lines that aren't closed or canceled.
3. If you already submied the return and you don't want to revise it, then remove the accounting and invoicing
rule in your billing system.

◦ Remove the rule only after Order Management sends the line to your billing system.
◦ If you use Oracle Fusion Receivables, then use Manage AutoInvoice Lines to remove the values.

Specify the Return-to Location

If you set the Line Type aribute on a return line to Return for Credit and Return the Item, and if the item is shippable,
then you must provide the return-to location in the Return Location aribute on the order line. If you create your own
return type and use it on the return line, and if you must physically return the item, then its recommended that you
create an order management extension or processing constraint that makes sure you provide a value in the Return
Location aribute. Order Management uses the Warehouse as the return-to location.

Example Payload That References the Original Return


Here's part of an example payload that references the original return. Use the Create Order Operation of web service
Order Import Service. For brevity, this example includes only the aributes that are relevant for a return. Its an
incomplete payload. To get the complete payload, see the return_order_with_reference.xml le in the Example Web
Service Payloads That Integrate Order Management topic.
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns1:createOrders xmlns:ns1="http://xmlns.oracle.com/apps/scm/fom/importOrders/orderImportService/types/">
<ns1:request xmlns:ns2="http://xmlns.oracle.com/apps/scm/fom/importOrders/orderImportService/">
<ns2:BatchName/>

1189
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

<ns2:Order>
<ns2:SourceTransactionIdentifier>AP_RETURN_ORDER_01</ns2:SourceTransactionIdentifier>
<ns2:SourceTransactionSystem>GPR</ns2:SourceTransactionSystem>
<ns2:SourceTransactionNumber>AP_RETURN_ORDER_01</ns2:SourceTransactionNumber>
<ns2:TransactionOn>2019-1-20T06:08:52</ns2:TransactionOn>
<ns2:SourceTransactionLineIdentifier>101</ns2:SourceTransactionLineIdentifier>
<ns2:SourceTransactionScheduleIdentifier>101</ns2:SourceTransactionScheduleIdentifier>
<ns2:SourceTransactionLineNumber>1</ns2:SourceTransactionLineNumber>
<ns2:SourceTransactionScheduleNumber>1</ns2:SourceTransactionScheduleNumber>
<ns2:ProductNumber>AS54888</ns2:ProductNumber>
<!-- TransactionCategoryCode can use one of two values. Use ORDER for regular order line. Use RETURN
for return order line. If RETURN, you must provide the reference to original order and line under
LineDocumentReference-->
<ns2:TransactionCategoryCode>RETURN</ns2:TransactionCategoryCode>
<!-- ReturnReasonCode and Return Reason are optional for a return order line. -->
<ns2:ReturnReasonCode>ORA_QTY_CHANGE</ns2:ReturnReasonCode>
<ns2:OrigSysDocumentReference>ORIGSYS</ns2:OrigSysDocumentReference>
<ns2:OrigSysDocumentLineReference>ORIGSYSLINE</ns2:OrigSysDocumentLineReference>

<!Send the Line Document Reference only for a return line. This entity references the original order line
for the item you're returning.-->
<ns2:DocumentReference>
<ns2:DocumentReferenceType>ORIGINAL_SALES_ORDER</ns2:DocumentReferenceType>
<!-- SourceOrderId for original order -->
<ns2:DocumentIdentifier>ORIG_SALES_ORDER_01</ns2:DocumentIdentifier>
<!-- Source Order System for original order identifier-->
<ns2:DocumentAdditionalIdentifier>GPR</ns2:DocumentAdditionalIdentifier>
<!-- SourceOrderNumber of original order -->
<ns2:DocumentNumber>ORIG_SALES_ORDER_01</ns2:DocumentNumber>
<ns2:DocumentAdditionalNumber/>
<!-- SourceLineId for originl order -->
<ns2:DocumentLineIdentifier>101</ns2:DocumentLineIdentifier>
<ns2:DocumentAdditionalLineIdentifier/>
<!-- SourceLineNumber for original order -->
<ns2:DocumentLineNumber>1</ns2:DocumentLineNumber>
<ns2:DocumentAdditionalLineNumber/>
<ns2:DocumentAdditionalSubLineIdentifier/>
<ns2:DocumentSubLineNumber/>
<ns2:DocumentAdditionalSubLineNumber/>
</ns2:DocumentReference>
</ns2:Line>
</ns2:Order>
</ns1:request>
</ns1:createOrders>
</soap:Body>
</soap:Envelope>

Example Payload That Doesn't Reference the Original Return


Here's an example payload that doesn't reference the original return. It returns several items, such as InventoryItemId
300100125547361 with a quantity of 3.
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsa="http://www.w3.org/2005/08/
addressing" xmlns:typ="http://xmlns.your_server.com/apps/scm/doo/decomposition/orderDetailServices/model/
types/">
<env:Header>
<wsa:Action>http://xmlns.your_server.com/apps/scm/doo/decomposition/orderDetailServices/model//
OrderDetailService/getOrderDetailsResponse</wsa:Action>
<wsa:MessageID>urn:uuid:37df86c8-4b94-48c1-bdb2-30d9aa9b7136</wsa:MessageID>
</env:Header>
<env:Body>
<ns0:getOrderDetailsResponse xmlns:ns0="http://xmlns.your_server.com/apps/scm/doo/decomposition/
orderDetailServices/model/types/">
<ns2:result xsi:type="ns0:OrderHeaderResult" xmlns:ns2="http://xmlns.your_server.com/apps/scm/doo/
decomposition/orderDetailServices/model/types/" xmlns:ns1="http://xmlns.your_server.com/adf/svc/

1190
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

types/" xmlns:ns3="http://xmlns.your_server.com/apps/scm/doo/processOrder/model/" xmlns:tns="http://


xmlns.your_server.com/adf/svc/errors/" xmlns:ns0="http://xmlns.your_server.com/apps/scm/doo/decomposition/
orderDetailServices/model/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ns0:Value>
<ns0:HeaderId>300100138387475</ns0:HeaderId>
<ns0:OrderNumber>505902</ns0:OrderNumber>
<ns0:OwnerId xsi:nil="true"/>
<ns0:SourceOrderSystem>LEG</ns0:SourceOrderSystem>
<ns0:SourceOrderNumber>bdanthal_aug03_urr_001</ns0:SourceOrderNumber>
<ns0:SourceOrderId>bdanthal_aug03_urr_001</ns0:SourceOrderId>
<ns0:TargetSystem xsi:nil="true"/>
<ns0:SourceDocumentTypeCode xsi:nil="true"/>
<ns0:SourceDocumentTypeName xsi:nil="true"/>
<ns0:OrigSysDocumentRef xsi:nil="true"/>
<ns0:SourceOrgId>204</ns0:SourceOrgId>
<ns0:OrgId>204</ns0:OrgId>
<ns0:LegalEntityId>204</ns0:LegalEntityId>
<ns0:SoldToCustomerId xsi:nil="true"/>
<ns0:SoldToContactId xsi:nil="true"/>
<ns0:OrderedDate>2018-08-09T10:10:10.0Z</ns0:OrderedDate>
<ns0:CustomerPoNumber xsi:nil="true"/>
<ns0:OrderTypeCode xsi:nil="true"/>
<ns0:OrderType xsi:nil="true"/>
<ns0:TransactionalCurrencyCode>USD</ns0:TransactionalCurrencyCode>
<ns0:ConversionRate xsi:nil="true"/>
<ns0:ConversionTypeCode xsi:nil="true"/>
<ns0:ConversionDate xsi:nil="true"/>
<ns0:StatusCode>OPEN</ns0:StatusCode>
<ns0:PartialShipAllowedFlag>N</ns0:PartialShipAllowedFlag>
<ns0:OpenFlag>Y</ns0:OpenFlag>
<ns0:CanceledFlag>N</ns0:CanceledFlag>
<ns0:ChangeVersionNumber>1</ns0:ChangeVersionNumber>
<ns0:IsEditable>Y</ns0:IsEditable>
<ns0:OnHold>N</ns0:OnHold>
<ns0:CostOfChange>0</ns0:CostOfChange>
<ns0:SoldToCustomerIdCrossRef xsi:nil="true"/>
<ns0:SoldToContactIdCrossRef xsi:nil="true"/>
<ns0:ConversionTypeCodeCrossRef xsi:nil="true"/>
<ns0:TransactionalCurrencyCodeCrossRef>USD</ns0:TransactionalCurrencyCodeCrossRef>
<ns0:SoldToPartyId>1006</ns0:SoldToPartyId>
<ns0:ObjectVersionNumber>5</ns0:ObjectVersionNumber>
<ns0:SoldToPartyContactId>1560</ns0:SoldToPartyContactId>
<ns0:SoldToPartyIdCrossRef>1006</ns0:SoldToPartyIdCrossRef>
<ns0:SoldToPartyContactIdCrossRef>1560</ns0:SoldToPartyContactIdCrossRef>
<ns0:CancelReasonCode xsi:nil="true"/>
<ns0:Comments xsi:nil="true"/>
<ns0:RequestCancelDate xsi:nil="true"/>
<ns0:CancelReasonCodeCrossRef xsi:nil="true"/>
<ns0:SoldToPartyNumber>1006</ns0:SoldToPartyNumber>
<ns0:SoldToCustomerAccountNumber xsi:nil="true"/>
<ns0:AllowCurrencyOverrideFlag>Y</ns0:AllowCurrencyOverrideFlag>
<ns0:AppliedCurrencyCode>USD</ns0:AppliedCurrencyCode>
<ns0:CarrierId xsi:nil="true"/>
<ns0:DemandClassCode xsi:nil="true"/>
<ns0:EarliestAcceptArrivalDate xsi:nil="true"/>
<ns0:EarliestAcceptableShipDate xsi:nil="true"/>
<ns0:FobPointCode xsi:nil="true"/>
<ns0:FreezePriceFlag>N</ns0:FreezePriceFlag>
<ns0:FreezeShippingChargeFlag>Y</ns0:FreezeShippingChargeFlag>
<ns0:FreezeTaxFlag>Y</ns0:FreezeTaxFlag>
<ns0:FreightTermsCode xsi:nil="true"/>
<ns0:FulfillOrgId xsi:nil="true"/>
<ns0:LatestAcceptArrivalDate xsi:nil="true"/>
<ns0:LatestAcceptableShipDate xsi:nil="true"/>
<ns0:ModifiedFlag>N</ns0:ModifiedFlag>
<ns0:PackingInstructions xsi:nil="true"/>

1191
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

<ns0:PaymentTermId xsi:nil="true"/>
<ns0:PricedOn xsi:nil="true"/>
<ns0:PricingSegmentCode>CORPORATE_SEGMENT</ns0:PricingSegmentCode>
<ns0:PricingSegmentExplanation>The applicable pricing segment for this transaction is Pricing
Segment=Corporate Segment Precedence=1 because Revenue Potential=Medium Customer Size=Medium Cost To
Serve=Medium Customer Value=Medium Customer Rating=Medium</ns0:PricingSegmentExplanation>
<ns0:PricingStrategyExplanation>The applicable pricing strategy for this transaction is Pricing
Strategy=Corporate Pricing Strategy because Channel Method=null Transaction Type=null Pricing
Segment=Corporate Segment</ns0:PricingStrategyExplanation>
<ns0:PricingStrategyId>300100071623888</ns0:PricingStrategyId>
<ns0:ReferenceHeaderId xsi:nil="true"/>
<ns0:RequestArrivalDate xsi:nil="true"/>
<ns0:RequestShipDate xsi:nil="true"/>
<ns0:SegmentExplanationMsgName xsi:nil="true"/>
<ns0:ShipClassOfService xsi:nil="true"/>
<ns0:ShipModeOfTransport xsi:nil="true"/>
<ns0:ShipmentPriorityCode xsi:nil="true"/>
<ns0:ShippingInstructions xsi:nil="true"/>
<ns0:ShipsetFlag xsi:nil="true"/>
<ns0:SoldToPartyContactPointId xsi:nil="true"/>
<ns0:StrategyExplanationMsgName xsi:nil="true"/>
<ns0:SubmittedFlag>Y</ns0:SubmittedFlag>
<ns0:SubstituteAllowedFlag xsi:nil="true"/>
<ns0:SupplierId xsi:nil="true"/>
<ns0:SupplierSiteId xsi:nil="true"/>
<ns0:SoldToPartyName>Computer Service and Rentals</ns0:SoldToPartyName>
<ns0:SoldToPartyPersonFirstName xsi:nil="true"/>
<ns0:SoldToPartyPersonLastName xsi:nil="true"/>
<ns0:SoldToPartyPersonMiddleName xsi:nil="true"/>
<ns0:SoldToPartyPersonNameSuffix xsi:nil="true"/>
<ns0:SoldToPartyPersonTitle xsi:nil="true"/>
<ns0:SoldToPartyContactName>Piere Legrand</ns0:SoldToPartyContactName>
<ns0:SoldToPartyContactNumber>CONTACT-1560</ns0:SoldToPartyContactNumber>
<ns0:SoldToPartyContactFirstName>Piere</ns0:SoldToPartyContactFirstName>
<ns0:SoldToPartyContactLastName>Legrand</ns0:SoldToPartyContactLastName>
<ns0:SoldToPartyContactMiddleName xsi:nil="true"/>
<ns0:SoldToPartyContactNameSuffix xsi:nil="true"/>
<ns0:SoldToPartyContactTitle xsi:nil="true"/>
<ns0:TransactionalCurrencyName>US Dollar</ns0:TransactionalCurrencyName>
<ns0:LegalEntity xsi:nil="true"/>
<ns0:SoldToPartyType>ORGANIZATION</ns0:SoldToPartyType>
<ns0:SoldToPartyLastUpdateDate>2017-07-26T17:51:22.683Z</ns0:SoldToPartyLastUpdateDate>
<ns0:RequestingBusinessUnitIdentifier xsi:nil="true"/>
<ns0:RequestingBusinessUnitName xsi:nil="true"/>
<ns0:CancelReason xsi:nil="true"/>
<ns0:OrgName>Vision Operations</ns0:OrgName>
<ns0:PreCreditCheckedFlag>N</ns0:PreCreditCheckedFlag>
<ns0:SalesChannelCode xsi:nil="true"/>
<ns0:SalespersonIdentifier xsi:nil="true"/>
<ns0:Salesperson xsi:nil="true"/>
<ns0:SalesChannel xsi:nil="true"/>
<ns0:SubmittedBy>SCMOPERATIONS</ns0:SubmittedBy>
<ns0:SubmittedDate>2018-08-03T05:40:40.842Z</ns0:SubmittedDate>
<ns0:OrderLine>
<ns0:HeaderId>300100138387475</ns0:HeaderId>
<ns0:LineId>300100138387476</ns0:LineId>
<ns0:LineNumber>1</ns0:LineNumber>
<ns0:StatusCode>OPEN</ns0:StatusCode>
<ns0:OwnerId xsi:nil="true"/>
<ns0:SourceLineNumber>1</ns0:SourceLineNumber>
<ns0:SourceLineId>101</ns0:SourceLineId>
<ns0:SourceOrderId>bdanthal_aug03_urr_001</ns0:SourceOrderId>
<ns0:SourceScheduleId>101</ns0:SourceScheduleId>
<ns0:SourceOrderNumber>bdanthal_aug03_urr_001</ns0:SourceOrderNumber>
<ns0:SourceOrderSystem>LEG</ns0:SourceOrderSystem>
<ns0:SourceScheduleNumber>1</ns0:SourceScheduleNumber>

1192
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

<ns0:ItemTypeCode>4</ns0:ItemTypeCode>
<ns0:OrderedUom>Ea</ns0:OrderedUom>
<ns0:SourceOrgId>204</ns0:SourceOrgId>
<ns0:OrgId>204</ns0:OrgId>
<ns0:LineTypeCode>ORA_RETURN</ns0:LineTypeCode>
<ns0:OpenFlag>Y</ns0:OpenFlag>
<ns0:CanceledFlag>N</ns0:CanceledFlag>
<ns0:ParentLineId xsi:nil="true"/>
<ns0:OrigSysDocumentLineRef xsi:nil="true"/>
<ns0:RootParentLineId xsi:nil="true"/>
<ns0:ActualShipDate xsi:nil="true"/>
<ns0:CanceledQty xsi:nil="true"/>
<ns0:ExtendedAmount>0</ns0:ExtendedAmount>
<ns0:FulfilledQty xsi:nil="true"/>
<ns0:FulfillmentDate xsi:nil="true"/>
<ns0:InventoryItemId>300100125547361</ns0:InventoryItemId>
<ns0:OrderedQty>3</ns0:OrderedQty>
<ns0:OrigSysDocumentRef xsi:nil="true"/>
<ns0:RmaDeliveredQty xsi:nil="true"/>
<ns0:ScheduleShipDate>2015-07-15T00:00:00.0Z</ns0:ScheduleShipDate>
<ns0:ShippedQty xsi:nil="true"/>
<ns0:UnitListPrice>0</ns0:UnitListPrice>
<ns0:UnitSellingPrice>0</ns0:UnitSellingPrice>
<ns0:DeltaType xsi:nil="true"/>
<ns0:ReferenceLineId xsi:nil="true"/>
<ns0:OnHold>N</ns0:OnHold>
<ns0:CategoryCode>RETURN</ns0:CategoryCode>
<ns0:InventoryOrganizationId>204</ns0:InventoryOrganizationId>
<ns0:TransformFromLineId xsi:nil="true"/>
<ns0:DisplayLineNumber>1</ns0:DisplayLineNumber>
<ns0:OrderFulfillLine>
<ns0:FulfillLineId>300100138387477</ns0:FulfillLineId>
<ns0:ReferenceFlineId xsi:nil="true"/>
<ns0:FulfillLineNumber>1</ns0:FulfillLineNumber>
<ns0:OriginalFlineId xsi:nil="true"/>
<ns0:LineId>300100138387476</ns0:LineId>
<ns0:HeaderId>300100138387475</ns0:HeaderId>
<ns0:StatusCode>NOT_STARTED</ns0:StatusCode>
<ns0:OwnerId xsi:nil="true"/>
<ns0:SourceLineId>101</ns0:SourceLineId>
<ns0:SourceLineNumber>1</ns0:SourceLineNumber>
<ns0:SourceOrderId>bdanthal_aug03_urr_001</ns0:SourceOrderId>
<ns0:SourceOrderNumber>bdanthal_aug03_urr_001</ns0:SourceOrderNumber>
<ns0:SourceOrderSystem>LEG</ns0:SourceOrderSystem>
<ns0:SourceScheduleId>101</ns0:SourceScheduleId>
<ns0:SourceScheduleNumber>1</ns0:SourceScheduleNumber>
<ns0:InventoryItemId>300100125547361</ns0:InventoryItemId>
<ns0:ItemTypeCode>4</ns0:ItemTypeCode>
<ns0:ItemTypeName xsi:nil="true"/>
<ns0:FulfillOrgId>204</ns0:FulfillOrgId>
<ns0:OrderedQty>3</ns0:OrderedQty>
<ns0:OrderedUom>Ea</ns0:OrderedUom>
<ns0:RmaDeliveredQty xsi:nil="true"/>
<ns0:FulfilledQty xsi:nil="true"/>
<ns0:ShippedQty xsi:nil="true"/>
<ns0:ReservedQty xsi:nil="true"/>
<ns0:ReservableFlag>Y</ns0:ReservableFlag>
<ns0:ShippableFlag>N</ns0:ShippableFlag>
<ns0:InvoiceableItemFlag>Y</ns0:InvoiceableItemFlag>
<ns0:InvoiceEnabledFlag>Y</ns0:InvoiceEnabledFlag>
<ns0:BillToContactId>4820</ns0:BillToContactId>
<ns0:BillToCustomerId>1006</ns0:BillToCustomerId>
<ns0:BillToSiteUseId>1025</ns0:BillToSiteUseId>
<ns0:SourceOrgId>204</ns0:SourceOrgId>
<ns0:OrgId>204</ns0:OrgId>
<ns0:RequestArrivalDate xsi:nil="true"/>

1193
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

<ns0:RequestShipDate>2015-01-15T10:10:10.0Z</ns0:RequestShipDate>
<ns0:ScheduleArrivalDate>2015-07-15T00:00:00.0Z</ns0:ScheduleArrivalDate>
<ns0:ScheduleShipDate>2015-07-15T00:00:00.0Z</ns0:ScheduleShipDate>
<ns0:PromiseArrivalDate xsi:nil="true"/>
<ns0:PromiseShipDate xsi:nil="true"/>
<ns0:ActualShipDate xsi:nil="true"/>
<ns0:FulfillmentDate xsi:nil="true"/>
<ns0:CustomerItemId xsi:nil="true"/>
<ns0:CustomerPoLineNumber xsi:nil="true"/>
<ns0:CustomerPoNumber xsi:nil="true"/>
<ns0:DemandClassCode xsi:nil="true"/>
<ns0:ExtendedAmount>0</ns0:ExtendedAmount>
<ns0:FobPointCode xsi:nil="true"/>
<ns0:CarrierId xsi:nil="true"/>
<ns0:InvoicingRuleId xsi:nil="true"/>
<ns0:ExemptionCertificateNumber xsi:nil="true"/>
<ns0:AccountingRuleId xsi:nil="true"/>
<ns0:LineTypeCode>ORA_RETURN</ns0:LineTypeCode>
<ns0:CategoryCode>RETURN</ns0:CategoryCode>
<ns0:OpenFlag>Y</ns0:OpenFlag>
<ns0:CanceledFlag>N</ns0:CanceledFlag>
<ns0:OverrideScheduleDateFlag>N</ns0:OverrideScheduleDateFlag>
<ns0:OriginalInventoryItemId xsi:nil="true"/>
<ns0:GopReferenceId xsi:nil="true"/>
<ns0:PackingInstructions xsi:nil="true"/>
<ns0:ParentFulfillLineId xsi:nil="true"/>
<ns0:PaymentTermId xsi:nil="true"/>
<ns0:RequestType xsi:nil="true"/>
<ns0:ReturnReasonCode xsi:nil="true"/>
<ns0:OrigSysDocumentRef xsi:nil="true"/>
<ns0:OrigSysDocumentLineRef xsi:nil="true"/>
<ns0:RootParentFulfillLineId xsi:nil="true"/>
<ns0:ShipClassOfService xsi:nil="true"/>
<ns0:ShipModeOfTransport xsi:nil="true"/>
<ns0:ShipToContactId xsi:nil="true"/>
<ns0:ShipToCustomerId xsi:nil="true"/>
<ns0:ShipToSiteUseId xsi:nil="true"/>
<ns0:FulfillToleranceAbove xsi:nil="true"/>
<ns0:FulfillToleranceBelow xsi:nil="true"/>
<ns0:ShipmentPriorityCode xsi:nil="true"/>
<ns0:ShippingInstructions xsi:nil="true"/>
<ns0:ShipSetName xsi:nil="true"/>
<ns0:SplitFromFlineId xsi:nil="true"/>
<ns0:PartialShipAllowedFlag>N</ns0:PartialShipAllowedFlag>
<ns0:SubstituteAllowedFlag>N</ns0:SubstituteAllowedFlag>
<ns0:SubstituteReasonCode xsi:nil="true"/>
<ns0:TaxExemptFlag>S</ns0:TaxExemptFlag>
<ns0:TaxClassificationCode>765</ns0:TaxClassificationCode>
<ns0:TaxExemptionReasonCode xsi:nil="true"/>
<ns0:UnitListPrice>0</ns0:UnitListPrice>
<ns0:UnitSellingPrice>0</ns0:UnitSellingPrice>
<ns0:LatestAcceptableShipDate xsi:nil="true"/>
<ns0:LatestAcceptableArrivalDate xsi:nil="true"/>
<ns0:EarliestAcceptableShipDate xsi:nil="true"/>
<ns0:CanceledQty xsi:nil="true"/>
<ns0:ReturnableFlag>Y</ns0:ReturnableFlag>
<ns0:DeltaType xsi:nil="true"/>
<ns0:OnHold>N</ns0:OnHold>
<ns0:Description>Extended Warranty1</ns0:Description>
<ns0:LongDescription xsi:nil="true"/>
<ns0:InventoryItemId1>300100125547361</ns0:InventoryItemId1>
<ns0:OrganizationId>204</ns0:OrganizationId>
<ns0:ItemNumber>cov_open</ns0:ItemNumber>
<ns0:ActualCompletionDate xsi:nil="true"/>
<ns0:EstimateFulfillmentCost xsi:nil="true"/>
<ns0:EstimateMargin xsi:nil="true"/>

1194
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

<ns0:FulfillInstanceId xsi:nil="true"/>
<ns0:FulfillmentSplitRefId xsi:nil="true"/>
<ns0:InventoryOrganizationId>204</ns0:InventoryOrganizationId>
<ns0:RemnantFlag xsi:nil="true"/>
<ns0:ReservationId xsi:nil="true"/>
<ns0:StatusRulesetId xsi:nil="true"/>
<ns0:InventoryItemIdCrossRef>LEGCOV_OPEN</ns0:InventoryItemIdCrossRef>
<ns0:ShipToCustomerIdCrossRef xsi:nil="true"/>
<ns0:ShipToContactIdCrossRef xsi:nil="true"/>
<ns0:ShipToSiteUseIdCrossRef xsi:nil="true"/>
<ns0:BillToCustomerIdCrossRef>1006</ns0:BillToCustomerIdCrossRef>
<ns0:BillToContactIdCrossRef>4820</ns0:BillToContactIdCrossRef>
<ns0:BillToSiteUseIdCrossRef>1025</ns0:BillToSiteUseIdCrossRef>
<ns0:InvoicingRuleIdCrossRef xsi:nil="true"/>
<ns0:AccountingRuleIdCrossRef xsi:nil="true"/>
<ns0:OrderedUomCrossRef>Ea</ns0:OrderedUomCrossRef>
<ns0:ShipClassOfServiceCrossRef xsi:nil="true"/>
<ns0:ShipModeOfTransportCrossRef xsi:nil="true"/>
<ns0:ShipmentPriorityCodeCrossRef xsi:nil="true"/>
<ns0:TaxClassificationCodeCrossRef>VAT20</ns0:TaxClassificationCodeCrossRef>
<ns0:TaxExemptionReasonCodeCrossRef xsi:nil="true"/>
<ns0:DemandClassCodeCrossRef xsi:nil="true"/>
<ns0:FobPointCodeCrossRef xsi:nil="true"/>
<ns0:FreightTermsCodeCrossRef xsi:nil="true"/>
<ns0:ReturnReasonCodeCrossRef xsi:nil="true"/>
<ns0:CarrierIdCrossRef xsi:nil="true"/>
<ns0:PaymentTermIdCrossRef xsi:nil="true"/>
<ns0:FreightTermsCode xsi:nil="true"/>
<ns0:SchedulingReasonCode xsi:nil="true"/>
<ns0:ObjectVersionNumber>4</ns0:ObjectVersionNumber>
<ns0:SchedulingReason/>
<ns0:LookupCode/>
<ns0:LookupType/>
<ns0:SubInventory xsi:nil="true"/>
<ns0:ShipToPartyId>1006</ns0:ShipToPartyId>
<ns0:ShipToPartySiteId>1036</ns0:ShipToPartySiteId>
<ns0:ShipToPartyContactId xsi:nil="true"/>
<ns0:ShipToPartyIdCrossRef>1006</ns0:ShipToPartyIdCrossRef>
<ns0:ShipToPartySiteIdCrossRef>1036</ns0:ShipToPartySiteIdCrossRef>
<ns0:ShipToPartyContactIdCrossRef xsi:nil="true"/>
<ns0:CancelReasonCode xsi:nil="true"/>
<ns0:Comments xsi:nil="true"/>
<ns0:RequestCancelDate xsi:nil="true"/>
<ns0:CancelReasonCodeCrossRef xsi:nil="true"/>
<ns0:ShipToPartyNumber>1006</ns0:ShipToPartyNumber>
<ns0:ShipToPartySiteNumber>1036</ns0:ShipToPartySiteNumber>
<ns0:ShipToCustomerAccountNumber xsi:nil="true"/>
<ns0:ShipToLocationCode xsi:nil="true"/>
<ns0:BillToCustomerAccountNumber>1006</ns0:BillToCustomerAccountNumber>
<ns0:BillToLocationCode xsi:nil="true"/>
<ns0:FulfillmentOrgCode>V1</ns0:FulfillmentOrgCode>
<ns0:AssessableValue>5</ns0:AssessableValue>
<ns0:DefaultTaxationCountry>US</ns0:DefaultTaxationCountry>
<ns0:DocumentSubType xsi:nil="true"/>
<ns0:FinalDischargeLocationId xsi:nil="true"/>
<ns0:FirstPtyRegId>35647</ns0:FirstPtyRegId>
<ns0:ProductCategory xsi:nil="true"/>
<ns0:ProductType>GOODS</ns0:ProductType>
<ns0:TaxInvoiceDate xsi:nil="true"/>
<ns0:TaxInvoiceNumber xsi:nil="true"/>
<ns0:ThirdPtyRegId xsi:nil="true"/>
<ns0:TrxBusinessCategory>SALES_TRANSACTION</ns0:TrxBusinessCategory>
<ns0:UserDefinedFiscClass xsi:nil="true"/>
<ns0:IntendedUseClassifId xsi:nil="true"/>
<ns0:ProdFcCategId xsi:nil="true"/>
<ns0:DestinationOrgId xsi:nil="true"/>

1195
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

<ns0:DestinationLocationId xsi:nil="true"/>
<ns0:ConfigInventoryItemId xsi:nil="true"/>
<ns0:ConfigItemReference xsi:nil="true"/>
<ns0:ItemSubTypeCode>STANDARD</ns0:ItemSubTypeCode>
<ns0:ItemSubTypeName>Standard</ns0:ItemSubTypeName>
<ns0:ConfigInventoryItemNumber xsi:nil="true"/>
<ns0:SupplierId xsi:nil="true"/>
<ns0:SupplierSiteId xsi:nil="true"/>
<ns0:PurchasingUom xsi:nil="true"/>
<ns0:ShippedUom xsi:nil="true"/>
<ns0:RequisitionBuId xsi:nil="true"/>
<ns0:RequisitionInventoryOrgId xsi:nil="true"/>
<ns0:BuyerId xsi:nil="true"/>
<ns0:AppliedPriceListId xsi:nil="true"/>
<ns0:BillToContactPointId xsi:nil="true"/>
<ns0:ChangeEligibleFlag>Y</ns0:ChangeEligibleFlag>
<ns0:ComponentIdPath xsi:nil="true"/>
<ns0:ConfigCreationDate xsi:nil="true"/>
<ns0:ConfigHeaderId xsi:nil="true"/>
<ns0:ConfigRevisionNumber xsi:nil="true"/>
<ns0:ConfiguratorPath xsi:nil="true"/>
<ns0:ContractEndDate>2018-03-05</ns0:ContractEndDate>
<ns0:ContractStartDate>2018-03-01</ns0:ContractStartDate>
<ns0:CustomerPoScheduleNumber xsi:nil="true"/>
<ns0:ModifiedFlag>Y</ns0:ModifiedFlag>
<ns0:PrefOverriddenBitset xsi:nil="true"/>
<ns0:PricedOn>2018-08-03T05:40:28.015Z</ns0:PricedOn>
<ns0:PurchasingEnabledFlag>N</ns0:PurchasingEnabledFlag>
<ns0:QuantityPerModel xsi:nil="true"/>
<ns0:RequiredFulfillmentDate>2015-01-15T10:10:10.0Z</ns0:RequiredFulfillmentDate>
<ns0:ShipToContactPointId xsi:nil="true"/>
<ns0:ShowInSales xsi:nil="true"/>
<ns0:SupplyStatusCode xsi:nil="true"/>
<ns0:UnitQuantity xsi:nil="true"/>
<ns0:ValidConfigurationFlag xsi:nil="true"/>
<ns0:ShipToPartyName>Computer Service and Rentals</ns0:ShipToPartyName>
<ns0:ShipToPartyPersonFirstName xsi:nil="true"/>
<ns0:ShipToPartyPersonLastName xsi:nil="true"/>
<ns0:ShipToPartyPersonMiddleName xsi:nil="true"/>
<ns0:ShipToPartyPersonNameSuffix xsi:nil="true"/>
<ns0:ShipToPartyPersonTitle xsi:nil="true"/>
<ns0:ShipToAddress1>2164 Broadway</ns0:ShipToAddress1>
<ns0:ShipToAddress2 xsi:nil="true"/>
<ns0:ShipToAddress3 xsi:nil="true"/>
<ns0:ShipToAddress4 xsi:nil="true"/>
<ns0:ShipToCity>Tempe</ns0:ShipToCity>
<ns0:ShipToProvince xsi:nil="true"/>
<ns0:ShipToPostalCode>85282</ns0:ShipToPostalCode>
<ns0:ShipToState>AZ</ns0:ShipToState>
<ns0:ShipToCounty>Maricopa</ns0:ShipToCounty>
<ns0:ShipToCountry>US</ns0:ShipToCountry>
<ns0:ShipToPartyContactNumber xsi:nil="true"/>
<ns0:ShipToPartyContactName xsi:nil="true"/>
<ns0:ShipToContactFirstName xsi:nil="true"/>
<ns0:ShipToContactLastName xsi:nil="true"/>
<ns0:ShipToContactMiddleName xsi:nil="true"/>
<ns0:ShipToContactNameSuffix xsi:nil="true"/>
<ns0:ShipToContactTitle xsi:nil="true"/>
<ns0:BillToCustomerName>Computer Service and Rentals</ns0:BillToCustomerName>
<ns0:BillToCustomerNumber>1006</ns0:BillToCustomerNumber>
<ns0:BillToAccountPersonFirstName xsi:nil="true"/>
<ns0:BillToAccountPersonLastName xsi:nil="true"/>
<ns0:BillToAccountPersonMiddleName xsi:nil="true"/>
<ns0:BillToAccountPersonNameSuffix xsi:nil="true"/>
<ns0:BillToAccountPersonTitle xsi:nil="true"/>
<ns0:BillToAddress1>301 Summit Hill Drive</ns0:BillToAddress1>

1196
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

<ns0:BillToAddress2 xsi:nil="true"/>
<ns0:BillToAddress3 xsi:nil="true"/>
<ns0:BillToAddress4 xsi:nil="true"/>
<ns0:BillToCity>CHATTANOOGA</ns0:BillToCity>
<ns0:BillToProvince xsi:nil="true"/>
<ns0:BillToPostalCode>37401</ns0:BillToPostalCode>
<ns0:BillToState>TN</ns0:BillToState>
<ns0:BillToCounty>Hamilton</ns0:BillToCounty>
<ns0:BillToCountry>US</ns0:BillToCountry>
<ns0:BillToAccountContactNumber>CONTACT-1560</ns0:BillToAccountContactNumber>
<ns0:BillToAccountContactName>Piere Legrand</ns0:BillToAccountContactName>
<ns0:BillToContactFirstName>Piere</ns0:BillToContactFirstName>
<ns0:BillToContactLastName>Legrand</ns0:BillToContactLastName>
<ns0:BillToContactMiddleName xsi:nil="true"/>
<ns0:BillToContactNameSuffix xsi:nil="true"/>
<ns0:BillToContactTitle xsi:nil="true"/>
<ns0:BillToPartyType>ORGANIZATION</ns0:BillToPartyType>
<ns0:ShipClassOfServiceName xsi:nil="true"/>
<ns0:FreightTerms xsi:nil="true"/>
<ns0:ShipModeOfTransportName xsi:nil="true"/>
<ns0:OrderedUomName>Each</ns0:OrderedUomName>
<ns0:CarrierName xsi:nil="true"/>
<ns0:LineTypeName>Return for credit and return the item</ns0:LineTypeName>
<ns0:FulfillOrgLocationId>204</ns0:FulfillOrgLocationId>
<ns0:FulfillOrgAddress1>90 Fifth Avenue</ns0:FulfillOrgAddress1>
<ns0:FulfillOrgAddress2 xsi:nil="true"/>
<ns0:FulfillOrgAddress3 xsi:nil="true"/>
<ns0:FulfillOrgAddress4 xsi:nil="true"/>
<ns0:FulfillOrgCity>New York</ns0:FulfillOrgCity>
<ns0:FulfillOrgPostalCode>10022-3422</ns0:FulfillOrgPostalCode>
<ns0:FulfillOrgState>NY</ns0:FulfillOrgState>
<ns0:FulfillOrgProvince xsi:nil="true"/>
<ns0:FulfillOrgCounty>New York</ns0:FulfillOrgCounty>
<ns0:FulfillOrgCountry>US</ns0:FulfillOrgCountry>
<ns0:FulfillmentOrgName>Vision Operations</ns0:FulfillmentOrgName>
<ns0:SupplierIdCrossRef xsi:nil="true"/>
<ns0:SupplierNumber xsi:nil="true"/>
<ns0:SupplierName xsi:nil="true"/>
<ns0:SupplierSiteIdCrossRef xsi:nil="true"/>
<ns0:SupplierAddressLine1 xsi:nil="true"/>
<ns0:SupplierAddressLine2 xsi:nil="true"/>
<ns0:SupplierAddressLine3 xsi:nil="true"/>
<ns0:SupplierAddressLine4 xsi:nil="true"/>
<ns0:SupplierCity xsi:nil="true"/>
<ns0:SupplierPostalCode xsi:nil="true"/>
<ns0:SupplierState xsi:nil="true"/>
<ns0:SupplierProvince xsi:nil="true"/>
<ns0:SupplierCounty xsi:nil="true"/>
<ns0:SupplierCountry xsi:nil="true"/>
<ns0:ShipToPartyType>ORGANIZATION</ns0:ShipToPartyType>
<ns0:TransportationPlannedFlag>N</ns0:TransportationPlannedFlag>
<ns0:TransportationPlanningStatus>Not Applicable</ns0:TransportationPlanningStatus>
<ns0:CancelReason xsi:nil="true"/>
<ns0:SubstitutionReason xsi:nil="true"/>
<ns0:CustomerProductNumber xsi:nil="true"/>
<ns0:CustomerProductDescription xsi:nil="true"/>
<ns0:InvoicingRule xsi:nil="true"/>
<ns0:AccountingRule xsi:nil="true"/>
<ns0:DemandClass xsi:nil="true"/>
<ns0:PaymentTerms xsi:nil="true"/>
<ns0:ReturnReason xsi:nil="true"/>
<ns0:ShippingPriority xsi:nil="true"/>
<ns0:InventoryOrganization>V1</ns0:InventoryOrganization>
<ns0:InventoryOrganizationName>Vision Operations</ns0:InventoryOrganizationName>
<ns0:SubInventoryName xsi:nil="true"/>
<ns0:TaxClassification>VAT20</ns0:TaxClassification>

1197
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

<ns0:TaxExemptionReason xsi:nil="true"/>
<ns0:FOBPoint xsi:nil="true"/>
<ns0:FulfillmentSplitReferenceLineNumber xsi:nil="true"/>
<ns0:ConfiguredInventoryItemDescription xsi:nil="true"/>
<ns0:BuyerName xsi:nil="true"/>
<ns0:BuyerFirstName xsi:nil="true"/>
<ns0:BuyerMiddleName xsi:nil="true"/>
<ns0:BuyerLastName xsi:nil="true"/>
<ns0:ShipToPartyLastUpdateDate>2017-07-26T17:51:22.683Z</ns0:ShipToPartyLastUpdateDate>
<ns0:ShipToPartySiteLastUpdateDate>1998-06-16T17:13:50.0Z</ns0:ShipToPartySiteLastUpdateDate>
<ns0:BillToPartyLastUpdateDate>2017-07-26T17:51:22.683Z</ns0:BillToPartyLastUpdateDate>
<ns0:BillToPartySiteLastUpdateDate>2004-09-09T10:46:39.0Z</ns0:BillToPartySiteLastUpdateDate>
<ns0:OrderedQuantityInPrimaryUOM xsi:nil="true"/>
<ns0:PrimaryUOMCode xsi:nil="true"/>
<ns0:PrimaryUOM xsi:nil="true"/>
<ns0:ShipmentPriority xsi:nil="true"/>
<ns0:FinalDischargeLocationAddressLine1 xsi:nil="true"/>
<ns0:FinalDischargeLocationAddressLine2 xsi:nil="true"/>
<ns0:FinalDischargeLocationAddressLine3 xsi:nil="true"/>
<ns0:FinalDischargeLocationAddressLine4 xsi:nil="true"/>
<ns0:FinalDischargeLocationAddressCity xsi:nil="true"/>
<ns0:FinalDischargeLocationAddressState xsi:nil="true"/>
<ns0:FinalDischargeLocationAddressPostalCode xsi:nil="true"/>
<ns0:FinalDischargeLocationAddressProvince xsi:nil="true"/>
<ns0:FinalDischargeLocationAddressCounty xsi:nil="true"/>
<ns0:FinalDischargeLocationAddressCountry xsi:nil="true"/>
<ns0:DefaultTaxationCountryShortName>United States</ns0:DefaultTaxationCountryShortName>
<ns0:FirstPartyTaxRegistration>4567890</ns0:FirstPartyTaxRegistration>
<ns0:ThirdPartyTaxRegistration xsi:nil="true"/>
<ns0:DocumentSubTypeName xsi:nil="true"/>
<ns0:ProductTypeName>Goods</ns0:ProductTypeName>
<ns0:TransactionLineType xsi:nil="true"/>
<ns0:ProductCategoryName xsi:nil="true"/>
<ns0:TransactionBusinessCategoryName xsi:nil="true"/>
<ns0:IntendedUseClassificationName xsi:nil="true"/>
<ns0:UserDefinedFiscClassName xsi:nil="true"/>
<ns0:ProductFiscalCategoryName xsi:nil="true"/>
<ns0:DestinationShippingOrganizationName xsi:nil="true"/>
<ns0:DestinationShippingOrganizationCode xsi:nil="true"/>
<ns0:DestinationShippingAddressLine1 xsi:nil="true"/>
<ns0:DestinationShippingAddressLine2 xsi:nil="true"/>
<ns0:DestinationShippingAddressLine3 xsi:nil="true"/>
<ns0:DestinationShippingAddressLine4 xsi:nil="true"/>
<ns0:DestinationShippingAddressCity xsi:nil="true"/>
<ns0:DestinationShippingAddressPostalCode xsi:nil="true"/>
<ns0:DestinationShippingAddressState xsi:nil="true"/>
<ns0:DestinationShippingAddressProvince xsi:nil="true"/>
<ns0:DestinationShippingAddressCounty xsi:nil="true"/>
<ns0:DestinationShippingAddressCountry xsi:nil="true"/>
<ns0:JeopardyPriority>HIGH</ns0:JeopardyPriority>
<ns0:CreditChkAuthExpDate xsi:nil="true"/>
<ns0:CreditChkAuthCode xsi:nil="true"/>
<ns0:BillToPartyIdentifier>1006</ns0:BillToPartyIdentifier>
<ns0:BillToPartySiteIdentifier>1034</ns0:BillToPartySiteIdentifier>
<ns0:BillToPartyContactIdentifier>1560</ns0:BillToPartyContactIdentifier>
<ns0:ActionTypeCode>ORA_ADD</ns0:ActionTypeCode>
<ns0:ServiceDuration>2</ns0:ServiceDuration>
<ns0:ServiceDurationPeriodCode>YR</ns0:ServiceDurationPeriodCode>
<ns0:ServiceDurationPeriodName xsi:nil="true"/>
<ns0:SalespersonIdentifier xsi:nil="true"/>
<ns0:Salesperson xsi:nil="true"/>
<ns0:UnreferencedReturnFlag>Y</ns0:UnreferencedReturnFlag>
<ns0:CoveredProductIdentifier>300100090628362</ns0:CoveredProductIdentifier>
<ns0:CoveredProductNumber>OAL_KIT</ns0:CoveredProductNumber>
<ns0:CoveredProductDescription>OAL KIT Item</ns0:CoveredProductDescription>
<ns0:CoveredCustomerProductId xsi:nil="true"/>

1198
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

<ns0:CoveredCustomerProductNumber xsi:nil="true"/>
<ns0:CoveredCustomerProductDescription xsi:nil="true"/>
<ns0:CancellationEffectiveDate>2018-03-07T10:10:10.0Z</ns0:CancellationEffectiveDate>
<ns0:CoveredProductSrcsysReference>OAL_KIT_SPOKE_ITEM_1</ns0:CoveredProductSrcsysReference>
<ns0:SupplierSiteCode xsi:nil="true"/>
<ns0:ContractStartDateTime>2018-03-01T00:00:00.0Z</ns0:ContractStartDateTime>
<ns0:ContractEndDateTime>2018-03-05T00:00:00.0Z</ns0:ContractEndDateTime>
<ns0:FulfillLineEffCategories xsi:type="ns15:j_FulfillLineEffDooFulfillLinesAddInfoprivate"
xmlns:ns14="http://xmlns.your_server.com/apps/scm/doo/processOrder/flex/fulfillLineContextsB/"
xmlns:ns15="http://xmlns.your_server.com/apps/scm/doo/processOrder/flex/fulfillLineCategories/">
<ns3:Category>DOO_FULFILL_LINES_ADD_INFO</ns3:Category>
<ns3:FulfillLineId>300100138387477</ns3:FulfillLineId>
</ns0:FulfillLineEffCategories>
<ns0:OrderDocumentReference>
<ns0:CreatedBy>SCMOPERATIONS</ns0:CreatedBy>
<ns0:CreationDate>2018-08-03T05:40:18.402Z</ns0:CreationDate>
<ns0:DocAltUserKey xsi:nil="true"/>
<ns0:DocContextId xsi:nil="true"/>
<ns0:DocId>300100090628362</ns0:DocId>
<ns0:DocLineAltUserKey xsi:nil="true"/>
<ns0:DocLineContextId xsi:nil="true"/>
<ns0:DocLineId xsi:nil="true"/>
<ns0:DocLineUserKey xsi:nil="true"/>
<ns0:DocRefType>COVERED_ITEM_FOR_ADHOC_RTN</ns0:DocRefType>
<ns0:DocSublineAltUserKey xsi:nil="true"/>
<ns0:DocSublineContextId xsi:nil="true"/>
<ns0:DocSublineId xsi:nil="true"/>
<ns0:DocSublineUserKey xsi:nil="true"/>
<ns0:DocSystemRefId>300100138387481</ns0:DocSystemRefId>
<ns0:DocUserKey>OAL_KIT</ns0:DocUserKey>
<ns0:FulfillLineId>300100138387477</ns0:FulfillLineId>
<ns0:HeaderId>300100138387475</ns0:HeaderId>
<ns0:LastUpdateDate>2018-08-03T05:40:26.953Z</ns0:LastUpdateDate>
<ns0:LastUpdateLogin>72822FC9F7FE2923E0534E08F20A027A</ns0:LastUpdateLogin>
<ns0:LastUpdatedBy>SCMOPERATIONS</ns0:LastUpdatedBy>
<ns0:LineId>300100138387476</ns0:LineId>
<ns0:ObjectVersionNumber>1</ns0:ObjectVersionNumber>
<ns0:OwnerTableId xsi:nil="true"/>
<ns0:OwnerTableName xsi:nil="true"/>
</ns0:OrderDocumentReference>
<ns0:OrderCharge>
<ns0:ChargeAppliesTo>PRICE</ns0:ChargeAppliesTo>
<ns0:ChargeCurrencyCode>USD</ns0:ChargeCurrencyCode>
<ns0:ChargeDefinitionCode>QP_SALE_PRICE</ns0:ChargeDefinitionCode>
<ns0:ChargeSubtypeCode>ORA_PRICE</ns0:ChargeSubtypeCode>
<ns0:ChargeTypeCode>ORA_SALE</ns0:ChargeTypeCode>
<ns0:GsaUnitPrice xsi:nil="true"/>
<ns0:OrderChargeId>300100138387478</ns0:OrderChargeId>
<ns0:ParentEntityCode>LINE</ns0:ParentEntityCode>
<ns0:ParentEntityId>300100138387477</ns0:ParentEntityId>
<ns0:PricePeriodicityCode xsi:nil="true"/>
<ns0:PriceTypeCode>ONE_TIME</ns0:PriceTypeCode>
<ns0:PricedQuantity>3</ns0:PricedQuantity>
<ns0:PricedQuantityUomCode>YR</ns0:PricedQuantityUomCode>
<ns0:PrimaryFlag>Y</ns0:PrimaryFlag>
<ns0:RollupFlag>N</ns0:RollupFlag>
<ns0:SequenceNumber>1</ns0:SequenceNumber>
<ns0:SourceChargeId>SC1</ns0:SourceChargeId>
<ns0:ReferenceOrderChargeId xsi:nil="true"/>
<ns0:AvgUnitSellingPrice xsi:nil="true"/>
<ns0:ChargeDefinition>Sale Price</ns0:ChargeDefinition>
<ns0:ChargeSubtype>Price</ns0:ChargeSubtype>
<ns0:PriceType>One time</ns0:PriceType>
<ns0:PricedQuantityUOM>Year</ns0:PricedQuantityUOM>
<ns0:ChargeType>Sale</ns0:ChargeType>
<ns0:ChargeCurrencyName>US Dollar</ns0:ChargeCurrencyName>

1199
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

<ns0:OrderChargeComponent>
<ns0:ChargeCurrencyCode>USD</ns0:ChargeCurrencyCode>
<ns0:ChargeCurrencyExtAmount>0</ns0:ChargeCurrencyExtAmount>
<ns0:ChargeCurrencyUnitPrice>0</ns0:ChargeCurrencyUnitPrice>
<ns0:HeaderCurrencyCode>USD</ns0:HeaderCurrencyCode>
<ns0:HeaderCurrencyExtAmount>0</ns0:HeaderCurrencyExtAmount>
<ns0:HeaderCurrencyUnitPrice>0</ns0:HeaderCurrencyUnitPrice>
<ns0:OrderChargeComponentId>300100138387485</ns0:OrderChargeComponentId>
<ns0:OrderChargeId>300100138387478</ns0:OrderChargeId>
<ns0:ParentChargeComponentId xsi:nil="true"/>
<ns0:PercentOfComparisonElement xsi:nil="true"/>
<ns0:PriceElementCode>QP_BASE_LIST_PRICE</ns0:PriceElementCode>
<ns0:PriceElementUsageCode xsi:nil="true"/>
<ns0:RollupFlag>N</ns0:RollupFlag>
<ns0:SequenceNumber>1000</ns0:SequenceNumber>
<ns0:SourceChargeComponentId>300100138387485</ns0:SourceChargeComponentId>
<ns0:SourceChargeId>300100138387478</ns0:SourceChargeId>
<ns0:SourceParentChargeCompId xsi:nil="true"/>
<ns0:PricingSourceId xsi:nil="true"/>
<ns0:PricingSourceTypeCode>RETURN</ns0:PricingSourceTypeCode>
<ns0:Explanation xsi:nil="true"/>
<ns0:ExplanationMessageName xsi:nil="true"/>
<ns0:TaxIncludedFlag>N</ns0:TaxIncludedFlag>
<ns0:ReferenceOrderChargeCompId xsi:nil="true"/>
<ns0:ChargeCurrencyName>US Dollar</ns0:ChargeCurrencyName>
<ns0:HeaderCurrencyName>US Dollar</ns0:HeaderCurrencyName>
<ns0:PriceElement>Base List Price</ns0:PriceElement>
<ns0:PriceElementUsage xsi:nil="true"/>
<ns0:ChargeCurrencyDurationExtendedAmount>0</ns0:ChargeCurrencyDurationExtendedAmount>
<ns0:HeaderCurrencyDurationExtendedAmount>0</ns0:HeaderCurrencyDurationExtendedAmount>
</ns0:OrderChargeComponent>
<ns0:OrderChargeComponent>
<ns0:ChargeCurrencyCode>USD</ns0:ChargeCurrencyCode>
<ns0:ChargeCurrencyExtAmount>0</ns0:ChargeCurrencyExtAmount>
<ns0:ChargeCurrencyUnitPrice>0</ns0:ChargeCurrencyUnitPrice>
<ns0:HeaderCurrencyCode>USD</ns0:HeaderCurrencyCode>
<ns0:HeaderCurrencyExtAmount>0</ns0:HeaderCurrencyExtAmount>
<ns0:HeaderCurrencyUnitPrice>0</ns0:HeaderCurrencyUnitPrice>
<ns0:OrderChargeComponentId>300100138387486</ns0:OrderChargeComponentId>
<ns0:OrderChargeId>300100138387478</ns0:OrderChargeId>
<ns0:ParentChargeComponentId xsi:nil="true"/>
<ns0:PercentOfComparisonElement xsi:nil="true"/>
<ns0:PriceElementCode>QP_LIST_PRICE</ns0:PriceElementCode>
<ns0:PriceElementUsageCode>LIST_PRICE</ns0:PriceElementUsageCode>
<ns0:RollupFlag>N</ns0:RollupFlag>
<ns0:SequenceNumber>1001</ns0:SequenceNumber>
<ns0:SourceChargeComponentId>300100138387486</ns0:SourceChargeComponentId>
<ns0:SourceChargeId>300100138387478</ns0:SourceChargeId>
<ns0:SourceParentChargeCompId xsi:nil="true"/>
<ns0:PricingSourceId xsi:nil="true"/>
<ns0:PricingSourceTypeCode>RETURN</ns0:PricingSourceTypeCode>
<ns0:Explanation xsi:nil="true"/>
<ns0:ExplanationMessageName xsi:nil="true"/>
<ns0:TaxIncludedFlag>N</ns0:TaxIncludedFlag>
<ns0:ReferenceOrderChargeCompId xsi:nil="true"/>
<ns0:ChargeCurrencyName>US Dollar</ns0:ChargeCurrencyName>
<ns0:HeaderCurrencyName>US Dollar</ns0:HeaderCurrencyName>
<ns0:PriceElement>List Price</ns0:PriceElement>
<ns0:PriceElementUsage>List price</ns0:PriceElementUsage>
<ns0:ChargeCurrencyDurationExtendedAmount>0</ns0:ChargeCurrencyDurationExtendedAmount>
<ns0:HeaderCurrencyDurationExtendedAmount>0</ns0:HeaderCurrencyDurationExtendedAmount>
</ns0:OrderChargeComponent>
<ns0:OrderChargeComponent>
<ns0:ChargeCurrencyCode>USD</ns0:ChargeCurrencyCode>
<ns0:ChargeCurrencyExtAmount>0</ns0:ChargeCurrencyExtAmount>
<ns0:ChargeCurrencyUnitPrice>0</ns0:ChargeCurrencyUnitPrice>

1200
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

<ns0:HeaderCurrencyCode>USD</ns0:HeaderCurrencyCode>
<ns0:HeaderCurrencyExtAmount>0</ns0:HeaderCurrencyExtAmount>
<ns0:HeaderCurrencyUnitPrice>0</ns0:HeaderCurrencyUnitPrice>
<ns0:OrderChargeComponentId>300100138387480</ns0:OrderChargeComponentId>
<ns0:OrderChargeId>300100138387478</ns0:OrderChargeId>
<ns0:ParentChargeComponentId xsi:nil="true"/>
<ns0:PercentOfComparisonElement xsi:nil="true"/>
<ns0:PriceElementCode>QP_NET_PRICE</ns0:PriceElementCode>
<ns0:PriceElementUsageCode>NET_PRICE</ns0:PriceElementUsageCode>
<ns0:RollupFlag>N</ns0:RollupFlag>
<ns0:SequenceNumber>1002</ns0:SequenceNumber>
<ns0:SourceChargeComponentId>SCC1</ns0:SourceChargeComponentId>
<ns0:SourceChargeId>SC1</ns0:SourceChargeId>
<ns0:SourceParentChargeCompId xsi:nil="true"/>
<ns0:PricingSourceId xsi:nil="true"/>
<ns0:PricingSourceTypeCode xsi:nil="true"/>
<ns0:Explanation xsi:nil="true"/>
<ns0:ExplanationMessageName xsi:nil="true"/>
<ns0:TaxIncludedFlag>N</ns0:TaxIncludedFlag>
<ns0:ReferenceOrderChargeCompId xsi:nil="true"/>
<ns0:ChargeCurrencyName>US Dollar</ns0:ChargeCurrencyName>
<ns0:HeaderCurrencyName>US Dollar</ns0:HeaderCurrencyName>
<ns0:PriceElement>Your Price</ns0:PriceElement>
<ns0:PriceElementUsage>Net price</ns0:PriceElementUsage>
<ns0:ChargeCurrencyDurationExtendedAmount>0</ns0:ChargeCurrencyDurationExtendedAmount>
<ns0:HeaderCurrencyDurationExtendedAmount>0</ns0:HeaderCurrencyDurationExtendedAmount>
</ns0:OrderChargeComponent>
<ns0:OrderChargeComponent>
<ns0:ChargeCurrencyCode>USD</ns0:ChargeCurrencyCode>
<ns0:ChargeCurrencyExtAmount>0</ns0:ChargeCurrencyExtAmount>
<ns0:ChargeCurrencyUnitPrice>0</ns0:ChargeCurrencyUnitPrice>
<ns0:HeaderCurrencyCode>USD</ns0:HeaderCurrencyCode>
<ns0:HeaderCurrencyExtAmount>0</ns0:HeaderCurrencyExtAmount>
<ns0:HeaderCurrencyUnitPrice>0</ns0:HeaderCurrencyUnitPrice>
<ns0:OrderChargeComponentId>300100138387487</ns0:OrderChargeComponentId>
<ns0:OrderChargeId>300100138387478</ns0:OrderChargeId>
<ns0:ParentChargeComponentId xsi:nil="true"/>
<ns0:PercentOfComparisonElement xsi:nil="true"/>
<ns0:PriceElementCode>QP_MARGIN</ns0:PriceElementCode>
<ns0:PriceElementUsageCode xsi:nil="true"/>
<ns0:RollupFlag>N</ns0:RollupFlag>
<ns0:SequenceNumber>1003</ns0:SequenceNumber>
<ns0:SourceChargeComponentId>300100138387487</ns0:SourceChargeComponentId>
<ns0:SourceChargeId>300100138387478</ns0:SourceChargeId>
<ns0:SourceParentChargeCompId xsi:nil="true"/>
<ns0:PricingSourceId xsi:nil="true"/>
<ns0:PricingSourceTypeCode xsi:nil="true"/>
<ns0:Explanation xsi:nil="true"/>
<ns0:ExplanationMessageName xsi:nil="true"/>
<ns0:TaxIncludedFlag>N</ns0:TaxIncludedFlag>
<ns0:ReferenceOrderChargeCompId xsi:nil="true"/>
<ns0:ChargeCurrencyName>US Dollar</ns0:ChargeCurrencyName>
<ns0:HeaderCurrencyName>US Dollar</ns0:HeaderCurrencyName>
<ns0:PriceElement>Margin</ns0:PriceElement>
<ns0:PriceElementUsage xsi:nil="true"/>
<ns0:ChargeCurrencyDurationExtendedAmount>0</ns0:ChargeCurrencyDurationExtendedAmount>
<ns0:HeaderCurrencyDurationExtendedAmount>0</ns0:HeaderCurrencyDurationExtendedAmount>
</ns0:OrderChargeComponent>
</ns0:OrderCharge>
</ns0:OrderFulfillLine>
<ns0:LineEffCategories xsi:type="ns17:j_LineEffDooLinesAddInfoprivate" xmlns:ns16="http://
xmlns.your_server.com/apps/scm/doo/processOrder/flex/lineContextsB/" xmlns:ns17="http://
xmlns.your_server.com/apps/scm/doo/processOrder/flex/lineCategories/">
<ns3:Category>DOO_LINES_ADD_INFO</ns3:Category>
<ns3:LineId>300100138387476</ns3:LineId>
</ns0:LineEffCategories>

1201
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

</ns0:OrderLine>
<ns0:HeaderEffCategories xsi:type="ns19:j_HeaderEffDooHeadersAddInfoprivate" xmlns:ns18="http://
xmlns.your_server.com/apps/scm/doo/processOrder/flex/headerContextsB/" xmlns:ns19="http://
xmlns.your_server.com/apps/scm/doo/processOrder/flex/headerCategories/">
<ns3:Category>DOO_HEADERS_ADD_INFO</ns3:Category>
<ns3:HeaderId>300100138387475</ns3:HeaderId>
</ns0:HeaderEffCategories>
<ns0:OrderTotals>
<ns0:CurrencyCode>USD</ns0:CurrencyCode>
<ns0:DisplayName xsi:nil="true"/>
<ns0:EstimatedFlag>N</ns0:EstimatedFlag>
<ns0:HeaderId>300100138387475</ns0:HeaderId>
<ns0:OrderTotalId>300100138387505</ns0:OrderTotalId>
<ns0:PrimaryFlag>N</ns0:PrimaryFlag>
<ns0:TotalAmount>0</ns0:TotalAmount>
<ns0:TotalCode>QP_TOTAL_NET_PRICE</ns0:TotalCode>
<ns0:TotalGroup>2.3.0</ns0:TotalGroup>
</ns0:OrderTotals>
<ns0:OrderTotals>
<ns0:CurrencyCode>USD</ns0:CurrencyCode>
<ns0:DisplayName xsi:nil="true"/>
<ns0:EstimatedFlag>N</ns0:EstimatedFlag>
<ns0:HeaderId>300100138387475</ns0:HeaderId>
<ns0:OrderTotalId>300100138387506</ns0:OrderTotalId>
<ns0:PrimaryFlag>N</ns0:PrimaryFlag>
<ns0:TotalAmount>0</ns0:TotalAmount>
<ns0:TotalCode>QP_TOTAL_DISCOUNT</ns0:TotalCode>
<ns0:TotalGroup>1.2.0</ns0:TotalGroup>
</ns0:OrderTotals>
<ns0:OrderTotals>
<ns0:CurrencyCode>USD</ns0:CurrencyCode>
<ns0:DisplayName xsi:nil="true"/>
<ns0:EstimatedFlag>N</ns0:EstimatedFlag>
<ns0:HeaderId>300100138387475</ns0:HeaderId>
<ns0:OrderTotalId>300100138387500</ns0:OrderTotalId>
<ns0:PrimaryFlag>N</ns0:PrimaryFlag>
<ns0:TotalAmount>0</ns0:TotalAmount>
<ns0:TotalCode>QP_TOTAL_CREDIT</ns0:TotalCode>
<ns0:TotalGroup>2.6.0</ns0:TotalGroup>
<ns0:OrderTotalComponents>
<ns0:OrderChargeComponentId>300100138387480</ns0:OrderChargeComponentId>
<ns0:OrderTotalComponentId>300100138387501</ns0:OrderTotalComponentId>
<ns0:OrderTotalId>300100138387500</ns0:OrderTotalId>
</ns0:OrderTotalComponents>
</ns0:OrderTotals>
<ns0:OrderTotals>
<ns0:CurrencyCode>USD</ns0:CurrencyCode>
<ns0:DisplayName xsi:nil="true"/>
<ns0:EstimatedFlag>N</ns0:EstimatedFlag>
<ns0:HeaderId>300100138387475</ns0:HeaderId>
<ns0:OrderTotalId>300100138387502</ns0:OrderTotalId>
<ns0:PrimaryFlag>Y</ns0:PrimaryFlag>
<ns0:TotalAmount>0</ns0:TotalAmount>
<ns0:TotalCode>QP_TOTAL_PAY_NOW</ns0:TotalCode>
<ns0:TotalGroup>3.7.1</ns0:TotalGroup>
<ns0:OrderTotalComponents>
<ns0:OrderChargeComponentId>300100138387480</ns0:OrderChargeComponentId>
<ns0:OrderTotalComponentId>300100138387503</ns0:OrderTotalComponentId>
<ns0:OrderTotalId>300100138387502</ns0:OrderTotalId>
</ns0:OrderTotalComponents>
</ns0:OrderTotals>
<ns0:OrderTotals>
<ns0:CurrencyCode>USD</ns0:CurrencyCode>
<ns0:DisplayName xsi:nil="true"/>
<ns0:EstimatedFlag>N</ns0:EstimatedFlag>
<ns0:HeaderId>300100138387475</ns0:HeaderId>

1202
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

<ns0:OrderTotalId>300100138387507</ns0:OrderTotalId>
<ns0:PrimaryFlag>N</ns0:PrimaryFlag>
<ns0:TotalAmount>0</ns0:TotalAmount>
<ns0:TotalCode>QP_TOTAL_SHIP_CHARGE</ns0:TotalCode>
<ns0:TotalGroup>2.4.0</ns0:TotalGroup>
</ns0:OrderTotals>
<ns0:OrderTotals>
<ns0:CurrencyCode>USD</ns0:CurrencyCode>
<ns0:DisplayName xsi:nil="true"/>
<ns0:EstimatedFlag>N</ns0:EstimatedFlag>
<ns0:HeaderId>300100138387475</ns0:HeaderId>
<ns0:OrderTotalId>300100138387508</ns0:OrderTotalId>
<ns0:PrimaryFlag>N</ns0:PrimaryFlag>
<ns0:TotalAmount>0</ns0:TotalAmount>
<ns0:TotalCode>QP_TOTAL_TAX</ns0:TotalCode>
<ns0:TotalGroup>2.5.0</ns0:TotalGroup>
</ns0:OrderTotals>
<ns0:OrderTotals>
<ns0:CurrencyCode>USD</ns0:CurrencyCode>
<ns0:DisplayName xsi:nil="true"/>
<ns0:EstimatedFlag>N</ns0:EstimatedFlag>
<ns0:HeaderId>300100138387475</ns0:HeaderId>
<ns0:OrderTotalId>300100138387504</ns0:OrderTotalId>
<ns0:PrimaryFlag>N</ns0:PrimaryFlag>
<ns0:TotalAmount>0</ns0:TotalAmount>
<ns0:TotalCode>QP_TOTAL_LIST_PRICE</ns0:TotalCode>
<ns0:TotalGroup>1.1.0</ns0:TotalGroup>
</ns0:OrderTotals>
</ns0:Value>
</ns2:result>
</ns0:getOrderDetailsResponse>
</env:Body>
</env:Envelope>

Related Topics
• Return Items Without Original Sales Order
• Opt In To Features in Order Management

1203
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

Import Return Orders


Import a source order that returns an item.
Here's how you do it.

Use a technology to import the return.

• Order import template. The template is SourceSalesOrderImportTemplate.xlsm. Many of the return aributes
are on tab DOO_ORDER_LINES_ALL_INT.
• Web service in Oracle Application Development Framework (ADF).

1204
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

• Web service in Oracle Service-Oriented Architecture (SOA).

Required Aributes
Here are the aributes that your import must include.

Aribute Description

Aribute that identies the item. Choose from the group. For example, Product Number.
   

Ordered Quantity
  Make sure quantity is greater than 0 for a new source order. You can use 0 for a revise order.

If your set up.

• Allows decimals. Make sure the number of digits after the decimal point doesn't exceed
the maximum number of digits allowed according to prole Quantity Decimal Precision.
For details, see the Control Decimal Precision topic.
• Doesn't allow decimals. Make sure the source order doesn't include decimal values.

Ordered UOM Make sure the unit of measure is appropriate for the item.
   
For example, Quart is appropriate for a liquid, but Amperage isn't because amperage measures
electrical current.
 
If the item returns a coverage, then make sure the unit of measure is appropriate for the
covered item.
 

Return Type Identies type of order line. Use a value from the Return Order Line Types lookup.
   
If you use the order import template, then use the Transaction Line Type Code aribute in
column AB of tab DOO_ ORDER_ LINES_ ALL_INT.
 

Return Location If Return Type is Return for credit and return the item, then the import requires Return
  Location.
 
If you use the order import template, then use the Requested Fulllment Organization
Identier aribute in column N of tab DOO_ ORDER_ LINES_ ALL_INT.
 

Return Reason If you use the order import template, then use the Return Reason aribute in column DJ and
  DK of tab DOO_ ORDER_ LINES_ ALL_INT.
 

Coverage
If you cancel a coverage, then include the Covered Item aribute, the Source System Reference for Covered Product
aribute, and at least one of these aributes.

• Identier for Covered Product


• Number for Covered Product
• Description for Covered Product

1205
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

• Identier for Covered Customer Product


• Number for Covered Customer Product
• Description for Covered Customer Product

Cancel a Service
A service can be a coverage and subscription. For details, see the Import Source Orders That Include Coverage or
Subscriptions topic.

Here are the aributes you can use when you cancel a service.

Aribute Description

Service Duration, Service Duration


Code, or Service Duration UOM If Service Duration Type is.
 
• Fixed or variable, include Service Duration, and include Service Duration Code or Service
Duration UOM.
• Open ended, and if canceling coverage, then Service Duration Code or Service Duration
UOM is optional. You must set Period for a coverage item, or if you set Service Duration.

For details about these types, see the Set Up Coverage for Sales Orders topic.

If you include Service Duration.

• You must include Service Duration Code or Service Duration UOM.


• Make sure decimal precision doesn't exceed 3.

Note.
• If your source system already priced the source order, and if source order includes Duration, then you must
also include the extended amount for duration.
• If the import includes a coverage, then you must also include the covered item.

Not Allowed
Make sure your import doesn't . . .
• Include a congured item.
• Include recurring billing. The source order must specify one time billing.
• Modify a return item and its covered item or add or remove the original sales order revision.

Related Topics
• Return Items Without Original Sales Order

Allow Users to Return Items Without Original Sales Order


The Order Entry Specialist can return an item or cancel a service without including the sales order that originally ordered
the item. You can administer this feature.

1206
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

An unreferenced return is a sales order that includes a return line that doesn't reference the sales order that your
customer used to purchase the item.

Examples
Your Customer Returns a Whole Bunch of Orders

Vision Corporation is a wholesaler who sold 8,000 items in 475 sales orders to retailer Fantastic Laptops.

• Each order included more than 100 order lines.


• Vision shipped and closed most of these orders.
• Each order used dierent prices.

One year later, Fantastic Laptops returns 50 items in a large container. To simplify order entry, billing, and through
agreement with Fantastic Laptops, Vision Corporation credits all items at the same price. The Order Entry Specialist
uses the Order Management work area to create a single unreferenced return order for all the returned items. This
approach allows the Order Entry Specialist to complete the return without having to spend many hours looking up the
original sales order for each item.

Your Customer Sends Returns Without the Original Sales Order

First Software maintains over 50 outlets in a fast-paced environment. They sell to an established set of clients, and
maintain a contractual, working relationship with each client. Each outlet receives return items that they sold, and also
returns items that other outlets sold. However, personnel who work at the outlets don't have time to look up the original
sales order for each return.

First Software trusts their clients and don't feel its necessary to conrm the original sales order. At the end of the week,
one person at each location enters all returns they received into a single return order that doesn't reference any of the
original sales orders.

You Accept Competitor's Orders

Computer Service and Rentals is a new company who sells laptops in a retail marketplace. They are interested in gaining
market share, so they accept items that their customer purchased from a competitor as part of a promotion to sell new
laptops. Computer Service and Rentals enters these items as unreferenced returns, then sells them later as refurbished.

You Didn't Migrate Data During an Upgrade

Green Corporation sells magazine subscriptions. Customers call the call center to cancel subscriptions. Green
Corporation recently upgraded to Order Management, but didn't migrate order data from their legacy system to Order
Management.

The Order Entry Specialist creates an unreferenced return to cancel the subscription and credit the remaining part of
the subscription that the customer already paid but didn't use. The Order Entry Specialist sets details on the order line,
such as item, quantity, return type, and then uses aribute Duration and aribute Period to specify details about the
return. Order Management calculates the price when the Order Entry Specialist adds the return to the order.

The Item Doesn't Include Identifying Markings

Computer Service and Rentals is a retailer who sells directly to the public. Their customer returns an item but doesn't
have the original receipt, and the item doesn't include a serial number or other marking that the Order Entry Specialist
can use to look up the item when creating the return. The Order Entry Specialist uses the Add Unreferenced Return
Lines action to add the item.

Customer Must Return Congured Item

1207
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

Small Inc.is a retailer who sells the Long Life Tea Set, which is a pick-to-order, congured item that includes congure
options, such as steeping pot, pouring vessel, and set of tea cups. Customers return items but no longer have the
receipt, and the item doesn't include an identifying marking that the Order Entry Specialist can use to look up the
item when creating the return. The Order Management work area doesn't allow the Order Entry Specialist to return a
congured item. Instead, the Order Entry Specialist creates a return line for each congure option.

If you have an unreferenced return, and if you're returning a congured item that's.
• pick-to-order. You can return one or more individual congure options or the entire item.
• assemble-to-order. You can't return any congure option. You can't return the entire item.

How It Works

1208
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

Here's what the Order Entry Specialist does.

• Fills in aributes on the order header, then, in the Order Lines area, clicks Add Unreferenced Return Lines.
• Adds unreferenced return lines, then clicks Add to add them to the sales order.

Here's what Order Management does.

• Uses aribute values from the order header to set default values for aributes on return lines.
• Runs pretransformation rules to set the default values.
• Prices the return according to current system date.
• Sets Billing Frequency to One Time Billing and credits the entire amount as a single credit.
• Adds included item for each kit according to the product structure you set up in the Product Information
Management work area.

Set Up

1209
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

Note.

• Enable opt-in feature Return Items or Cancel Services Without a Reference Order. For details, see the Opt Into
Features in Order Management topic.
• If you're upgrading, then here's what opt-in does, depending on whether you extended pricing algorithms.

◦ Haven't extended. Promotes all algorithms to the latest version.


◦ Have extended. Reconciles algorithm extensions, then promotes all algorithms.

How Pricing Works


Pricing Administration comes predened to calculate price for each unreferenced return.

• Determines whether the return line does or doesn't include a reference to the original sales order.
• Calculates price like it normally calculates a sales order line, then adds a negative sign.
• Calculates price according to the pricing set up that exists on the return date or cancel date. For example, it
applies the discounts and charges that existed on the item as of the return date or cancel date.
• Calculates a one time charge or recurring charge.
• Calculates the pricing adjustment and discount.
• If Pricing can't determine the charge, then it applies a zero charge.
• Allows the Order Entry Specialist to manually adjust the price as an override on the return line.
• Prices the cancel for a coverage or subscription, including pricing only part of the coverage or subscription
period.

You don't need to do any set up to implement this predened behavior.

1210
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

For example.

Note.
• Pricing determines that the list price for the AS54888 item is $2500.00 according to the price that exists on the
date and time when the user added the order line.
• Pricing applies the negative sign to get -2500.00.
• The user overrides the price to -$2000.00. For example, assume your company policy requires that you reduce
the refund by $500 when the customer returns the AS54888 without the original sales order.

You can modify predened behavior.


• You can modify your pricing algorithm to calculate a return amount that is dierent from the predened
behavior or do other processing, such as including a restocking fee.

1211
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

• You can apply a manual price adjustment on the charge.


• You can't reference a returns price list in a pricing algorithm.

Create a Business Rule


You can write a business rule, such as an approval rule, that processes an unreferenced return.

Here's the logic that this example implements.


If attribute Return Without a Reference Order equals yes, and if attribute Order Total Amount on sales order
is equal to or greater than $10,000, then assign sales order to the mgr_operations position for approval.

1212
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

Get a Report

In the Reports and Analytics work area, expand the Order Management - Fulllment Lines Real Time subject area,
expand Fulllment Lines General Details, then notice the aributes you can use for a fulllment line. To create a report
that includes unreferenced return lines, add a lter.

• Return Without a Reference Order = Y

For details, see the Use Reports and Analytics with Order Management topic.

Related Topics
• Return Items Without Original Sales Order
• Opt In To Features in Order Management

1213
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

Constrain Return Orders


Set up a processing constraint that constrains changes the Order Entry Specialist makes to a return that doesn't
reference the original sales order.
For example, Order Management uses the Cancellation Eective Date aribute to price a return that doesn't reference
the original order. Here's your constraint.

• If the return doesn't reference the original sales order, then don't allow the user to modify Cancellation Eective
Date.

1214
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

Here's your set up.

For details about processing constraints, see the Set Up Processing Constraints topic.

Use an order management extension to implement a more specialized constraint. For example, if its been 15 days or
more since Order Management sent the sales order to invoicing, then write an extension that prevents the user from
creating a return material authorization. Use the On Save extension point. For details, see the Overview of Creating
Extensions That Modify Order Management topic.

This topic includes example values. You might use dierent values, depending on your business requirements.

1215
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

Try it.

1. In the Setup and Maintenance work area, go to the task.

◦ Oering: Order Management


◦ Functional Area: Orders
◦ Task: Manage Processing Constraints
2. Add the validation rule set.

◦ On the Manage Processing Constraints page, click Validation Rule Set, then add a rule set.

Aribute Value

Aribute Value
   

Name Modify Date on Unreferenced Return


   

Description If the return doesn't reference the original sales order, then don't allow user to modify
  date.
 

Short Name UNREF


   

Validation Type Table


   

Entity Order Fulllment Line


   

◦ In the Details area, click Actions > Add Row, set values, then click Save.

Aribute Value

Name Cancellation Eective Date


   

Validation Operation Is Not Null


   

◦ Click Generate Packages, notice the Conrmation dialog displays your request ID, then wait a few
minutes for the request to nish.

For example.

The concurrent request to generate constraints validation packages was submitted. Request ID:
10650.

3. Add the constraint.

◦ Click Constraints > Actions > Add Row, then set values.

1216
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

Aribute Value

Constraint Name CANCEL_ SERVICE_DATE


   

Display Name Cancel Service Date


   

Constraint Entity Order Fulllment Line


   

Constrained Operation Update


   

Aribute Name Cancellation Eective Date


   

Enabled Contains a check mark


   

◦ In the Conditions area, add the condition.

Aribute Value

Group Number 1
   

Validation Entity Order Fulllment Line


   

Validation Rule Set Don't allow date change on unreferenced return


   

Scope Any
   

Record Set Fulllment Line Default Record Set


   

Message You must not modify Cancellation Eective Date when you return a sales order without
  the original order because Order Management uses this date to price the return.
 

◦ Click Generate Packages and wait a few minutes.

Test Your Set Up


1. Navigate to the Order Management work area and create a new sales order.

Aribute Value

Customer Computer Service and Rentals

1217
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

Aribute Value

   

Business Unit Vision Operations


   

Bill-to Account 1006


   

2. In the Order Lines area, click Actions > Create Unreferenced Return Lines, then set values.

Aribute Value

Item Add a subscription that uses a xed Service Duration Type. For details about this type, see
  the Set Up Coverage for Sales Orders topic.
 
For this example, assume your implementation includes xed subscription QP_ SUBS_
ITEM7-FIXED.
 

Return Quantity 1
   

UOM Each
   

Return Type Return for Credit and Return the Item


   

Return Location Vision Operations


   

3. Click Submit.
4. If the order line status is Not Started, then wait a moment, and click Refresh. Repeat until status is Awaiting
Receiving.
5. Click Actions > Create Revision.
6. On the order line, modify the value in Cancellation Eective Date, then click Submit.

Related Topics
• Return Items Without Original Sales Order
• Overview of Creating Order Management Extensions

1218
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

Return Sales Orders Without Credit Memo


Set up Order Management so your users can return a sales order without creating a credit memo.
You might not want Order Management to create a credit memo, such as if you allow customers to return a
competitor's order. Here's the ow you will set up.

Note.

1. You create a lookup that allows your users to specify whether its a return without credit.

1219
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

2. The user searches for and views a closed sales order, clicks Return in the Order Lines area, then uses the Return
Items dialog to set Return Type.
3. You create an assignment rule.
◦ If CategoryCode is equal to Return, and. . .
◦ If Line Type is equal to Return Without Credit
4. You create an action in your rule.
◦ Assign orchestration process CustomDOO_ReturnOrderGenericProcess.
5. You create CustomDOO_ReturnOrderGenericProcess. You copy the predened ReturnOrderGenericProcess,
then remove steps so it doesn't issue a credit memo.
For.
• More examples, see the Overview of Returning Items Without Original Sales Order topic.
• Details about credit memos, see book Oracle Financials Cloud, Using Receivables Credit to Cash.

Summary of the Steps


1. Set up the lookup.
2. Create the orchestration process.
3. Create the assignment rule.

Set up the Lookup


1. In the Navigator, click Setup and Maintenance.
2. In the Setup and Maintenance work area, go to the task.
◦ Oering: Order Management
◦ Functional Area: Orders
◦ Task: Manage Order Lookups
3. On the Manage Order Lookups page, in the Search area, enter the value, then click Search.

Aribute Value

Lookup Type ORA_ DOO_ RETURN_ LINE_TYPES


   

4. In the Lookup Codes area, click Actions > New, set values, then click Save and Close.

Aribute Value

Lookup Code RETURN_ WITHOUT_ CREDIT


   

Meaning Return without credit


   

Description Return the item but don't create a credit memo.


   

1220
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

Create the Orchestration Process


1. In the Setup and Maintenance work area, go to the task.

◦ Oering: Order Management


◦ Functional Area: Orders
◦ Task: Manage Orchestration Process Denitions
2. On the Manage Orchestration Process Denitions page, search for the value.

Aribute Value

Process Name ReturnOrderGenericProcess


   

3. In the search results, click the row that includes ReturnOrderGenericProcess in the Name column, then click
Actions > Duplicate.
4. On the Edit Orchestration Process Denition page, set values, then click Save.

Aribute Value

Process Name CustomDOO_ ReturnOrderGenericProcess


   

Process Display Name Return Sales Order Without Creating Credit Memo
   
Enter any text that's meaningful to you.
 

5. In the Process Details area, click Status Conditions > Fulllment Line Status Values, then click Edit Status
Rule Set.
6. On the Edit Status Rule Set page, delete rows that contain the following values in the Status Value column, then
click Save and Close.

◦ Awaiting Billing
◦ Billed
◦ Partially Received
7. In the Process Details area, click Orchestration Process Status Values, then delete rows that contain the
following values in the Status Value column.

◦ Awaiting Billing
◦ Billed
◦ Partially Received
8. In the Process Details area, click Step Denition, then delete rows that contain the following values in the Step
Name column.

◦ Create RMA Invoice


◦ Wait for RMA Invoice

1221
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

9. Click Save, then deploy the orchestration process. For details, see the Deploy Orchestration Processes topic.

Create the Assignment Rule


Create and publish an assignment rule that assigns your orchestration process.
• Create the If statement.
• If categoryCode is equal to Return, and Line Type is equal to Return without credit

• Create the Then statement.


Process Name is set to CustomDOO_ReturnOrderGenericProcess
• Publish and test your rule.

For details about how to create an assignment rule, see the Overview of Using Business Rules topic.

Related Topics
• Return Items Without Original Sales Order
• Overview of Using Business Rules With Order Management
• Deploy Orchestration Processes
• Orchestration Processes

Delays
Jeopardy Priority
Jeopardy indicates the severity of a delay of a task in an orchestration process. You can modify the predened range of
jeopardy scores for a jeopardy priority to control how Order Management calculates and displays jeopardy.
For example, you can set a minimum score of 0, and a maximum score of 100 for the Low jeopardy priority.

Note.
• You can use jeopardy on planned dates or on actual dates. This set up allows an order manager to become
aware that a jeopardy condition might exist before it actually occurs, and to take action to x the condition and
reduce jeopardy.
• You can't add or delete a jeopardy priority.
• You can't modify the value of a predened jeopardy priority, such as Low.

To get details about jeopardy and how it works, see the Jeopardy Score topic.

Related Topics
• Jeopardy Score

Jeopardy Threshold
Set up a jeopardy threshold to measure and monitor an orchestration process.
Set up a set of ranges for each fulllment task of an orchestration process, then assign a score that indicates the
severity of the delay. Order Management uses your set up in the jeopardy aributes that it displays in the Order

1222
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

Management work area. These aributes help your users to quickly determine the severity of the delay, then take
appropriate action.

You can set up a jeopardy threshold for any combination of these aributes.
• Task type
• Task name
• Process name
• Process version

If you leave these aributes at their default seing of All, then Order Management applies jeopardy threshold to all
fulllment tasks.

If you apply a jeopardy threshold, then you must rst set up the orchestration process, fulllment task, and task type
that the threshold will reference so you can select these objects when you apply the threshold.

Related Topics
• Jeopardy Score

Set Up Jeopardy and Lead Time to Manage Delay


To manage delay, set up jeopardy priority, lead time, and jeopardy threshold for your orchestration process.
Summary of the Steps
1. Manage jeopardy priority.
2. Specify lead time.
3. Manage jeopardy threshold.
This topic describes how to do these steps because you often do them together. However, you can do them
independently of one another.

This topic includes example values. You might use dierent values, depending on your business requirements.

Manage Jeopardy Priority


Assume you need a higher range for the MEDIUM priority, and a higher but more narrow range for the HIGH priority.
1. Enable order management parameter Enable Orchestration Process Planning and Calculate Jeopardy.
For details, see the Manage Order Management Parameters topic.
2. In the Setup and Maintenance work area, go to the task.
◦ Oering: Order Management
◦ Functional Area: Orders
◦ Task: Manage Jeopardy Priorities
3. On the Manage Jeopardy Priorities page, set values, then click Save and Close.

Priority Minimum Score Maximum Score

LOW 10 199
     

1223
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

Priority Minimum Score Maximum Score

MEDIUM 200 399


     

HIGH 400 600


     

Don't.
◦ Overlap scores across priorities. For example, don't set up a Low priority of 10 to 210, and a Medium
priority of 200 to 400. An overlap exists between 200 and 210.
◦ Set up priorities that intersect at the same value. If you set up two priorities that intersect at the same
value, then Order Management assigns the intersecting value to the lower priority.
For example, if you set up Low priority of 10 to 200, and Medium priority of 200 to 400, then Order
Management considers a score of 200 as Low priority.

Specify Lead Time


Assume you need a specic amount of lead time to nish each orchestration process step in an orchestration process
that ships goods. For details about lead times, see the Guidelines for Orchestration Process Steps topic.
1. In the Setup and Maintenance work area, go to the task.
◦ Oering: Order Management
◦ Functional Area: Orders
◦ Task: Manage Orchestration Process Denitions
2. On the Manage Orchestration Process Denitions page, search for an orchestration process, then open it.
For this example, search for Orchestration_Process_1. For details about how to create this process, see the
Pause Orchestration Processes Until an Event Occurs topic.
3. On the Step Denition tab, set the Default Lead Time aribute, and set the Lead Time UOM aribute to Days.
Set them for each step.

Step Default Lead Time

Schedule Goods 2
   

Reserve Goods step 1


   

Ship Goods 4
   

Wait for Ship Goods 6


   

Prepare Documentation 1
   

Wait for Documentation 1

1224
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

Step Default Lead Time

   

Invoice Goods 3
   

Wait for Invoice Goods 2


   

4. Click Save and Close.

Manage Jeopardy Threshold


Assume you can use a threshold on reservation tasks that your orchestration process runs to manage how long the
process can delay each task.
1. In the Setup and Maintenance work area, go to the task.
◦ Oering: Order Management
◦ Functional Area: Orders
◦ Task: Manage Jeopardy Thresholds
2. On the Manage Jeopardy Threshold Denitions page, click Actions > Create.
3. On the Create Jeopardy Threshold Denition page, set values.

Aribute Value

Code Enter any text that Order Management can use as an abbreviation for the threshold. Order
  Management uses this text as a code to identify the threshold throughout the Order
Management work area, such as in lists.
 
For this example, enter t-shirt_ threshold.
 

Name Clothing Jeopardy


   

Description Jeopardy thresholds for company t-shirts.


   

Process Name Choose the name of the orchestration process where Order Management must apply the
  jeopardy threshold.
 
For this example, choose Orchestration_ Process_1.
 
For details about how to create this process, see the Pause Orchestration Processes Until an
Event Occurs topic.
 

Task Name Reserve


   

Task Type Reservation


   

4. Set the threshold for the Low range of the jeopardy priority. Click Actions > Add Row, then set values.

1225
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

Aribute Value

Maximum Delay 2
   

Maximum UOM Days


   

Jeopardy Score Enter a value that resides in the Low range of the jeopardy priority that you modied above,
  such as 100.
 

Description Threshold for the Low range of the jeopardy priority.


   

5. Set the threshold for range Medium of the jeopardy priority. Click Actions > Add Row, then set values.

Aribute Value

Maximum Delay 5
   

Maximum UOM Days


   

Jeopardy Score Enter a value that resides in the Medium range of the jeopardy priority that you modied
  above, such as 300.
 

Description Threshold for the Medium range of the jeopardy priority.


   

6. Set the threshold for the High range of the jeopardy priority. Click Actions > Add Row, then set values.

Aribute Value

Maximum Delay 8
   

Maximum UOM Days


   

Jeopardy Score Enter a value that resides in the High range of the jeopardy priority that you modied above,
  such as 500.
 

Description Threshold for the High range of the jeopardy priority.


   

7. Click Save and Close.

Related Topics
• Orchestration Processes

1226
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

• Pause Orchestration Processes Until Events Occur


• Guidelines for Seing Up Orchestration Process Steps

1227
Oracle SCM Cloud Chapter 8
Implementing Order Management Order Processing

1228
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

9 Congure-to-Order

Overview
Overview of Congure-to-Order
Use congure-to-order to allow your customer to choose options for each component of a congured item.
For example, order a laptop computer with a 1 terabyte hard drive. The computer is an example of a congured item.
The hard drive is an example of a congure option. 1 terabyte and 500 megabytes are each values your customer can
choose for the option. A congured item can include more than one congure option. A laptop computer can include
other options, such as memory, the display, color of the chassis, and so on.

Congure-to-order is the process of ordering and fullling a congured item.

Why Should I Use Congure-to-Order?


• Its expensive to build and stock supply for all the dierent possible combinations of options, store it
in inventory, then wait for your customers to order. Instead, use just-in-time manufacturing and other
manufacturing processes, such as postponement, to build the item on demand, when and where you customer
orders it.
• Some options rarely sell, but when they do sell, they meet an important customer requirement.
• Some items cost a lot of money and are expensive to maintain as on-hand inventory.
• Some items are physically large and not practical to stock in every possible combination.
• Modeling each congured item separately improves handling and helps the warehouse and shop oor to
identify and manage the item.
• Improve visibility for the item and on-hand quantities in inventory, promising, and planning.

1229
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

What's a Conguration Model?


Here's a generic structure of a conguration model.

Here are some important concepts.

Concept Description

Conguration model A structure that denes the options your user can choose for each component. You can also
  specify that a component is required. You dene the model during set up. You don't order or
build the model at run time.

1230
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Concept Description

Option class An object you use to organize congure options.


   

Congure option Child of an object class. The hard drive, monitor, and mouse are each an example of a
  congure option. Your user can choose the value for a congure option from a list of available
options.
 

Congured item An item that includes one or more congure options that your user chooses. A desktop
  computer where you choose the hard drive, monitor, and mouse is an example of a congured
item. A congured item is the result of the choices that your user makes at run time when
conguring the item.
 

Required component Component in the model that the user can't choose. For example, you usually can't choose the
  cooling fan when you order a laptop computer.
 

Note.

• You create the model, classes, options, and structure in the Product Information Management work area at
design time.
• A user chooses options in the Order Management work area in a sales order at run time.

1231
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Example
Here's an example of a conguration model.

Note.
• The model, each option class, and each option are separate items that you create in the Product Information
Management work area. For example, CTO_474000 is the item name for the model, CTO_474100 is the name
of the screen option class, and CTO_474101 is the name of the 14" screen option.
• The processor and baery are required components in this model. You can't order a laptop without them.
• The screen option class is required. You can't order a laptop without a screen, but you can order a 14" screen or
15.6" screen.

1232
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

• The camera option class is optional. You can order a laptop without a camera. If you add a camera, then you
can add a front camera, rear camera, or front and rear camera.
• Your user chooses the options at run time.

You use the Product Information Management work area to create the structure. For example.

• Create an item for each screen option.


• Create an item for the screen option class, then add the screens to the class.
• Create the model, then add the option class to the model.

Types of Congurations

Conguration Description

Assemble-to-order (ATO)
  Item that isn't yet manufactured and isn't ready to ship. You make it or procure it according to
the options that your user sets.

• A warehouse usually doesn't stock every possible set of options your user might set.
Instead, the warehouse receives the work order, then.
• Uses a drop-ship ow or back-to-back ow to purchase the congured item from a
supplier.
• Uses a back-to-back ow to manufacture the item according to the work order.

Pick-to-order (PTO)
  Item where you already manufactured the components, or you must make or purchase them.

• Can include a back-to-back ow.


• Can include drop ship.
• Can include back-to-back and drop ship, but you must ship to your customer in one
package.

Hybrid A pick-to-order item that contains at least one assemble-to-order component.


   

1233
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Examples of Using Congure-to-Order


Examine some examples that use congure-to-order.

Simple Example
Here's an example that includes a few congure options..

1234
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

You go to the Order Management work area, create a sales order, search for a conguration model on the catalog line,
then click Congure and Add. Use the Congure page to set congure options. For details, see the Add Congured
Items to Order Lines topic.

Create a Complex Model


Add complexity to your model. Assume you sell a kitchen stove top with oven. You need to provide a variety of
congure options, such as gas, electric, convection, commercial, residential, type of nish, and so on. For this sales
order, your customer needs large commercial gas burners for the stove top, a convection gas main oven, a convection
gas warning oven, a griddle with commercial burners, large knobs, and stainless steel nish.

Note.

• This conguration includes a parent model. The parent references child models.
• Deluxe Viking Stove is the parent model.

1235
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

• Viking Stove Burner ATO and Oven ATO are each a child model.
• Burner Knobs is an option class.
• Large Knobs and Small Knobs are each a congure option in the Burner Knobs class.
• Finish is an option class.
• Midnight Black Finish, Stainless Steel Finish, and Winter White Finish are each a congure option in the Finish
class.
• In this example, the user has chosen options.

◦ Viking Stove Burner ATO


◦ Oven ATO
◦ Large Knobs
◦ Stainless Steel Finish

• Click the pencil to congure a child model.

This model includes two dierent types of ovens. The main oven and a warming oven. The user can choose the type of
oven and the type of warmer.

1236
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Note.

• The Oven ATO model is a child of the parent Deluxe Viking Stove model.

Note that VIK12 is an abbreviation for Deluxe Viking Stove. You can specify it.
• Oven Type is an option class in the Oven ATO model.
• Gas, Gas with Convection, and Electric Oven are each an option in the Oven Type class.
• Warming Oven is an option class in the Oven ATO model.
• Gas, Gas with Convection, and Electric Oven are each an option in the Warming Oven class.

Continue to add options to your model.

1237
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Note.

• Burner Style ATO is a child model of the Viking Stove Burner ATO model and a grandchild of the parent Deluxe
Viking Stove model.
• In this example, the user can choose two options for the Commercial Burners class.

◦ The Large Commercial option species to use large commercial burners for the stove top.
◦ The Griddle option species to include a griddle burner for the griddle part of the stove top. Commercial
stove tops often include more than one burn area. One area includes an open ame and another area
includes a at, steel griddle. This model illustrates how you can set up your conguration to meet
specialized customer requirements.

1238
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

◦ You can continue to add child, grandchild, great grandchild models and so on to meet your specic
hierarchical requirements.

For details about this example model, see the Overview of Using Web Services with Congure-to-Order topic.

More Examples
Here are some more examples.

For example.
• Use a transaction aribute to add content at run-time, such as the weight of the item.
• Add detail, such as display a second dialog that includes choices for accessories.

1239
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Here's an example where you choose options for a car, such as color, seat trim, seats, and so on.

1240
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

How Congure-to-Order Works


Here's an example of how Supply Orchestration fullls a congured item in a make ow.

1241
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Note.

1. Your user creates a sales order in the Order Management work area, searches the catalog line for the
zCZ_AT6751010- Vision Slimline 5001 item, clicks Congure and Add, uses the Congure dialog to set congure
options, clicks Finish, then submits the order.

2. Order Management sends a request to Supply Orchestration. The request includes details about the congured
item, including options that the user chooses.

If its an assemble-to-order request, or a pick-to-order request with at least one assemble-to-order component,
then Supply Orchestration examines the request to determine whether it already processed the congured item
during a prior request.

1242
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

If Supply Orchestration Description

Hasn't already processed the


congured item during a prior Supply Orchestration sends a request to Product Information Management to create a new
request. one, and Product Information Management creates it.
 
Product Information Management stores the conguration in a single record with a unique
name. Order Management stores the record identier in the Conguration Item aribute on
the order line.

For example.

◦ Assume the user adds the Vision Slimline 5001 to an order line. It includes congure
options for the screen and CPU. The user sets the screen to 10" and CPU to 2.5GHz.
Supply Orchestration searches it records and nds that no other order line has ever
requested this conguration, so it sends a request to create it.
◦ Some time later, the user adds another Slimline and sets the screen to 10" and CPU to
2.5GHz. Supply Orchestration nds the exact same conguration and uses it.
◦ Some time later, the user adds another order line that contains the Slimline, but this
time sets the screen to 8" and CPU to 2.5GHz. Supply Orchestration doesn't nd the
exact same conguration, so it sends a request to create it.

Supply Orchestration sends a request to create a new conguration even if only one option
is dierent from congurations it already created.

This feature works the same across users, order lines, and orders.

Already processed the congured Supply Orchestration sends the Conguration Item aribute to Order Management.
item with the same congure  
options in a previous request.
 

1243
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Here's how Product Information Management stores the zCZ_AT6751010.

Note.

◦ A search for zCZ_AT6751010 returns the model and each instance of the model.
◦ zCZ_AT6751010 is the conguration model you create. Product Information Management doesn't update
it.

1244
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

◦ Supply Orchestration sent a request to Product Information Management to create the other two
instances when your user ordered them in Order Management.

• zCZ_AT6751010*1088 is a unique instance of zCZ_AT6751010. It contains specic values that your


user chooses, such as a 10" screen and 2.5GHz CPU.
• zCZ_AT6751010*1089 is another unique instance of zCZ_AT6751010. It contains an 8" screen and
2.5GHz CPU.

Product Information Management stores the item as a noncongured item with no structure. It doesn't
store the structure of the congured item instance. It does this to avoid storing duplicate structural
elements in tables. Supply Orchestration stores the choices your user makes for each congure option
and the structure in the match repository that Supply Orchestration uses. If you enable transaction
aributes on your item, then Supply Orchestration also stores them in the match repository.
3. The ow continues. It uses the same steps that a make ow uses for an item that isn't congured. For details,
see the How Supply Orchestration Works topic.

Points to Consider
• Congure-to-order primarily supports the make ow and the buy ow. It also supports the transfer ow and
drop ship ow. For example, if your customer returns a congured item, then its available for transfer or ship
from stock.
• Supply Orchestration sends a request to Product Information Management to create the congured item for
assemble-to-order when the user clicks Submit in the Order Management work area.
• The congure-to-order ow creates the congured item in Product Information Management on demand,
when you need it. If the conguration already exists, then the ow reuses it instead of creating a new record.

Inventory creates the physical item just-in-time, only when you need it, then ships it. Inventory doesn't stock
the item before you need it. Inventory creates another instance of the physical item for each shipment.
• Congure-to-order also supports drop ship where you source and ship from a supplier. Supply Orchestration
doesn't manage supply for drop ship, but it does manage creating the congured item in a drop ship ow.
• To support the make ow, congure-to-order uses the work denition to create a work order at run time.
The model can be valid in Product Information Management but the ow can still fail in manufacturing. For
example, if the work order in manufacturing fails to assign even one option or option class to an operation step,
then the work denition isn't valid, Promising won't provide a recommendation, and the ow will fail.
• Use the View Congured Item Structure page or a web service to get details about each congure option. For
details, see the View Structures of Congured Items topic.
• You can't disable matching because it makes sure your ow is ecient.

◦ You can add a transactional item aribute for conguration matching that implements specicity in your
conguration. You can add it to an item class at any level of your model.
◦ The Match Conguration aribute on the Specications tab on the Edit Item page in Product Information
Management applies to Oracle E-Business Suite. It has no eect on Oracle Cloud applications.

Child Components

Congure-to-order supports each item or assemble-to-order model as a child component in a pick-to-order model. The
back-to-back ow can stock each component separately, in dierent locations.

• It isn't necessary to source all child components in a pick-to-order model from the same business-to-business
ow.

1245
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

• You can ship some children in a typical Order Management shipment as long as you ship them together with
the business-to-business items.
• If you use the same date, then you can ship all children in a business-to-business ow or none in the business-
to-business ow.
• You can drop ship all children from the same supplier.

Main Setup

1246
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Overview
Guidelines for Seing Up Conguration Models
Follow guidelines to help your setup go smoothly.

Use a Proven Setup Sequence


You use various work areas to set up your conguration model. Here's an example sequence for the make ow.

Note.

1. Use a graphics program or pen and paper to visualize your hierarchy.

1247
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

2. Use the Setup and Maintenance work area to manage the item class.
3. Use the Product Information Management work area.

◦ Create the model, option classes, and congure options.


◦ Set up a structure for your model.
◦ Add classes to your model.
◦ Set up numbering.
4. Use the Pricing Administration work area to set up pricing for your model and congure options.
5. Use the Global Order Promising work area.

◦ Specify catalog and category.


◦ Collect setup data and runtime data.
◦ Create promising and sourcing rules.
6. Use the Work Denition work area.

◦ Create work denitions.


◦ Add operations.
◦ Add resources to operations.

Organize Your Model


• You can set up a hybrid conguration model. For example, add a child assemble-to-order model to a parent
pick-to-order model or assemble-to-order model. The congurator views each child as a component of the
parent, and it creates all child models at the same time.
• Reuse your option classes. For example, create an option class for hard drives, then reuse it for dierent laptop
computer models. Or sell it as an individual component to your customer who needs to expand their drive
capacity or replace a failed drive.
• You can include a congure option in your hierarchy that isn't part of an option class.
• Don't include a child pick-to-order component in a parent assemble-to-order model.
• Set the Optional aribute to Yes for each component of an assemble-to-order or pick-to-order item when you
create the item in Product Information Management. Seing it to Yes means the user can set a value for it, or
not set any value.

For example, if you set Optional to Yes for the Hard Drive component, and if the user doesn't choose an option
for the hard drive, such as 1TB or 2TB, then congure-to-order uses the default value that you set for the hard
drive.
• If you use a transaction aribute, then, to create a new congured item at run time, set the scope to
Conguration Matching in the item class for your transaction aribute. You must set the scope for each

1248
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

transaction aribute that's unique in your assemble-to-order model. If you don't do this, then Order
Management will save the value, but Supply Orchestration won't save it or send it to manufacturing.

Note.

• Click Tasks > Create Item in the Product Information Management work area to create the model, each class,
and each option.
• Click Specications > Manufacturing.

◦ Set Build In WIP to Yes for an assemble-to-order model and each option. It instructs manufacturing to
build the item.

1249
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

◦ Set Shippable to Yes for an assemble-to-order model model and each of its options. Set it to No for a
pick-to-order model and each of its options. Pick-to-order is already built, for example, with a return or
transfer order.
◦ Set Shippable and Build In WIP to No for any option class. You don't build or ship the class. You build and
ship the option in the class.
• Click Specications > Sales and Order Management.

◦ Set Back to Back Enabled to Yes for an assemble-to-order model for all Inventory organizations.
◦ Set Shippable to Yes for an assemble-to-order model model. Set it to No for a pick-to-order model and
each of its option classes and options.

Set Up Global Order Promising


Here are some setups you can do.

• Promise an assemble-to-order item, pick-to-order item, or a hybrid that includes an assemble-to-order item
inside a pick-to-order item.
• Consider lead times for the model, option class, and option when determining the lead time for the congured
item. You can do supply chain availability but not lead-time promising when you use an available-to-promise
rule in a business-to-business ow. You can set some values, but don't mix rule types.
• Exclude sourcing on each option and option class.
• Create a supply recommendation at run time for each congured item in a back-to-back ow.
• Promise each congured item in a drop ship ow.

1250
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

• Make sure Supply Planning is available for each component. Planning plans each component, including child
models.

Note.

• Go to the Plan Inputs work area, then click Tasks > Collect Planning Data.
• Collect your congured item on a schedule, such as at the end of each day, so the ow can include them in
the on-hand quantity. For example, the return orders you receive throughout the day might increase on-hand
quantity.
• Collect items, item structures, and work denitions for your new model. Promising won't provide a make
recommendation if you don't collect the work denition.

1251
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

• Collect on-hand inventory for each congure option. If even one component isn't in stock, then Promising
won't display availability for your model.
• You must collect each new congured item.
• Refresh the repository after you collect.

Avoid the Not Available message at run time.

• Create an available-to-promise (ATP) rule to get a recommendation from Promising during the back-to-back
ow.
• Explicitly reference the model and each component in your available-to-promise rule. If you don't explicitly
reference them, then include them in a category.

Use the Congurator Models Work Area


Use the Congurator Models work area to extend your conguration model. For example.

• Set default choices or values.


• Automatically select a congure option according to another choice your user makes when conguring the
item.
• Prevent your user from selecting options that result in a congured item that won't work.
• Control the number of instances your ow creates for a model at run time.
• Calculate and set values for numeric congure options.

If you use the Congurator Models work area, then follow these guidelines.

• If you must display a transaction aribute at run time, then import your model into the Congurator Models
work area.
• If you import a congured item at run time through.

◦ File-base data import. Use the same template you use when you import a sales order that includes only
one order line.
◦ Web service. Use the same web service you use when you import a sales order that includes only one
order line.
◦ Make sure your import includes child lines for the congure options and that it establishes a relationship
between the child and parent congured item.
• If you revise a model, update the item class, add it to an unreleased workspace, then release the workspace into
the Congurator Models work area.

For details, see the How You Create and Maintain Congurator Models topic.

Troubleshoot
You set up a conguration model in two phases.

1. Create the model, options, classes, and hierarchy in Production Information Management.
2. Send details about the model to your downstream systems.

1252
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Use the Manage Congured Item Exceptions page to examine most errors that occur in this step. Correct the
error and resubmit, or ignore it.

For details, see the Troubleshoot Problems with Congure-to-Order topic.

Other Guidelines
Use two browser applications during set up. Opening a second browser application allows you toggle between work
areas without having to close a work area, go through the Navigator, then open another work area. For example, you
can keep the Product Information Management work area open in browser x, open the Work Denition work area in

1253
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

browser y, then toggle between x and y as necessary if you nd you need to modify your set up in Product Information
Management.

Overview of Seing Up Conguration Models


Set up a conguration model, including the model hierarchy, item class, creating the model, pricing, and so on.
Summary of the Setup

Do the work described in these topics.

1. Visualize the Hierarchy for Your Conguration Model


2. Manage Item Class
3. Create Your Conguration Model
4. Set Up Numbers for Conguration Models
5. Set Up Pricing for Conguration Models
6. Specify Catalog and Category for Conguration Models
7. Collect Planning Data for Congured Items
8. Create Promising Rules for Congured Items
9. Create Sourcing Rules for Congured Items

1254
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Details
Visualize the Hierarchy for Your Conguration Model
Use a graphics program or pen and paper to visualize the hierarchy.
Assume you must set up conguration model CTO_474000, Build My Laptop, in a make ow that uses assemble-to-
order.

Note.

• Come up with a meaningful name for your model, such as Build My Laptop.
• Identify the classes in your model that you will allow your customer to choose. For example, you can often
choose from dierent screen sizes, memory, and hard drives when you buy a laptop, but you usually can't
specify the voltage for the hard drive.

1255
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

• Identify the options you will provide in each class, such as a 14" screen and a 15.6" screen.
• Design a number nomenclature that uniquely identies the model, each class, and each option. For example,
CTO_474000 identies the model, where CTO means congure-to-order, and 474000 identies the model.
Each class and each option use CTO_474xxx to identify that they're part of CTO_474000. For example.

◦ The Screen class uses CTO_474100 to identify that its part of CTO_474000.
◦ The 14" option uses CTO_474101 to identify that its part of the CTO_474100.

• Determine the price you plan to charge for the model and each option.

Manage Item Class


Use a predened class or create your own for your conguration model.
Create your own class so you can manage your model independently of other models, such as how to number each
unique conguration, specifying who can congure the model, specifying transaction aributes to store data that the
ow creates at run time, and so on.

For now, you will do the minimum setup you need to get started when you create your own class.

1. In the Navigator, click Setup and Maintenance, click Tasks > Search, search for, then open Manage Item
Classes.
2. On the Manage Item Classes page, in the search results, click Actions > Create.
3. In the Create Item Class dialog, set values, then click Save and Add Details.

Aribute Value

Item Class My Laptop


   

Internal Name My_Laptop


   

Description Class to use for the Build My Laptop model.


   

4. On the Edit Item Class page, verify the options, then click Save and Close.

Aribute Value

Enabled Contains a check mark


   

Item Creation Allowed Contains a check mark


   

1256
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Create Your Conguration Model


Use the Product Information Management work area to create your conguration model.
Here's an example model you will create.

Summary of the Set Up

1. Create classes and congure options.


2. Add options to your option classes.
3. Create the model.
4. Add classes to your model.
5. Associate your model with an inventory organization.
6. Verify your set up.

1257
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Create Classes and Congure Options


You start at the boom of the hierarchy. You create classes and congure options, then add them to the model.
1. In the Navigator, click Product Management > Product Information Management.
2. On the Product Information Management page, click Tasks > Create Item.
3. In the Create Item dialog, set values, then click OK.

Aribute Value

Organization V1
   
V1 is an abbreviation for Vision Operations.
 

Create New Selected


   

Number of Items 9
   
This is a nifty feature you can use to add more than one item to the same class.
 

Item Class My Laptop


   
This is the class you created earlier.
 

Template Finished Goods


   
As an alternative, use the ATO Item template for congure options and the ATO Option Class
template for option classes. If you use them, verify each value that the template sets.
 

4. On the Create Multiple Items page, don't click Save. Instead, set values.

Item Description User Item Type

CTO_474101 14 Inch Laptop Screen Finished Good


     

CTO_474102 15.6 Inch Laptop Screen Finished Good


     

CTO_474201 8 GB Memory Finished Good


     

CTO_474202 12 GB Memory Finished Good


     

CTO_474301 1 TB Hard Drive Finished Good


     

CTO_474302 2 TB Hard Drive Finished Good


     

CTO_474100 Screen ATO Option Class

1258
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Item Description User Item Type

     

CTO_474200 Memory ATO Option Class


     

CTO_474300 Hard Drive ATO Option Class


     

Leave other aributes at their default values.

Aribute Value

Item Status Active


   

Lifecycle Phase Design


   

Pack Type Leave empty.


   

1259
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Here's what your set up should look like.

5. Set values for the rst item in the list.

◦ Click the row that contains CTO_474101 in the Name column, click Specications > Sales and Order
Management, then set the value.

Aribute Value

Order Management Indivisible Yes


   

1260
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Aribute Value

Specify whether your user can use a decimal quantity for the item. If Yes, then your
user can use only a whole number for the quantity, such as 1, 2, or 3, and can't use a
decimal, such as 1.4.
 
In this example, each item is indivisible. For example, you can't order a fraction of a
screen, memory, or hard drive.
 

◦ Click Associations, click Actions > Select and Add, search for an inventory organization, click Apply,
then click Done.

Aribute Value

Organization M1
   
You must specify an inventory organization. If you don't, you can't create a work
denition for your item.
 

Organization Name Seale Manufacturing


   
In this example, assume you already set up Seale Manufacturing as an inventory
organization.
 

6. Repeat step 5 for each row.


7. Set values for the option classes.

You use the option class to group options but you don't actually ship the class. You do ship the option. So, you
set some values dierently for the option class than you do for the option.

◦ Set values for the screen. Click the row that contains CTO_474100 in the Name column, click
Specications, click Manufacturing under Item Organization, then set values.

Aribute Value

Structure Item Type Option Class


   

Pick Components No
   

Assemble to Order Yes


   

Build in WIP No
   

Supply Type Phantom


   

The class is a phantom. You don't pick, assemble, or build it. You do pick, assemble, and build the option.

1261
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

◦ Click Sales and Order Management, then set the value.

Aribute Value

Shippable No
   
You don't ship the class. You ship the option.
 

◦ Repeat this step for the memory option class, CTO_474200.


◦ Repeat this step for the hard drive option class, CTO_474300.
8. Accept all other default values, then click Save > Save and Close.

Add Options to Your Option Classes


1. Search for and open the screen class for editing.

◦ Click Tasks > Manage Items.


◦ Search for the screen class.

Aribute Value

Name CTO_474100
   

◦ In the search results, click the M1 version.

Note: Product Information Management creates a new version of each item when you
associate the item with an inventory organization, then appends the name of the organization,
such as M1, to the name of the item. The search results display the V1 and M1 versions in
separate rows, but doesn't display V1 or M1. It displays only the name. Make sure you click the
M1 version. Its usually the second row.

1262
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

2. Add the structure.

◦ On the Edit Item page, click Structures, then click Actions > Create from Common.

Don't use Actions > Create. If you do, you will be creating a separate structure. Instead, click Create from
Common to use the structure you created for the V1 version.
◦ In the Create New Item Structure from Common dialog, set values, then click OK.

Aribute Value

Organization Name Vision Operations


   

Item CTO_474100
   

Structure Name Primary


   

Common Structure Levels First Level


   

◦ In the Item Structures list, in the Name column, click Primary.


◦ On the Edit Item Structure page, click View, then add a check mark to Component Order Management.
3. Add an option.

◦ On the Edit Item Structure page, click Actions > Select and Add.

1263
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

◦ In the Select and Add dialog, search for the item.

Aribute Value

Item CTO_474101
   

◦ In the search results, click the row, then click Edit and Add.
◦ In the Edit Multiple Components dialog, set the values, then click OK.

Aribute Value

Optional
  Set to No for the option classes.

Set to Yes for the congure options.

Note.

• An option class can be required or optional. For example, a laptop computer


can't function without a screen, so the screen class isn't optional.
• If you set Optional to No for the option class, and if you set Optional to Yes for at
least one option in the class, then the Order Management work area will display
the class on the Congure page at run time. This allows your user to choose the
option.
• If you set a congure option to No, then Order Management won't display it at
run time, your user can't set the option, and the purchase order and shipping
documents won't include it. If its a manufactured item, then the work order will
still include it because its part of the item structure.

Minimum Quantity 1
   
Specify the minimum quantity the user can set for this option. A laptop computer must
have one and only one screen, so set the minimum quantity to 1 and the maximum
quantity to 1.
 

Maximum Quantity 1
   

Instantiability
  Don't modify for this example.

Specify whether to create a separate ow for each instance of the item on the order
line. If the quantity of the component is greater than one, and if Instantiability is Yes,
then use a separate instance for each assemble-to-order ow.

For example, assume you add an order line for the CTO_474000 with a quantity of 12,
and Instantiability is.

• Enabled. Create 12 separate ows and set the quantity on each ow to 1. Enable
Instantiability when each item requires a slight variation that the ow must fulll.
For example, the item is a personal computer that includes two hard drives, and
you must serialize each drive. For another example, the item is a cell phone and
you must provision a unique telephone number for each phone.

1264
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Aribute Value

• Not enabled. Create one ow and set the quantity on the ow to 12.

4. Repeat step 3 for the CTO_474102 option.


5. Click Done, then click Save > Save and Close.
6. Repeat these steps but create the memory hierarchy.
CTO_474200
CTO_474201
CTO_474202

7. Repeat these steps but create the hard drive hierarchy.


CTO_474300
CTO_474301
CTO_474302

Create the Model


Create the CTO_474000 model so it works in an assemble-to-order ow.
1. On the Product Information Management page, click Tasks > Create Item.
2. In the Create Item dialog, set values, then click OK.

Aribute Value

Organization V1
   

Create New Selected


   

Number of Items 1
   

Item Class My Laptop


   

Template ATO Model


   
Move ATO Model from the available list to the selected list.
 
Make sure the selected list contains only ATO Model.
 

3. On the Create Item page, set values, then click Save.

Aribute Value

Name CTO_474000
   

Description Build My Laptop


   

1265
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Aribute Value

Item Status Active


   

Lifecycle Phase Design


   

User Item ATO Model


   

Pack Type Leave empty


   

4. Click Specications, then set values. Use these values for an assemble-to-order ow.

Aribute Value

Structure Item Type Model


   

Autocreated Conguration No
   

Pick Components No
   

Assemble to Order Yes


   

Build in WIP Yes


   
Set it to Yes for an assemble-to-order item that you will make.
 

If you were seing up a pick-to-order ow, you would use dierent values.

Aribute Value

Pick Components Yes


   

Assemble to Order No
   

Build in WIP No
   

5. Click Sales and Order Management, then set values.

1266
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Aribute Value

Customer Ordered Yes


   
Customer Orders Enabled If you set these aributes to No, the ow will fail in Order Management.
   
Order Management Transaction
Enabled
 

Back-to-Back Enabled
  Yes

This aribute allows Supply Orchestration to procure the item in a back-to-back ow, such as
buy or make.

◦ Set to Yes for an assemble-to-order item.

◦ Set to No for pick-to-order. You can enable the congure options for back-to-back in
a pick-to-order ow, but not the model.

Shippable
  Yes

Note.

◦ Set to Yes for an assemble-to-order model. Order Management views the model as
the item. The congured item is an aribute on the model. So you must make the
model is shippable.
◦ Set to No for a pick-to-order model. Each item in the pick-to-order model is shippable,
but the pick-to-order model only represents the collection of items to ship. It isn't
shippable.

Ship Model Complete


  No

Note.

◦ Set to No for assemble-to-order because an assemble-to-order model is a single item.

◦ Set to Yes for pick-to-order because Order Management only supports shipping all
pick-to-order items together from the same warehouse.

Invoiced Yes
   
If you set this aribute to No, then the ow won't send any details to Accounts Receivable.
 

6. Click Planning, then set values.

Aribute Value

Planning Method aribute in the MPS Planning


MPS MRP Planning area  
  If you set it to MPS Planning or MRP Planning, then the model, option classes, options, and
components display in Planning Central.
 
For details, see the Item MRP and MPS Planning Specications topic.

1267
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Aribute Value

Forecast Control Consume Then Explode


   
Use this value if you intend to forecast the model. For details, see the Forecast an Assemble-
to-Order Item topic.
 

7. Click Purchasing, set values, then click Save.

Aribute Value

Purchasable Yes
   
Set to Yes for the model, each option class, and each option.
 

List Price 100


   
Purchasing uses this value as the default purchase price in the purchase order. It applies only
when you create a blanket purchase agreement with your supplier. It has nothing to do with
set ups you make in the Pricing Administration work area.
 
Set a value for the model and each option, but not the option classes.
 
For details, see the Create Purchase Orders for Congured Items topic.
 

8. Add a structure.

◦ Click Structures, then click Actions > Create.


◦ In the Create New Structure dialog, set the value, then click OK.

Aribute Value

Name Primary
   

◦ Click Save.

Add Classes to Your Model


1. Add the CTO_474100 class.

◦ On the Edit Item page, on the Structures tab, in the Item Structures list, in the Name column, click
Primary.
◦ On the Edit Item Structure page, click Actions > Select and Add.
◦ In the Select and Add dialog, search for the value.

1268
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Aribute Value

Item CTO_474100
   

◦ Click the row that contains CTO_474100 in the search results, then click OK.
◦ On the Edit Item Structure page, click the row that contains CTO_474000 in the Item column.
2. Repeat step 2 to add the memory class, CTO_474200.
3. Repeat step 2 to add the hard drive class, CTO_474300.
4. Click Done, then click Save.
5. Add a picture of your model.

◦ On the Edit Item page, in the large empty area under the page name, under the text No items to display,
next to the text None, click the plus sign.
◦ In the Aachments dialog, click Browse to locate a le that contains an image of your model, click OK,
then click Save.

Associate Your Model with an Inventory Organization


1. Add the association.

◦ On the Edit Item page, click Associations.


◦ Click Actions > Select and Add.
◦ In the Select and Add dialog, search for an inventory organization, then click Apply > Done.

Aribute Value

Organization M1
   

Organization Name Seale Manufacturing


   
Note: Make sure the organization you choose as an inventory organization.
If it isn't, then it won't display when you create the work denition. For
details, see the Inventory Organizations topic.
 

◦ Click Save > Save and Close.


2. Create the structure in the M1 version from the structure you created in the V1 version.

◦ On the Manage Items page, open the CTO_474000 (M1) version of your model for editing.

Its typically the second row in the results.


◦ On the Edit Item: CTO_474000y (M1) page, click Structures, then click Actions > Create from Common.

You add the structure from the V1 version you created earlier. In this example, the V1 version is the
master organization. This way, you use a single structure for all classes and options in the congured

1269
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

item, which helps manage and maintain the item. For example, if you update the structure in V1, then
Product Information Management updates the structures that reference V1.

Don't use Actions > Create. If you do, you will be creating a separate structure for the M1 version.

For details about master organizations, see the Item Organizations topic.
◦ In the Create New Item Structure from Common dialog, set values, then click OK.

Aribute Value

Organization Name Vision Operations


   

Item CTO_474000
   

Structure Name Primary


   

Common Structure Levels All Levels


   

◦ In the Information dialog, click OK.


◦ Click Save > Save and Close.

Verify Your Set Up


1. Sign into Order Management and create a sales order.

Aribute Value

Customer Computer Service and Rentals


   

2. On the catalog line, enter the value.

Aribute Value

Item CTO_474000
   

3. Wait for the search results to display, then verify that the catalog line displays the Congure and Add buon.

Congure and Add displays only for a congured item.

1270
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

4. Click Congure and Add, then verify the Congure page.

Note.

• Verify that the hierarchy on the Congure page reects the hierarchy you set up in Product Information
Management.
• Verify that you can choose one, and only one congure option in each class.
• Notice there's no pricing. You set it up in the Set Up Pricing for Conguration Models topic.

1271
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Set Up Numbers for Conguration Models


Set up the item class so that the item name for each congured item is unique. A unique name can be useful to help
track and manage each item.
Here's what your setup looks like after you complete the procedure.

Note.

• You use the Edit Item Class page in the Setup and Maintenance work area to specify the number at design time.
• Order Management displays the number in the Conguration Item aribute on the sales order at run time.

1272
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Let's say you need to add a sux to the item name for each unique conguration of item CTO_474000. You need to
start the sux with the number 100, increment it by 1 each time a user orders the item, and use a hyphen (-) to separate
the sux from the name. For example, here's the name that the ow creates the rst time the user adds the item.
CTO_474000-100

where
• CTO_474000 is the name of the congured item
• - (the dash) is the delimiter
• 100 is the starting number of your sequence

Here's the name for the next time a user adds the item.
CTO_474000-101

The number is unique across order lines, sales orders, and users.

Summary of the Setup


1. Get the name of the class.
2. Modify the class.
3. Verify your setup.

Get the Name of the Class


1. In the Product Information Management work area, click Tasks > Manage Items.
2. On the Manage Items page, search for CTO_474000, then open it for editing.
This topic assumes you already created the CTO_474000. For details, see the Create Conguration Model topic.
3. On the Edit Item page, note the value in the Item Class aribute.
Assume the class for the CTO_474000 is named My Laptop.

Modify the Class


1. In the Setup and Maintenance work area, go to the task.
◦ Oering: Product Management
◦ Functional Area: Items
◦ Task: Manage Item Classes
2. On the Manage Item Classes page, in the search results list, search for, then open the My Laptop class for
editing.
3. On the Edit Item Class page, click Item Management, then set values.

Aribute Value

Item Number Generation Method User Dened


   
This means you, the administrator, denes numbering. Not the end-user who creates the
sales order.
 

Congured Item Number Generation Sequence


Method  

1273
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Aribute Value

4. In the Details area, set values.

Aribute Value

Starting Number 100


   

Prex Type Model Item Number


   
Specify what displays before the starting number.
 

Increment By 1
   

Sux Type None


   
Specify what displays after the starting number.
 

Delimiter Hyphen
   
Specify the character that separates the starting number from the prex or the sux.
 

5. Click Save and Close.

Verify Your Setup


1. Go to the Order Management work area and create a sales order.
2. Add the CTO_474000 item to order line 1.
3. Add the CTO_474000 item again, but this time add it to order line 2. Set the options for CTO_474000 on order
line 2 dierent that the options you set for it on line 1.
4. Click Submit.
5. Click Actions > Switch to Fulllment View.
6. On the Order page, click Fulllment Lines.
7. Click the row that contains 1-1 in the Fulllment Line column.
8. In the Aributes area, click Item Details, then notice that the value of the Conguration Item aribute is
CTO_474000-100.
9. Click the row that contains 2-1 in the Fulllment Line column.
10. Notice that the value of the Conguration Item aribute is CTO_474000-101.
You can see the number throughout the congure-to-order ow:

• In fulllment views and the Availability Options area in the Order Management work area.
• In the Item column of the Supply Lines area of the Supply Order Details page in the in the Supply Orchestration
work area.
• In the Item column of the Review Dispatch List in the Inventory Management work area.

1274
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Set Up Pricing for Conguration Models


Use the Pricing Administration work area to set up pricing for your conguration model.
Suppose you must add your new model to the Corporate Segment Price List, and you already set up Pricing so it uses
this price list for your Computer Service and Rentals customer.

You use the Pricing Administration work area to set up pricing for the conguration model that you create in the
Product Information Management work area.

For details about price lists, see the Manage Price Lists topic.

1275
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Do these steps to set up pricing for conguration models.

1. Sign in with pricing administrator privileges.


2. In the Navigator, click Order Management > Pricing Administration.
3. Click Tasks > Manage Price Lists.
4. On the Manage Price Lists page, search for Corporate Segment Price List, then open it for editing.
5. Add the charge for each item.

◦ On the Edit Price List page, in the Search Results area, click Actions > Add Row, then search for the item.

Aribute Value

Item CTO_474000
   

◦ Wait for the search results to display the description, then set Pricing UOM to Each.
◦ Click Create Charge, scroll down, set values, then click Save.

Aribute Value

Pricing Charge Denition Sale Price


   

Calculation Method Price


   

Base Price 100


   

Start Date Choose the current date.


   

◦ Repeat this step for each charge.

Here's the pricing you set up when you visualized the hierarchy in the Set Up Congure-to-Order topic.
Use the same values for each aribute except for Base Price.

Item Description Base Price

CTO_474100 Build My Laptop 100


     

CTO_474101 14 Inch Laptop Screen 200


     

CTO_474102 15.6 Inch Laptop Screen 300


     

CTO_474201 8 GB Memory 5
     

CTO_474202 12 GB Memory 10

1276
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Item Description Base Price

     

CTO_474301 1 TB Hard Drive 50


     

CTO_474302 2 TB Hard Drive 100


     

Your set up should look like this.

1277
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

6. Save your changes.


7. Verify your set up.
Verify Your Set Up
1. Use another browser to sign into Order Management, create a sales order, then search for CTO_474000 on the
catalog line.
Notice that your design time set up on the Edit Price List page in Pricing Administration displays on the order
line of the sales order in Order Management at run time.

2. Verify that the catalog line in Order Management displays the base price you set for the CTO_474000 in Pricing
Administration, which is $100.
3. Click Congure and Add, then verify that each item contains the pricing you set up in Pricing Administration.

1278
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Notice that your design time set up on the Edit Price List page in Pricing Administration displays on the
Congure page of the sales order in Order Management at run time.

For example, verify that the price for the 15.6" screen is $300.
4. Click Finish and Review, verify the summary displays the correct pricing for your choices and calculates the
correct total, then click OK.
5. Click Submit to send your sales order to order fulllment.

1279
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Specify Catalog and Category for Conguration Models


A catalog is a collection of categories you use to classify your model and organize it in a hierarchy. Product Information
Management associates each item it creates with the categories you set for the model.

Global Order Promising uses the category when it runs the available-to-promise rule for your model. The category helps
Promising to recognize the congured item.
• You must assign at least one catalog that the Catalog for Sourcing Assignments prole in Promising contains.
Supply Orchestration sends a request to Product Information Management to create the congured item, then
copies the catalog to the item when Product Information Management creates the item.
• In this example, Global Order Promising uses the predened GOP_Category (Global Order Promising) to assign
the congured item to the rule.

1280
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

• Make sure you assign each component in your model to an available-to-promise rule or associate it with a
catalog that you assign to an available-to-promise rule.
• If you don't set up the catalog and category correctly, the ow will usually create the congured item, but other
downstream processing might fail, such as scheduling. For details, see the Troubleshooting Congure-to-Order
topic.
• The Product Information Management work area might automatically add catalogs and categories to your
model depending on how you set up the work area. It might still be necessary to add a catalog to support your
congure-to-order ow.

For details, see the Relationship Between Categories and Catalogs topic.

Try it.

1. Identify the category you must use.

◦ In the Navigator, click Global Order Promising.


◦ Click Tasks > Manage Planning Prole Options.
◦ On the Manage Planning Prole Options page, search for the value.

Aribute Value

Prole Option Code MSC_ SRC_ ASSIGNMENT_ CATALOG


   

◦ In the search results, in the Prole Values area, note the value.

Aribute Value

Prole Value GOP_Catalog


   
This aribute identies the catalog that Promising uses when assigning an assignment
set. You specify this value in the Catalog aribute on your model in Product
Information Management.
 
If you change the Prole Value, then you must specify your value on the model. For
example, if you set Prole Value to my_value, then you must set the Catalog aribute
on your model to my_value.
 
GOP_Catalog is an example. You can add a catalog in the Prole Values list and use it
instead of GOP_Catalog.
 

2. Add the category to your item.

◦ In the Product Information Management work area, click Tasks > Manage Items.
◦ Search for, then open your model, such as CTO_474000 for editing.
◦ On the Edit Item page, click Categories.
◦ Click Actions > Add Row, set values, then click Save.

1281
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Aribute Value

Catalog GOP_Catalog
   

Category GOP_Category
   

3. Collect data and refresh the server. See the Collect Planning Data for Congured Items topic.
Here are the catalogs that the ow copies to the congured item.

◦ Inventory
◦ Purchasing
◦ Planning
◦ Cost
◦ Order Entry
◦ Product Line Accounting
◦ Asset Management
◦ Distributed Order Orchestration
◦ Order Capture
◦ Pricing
◦ Congurator
◦ Supply Chain Financial Flow Orchestration

Collect Planning Data for Congured Items


Collect planning data at various points of your set up process, and also after you nish set up.

Collect Setup Data


Collect setup data each time you.
• Create or modify a model.
• Modify the item, item structure, catalog, or work denition.
• Set up a new item in the Product Information Management work area.

Do the work described in the Collect Planning Data for Order Management topic. Make sure you include entities when
you run the Collect Planning Data task.

Aribute Value

Items You must include these entities for each model.


   
Item Structures
 

1282
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Aribute Value

Work Denitions
 

Collect Runtime Data


Periodically collect data for each new congured item your users add when they create a sales order. Collection gets the
on-hand quantity for return orders and canceled order. The quantity aects planning. Specify aributes when you do
the Supply Planning Data task.

Aribute Value

On Hand Promising uses this entity to get the inventory that's in stock for the model. If all components
  in the congured item aren't in stock, then Promising won't nd availability for the model.
 
For example, assume the schedule requires you to build the item within ve days to meet the
delivery date. Promising examines the build schedule for each component, the current backlog
of purchase orders for component x, and determines component x isn't available for your
order until the sixth day.
 

Purchase Orders and Requisitions Add these entities so Global Order Promising can get availability across the entire supply chain.
   
Transfer Orders
 
Work Order Supplies
 

Don't use templates that the dialog displays, such as Dynamic Data for Supply Planning. The templates don't apply for
congure-to-order.

Make sure you refresh the server.

Related Topics
• Collect Planning Data for Order Management

Create Promising Rules for Congured Items


Use an available-to-promise (ATP) rule and sourcing rule to promise your congured item in dierent ways.
At run time, Order Promising determines the lead time for the model and components, depending on the option classes
and options your customer chooses. Here's how Promising does it.
• Examines various paths in the item structure and determines the longest path.
• Considers xed and variable lead times for items across the structure. The lead time for the model inuences
order promising behavior. For example, if a sales order requests a model but no supply exists, then Promising
makes sure it promises the sales order only on or after the model lead time.

Set up Order Promising to promise a pick-to-order model.


• Make sure you set the Ship Model Complete aribute to Yes on the model in Product Information Management.
• Make sure all components will be available on a specic date in the specied warehouse so Promising can
promise the model for the date.

1283
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

• If a delay occurs in receiving a component in the warehouse at some later time, then a person in shipping might
decide to ship only the parts of the congured item that are available. You might need to do more processing to
ship the remaining part of the congured item that doesn't involve promising.

This section describes how to set up rules for a congured item. For more details about rules, see the How Order
Promising Rules Work Together topic.

Assume you must create an available-to-promise rule for the CTO_474000 model. For details about this model, see the
Create Your Conguration Model topic.

Try it.

1. Go to the Global Order Promising work area, then click Tasks > Manage ATP Rules.
2. On the Manage ATP Rules page, click Actions > Create, then set values.

Aribute Value

Name ATP rule for Build My Laptop


   

Promising Mode
  Choose a value.

◦ Supply Chain Availability Search. Consider supply for the conguration components
in your model when promising availability.
Choose this value for most congured items.
You must use this value for a back-to-back ow.
◦ Lead Time Based. Use this value when the supply chain for your item is reliable and
predictable.
◦ Innite Availability Based. Use when your item is always available.

Search Components and Resources Enable it.


   
Allow Promising to consider components and resources when promising an assemble-to-
order model.
 
If you source the item through a back-to-back ow, then you must enable this option.
Enabling produces the planning recommendation that the ow needs to create the supply
order.
 

User Dened Fence in Days Specify the point in time when the ow can consider that the congured item is always
  available.
 
To make sure processing for an advance order is timely, set your time fence to a lead time
that exceeds your typical lead time.
 

For this example, enable all aributes in the Supply Types area and Demand Types area. Global Order
Promising will consider each type you chose when it analyzes your supply chain.

In your actual deployment, disable aributes you know aren't viable.


3. Click ATP Rule Assignment, click Actions > Add Row, then set values. Add a separate row for the model, for
each option class, and each congure option.

1284
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Assignment Basis Assigned-to Item

Item CTO_474000
   

Item CTO_474101
   

Item CTO_474102
   

Item CTO_474201
   

Item CTO_474202
   

Item CTO_474301
   

Item CTO_474302
   

Item CTO_474100
   

Item CTO_474200
   

Item CTO_474300
   

Note.

◦ You must assign a rule to the model, each option class, and each congure option in your model at some
hierarchical level.
◦ You typically assign at the Item level.
◦ You typically use the same rule for model, classes, and options. You can use dierent rules, but using the
same rule simplies set up, maintenance, and troubleshooting.
4. Click Actions > Add Row, then set values.

Assignment Basis Assigned-to Item Category

Category GOP_Category
   

Note.

◦ This step assigns your rule at the Category level so the same rule can recognize each instance of your
congured item that Product Information Management creates at run time, such as CTO_474000-100
and CTO_474000-101.

1285
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

◦ Supply Orchestration associates the congured item that it creates at run time with the same category
you set for the conguration model in Product Information Management at design time. Downstream
processes also use the same catalog at run time.

Related Topics
• How Order Promising Rules Work Together
• Set Up Promising and Sourcing Rules for Order Management

Create Sourcing Rules for Congured Items


Create a sourcing rule to specify where and under what circumstances to make your model and its components
available to your customer.
Assume you need a sourcing rule that sources the Build My Laptop model from Seale Manufacturing. Seale
Manufacturing stocks the required components and the congure options. Their job is to assemble the components
according to choices your user makes in the sales order.

Try it.
1. Go to the Global Order Promising work area, then click Tasks > Manage Sourcing Rules.
2. On the Manage Sourcing Rules page, Click Actions > Create, then set values.

Aribute Value

Name Sourcing rule for Build My Laptop


   

Organization Assignment Type


  Local

Set to.

◦ Global when you must specify where to fulll and ship the sales orders. You don't
specify an organization to create supply. Instead, you specify a transfer or buy source.
Use buy for a drop ship supplier.
◦ Local when you must specify how to create supply and the organization that creates
it.

Organization Seale Manufacturing


   

3. In the Sourcing Rule Eective Dates area, click Actions > Add Row, then set the start date.
4. In the Eective Start Date area, Click Actions > Add Row, then set values.

Aribute Value

Type Make At
   
Set to Make At or Buy From for an assemble-to-order model, such as the Build My Laptop
model.
 
You typically make an assemble-to-order item instead of keeping it in inventory. So, you
usually don't use Transfer From for the model.
 
Use Transfer From for a made-to-stock item, such as a component. For example, you don't
stock the laptop, but you probably would stock screens for the laptop.
 

1286
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Aribute Value

Global Order Promising enables Make At only when you set assignment type to Local.
 

Supplier If you create a global rule for a Buy From sourcing type, then you must specify values for
  these aributes.
Supplier Site  
  If your supply chain includes more than one supplier, then create a separate sourcing rule for
Supplier Site Source System each supplier. Add a separate row for each supplier.
   

Allocation Percent 100


   
In this example, you add only one row, so specify 100%.
 
If you add more than one row, then you can allocate demand across sources. For example,
if you add a row for Vision Manufacturing and set allocation to 70%, add another row for
Vision Distribution and set allocation to 30%, then Promising will use Vision Manufacturing
to promise 70% of the orders.
 

Rank 1
   
If you add more than one row, then you can specify the rank order to use for sources. For
example, if you add a row for Vision Manufacturing and set Rank to 1, add another row
for Vision Distribution and set Rank to 2, then Promising will use Vision Manufacturing to
promise the order rst. If Promising determines that Vision Manufacturing can't fulll the
order, then Promising will consider Vision Distribution.
 

Shipping Method Global Order Promising disables Shipping Method for a local rule. You can't edit it. Leave it
  empty for a global rule.
 
If you set a value for a global rule, you might get an error.
 
Don't set shipping method in this context because it species where supply originates, not
how to ship it to the customer.
 

Exclude for Options and Option Exclude options and option classes when promising a sales order. Exclude them for a Make
Classes At or Buy From sourcing type.
   
For example, exclude an item from planning when you know your source can't make it
because it includes toxic chemicals that the source isn't authorized to handle, or your
company limits production to only one specic site.
 
For another example, assume you know Seale Manufacturing created a large oversupply
of the CTO_474100 screen option class from a prior marketing campaign. You already
know supply is available. To improve planning performance, you decide to exclude it from
planning.
 

5. Click Save > Save and Close.


6. Assign your sourcing rule.

◦ Click Tasks > Manage Assignment Sets.


◦ On the Manage Assignment Sets page, click Actions > Create.
◦ On the Create Assignment Set page, set values.

1287
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Aribute Value

Name Assignment Set for Sourcing Rules


   

Catalog GOP_Catalog
   
Use the same catalog you use for your model in Production Information Management
and in your available-to-promise rule.
 

7. Click Actions > Add Row, then set values.

Aribute Value

Assignment Level
  Item

Note.

◦ Promising fullls your sales order only from the source that you assign to the
assignment set.
◦ Assign at least one sourcing rule at the global level so Global Order Promising can
use it to identify a ship-from location. If you don't, then your users must specify the
warehouse in every sales order.
◦ You must use the same ship-from and source in a congure-to-order make ow.

Item CTO_474000
   
Assign your model. In this example, CTO_474000 is the Build My Laptop model.
 

Sourcing Type Sourcing Rule


   

Sourcing Rule or Bill of Distribution Sourcing rule for Build My Laptop


   

1288
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Add More Assignments


You can add more than one sourcing rule and assign them dierently. Global Order Promising oers you a wide range
of choices.

For example, assume you create three dierent sourcing rules and assign them dierently according to item,
organization, and customer.

1. Assign the CTO_474000 Build My Laptop item, which is the model, to Sourcing rule for Build My Laptop.
2. Assign the CTO_474000 to Sourcing rule for Build My Laptop only if the customer is Computer Service and
Rentals.
3. Assign the CTO_474300 Hard Drive, which is an option class, to the Hard Drives sourcing rule, which is a rule
you set up that's optimized to source hard drives.

1289
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

4. Assign the CTO_474100 Screen, which is an option class, to the Monitor sourcing rule, which is a rule you set
up that's optimized to source monitors. Source the CTO_474100 only from D1 Denver Manufacturing when
running the sourcing rule.
If you add more than one assignment, then Global Order Promising considers the sourcing rule you set for the most
detailed assignment level rst. Here's a list of assignment levels you can use, listed from least detailed to most detailed.
For example, Region is more detailed than Global. If you add a global assignment and a regional assignment, then
planning runs the regional assignment rst, then the global assignment.

• Global
• Region
• Demand class
• Customer
• Customer and customer site
• Category
• Category and region
• Item
• Category and demand class
• Category and customer
• Category and customer site
• Item and region
• Item and demand class
• Item and customer
• Item and customer site

Troubleshoot Problems with Congure-to-Order


Troubleshoot problems that occur during setup or at run time in a congure-to-order ow.

Problems That Occur During Setup

Trouble Shoot

I can't nd an item when creating a The Work Denition work area only recognizes items that you associate with an inventory
work denition. organization. Make sure you add an inventory organization on the Associations tab in Product
Information Management for the model, each option class, and each congure option.

I search for my item in the Create


Work Denition dialog, but the search For details, see these topics.
can't nd it, or parts of my structure
are missing in the Work Denition • Create Your Conguration Model
work area. For example, I create • Inventory Organizations
an applicability rule, but the rule
editor doesn't display a congure
option, or I manually add rule text
and encounter an error.

1290
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Trouble Shoot

Assume you set up a hierarchy in


Product Information Management.

• CTO_474000 is the model


(computer)

◦ CTO_474300 is an
option class (hard drive)
• CTO_474301 is a
congure option
(1TB hard drive)

You associate CTO_474000 and


CTO_474300 with an inventory
organization, but don't associate
CTO_474301 with an inventory
organization.

You then manually add an


applicability rule.

ITEM='CTO_474000'.'CTO_474300'.'CTO_474301'

But when you click Validate, you get


an error.

The rule contains an invalid


item CTO_474301

I encounter an error when I use the Use the Associations tab in Product Information Management to add your inventory
Create Work Denition dialog. organization, open the new version that Product Information Management creates, then use
  the Structures tab to add your structure to the new version.
For Assemble to Order model CTO_  
474000 Primary item structure is not If you add the structure rst, Product Information Management creates a new version of your
available. item, appends (M1) to it, but doesn't copy the structure from the V1 version to the M1 version,
  and you must add the structure again to M1.
The structure isn't associated with an  
inventory organization.
 

An error occurs when I create an This error sometimes occurs if you navigate away from the rule editor and come back to it, or
applicability rule. add and remove rule text several times.
   
Aribute RuleText in RuleEO is Click Cancel on the Edit Work Denition Details page, reopen the work denition, then add
required. your rule.
   
I create an applicability rule, validate
it, and close the rule editor. I then
click Save to save the work denition,
but encounter an error.
 

The Product Information Try this.


Management work area doesn't
delete my items. 1. Click Tasks > Manage Delete Groups.
2. On the Manage Delete Groups page, search for and open your delete group.
3. Select your item, click Actions > Delete, then click Submit.

1291
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Trouble Shoot

4. Wait a few minutes for the delete to take eect.


I create items in the Product
Information Management work area.
During testing, I nd I need to revise For details, see the Group Deletions of Items, Structures, New Item Requests, and Change
some and delete others. I search Orders topic.
for my item on the Manage Delete
Groups, click Actions > Delete, add it
to a delete group, but it persists in the
work area.

The Manage ATP Rules page doesn't Collect data and refresh the repository. See the Collect Planning Data for Congured Items
contain my item. topic.
   
I add a catalog to my model. I search
the Manage ATP Rules page for my
item but the search doesn't return
anything.
 

I receive a warning when I use the In the Collect Planning Data dialog, change the Collection Type to Automatic Selection to let
Plan Inputs page to collect data. the server choose the data to collect. You can use Net Change the next time you collect data.
   
You requested net change
collections, but a prior targeted
collection was not performed for one
or more of the selected entities. Do
you want to continue?
 

Global Order Promising keeps This problem typically occurs in a test environment where your ow isn't nished yet or
giving available-to-promise Promising isn't refreshed. Promising identies on-hand quantities for the item and uses them
recommendations. to source supply until you exhaust the quantities.
   
I test my make or buy setup, but Examine and correct your inventory quantities, run collections, then run the Refresh and Start
Promising keeps giving available-to- the Order Promising Engine scheduled process.
promise recommendations.  
 

I add an extensible exeld to the Write a processing constraint on each extensible exeld so the constraint prevents Order
parent of my conguration model. Management from updating the child exelds during a revision.
I also add an extensible exeld to  
each child.
 
However, if the user creates a
revision, then Order Management
copies the value from the exeld on
the parent into the exelds on the
children, replacing whatever data was
in the exelds on the children. We
don't want this overwrite to happen.
 

Problems That Occur at Run Time

1292
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Trouble Shoot

Make sure you set the Optional aribute to Yes for each class that contains an option, and for
The Conguration page in the Order each option. For the option, you must set this aribute on the child structure. You can't set it
Management work area doesn't from the parent structure.
display the congure options.  

I set up my item in Product


Information Management. I create
a sales order in Order Management,
search for the item on the catalog
line, click Congure and Add, but
the conguration page displays
only the name of the item. It doesn't
display any components or congure
options.

The Order Management work area


doesn't display the transaction The Congurator Models work area doesn't come predened to include transactional
aribute. aributes. You must import the model so Order Management can populate them at run time.
 
Try this.

1. Go to the Congurator Models work area, click Tasks > Manage Snapshots, click
Actions > Import Model Item, then import your model.
2. Take action depending on whether your model is new or revised.

◦ New. Release the workspace.

◦ Revised.
• Update the item class.
• Add it and the model to an unreleased workspace.
• Release the workspace.

Order Management fails to create the


item. Try this.
 
I congure the item in Order 1. Make sure all applications and servers are up and running.
Management, then click Submit. 2. If the problem persists, there's probably a problem in your setup. Use the error message
Order Management displays an error to investigate the root cause of the error. Start with the Manage Items page in Product
message and sets the sales order Information Management.
status to Draft. 3. Resubmit the order in Order Management.
 
The assemble-to-order ow aempts
to create the congured item but
fails.
 

An exception occurs after i click For details on how to x this problem, see the Manage Exceptions for Congured Items topic.
Submit.  
 
I congure the item in Order
Management, then click Submit.
Order Management accepts the
conguration and sets the sales order
status to Processing.
 
The ow creates the congured item
but an error occurs in downstream
processing.
 

1293
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Trouble Shoot

An assemble-to-order ow doesn't


create a supply order. Dierent problems might cause this problem. They're similar to problems that occur in back-
  to-back fulllment with an item that isn't congured.

Here are some xes you can try.

• Run the scheduled process to release planning recommendations.


• Examine your available-to-promise and sourcing rules in Global Order Promising. Make
sure you aren't missing rules and that they don't conict with one another.
• Supply for a component in the congured item isn't available in the requested time
frame.
• Examine your work denition. Global Order Promising can't do a Make recommendation
if there's a problem in your work denition.
• Collect data for Global Order Promising.

Do the x, then release the planning recommendations to create the supply order.

The ow creates a purchase


requisition but doesn't create a If a blanket purchase agreement exists with the supplier, and if the ow sends a purchase
purchase order. requisition, then it normally creates the purchase order.
 
Try this.

1. Sign into the purchasing application and examine the state of the requisition. If an error
message indicates that pricing is missing, then a setup problem might exist in the item
denition.
2. Go to the Product Information Management work area, then click Tasks > Manage
Items.
3. Search for and open you item, then examine the item structure. Make sure the
Specications area for each component includes a price.
4. In Purchasing, make sure an approver approved the blanket purchase agreement. If not,
correct errors and resubmit it.

The ow fails to create a work order.


  Note.
I set up a pick-to-order model that
includes pick components and a child • You must create a sourcing rule, assignment set, and available-to-promise rule for an
assemble-to-order component. assemble-to-order model so the ow can do a supply chain search.
  • You don't need a sourcing rule for components that you keep on hand, but you must set
I successfully assign a Make At or Buy the ship date for the order schedule for them to Innite.
From sourcing rule for each of my • To schedule the work order on a specic ship date, you must maintain on-hand
options. I set the lead time for each inventory for the components or set up a sourcing rule.
item in the model to 0 days or empty • If you get the components through your own purchase order process or manually, and
at the organization level. if Global Order Promising must schedule the order in a specic period that isn't innite,
  then you must create a separate sourcing rule for your components and use innite
I notice that if on-hand availability availability in your available-to-promise rule.
doesn't exist for any pick-to-order or
assemble-to-order option, then the
ow fails to create a work order.
 
I wonder whether the ow expects
on-hand inventory to exist for all
items in the model before it creates
the work order.
 

Global Order Promising doesn't make Promising is only aware of on-hand quantities that you collect and refresh.
a recommendation.  

1294
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Trouble Shoot

  To collect on-hand quantities from your warehouse, run the scheduled process Refresh and
Inventory contains the on-hand Start the Order Promising Engine.
quantities for the congured item,  
but Global Order Promising doesn't
make an available-to-promise
recommendation.
 

I create a sales order that includes a


conguration model, click Submit, You set the User Item Type when you create the conguration model in Product Information
then encounter an error. Management. Its possible you chose a type that isn't enabled. For details, see the Create Your
  Conguration Model topic.
JBO-FND:::FND_ CMN_ SYS_ ERR:
FND-2An application error occurred. Try one of these xes.
Your help desk was notied. JBO-
FND:::FNDCMN_ INVALID_ ATTRB_ • Use a dierent value in the Template aribute when you create the conguration model.
API_SERV: The value of the aribute The Template aribute sets the value for the User Item Type aribute. Use a type that's
User Item Type is not valid. enabled, such as Finished Goods or ATO Option Class.
 
• Enable the lookup code for the User Item Type aribute that you're currently using.

Exception Messages
Here's an example exception message.

com.oracle.bpel.client.BPELFault: faultName: {{http://schemas.oracle.com/bpel/extension}remoteFault}


messageType: {{http://schemas.oracle.com/bpel/extension}RuntimeFaultMessage} parts:
{{ summary=<summary>oracle.fabric.common.FabricInvocationException: Unable to invoke endpoint URI
"http://scm-internal.oracleoutsourcing.com:10617/invUom/UnitOfMeasureService" successfully due to:
javax.xml.soap.SOAPException: javax.xml.soap.SOAPException: Bad response: 503 Service Temporarily Unavailable
from url

The text Bad response: 503 Service Temporarily Unavailable indicates that the web service isn't available. Its possible
something is restarting, such as the server, a component or system that the service calls, or the service itself. Wait a few
minutes, then click Resubmit.

If the message describes a setup problem, then x the setup, then Resubmit.

For details, see the Manage Exceptions for Congured Items topic.

Geing Help
It might be necessary to contact Oracle Support. If you do, here's an article on My Oracle Support that can help you
prepare.
• SRDC - Congure to Order : Data Collection for Congure to Order (Doc ID 2141338.1)

Related Topics
• Manage Exceptions for Congured Items
• Troubleshoot Order Management Setup

Other Setups
1295
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Work Denitions
Guidelines for Creating Work Denitions for Congured Items
Assemble-to-order in a make ow creates the work order for the congured item dynamically at run time according to
the primary work denition that you set up at design time.
Here's what Oracle Manufacturing Cloud does.
1. Receives a request to create a work order for a congured item:
2. Uses the work denition that you set up to create a work order.
Note.
• Manufacturing uses the assemble-to-order (ATO) model as the ordered item when it creates the customer
order. The item includes congure options that your user sets at run time.
• You must set up a work denition for the assemble-to-order model.
• You must set the structure name of the model to Primary in Product Information Management. If the name isn't
Primary, then you can't create a work denition for the model.
• Manufacturing currently supports work denitions for an assemble-to-order model only for discrete
manufacturing.

Create Work Denition


• Use the right side of the page in the work denition to view each level of the model.
• You can expand each option class and view the options in the class.
• Set Production Priority to 1.

Specify Operations
• You can assign the component of a model and a manufacturing resource to each operation.
• You can assign an option class, which will assign all of its components.
• You can apply an item to an operation only if the item is a component in the model.

To specify that the operation depends on the congure option, open your work denition for editing. On the Edit Work
Denition Details page, click your operation, click Actions > Edit, then, in the Edit Operation dialog, set the Option
Dependent aribute.

Value Description

Contains a check mark.


  The work order for the congured item includes the operation if.

• Your user chooses the congure option that the ow assigns to the operation.
or
• The ow meets the criteria you set up in the applicability rule for the operation.

Doesn't contain a check mark. The operation is required. The work order for the congured item always includes a required
  operation.
 
 

1296
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Specify Operations in the Hierarchy

You can assign each component to an operation from any level of the item structure.
• You can expand an option class to view the congure options that the class contains.
• You can expand a phantom to view the congure options that phantom contains.
• If you assign the parent, then you can't assign its children.
• If you already assigned the children, you can assign the parent, but the work denition will delete the child
assignments.
• You can choose to assign the option class or the options.
• For a phantom that isn't an assemble-to-order item, you can choose to assign the parent phantom or the
components.
• If you assign an option class to an operation that depends on an option, and if the user selects at least one
option in the class, then the work order for the congured item includes the operation that you specify in the
work denition.
• You can't expand a child assemble-to-order model.
• You must assign the entire quantity for the component to the operation.

◦ You can't update or split the quantity to more than one operation.
◦ You can't inverse the quantity, unit of measure, or yield.
◦ You can't assign an item that isn't part of the model structure.

Specify Child Models


If the supply type of a child model.
• Is phantom. You don't need to create a separate work denition for the child model. The work order for the
parent congured item includes the components of the congured item of the child model.
• Isn't phantom. You must create a separate work denition for the child model. Use Planning to create supply
for the congured item of the child.

Set Up Phantoms

A phantom is an item that you physically build but don't stock. If you specify an item as a phantom, and if your user
chooses the item, then manufacturing stores it as part of the structure.
• If you set the supply type for the component to Phantom in Product Information Management, then you can
expand the phantom and view its components in the work denition.
• You can keep expanding until you encounter a component that isn't a phantom.
• You can't expand a child model even if its supply type is Phantom.
• Manufacturing replaces each phantom with its physical counterpart at the next level of the hierarchy when
congure-to-order creates the work order.

For details, see the Overview of Phantom Explosion in Work Orders topic.

Apply Operation to Work Order


Use an applicability rule to assign an option-dependent operation.
• Specify the criteria that determines whether to include the operation in the work order.

1297
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

• Create a rule for a congure option, option class, transaction aribute, or a combination of them.
• Add a check mark to the Option Dependent option in the Option Dependent Details area. Enabling Option
Dependent turns on the Add icon. Click Add to open the Add Applicability Rule dialog.
• The Add Applicability Rule dialog displays the item structure for your model, but it only displays the congure
options.
• The dialog displays congure options and transaction aributes according to the date you select in the Date list
on the Edit Work Denition Details page. It doesn't options and aributes that aren't currently in eect.
• Expand each option class to view the congure options that the class contains.
• You can't expand a child model.

Transaction Aribute

If you use a transaction aribute in an applicability rule.


• Create the transaction aribute in Oracle Fusion Product Hub.
• Assign the application scope to Conguration Matching when you create the transaction aribute.
Conguration matching uses the value of the transaction aribute to determine whether the conguration
already exists. Manufacturing also uses the transaction aribute to identify the operations it needs to build the
congured item.
• Use the item class to apply the transaction aribute to the conguration model, congure option, or child
model. You associate a transaction aribute with an item class. Each item in the item class inherits the
transaction aribute.
• Assign either the congure option or the applicability rule to your option-dependent operation. Don't assign
both. If you assign both, then the work denition doesn't evaluate the rule.
• If your transaction aribute uses numeric data or string data, then make sure the validation type for the value
set is independent or subset.
• Expand the congure option in your rule to display the transaction aribute. Expand the transaction aribute to
display the aribute value.
• Use the internal name. The Add Applicability Rule dialog displays the display name of the transaction aribute.
You can translate the display name. If the value set that the transaction aribute uses is translatable, then the
item structure displays the internal name of the value and the translated value in parenthesis. For example,
internal name(translated value). The work denition uses the value of the internal name to evaluate the rule. It
doesn't use the translated value.

Operators

Use operators in the Rule Text window.


• Include a combination of items and transaction aributes.
• Use AND and OR conditions to create a complex rule.

Validate Your Rule

Click Validate to validate your rule syntax.

Use valid syntax.


• Use single quotation marks to enclose each item number.
• Use dot notation to separate each level of the hierarchy.
• Use upper case leers for each operator.

1298
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Keywords

Syntax Example Value

Use the ITEM keyword to specify


whether the item a model or option ITEM='CTO_474000'.'CTO_474300'.'CTO_474301'
class.
  where

• CTO_474000 is the name of the model


• CTO_474300 is the name of the option class
• CTO_474301 is the name of the congure option

Use the
TRANSACTIONALATTRIBUTE 'CTO_474000'.'CTO_474300'.'CTO_474301'. TRANSACTIONALATTRIBUTE ["Finish"] is equal
keyword to specify a transaction to "Mae"
aribute.
  where
Use double quotation marks to
enclose each transaction aribute • Finish is the name of the transaction aribute.
name and value.
• Mae is the value of the transaction aribute.
 

Operators

Numeric Aributes String Aributes

• Equal to • Equal to
• Not equal to • Not equal to
• Less than • STARTSWITH
• Less than or equal to • ENDSWITH
• Greater Than • CONTAINS
• Greater than or equal to • DOESNOTCONTAIN

Verify Assignments
Make sure you assign each component in your work denition. If you don't, the ow will fail to create the work order for
the congured item.
Go to the Edit Work Denition Details page, then click Actions > Export Operation Item Assignments. The export
saves the entire model structure to Microsoft Excel.

Examine the status in Excel. If the status of your conguration model is.
• Complete. You assigned all the required operations.
• Incomplete. Identify which part of the hierarchy you must assign, then assign it.

Assignment Status Description

Complete You assigned an operation to the parent and each child.


   

1299
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Assignment Status Description

Incomplete You didn't assign the parent and each child.


   

Explicit You assigned a child congure option.


   

Implicit You assigned the parent and the child inherited the parent assignment.
   

Modify Aributes
The work denition gets values for aributes from the model you create in the Product Information Management work
area.

• Basis
• Quantity
• Inverse Quantity
• UOM
• Item Yield
• Planning Percent
• Optional
• Supply Type

You can't modify any of these aributes in the work denition except for Supply Type.

Create Work Denitions for Congured Items


Use the Work Denition work area to specify the operations needed to build the conguration model you set up in the
Production Information Management work area, and the resources needed to do the operations.

1300
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

For example, specify assemble, test, and pack operations for the CTO_474000 model.

For background details, see the Overview of Work Denitions topic.

This example assumes you already set up the work centers and you create your own supply. You don't get supply from
a supplier.

Try it.

1. In the Navigator, click Work Denition.


2. Create a name for your work denition.

◦ On the Overview page, click Tasks > Manage Work Denition Names.

1301
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

◦ On the Manage Work Denition Names page, click Add Row, set values, then click Save and Close.

Aribute Value

Display Name Congurable Laptops


   

Internal Name Congurable Laptops


   

Description Work denition for congure-to-order laptop computers.


   

Type Standard
   

Used in Planning Enabled


   

1302
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

3. Create the work denition.

◦ Click Tasks > Manage Work Denitions.


◦ On the Manage Work Denitions page, click Actions > Add.
◦ In the Create Work Denition dialog, set values, then click Next.

Aribute Value

Item CTO_474000
   

Name Congurable Laptops


   

Production Priority 1
   
Priority 1 species to use the primary work denition.
 

◦ Click Add Row and set values.

1303
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Aribute Value

Sequence 10
   

Operation Type In-house


   

Name Assemble
   

Work Center Assembly


   

◦ Click Add Row and set values.

Aribute Value

Sequence 20
   

Operation Type In-house


   

Name Test
   

Work Center Test Bay


   

◦ Click Add Row, set values, then click Save and Edit.

Aribute Value

Sequence 30
   

Operation Type In-house


   

Name Pack
   

Work Center MFGPACKING1


   

Count Point Enabled


   
Use this aribute to specify that the last step in the sequence is done.
 
You must specify Count Point on the last step. You can also specify it on other steps to
indicate activities that must nish for them.
 

1304
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Add Resources to Operations


You aren't required to add resources to operations, but you can if you need to specically control who does the
operation. You use resources to specify how.

Try it.

1. On the Edit Work Denition Details page, in the area that displays the item structure, click Resources.
2. Add resources to your rst operation.

◦ Click the Assemble operation.


◦ Click the Kit Assembly Labor resource, drag it, then drop it onto the Assemble operation.

1305
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Each work center has resources that do the operation. Your work center might use resources that are
dierent than this example uses. For details about how to create a work center and it's resources, see the
How You Manage Work Centers topic.
◦ In the Assign Operation Resource dialog, set values, then click OK.

Aribute Value

Units Assigned 1
   

Basis Variable
   
This aribute determines whether you need more resources as the quantity increases
when you assemble the item. You typically need more resources to assemble a laptop
as quantity increases, so set it to Variable.
 

Usage 1
   

Inverse Usage 1
   

Scheduled No
   

Principal Not checked


   
Specify priority when you use the same sequence number for more than one resource.
In general, don't use the same sequence number for more than one resource. Instead,
sequence them consecutively so it isn't necessary to specify a principal.
 

Charge Type Manual


   

Activity Setup
   

For details about these aributes, see the Edit Operation Resources section in the How You Edit Work
Denitions topic.
◦ Click the Final Assembly Labor resource, drag it and drop it onto the Assemble operation, set values in
the dialog, then click OK.
3. Repeat step 2 for the Test operation.
4. Repeat step 2 for the Pack operation.
Your set up should like something like this.

1306
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

1307
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Apply Operation to Work Order


As an option, create a rule that determines when to do an operation in the work order that creates the congured item.

Assume you must do a performance test that depends on a congure option your user sets in Order Management. You
can create two dierent operations.
• Do the 1 Terabyte Hard Drive Test operation only if the user chooses the 1 terabyte hard drive.
• Do the 2 Terabyte Hard Drive Test operation only if the user chooses the 2 terabyte hard drive.

Try it.
1. In the Navigator, click Work Denition.
2. Create a work denition for the CTO_474000 item.

1308
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

3. Add two operations.

Aribute Value

Name Test 1 TB Hard Drive


   

Name Test 2 TB Hard Drive


   

4. Add a test for the 1 TB hard drive.

◦ On the Edit Work Denition Details page, click the Test 1 TB Hard Drive operation, then click Actions >
Edit.
◦ In the Edit Operation dialog, add a check mark to Option Dependent.
◦ Next to Applicability Rule, click Add.
◦ In the Applicability Rule dialog, in the Item Structure area, click the CTO_474300 Hard Drive component.
◦ Drag and drop the CTO_474301 1 TB Hard Drive option onto the Rule Text area.

Notice the text area adds some code.

ITEM='CTO_474000'.'CTO_474300'.'CTO_474301'

CTO_474000 is the model, CTO_474300 is the option class for the hard drive, and CTO_474301 is the 1
TB hard drive.

Here's the hierarchy the code uses.

ITEM='model'.'option class'.'option'

◦ Click Validate, then make sure the validation succeeds.

If it doesn't, see the Troubleshoot Problems with Congure-to-Order topic.


◦ Click OK, notice that the Edit Operation dialog displays your rule text, then click OK.
5. Repeat step 4 for the 2 TB hard drive, except add your test to the Test 2 TB Hard Drive operation, and drag the
CTO_474302 item when you create the rule.
6. On the Edit Work Denition Details page, click Save.
7. Test your rule.

◦ In the Navigator, click Order Management.


◦ In the Order Management work area, create a sales order, add the CTO_474000 item, choose the 2 TB
Hard Drive option, add it to an order line, then click Submit.

Forecast
Forecast an Assemble-to-Order Item
Set up a forecast according to your organization for an assemble-to-order item.
• Use the Planning Central work area to set up the forecast.

1309
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

• Create a statistical forecast for an assemble-to-order item. Use shipment history and booking history to do the
forecast.
• Consume the forecast for your model. Each sales order that contains your congured item consumes the
forecast.
• Explode the forecast that remains after the model is done consuming. Generate a production forecast for your
option classes and options.

Planning Central displays the forecast for the options, option classes, and child models as a production
forecast. It indicates the forecast that remains after planning consumes the forecast for the model that your
sales orders needs to fulll the congured item.

Planning uses the planning percent you set on the class and option to forecast demand. You specify the
percent when you set up the structure for the item in the Product Information Management work area.
• Create supply for your forecast according to organization. Set up a planning sourcing rule that sources
components and subassemblies.
• Planning uses the xed and variable lead times you set up on the model to oset the production forecast it
creates for the options.

1310
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Here's an example.

Assume you need organization M1 to manufacture an assemble-to-order model that includes a hierarchy.

• Laptop Computer Model

◦ Camera Option Class

• Dual Camera Option


• Single Camera Option
◦ Speaker Option Class

• Built-in Option

1311
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

• External Option

Assume your market research indicates you expect.


• 100% demand for the camera. Everybody wants one.
• 60% demand for a dual camera and 40% for a single camera.
• 80% demand for high-delity speakers.
• Of the 80% who want high-delity, 70% want built-in speakers, and 30% want external speakers.

Assume you set up the model.

Object Forecast Control Planning Percent

Laptop Computer Model Consume Then Explode Not applicable.


     

Camera Option Class Consume Then Explode 100


     
 

Dual Camera Option Consume Then Explode 60


     

Single Camera Option Consume Then Explode 40


     

Speaker Option Class Consume Then Explode 80


     

Built-in Option Consume Then Explode 70


     

External Option None 30


     

The congured item in the sales order consumes part of the forecast. Planning explodes what's left over according to
your set up. Assume 1,000 units are available to explode after the sales order consumes the congured item.

Here's the math.

Object Math

Camera Class The model consumes one unit of the camera class for each laptop. You expect 100% of your
  customers will want a camera. So planning calculates the production forecast at 1,000.
 
100% multiplied by 1,000 units that are available to explode equals 1,000.
 
1,000 multiplied by a quantity of one equals 1,000.
 

Dual Camera Option The dual camera option needs two cameras for each laptop, so the model consumes two units.
   
You expect 60% of your customers will choose this option. Planning calculates the forecast at
1,200.
 

1312
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Object Math

60% multiplied by 1,000 units in the camera class equals 600.


 
600 multiplied by a quantity of two equals 1,200.
 

Single Camera Option The single camera option needs only one camera for each laptop, so the model consumes one
  unit.
 
You expect 40% of your customers will choose this option. Planning calculates the forecast at
400.
 
40% multiplied by 1,000 units in the camera class equals 400.
 
400 multiplied by a quantity of one equals 400.
 

Speaker Class The model consumes one unit of the speaker class for each laptop. Assume the speaker class
  allows your user to choose high-delity speakers, either built-in or external. You expect 80% of
your customers will want high-delity speakers. Planning calculates the forecast at 800.
 
80% multiplied by 1,000 units that are available to explode equals 800.
 
800 multiplied by a quantity of one equals 800.
 

Built-in Option You need only one set of built-in speakers for each laptop, so the model consumes 1 unit of the
  built-in option.
 
You expect 70% of your customers will choose this option. Planning calculates the forecast at
560.
 
70% multiplied by 800 units in the built-in class equals 560.
 
560 multiplied by a quantity of one equals 560.
 

External Option You need only one set of external speakers for each laptop, so the model consumes 1 unit of
  the external option.
 
You expect 30% of your customers will choose this option, but you set the Production Forecast
to None for this option. So planning doesn't calculate a forecast.
 

Assume you set the xed lead time for the model to 5 days and the variable lead time to 0. Here's how planning
explodes the forecast that's due on day 15.

Object Production Forecast Date Quantity, in Units

Model Day 15 1000, after consuming forecast for the


    model
 

Camera Class Day 10 1000


     

Dual Camera Day 10 1200

1313
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Object Production Forecast Date Quantity, in Units

     

Single Camera Day 10 400


     

For background details, see the Forecasting for CTO Products topic.

Weight Congure Options When Forecasting Demand


Specify the percent to use when forecasting demand for a congure option.
Assume your market research indicates you expect demand will be about 70% for the 14" screen option and 30% for the
15.6" screen option. Here's your set up.

Note.

• The sum of the values you set for congure options in a single class must equal 100%.
• The Planning Central work area uses the value you set when it forecasts demand.

You will modify the CTO_474000 model. For details about how to set it up, see the Set Up Congure-to-Order topic.

Try it.

1. Navigate to your congure option.

◦ In the Product Information Management work area, click Tasks > Manage Items.

1314
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

◦ On the Manage Items page, search for the CTO_474000 (M1) conguration model, and open it for
editing.
◦ On the Edit Item page, click Structures, then click Primary.
◦ On the Edit Item Structure page, click View, then make sure Component Details contains a check mark.
◦ Expand the Build My Laptop model, then click the CTO_474100 screen option.
◦ On the Edit Item CTO_474100 page, click Structures.
◦ In the Name column, click Primary.
2. Set the value for the 14" screen.
◦ On the Edit Item Structure CTO_474100 - Primary page, expand the CTO_474100 screen model, click the
row that contains 14 Inch Laptop Screen in the description column, then click Actions > Edit.
◦ In the Edit Components Dialog, set the value, then click OK.

Aribute Value

Planning Percent 70
   

3. Repeat step 2 but set the value for the 15.6" screen.

Aribute Value

Planning Percent 30
   

4. Click Done.
5. On the Edit Item CTO_474100 page, click Save and Close.
6. On the Edit Item Structure: CTO_474000 - Primary page, expand the screen option, then verify your values.

Object Planning Percent

CTO_474100 Screen 100


   

CTO_474101 14 Inch Laptop Screen 70


   

CTO_474102 15.6 Inch Laptop Screen 30


   

7. Click Done, then click Save.

Capture Transaction Details


Guidelines for Capturing Transaction Details
Create a transaction aribute to capture details in an Oracle Cloud application where the details change for each
transaction.

1315
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Order Management Cloud uses a sales order to record details about a transaction you make between you and your
customer. Use a transaction aribute to capture details that are specic to each sales order transaction. For example,
assume the item is Transmission Service, and License Plate Number is the transaction aribute. The license plate
number changes for each transmission service transaction, but you can only capture the license plate number at run
time because its specic to each customer. You don't know who the customer is at design time so you can't use an
extensible exeld that references a predened value set.

You use an item class to organize your transaction aributes. For example, create an item class named Auto Repair
Services, then add transaction aribute Transmission Service to it. Add other relevant transaction aributes to the
same class. For example, add transaction aribute Transmission Serial Number to capture the serial number of the
transmission you repair.

Note.

• Use a transaction aribute to store values that change at run time.


• Set the aribute up as part of the item class. A child class can inherit the aribute, so don't place it on the root
item class. A root class might inherit values from a wide range of items, but you typically use a transaction
aribute for a specic item. You can't delete a transaction aribute if you assign it to a lower class.
• Supply Orchestration can use a transaction aribute throughout fulllment, but some fulllment systems might
not support them, such as purchasing or shipping.
• If your value set uses numeric values, then make sure you include a minimum value and a maximum value on
the Manage Value Sets page. If you don't, the Congurator Models work area might raise an error when you
import the model snapshot.

For details, see the Transaction Aributes topic.

For details about how to add an aribute that allows your user to add details to a sales order while the user creates the
sales order, see the Overview of Using Extensible Flexelds in Order Management topic.

1316
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Set the Application Scope


Use the Application Scope to choose the applications where you use the transaction aribute.

If you use Order Management Cloud, then you must add a check mark to each of these application scopes. They enable
downstream work areas and applications to use your transaction item as part of a congure-to-order ow.

Scope Description

Conguration Matching Enable Supply Orchestration to examine the match repository to see if there's a match.
   

1317
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Scope Description

If your ow uses the transaction aribute to create a unique congured item, then you must
add a check mark to Conguration Matching. If you do, Supply Orchestration will examine the
match repository. If it doesn't nd a match, it will create a new conguration for each unique
aribute value, then save the conguration.
 

Pricing Use the values you set in the Pricing Administration work area to price the item.
   

Congurator Congure the item at run time during order capture.


   

Order Capture Capture the sales order that your user creates in the Order Management work area or that you
  import.
 

Distributed Order Orchestration Use the orchestration part of Order Management Cloud, particularly the orchestration process.
   

Manufacturing Execution Enable manufacturing to add your congured item to the work order.
   

Your user must also select an option that your model uses as a transaction aribute when the user congures the
assemble-to-order item on the sales order in Order Management.

Capture Details During Transactions


Assume you need to use a transaction aribute to allow your customer to set the color of a stylized paern to magenta,
black, or blue on the lid of the CTO_474000 laptop computer. Your factory then stamps a unique color paern onto the
lid just-in-time, during assembly.
For details about how to set up the CTO_474000, see the Create Your Conguration Model topic.

Summary of the Setup

1. Create the lookup.


2. Create the value set.
3. Create the transaction aribute.
4. Import your model into the congurator.
5. Test your setup.

Create the Lookup


Create the lookup you will use to provide values your user can choose.

1. In the Navigator, click Setup and Maintenance.


2. In the Setup and Maintenance work area, go to the task.

◦ Oering: Order Management


◦ Functional Area: Orders
◦ Task: Manage Order Lookups
3. Click Actions > New, set values, then click Save.

1318
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Aribute Value

Aribute Value
   

Lookup Type DOO_ COMPUTER_ COLOR


   

Meaning Color of Laptop Lid


   

Description Colors for the top of a laptop computer.


   

Module Orchestration
   

4. In the Lookup Codes area, use Actions > New three times to add three codes. Make sure Enabled contains a
check mark for each code.

Lookup Code Display Sequence Meaning

MAGENTA 1 Magenta
     

BLACK 2 Black
     

BLUE 3 Blue
     

5. Click Save and Close.

Create the Value Set


1. In the Setup and Maintenance work area, go to the task.

◦ Oering: Order Management


◦ Functional Area: Orders
◦ Task: Manage SCM Common Value Sets
2. On the Manage SCM Common Value Sets page, click Actions > Create, then set values.

Aribute Value

Value Set Code Lid Color


   

Description Color of the lid of a laptop computer


   

Module Supply Chain Management Common Components

1319
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Aribute Value

   

Validation Type Table


   

Value Data Type Character


   

3. Set values.

Aribute Value

From Clause FND_LOOKUPS


   

Value Column Name DESCRIPTION


   

Description Column Name MEANING


   

ID Column Name LOOKUP_CODE


   

Enabled Flag Column Name 'Y'


   
You must enclose Y with single quotation marks ( ' ).
 

Start Date Column Name START_ DATE_ACTIVE


   

End Date Column Name END_ DATE_ACTIVE


   

WHERE Clause LOOKUP_TYPE = 'DOO_ COMPUTER_ COLOR'


   

4. Click Save and Close.


These values lter the Oracle database for the lookup you created earlier in this topic.

Setup varies for dierent types of value sets. For details, see the Value Sets topic.

Create the Transaction Aribute


1. In the Setup and Maintenance work area, on the Setup page, click Search.
2. Search for, then open Manage Item Classes.
3. On the Manage Item Class page, in the Item Class column, click the class that your item references.
For this example, assume you set up your item in a class named ATO Models.
4. On the Edit Item Class page, click Transactional Aributes.
5. Click Actions > Create.
6. In the Create Transactional Aribute dialog, set values.

1320
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Aribute Value

Name Lid Color


   

Internal Name Lid_Color


   

Description Color of the lid of a laptop computer


   

Application Scope
  For this example, add a check mark to each choice.

◦ Congurator

◦ Distributed Order Orchestration

◦ Order Capture

◦ Pricing

◦ Conguration Matching

Data Type Number or String. For this example, choose String.


   

Value Set
  Lid Color

Note.

◦ Lid Color is the value set you created earlier in this topic.

◦ The value set is optional, but recommended. It constrains the values that the
transaction aribute can contain. For example, constrain values that your customer
can set or enter for the aribute at run time according to data type or length, or
provide a pick list that your customer uses to set the value.
◦ Make sure the values are valid with the model you set up for the item in the
Congurator work area. For example, if you use the aribute to allow the user to
choose black or purple for the lid, then make sure values in the value set also include
Black and Purple.

Default Value Black


   

7. Click OK, then click Save and Close.

Import Your Model Into the Congurator


1. In the Navigator, click Congurator Models.
2. Create a workspace.

◦ Click Tasks > Manage Workspaces.


◦ On the Manage Workspaces page, click Actions > Create.
◦ In the Create Workspace dialog, set the value, then click Save and Close.

1321
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Aribute Value

Name Workspace for Assemble-to-Order Models in M1 (Seale Manufacturing)


   
You used the M1 organization when you set up the CTO_ 474000 in Product
Information Management, so, for this example, you create a workspace for M1.
 

◦ On the Manage Workspaces page, search for your new work space, then click it in the search results.
3. Add your model to the workspace.

◦ On the Workspace page, in the Workspace Participants area, click Actions > Select and Add > Models.
◦ In the Select and Add dialog search for CTO_474000, click it in the search result, add a check mark to
Include Updated Item Snapshots For Models, then click Apply > OK.

You add the conguration model. You don't add an option class, congure option, component, or child
model.
4. Click Release.
If you update a model that you already added to a workspace, then do this instead of the steps above.

1. On the Overview page, click Tasks > Manage Snapshots.


2. On the Manage Snapshots page, click Actions > Import Model Item.
3. In the dialog, search for and select item CTO_474000, then click Submit.
4. In the Conrmation dialog, notice the request ID, click OK, wait a moment, search for your item, then verify that
the search results displays your item.
5. Click Tasks > Manage Workspaces, locate your workspace, then click Release.

If you add a transaction aribute to a model that you already added to a workspace, then you must import
the model into the congurator and release the workspace. The import makes the aribute visible in Order
Management so the user can select it at run time.

If some time later you change the aribute, then you must create a new workspace, add your model, add an
updated snapshot for the item class, then release the new workspace.
For details, see the Importing Items topic and Releasing Workspaces topic.

Test Your Setup


1. Go to the Order Management work area, create a sales order, then add the CTO_474000 item to an order line.
2. Verify that the order line displays the Lid Color aribute and sets the default value to Black.
3. Set the value of Computer Color to Magenta, then click Submit.
4. Open the work order and verify that it species to stamp the paern onto the laptop lid with magenta ink.

1322
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Manage Purchase Orders


How Purchase Orders Work with Congured Items
Learn how a blanket purchase agreement can create a purchase order for a congured item.

The buy ow works the same as the make ow except.

• You set up a blanket purchase agreement with your supplier in Purchasing.


• You create a purchase order in Purchasing instead of a work denition in Inventory Management.

1323
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

• Your supplier uses a purchase order to supply the item instead of creating the work order in Inventory
Management and making the item.
• During the buy ow, if a blanket purchase agreement.

◦ Exists. Supply Orchestration automatically converts the purchase requisition (PR) to a purchase order
(PO).
◦ Doesn't exist. You must manually do the conversion. For example, you must nd the purchase request,
then create a document to generate the purchase order. For details, see the Use the Purchase Orders
Work Area topic.

Congure-to-order uses the Congure-to-Order Blanket Purchase Agreement template to create a relationship between
a component and the parent. Use the template to set up pricing for the model instead of for each component.

For details about the make ow, see the How Congure-to-Order Works topic.

Create Purchase Orders for Congured Items


Set up a blanket purchase agreement with your supplier to automatically create a purchase order for a congured item.

1324
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Here's the agreement you set up in this topic.

Assume you must set up an agreement with your supplier.

• Computer World is your supply. They will supply conguration model CTO_474000 and its congure options.
• You negotiated pricing with your supplier that's 50% of the base price. The base price is the price you charge
your customers.

Item Description Base Price Price Negotiated with


Supplier

CTO_474100 Build My Laptop 100 50

1325
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Item Description Base Price Price Negotiated with


Supplier

       

CTO_474101 14 Inch Laptop Screen 200 100


       

CTO_474102 15.6 Inch Laptop Screen 300 150


       

CTO_474201 8 GB Memory 5 2.50


       

CTO_474202 12 GB Memory 10 5
       

CTO_474301 1 TB Hard Drive 50 25


       

CTO_474302 2 TB Hard Drive 100 50


       

For details about seing up base price, see the Set Up Pricing for Conguration Models topic.
Note.

◦ You must enable the Conguration Ordering Enabled option on the style you use.
◦ You can't combine an assemble-to-order item and an item that isn't congured on the same blanket
purchase agreement. Instead, create two agreements that cover all the components of a pick-to-
order model. Use the congure-to-order template for your assemble-to-order model. Create another
agreement for your item that isn't congured.
◦ The agreement stores price for the assemble-to-order model and uses congure options to procure
the congured item. The agreement contains only the models and options, so the ow calculates the
purchase price of the congured item each time it procures the item outside of Oracle Fusion.
◦ You must add each congure option to the agreement.
◦ Don't add option classes to the agreement. The congure options in each class contain pricing, not the
class.
◦ Don't add required items to the agreement. Each required item comes priced as part of the model.
◦ If necessary, use the Revision aribute on each line to specify the revision of each item.

Summary of the Setup


1. Enable your conguration model for purchasing.
2. Create the agreement.
3. Test your set up.

Enable Your Conguration Model for Purchasing


1. Go to the Product Information Management work area.
2. On the Product Information Management page, click Search, search for CTO_474000, then open it for editing.
For details about how to set up the CTO_474000, see the Create Your Conguration Model topic.

1326
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

3. On the Edit Item page, click Specications.


4. In the Item Organization area, click Purchasing, then set the value.

Aribute Value

Purchased Contains a check mark.


   

5. Click Categories, then verify that the Catalog column contains a row for the Purchasing catalog. If it doesn't,
then click Actions > Add Row, and add it.

Aribute Value

Catalog Purchasing
   

Controlled At Master Level


   

Category Miscellaneous_ 1
   

Category Code MISC.MISC


   

6. Click Save.
7. Repeat this procedure for each of your option classes and congure options.

Create the Agreement


1. Open another browser application, then sign in with a user who has privileges to set up purchasing.

If you don't sign in with these privileges, then the work areas you use in this procedure don't display.
2. Set up your document style.

Use the document style to control the look and feel of the application so it matches the usage of the purchasing
document.

You can typically use the predened Congure to Order Blanket Purchase Agreement style. Do this step only if
you can't nd a predened style that meets your needs.

◦ In the Navigator, click Setup and Maintenance.


◦ In the Setup and Maintenance work area, go to the task.

• Oering: Procurement
• Functional Area: Procurement Foundation
• Task: Manage Document Styles
◦ On the Manage Document Styles page, click Actions > Create.
◦ On the Create Document Style page, set values, then click Save and Close.

1327
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Aribute Value

Style Style for Congure-to-Order Item


   

Conguration Ordering Enabled Contains a check mark.


   
Instructs the Purchase Agreements work area to display the Parent Item aribute and
Top Model aribute.
 

Display Name in the Purchase Purchase Order for Congure-to-Order Item


Order area  
 

Display Name in the Blanket Blanket Purchase Agreement for Congure-to-Order Item
Purchase Agreement area  
 

Display Name in the Contract Contract Agreement for Congure-to-Order Item


Agreement area  
 

3. Create the agreement.

◦ In the Navigator, under Procurement, click Purchase Agreements.


◦ Click Tasks > Create Agreement.
◦ In the Create Agreement dialog, set values, then click Create.

Aribute Value

Style Blanket Purchase Agreement for Congure-to-Order Item


   
This value identies the style you created in step 2.
 

Supplier Computer World


   

Supplier Site Choose the address where your supplier ships the item from.
   

4. Add the conguration model to your agreement.

◦ In the Lines area, click Actions > Add Row, set values, then click Save.

Aribute Value

Line 1
   

Type Goods

1328
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Aribute Value

   

Item CTO_474000
   

Description Build My Laptop


   

Parent Item Leave empty


   
Specify the number or code you use to identify the parent of the item you're adding on
this line.
 
If you add a congure option, then specify the option class that contains the option.
 
You are adding the model, which doesn't have a parent, so leave it empty.
 

Top Model Leave empty


   
Specify the number or code that you use to identify the conguration model. You are
adding the model, so leave it empty.
 

Price
  50

Note.

• Enter the purchase price for the item you're adding on the line. It's the price you
negotiated with Computer World, your supplier.
• You can enter zero or a negative value to reect a discount for an agreement
that you use to price and source a congured item.
• If you provide a price for a congure option, then the ow applies the price only
if your customer chooses the option when ordering the congured item.

5. Add the congure options.

◦ Add a separate row for each option.


◦ Set the Type to Goods for each row.
◦ Use the Parent Item aribute and Top Model aribute to replicate the structure of your conguration
model.

Here's what your set up should look like.

Line Item Description Parent Item Top Model Price

1 CTO_474100 Build My Laptop Not applicable Not applicable 50


           

2 CTO_474101 14 Inch Laptop CTO_474100 CTO_474100 100


    Screen      
 

1329
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Line Item Description Parent Item Top Model Price

3 CTO_474102 15.6 Inch Laptop CTO_474100 CTO_474100 150


    Screen      
 

4 CTO_474201 8 GB Memory CTO_474200 CTO_474100 2.50


           

5 CTO_474202 12 GB Memory CTO_474200 CTO_474100 5


           

6 CTO_474301 1 TB Hard Drive CTO_474300 CTO_474100 25


           

7 CTO_474302 2 TB Hard Drive CTO_474300 CTO_474100 50


           

1330
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

For reference, here's the structure you replicate.

6. At the top of the page, click View PDF, then open it.

1331
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

7. Examine the output. Make sure it contains your model, options, and pricing. The buy ow sends this document
to your supplier at run time.

For brevity, this screen print includes only the model and one option. The actual document includes a cover
leer and another page that has the rest of the options.
8. Click Save, then sign out.

Don't click Submit. Submit sends the agreement to approval. If you clicked Submit, then query the document on
the Manage Agreements page and cancel it.

1332
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Test Your Setup


Create a Sales Order
1. Sign into Order Management.
2. In the Navigator, click Order Management > Order Management.
3. On the Overview page, create a new sales order.

Aribute Value

Customer Computer Service and Rentals


   

4. On the catalog line, search for CTO_474100.


5. Click Congure and Add, set some options, click Finish, then click Submit.
Examine the Purchase Order
1. Click Actions > Switch to Fulllment View.
2. Click Fulllment Lines.
3. In the Aributes area, click Supply Details, click the link next to Supply Order Number, then examine the
details.
4. Click the supply tracking line, then examine the orchestration plan.
The ow created the purchase order and reserved inventory for the sales order.
5. In the Item Details area, click Buy.
6. Click the arrow next to the purchase requisition number, then examine the requisition details.
7. Click the arrow next to the purchase order number, then examine the purchase order details.
The value in the Document Number column identies the purchase order number that the ow will process to
fulll the sales order. Make a note of this value. You use it soon. For this example, assume the value is 58459.
8. Click View PDF at the top of the page, save it, open it, and examine the contents.
9. Click Done.
Verify Conguration Details
1. Click Tasks > Manage Orders.
2. Search for purchase order 58459, then open it.
3. In the Lines area, click View Conguration.
4. Verify that the pricing uses the values you set when you created the blanket purchase agreement, then click
Done.
5. Click View PDF, then verify that the conguration detail displays the structure for your congured item.

Receive Purchase Order for Congured Item


Assume your supplier shipped the purchase order for your congured item. You must now receive it, then put the item
away in the destination warehouse.
Receive the item in the destination warehouse.
1. Receive the item.
◦ In the Navigator, click Receipts.
◦ Click Tasks > Receive Expected Shipments.
◦ Enter the purchase order for the congured item, then click Search.

1333
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

◦ Select the record, then click Receive.


◦ Click Show Receipt Quantity to default the quantity entered for the purchase order.
◦ Click Create Receipt, then click Submit.
◦ Note the receipt number.
◦ Click OK > Done.
2. Put away the receipt.

◦ Click Tasks > Put Away Receipts.


◦ Enter the purchase order number, then click Search.
◦ Select the record, click Put Away, then click Submit.
◦ Click OK > Done.
3. Examine the on-hand quantity in the destination organization.

◦ In the Navigator, under Warehouse Operations, click Inventory.


◦ In the Advanced Search area, enter the congured item you just received, then click Search.
◦ Click Expand next to the organization to examine the on-hand inventory in your subinventories.
◦ Click Expand next to the subinventory that received the item.
◦ Verify that the on-hand quantity is correct.

View Structures of Congured Items


Examine the values of a congured item without opening the sales order or work order.
The user, such as an Order Entry Specialist, sets congure options for a congured item in the sales order. The work
order includes the congured item, required components, congure options, substitutions, and transactional item
aributes.

You use the Product Information Management work area to set up a congured item. You can't use it to view how
the user sets conguration options because the work area doesn't store the bill of materials for the congured item.
Fulllment uses values that the user sets at run time to create the bill of materials. You can use the View Congured
Item Structure page to examine the congured item the user set up without accessing the sales order.

Use the Item aribute in the Search area to search for the congured item, then use the Item Structure Details area to
drill down to the congured item and congure options.

Use the Congured Item Service


You can also use the ConguredItemService web service to get the item structure.

• For details, see the Overview of Using Web Services with Congure-to-Order topic.
• You must make sure the required components and congure options for each congured item are the same
across organizations.

1334
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Monitor Downstream Fulllment


A congured item meets the needs of a specic sales order. So the make ow picks and moves it directly to a shipping
lane from receiving instead of puing it into stock. The receiving agent can view the sales order.
The ow receives the congured item into inventory, picks, then ships it just like it does any other item in inventory. The
congured item doesn't need a unique process or special treatment to transact it in your shipping application.

The ow also supports an advanced shipment notice (ASN) that it receives from your supplier or during an internal
material transfer from a shipping organization.

1335
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Assume.

• You nished the setup described in the Create Your Conguration Model topic.
• Manufacturing nished the work order. Inventory contains the congured item and Shipping contains
shipment lines for the congured item.
• You set up the pick release process for the organization so it automatically pick conrms and creates the
shipment.

Next, put on your Shipping Manager hat (pretend you're the Shipping Manager). You receive an urgent request to fulll
a congured item, so you manually pick release and ship conrm it.

You will navigate to the Shipments work area and use it to search for shipments and shipment lines. You can also click
graphs that display the outstanding and completed work for the current day. This is where you determine the work
activities to do and drill into an activity.

1336
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Summary of the Setup


1. Release and conrm the shipment.
2. Examine and print reports.
3. Track sales order progress through the fulllment lifecycle.

Release and Conrm the Shipment


1. Sign in with a user who has privileges to access the Warehouse Operations work area.
If you don't have the privileges, the work areas you use in this topic don't display.
2. In the Navigator, click Warehouse Operations > Shipments.
3. Accept the All default value in the dialog, then click OK.
The Shipments work area displays. Get shipments or shipment lines according to status. Click a status on the
Shipments or Shipment lines chart, or click a number link in one of the tables below the charts.
4. Click Tasks > Manage Shipment Lines.
5. In the Advanced Search area, enter the order number in the Order aribute, then click Search.
6. On the Edit Shipment Line page, verify that the shipment line status is Ready to Release.
7. Click Actions > Pick Release, click OK in the conrmation dialog, then click Save and Close.
8. On the Manage Shipment Lines page, click Save to refresh the page. Repeat until the ow creates the shipment
and the line status displays Staged.
9. Click Shipment and note the shipment number on the Edit Shipment page.
10. Set the weight and volume, then click Ship Conrm.
11. Click Yes in the warning dialog.
The ow conrms the shipment.

Examine and Print Reports


1. In the Navigator, click Scheduled Processes.
2. On the Overview page, in the Name column, notice the reports that ship conrm created.
◦ Print Packing Slip Report
◦ Manage Shipment Interface
◦ Print Bill of Lading Report
3. Examine the Print Packing Slip Report.
◦ Click Print Packing Slip Report.
The Packing Slip Report displays the details of the congured item.
◦ Click the output name in the Output area of the Print Packing slip report.
Ship conrm doesn't automatically submit the Commercial Invoice. You must manually submit it.
4. Go to the Scheduled Processes page, then click Schedule New Process.
5. On the Schedule New Process page, set the value.

Aribute Value

Name Print Commercial Invoice


   

1337
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

6. In the Process Details dialog, set values, then click Submit.

◦ Enter the ship-from organization, such as 002 - Atlanta.


◦Enter the same shipment number you entered earlier in this procedure when you used the Parameters
section of the dialog.
7. Wait for the status to change to Succeeded.
8. Examine the invoice.

The invoice includes.

◦ The congured item, CTO_474000-101 Build My Laptop

1338
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

◦ The model, CTO_474000 Build My Laptop


◦ Each option your user chose, such as CTO_474102 15.6 Inch Laptop Screen (1 per unit)

Note.

• It isn't necessary to do any more set up to get and display the invoice.
• A web service in Supply Orchestration gets details for this sales view when you ship conrm the sales order.
• You can view the model and options for the congured item on the commercial invoice and the packing slip.
• The invoice displays the quantity for each component in the congured item assuming that the congured item
quantity is one.
• You don't have to do any special document setup for congured items.

1339
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Here's an example of the packing slip.

Track Sales Order Progress Through the Fulllment Lifecycle


1. In the Navigator, click Order Management.
2. On the Overview page, enter the order number, then click Search.
Notice the order line status is Awaiting Billing.
3. Click Action > Switch to Fulllment View.
4. Click Fulllment Lines, then, in the Aributes section at the boom of the page, click Supply Details.
5. Click Supply Order Number to view the supply order details.
6. Click the supply tracking line, then notice the value of the status.

1340
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Control Explosion Dates for Conguration Models


Specify the date when order fulllment explodes a conguration model.
You explode in Order Management so you can get the structure of a congured item from Product Information
Management. Explosion updates the structure, including items that the conguration model references. You can use
order management parameter Conguration Eective Date for Exploding Included Items to explode components in a
model, such as congure options.

Control the explosion date for.

• The ordered date in a kit


• The included items and current date in a pick-to-order model
• More than one split line and the current date

A bill-of-material (BOM) is a structure you use to store lists of items that you associate with a parent item. The structure
stores details that describe how to relate each item to the parent. You arrange child items in the structure hierarchically
so they reect the composition of the parent item. For example, a laptop computer is the parent, and the hard drive,
screen, and memory are each a child item.

A structure explosion is the act of breaking apart each assembly or subassembly into its component parts. You explode
to improve order fulllment eciency.

Example

Assume you have a bill-of-materials for parent item CTO_474000, Build My Laptop.

Child Item Description

CTO_474101 14 Inch Laptop Screen


   

CTO_474102 15.6 Inch Laptop Screen


   

CTO_474201 8 GB Memory
   

CTO_474202 12 GB Memory
   

CTO_474301 1 TB Hard Drive


   

CTO_474302 2 TB Hard Drive


   

CTO_474100 Screen
   

CTO_474200 Memory
   

CTO_474300 Hard Drive

1341
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Child Item Description

   

CTO_474400 My Mouse Pad


   

You need to explode this bill of materials so you can pick each item separately, then assemble them into the parent
CTO_474000. You pick items separately so you can more quickly fulll them item.

For another example, assume you need to pick a newer part for an item from inventory instead of an older part. For
example, you sell laptop computers to college students. You manufacture a mouse pad every week, and the pad is an
included part in a kit. As part of a promotion, you stamp the name and logo of a popular music group on the pad. You
stamp the pad each week with the group that's currently #1 on the Worldwide Music Singles Chart. The chart changes
every week, but some groups return to the #1 spot several times in subsequent weeks with the same song or a dierent
song, so you keep older pads in stock in case they return to the #1 spot. You use the Conguration Models work area to
change the mouse pad, item CTO_474400, in parent model CTO_474000, Build My Laptop.

Here are some more examples.


• You prefer to use last-in-rst-out (LIFO) where you consume the item you most recently manufactured rather
than an older one.
• Assume order management sends a change request for a line. If the line is awaiting shipping, then you must
make sure fulllment doesn't change an existing child item.

Set the Order Management Parameters

Use order management parameter Conguration Eective Date for Exploding Included Items to control which model to
explode.

Value Explode the Model the Exists When Fulllment Creates. . .

Conguration Eective Date The Conguration


   

Parent Creation Date The Parent


   

Note.
• The Product Information Management work area stores a dierent version each time you revise the model. The
sales order uses the Conguration Eective Date parameter to determine which model to use.
• Fulllment skips closed or canceled lines. Instead, it copies child items from the original model.
• This parameter doesn't aect the current explosion behavior when the user creates the sales order.
• Use this parameter only for a bill-of-material explosion.
• Don't change the validation behavior for congured items.
• You also use the Conguration Eective Date parameter to control behavior.
• For details about the aributes in an explosion, see the Item Structure Explosion section in Oracle Supply
Chain Management Cloud SOAP Web Services for SCM On Oracle Help Center at hps://docs.oracle.com/en/
cloud/saas/supply-chain-management/19c/oessc/business-object-services.html#itemstructureexplosion-
d24777e193193.

1342
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Split Lines

You can split a fulllment line so you can use a new item. You can specify whether to use the date when fulllment
creates the conguration for the bill-of-material structure, or the date when it creates the parent.

When you submit a revision or pick-to-order model you don't want to explode the existing kit and add new included
items to it. Instead, you only want to explode the new kit.

You can use only one open item when you split the quantity where you reduce the quantity and add a new line for the
split quantity. Assume the original quantity on line 1 is 10. You split line 1 into line 1 and line 2. You reduce the quantity
on line 1 to 7 and set the quantity on line 2 to 3.

If you set the Conguration Eective Date order management parameter to Ordered Date, then fulllment uses the
same included item.

Assume you change the bill of materials for the kit and need to explode on the date when you make the change. If you
set Conguration Eective Date for Exploding Included Items to Parent Creation Date, then fulllment explodes the new
line according to the date you make change instead of the date that Conguration Eective Date species.

Kit Example
Assume you create sales order 58697 on June 12 that includes the Movie Basket kit. The kit includes one fulllment line,
and the line includes two items, Popcorn and Ice Cream.

Line Number Item Item Type Ordered Ordered Date Creation Date Conguration
Quantity of Fulllment Eective Date
Line

1 Movie Basket Kit 10 June 12 June 12 June 12


             

- Popcorn Included Item 10 June 12 June 12 June 12


             

- Ice Cream Included Item 10 June 12 June 12 June 12


             

Assume you use the Conguration Models work area on June 15 to change the model for the kit. You replace Ice Cream
with Big Drink.

On June 20, you revise order 58697. You add a new fulllment line that includes another Movie Basket kit.

Continue reading to see what happens.

Use Ordered Date

Next, assume you set the Conguration Eective Date parameter to Ordered Date.

Here's what happens.

Line Number Item Item Type Ordered Ordered Date Creation Date Conguration
Quantity of Fulllment Eective Date
Line

1 Movie Basket Kit 10 June 12 June 12 June 12

1343
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Line Number Item Item Type Ordered Ordered Date Creation Date Conguration
Quantity of Fulllment Eective Date
Line

             

- Popcorn Included Item 10 June 12 June 12 June 12


             

- Ice Cream Included Item 10 June 12 June 12 June 12


             

2 Movie Basket Kit 10 June 12 June 20 June 12


             

- Popcorn Included Item 10 June 12 June 20 June 12


             

- Included Item 10 June 12 June 20 June 12


  Ice Cream          

The sales order uses the Conguration Eective Date of June 12 for fulllment line 1 and fulllment line 2. The Ordered
Date is June 12, so the order doesn't use the new conguration you revised in the model. It continues to use Ice Cream
instead of Big Drink.

Use Parent Creation Date

Assume you set parameter Conguration Eective Date for Exploding Included Items to Parent Creation Date.

Here's what happens.

Line Number Item Item Type Ordered Ordered Date Creation Date Conguration
Quantity of Fulllment Eective Date
Line

1 Movie Basket Kit 10 June 12 June 12 June 12


             

- Popcorn Included Item 10 June 12 June 12 June 12


             

- Ice Cream Included Item 10 June 12 June 12 June 12


             

2 Movie Basket Kit 10 June 12 June 20 June 20


             

- Popcorn Included Item 10 June 12 June 20 June 20


             

- Included Item 10 June 12 June 20


  Big Drink         June 20

The sales order uses a Conguration Eective Date of June 12 for fulllment line 1. The Movie Basket in fulllment line 2
is the parent, you created it on June 20, so the sales order uses a Conguration Eective Date of June 20 for fulllment

1344
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

line 2. You replaced Ice Cream with Big Drink in the conguration model on June 15, so the sales order includes Big
Drink instead of Ice Cream on line 2.

Pick-to-Order Example
Assume you create sales order 53867 on June 12 that includes the My Phone pick-to-order model, and it includes one
fulllment line.

Line Number Item Item Type Ordered Ordered Date Creation Date Conguration
Quantity of Fulllment Eective Date
Line

1 My Phone Pick-to-Order 10 June 12 June 12 June 12


             

- Wallet Case Option Class 10 June 12 June 12 June 12


             

- Charger Included Item 10 June 12 June 12 June 12


             

Assume you use the Conguration Models work area on June 15 to change the model. You replace Charger with
Wireless Charger.

On June 20, you revise order 53867. You add a new fulllment line that includes another My Phone model.

Continue reading to see what happens.

Use Current Date

Assume you set the Conguration Eective Date parameter to Current Date.

Line Number Item Item Type Ordered Ordered Date Creation Date Conguration
Quantity of Fulllment Eective Date
Line

1 My Phone Pick-to-Order 10 June 20 June 12 June 20


             

- Wallet Case Option Class 10 June 20 June 12 June 20


             

- Included Item 10 June 20 June 12


  Wireless         June 20
Charger

2 My Phone Pick-to-Order 10 June 20 June 20 June 20


             

- Wallet Case Option Class 10 June 20 June 20 June 20


             

- Wireless Included Item 10 June 20 June 20


  Charger         June 20
 

1345
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

The Current Date is the date that when you click Revise or Submit.

The sales order uses the Current Date of June 20 for the Conguration Eective Date for line 1 and line 2. So, the sales
order uses the new conguration you revised in the model on June 15. It uses Wireless Charger instead of Charger on
both lines.

Use Ordered Date and Parent Creation Date

Assume you set.

Order Management Parameter Value

Conguration Eective Date Ordered Date


   

Conguration Eective Date for Parent Creation Date


Exploding Included Items  
 

Here's what happens.

Line Number Item Item Type Ordered Ordered Date Creation Date Conguration
Quantity of Fulllment Eective Date
Line

1 My Phone Pick-to-Order 10 June 20 June 12 June 12


             

- Wallet Case Option Class 10 June 20 June 12 June 12


             

- Included Item 10 June 20 June 12


  Charger       June 12  

2 My Phone Pick-to-Order 10 June 20 June 20 June 20


             

- Wallet Case Option Class 10 June 20 June 20 June 20


             

- Included Item 10 June 20 June 20


  Wireless       June 20  
Charger

The sales order uses the Parent Creation Date. The My Phone is the parent for line 1. You created line 1 on June 12, so
the sales order uses the model that existed on June 12 for line 1. That model uses Charger, not Wireless Charger.

The My Phone is the parent for line 2. You created line 2 on June 20, so the sales order uses the model that exists on
June 20 for line 2. That model uses Wireless Charger, not Charger.

Split Example
Assume you set the Conguration Eective Date parameter to Current Date.

1346
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Assume you create sales order 79639.

Line Number Item Item Type Ordered Ordered Date Creation Date Conguration
Quantity of Fulllment Eective Date
Line

1 DVD Not Congured 3 June 12 June 8 June 8


             

2 Movie Basket Kit 10 June 12 June 12 June 12


             

- Popcorn Included Item 10 June 12 June 12 June 12


             

- Included Item 10 June 12 June 12 June 12


  Chocolates          

Assume.
• You add line 1 on June 8. It includes the DVD item, which is a standard item.
• You use the Conguration Models work area on June 10 to change the model. You replace Ice Cream with
Chocolates.
• You add line 2 on June 12. It includes the Movie Basket item, which is a kit that includes two items. The sales
order uses the model that exists as of the Current Date, which is June 12. The current date is the date you revise
or submit the sales order. You updated the model on June 10, so the order includes Chocolates.

Split the Line

Assume you use the Conguration Models work area on June 15 to change the model. You replace Chocolates with Big
Drink.

On June 20, you revise the sales order. You split line 2 into two lines, lines 2.1 and 2.2.

Here's what happens.

Line Item Item Type Ordered Current Creation Parent Conguration


Number Quantity Date Date of Creation Eective
Fulllment Date Date
Line

1 DVD Not 3 June 20 June 8 June 8 June 20


    Congured          
 

2.1 Movie Kit 6 June 20 June 12 June 12 June 20


  Basket            
 

- Popcorn Included 6 June 20 June 12 June 12 June 20


    Item          
 

- Included 6 June 20 June 12 June 12


  Big Drink Item         June 20

1347
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Line Item Item Type Ordered Current Creation Parent Conguration


Number Quantity Date Date of Creation Eective
Fulllment Date Date
Line

2.2 Movie Kit 4 June 20 June 20 June 12 June 20


  Basket            
 

- Popcorn Included 4 June 20 June 20 June 12 June 20


    Item          
 

- Included 4 June 20 June 20 June 12


  Big Drink Item         June 20
 

The order uses the Conguration Eective Date parameter to determine which model to use. In this example, you set
Conguration Eective Date to Current Date. The current date is the date that you revise or submit the order, which
is June 20, so the order uses the model that exists as of June 20 to identify the items it must include. On June 15, you
updated the model to use Big Drink instead of Chocolates, so the order includes Big Drink on lines 2.1 and 2.2.

Split the Line Again

Assume you use the Conguration Models work area on June 24 to change the model. You replace Big Drink with Lile
Drink.

On June 25, you revise the sales order again. You split line 2.1 into two lines, lines 2.2 and 2.3.

Here's what happens.

Line Item Item Type Ordered Current Creation Parent Conguration


Number Quantity Date Date of Creation Eective
Fulllment Date Date
Line

1 DVD Not 3 June 20 June 8 June 8 June 20


    Congured          
 

2.1 Movie Kit 6 June 20 June 12 June 12 June 20


  Basket            
 

- Popcorn Included 6 June 20 June 12 June 12 June 20


    Item          
 

- Included 6 June 20 June 12 June 12


  Big Drink Item         June 20
 

2.2 Movie Kit 4 June 20 June 20 June 12 June 20


  Basket            
 

1348
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Line Item Item Type Ordered Current Creation Parent Conguration


Number Quantity Date Date of Creation Eective
Fulllment Date Date
Line

- Popcorn Included 4 June 20 June 20 June 12 June 20


    Item          
 

- Included 4 June 20 June 20 June 12


  Big Drink Item         June 20
 

The order uses the Conguration Eective Date parameter to determine which model to use. In this example, you set
Conguration Eective Date to Current Date. The current date is the date that you revise or submit the order, which
is June 20, so the order uses the model that exists as of June 20 to identify the items it must include. On June 15, you
updated the model to use Big Drink instead of Chocolates, so the order includes Big Drink on lines 2.1 and 2.2.

Use Current Date and Parent Creation Date

Assume you.

• Set the Conguration Eective Date to Current Date.


• Set the Conguration Eective Date for Exploding Included Items to Parent Creation Date.
• Use the Conguration Models work area on June 10 to change the model. You replace Ice Cream with
Chocolates.

Here's what happens to sales order 79639 when you split line 2.

Line Item Item Type Ordered Current Creation Parent Conguration


Number Quantity Date Date of Creation Eective
Fulllment Date Date
Line

1 DVD Not 3 June 20 June 8 June 8 June 12


    Congured          
 

2.1 Movie Kit 6 June 20 June 12 June 12 June 12


  Basket            
 

- Popcorn Included 6 June 20 June 12 June 12 June 12


    Item          
 

- Included 6 June 20 June 12 June 12


  Chocolates Item       June 12  
 

2.2 Movie Kit 4 June 20 June 20 June 12 June 12


  Basket            
 

- Popcorn Included 4 June 20 June 20 June 12 June 12


    Item          

1349
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Line Item Item Type Ordered Current Creation Parent Conguration


Number Quantity Date Date of Creation Eective
Fulllment Date Date
Line

- Included 4 June 20 June 20 June 12


  Chocolates Item       June 12  
 

You set Conguration Eective Date to Current Date. The current date is June 20. It's the date you revise or submit
the order. So the order uses the model that exists as of June 20 to identify the items it must include. On June 10, you
updated the model to use Chocolates instead of Ice Cream, so the order includes Chocolates on lines 2.1 and 2.2.

Split the Line Again

Assume you use the Conguration Models work area on June 24 to change the model. You replace Ice Cream with
Chocolates.

On June 25, you revise the sales order again. You split line 2.1 into two lines, lines 2.2 and 2.2.

Here's what happens to sales order 79639 when you split line 2.

Line Item Item Type Ordered Current Creation Parent Conguration


Number Quantity Date Date of Creation Eective
Fulllment Date Date
Line

1 DVD Not 3 June 25 June 8 June 8 June 12


    Congured          
 

2.1 Movie Kit 6 June 25 June 12 June 12 June 12


  Basket            
 

- Included 6 June 25 June 12 June 12 June 12


  Chocolates Item          
 

2.2 Movie Kit 4 June 25 June 20 June 12 June 12


  Basket            
 

- Included 4 June 25 June 20 June 12 June 12


  Chocolates Item          
 

2.3 Movie Kit 4 June 25 June 25 June 12 June 12


  Basket            
 

- Included 4 June 25 June 25 June 12 June 12


  Chocolates Item          
 

1350
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

You set Conguration Eective Date to Current Date. The current date is June 25, so the order uses the model that
exists as of June 25 to identify the items it must include. On June 24, you updated the model to use Chocolates instead
of Ice Cream, so the order includes Chocolates on lines 2.1, 2.2, and 2.3.

Related Topics
• Manage Order Management Parameters

Web Services
Overview of Using Web Services with Congure-to-Order
Use web service ConguredItemService to create, read, update, or delete a congured item.
Get and view the options your user selects for the model and the congured item structure, including the model
reference and description, selected options and description, and transaction aributes that the selected options
reference.

1351
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Example
Here's an example of an assemble-to-order model for the VIK12 Viking Stove. For an introduction to this model, see the
Examples of Using Congure-to-Order topic.

The top parent, VIK12 Viking Stove, includes.

• STVU, which is the stove unit base.


• OVOC, an assemble-to-order model for the oven.
• BRN1 an assemble-to-order model for the burners.

1352
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

• FINOC, an option class for the nish. It contains options your user can choose to specify the type of nish, such
as stainless steel.
• CLK, a phantom for the clock assembly. It includes options your user can choose to specify the display and type
of control. A phantom is an item that you physically build but don't stock. In this example, you assemble the
clock on demand. You don't build it in anticipation of demand and stock it.

OVOC, the oven, contains option classes.

• Option class OVTY species the oven type. It contains options Gas, Gas Convection, and Electric. Gas
Convection and Electric aren't congure options.
• Option class WRM species options for the warming oven.

Here's the hierarchy for the BRN1 model.

1353
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Note.

• BRN1 is a complex child model that includes its own assemble-to-order model.
• FTOC is an option class your user uses to choose the fuel type, such as electric, propane, or gas.
• BSOC is an assemble-to-order model that species the style as residential or commercial.
• BSOC is a child of BRN1 and a grandchild of VIK12.
• RES and COM each contain options and phantoms.
• RES contains BRSS and GRD, which are items you stock. It also contains BRLG, a phantom you don't stock. You
don't stock BRLG and COMLG because your market research indicates customers don't order these options
very often, its costly to keep in inventory, so you build it on demand.

1354
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

• COMLG is a phantom of COM. It contains its own phantom COMLG, and COMLG contains a phantom, COM-
BRN. Customers use the CM-BRN-BS to choose the type of base and COM-BRN_VAL to choose the type of
value to use when building COM-BRN.

Here's an example congured item, VIK12-100, that your customer ordered. It includes only the options the customer
chose.

Note.

• STVU is the stove unit base. Its required. The work order includes STVU but VIK12-100 doesn't.
• An oven can use only one type of fuel, burner style, oven type, and warming oven. So each of these
components includes only the one option you customer chooses.

1355
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

• The customer didn't want the clock, didn't choose CLK, so its not in VIK12-100.
• The customer chose COM, the commercial burner, and GRD, the griddle for the commercial burner. The
customer also chose COMLG, the large commercial burner.

Operations You Can Use with Web Services for Congured Items
Use operations with the ConguredItemService web service to create, read, update, or delete a congured item.

Operation Value

ndCtoSalesStructure Get the set of options, option classes, and transaction aributes you user selects at run time.
   

ndCtoItemStructure Get the entire structure of the congured item that your user selects at run time. It includes
  child congured items, options, required components, phantoms, substitutions and
transaction aributes.
 

refreshCongStructure Refresh the item structure in the explosion repository.


   

deleteCongStrucure Delete the item structure from the explosion repository.


   

ndCtoSalesStructure and ndCtoItemStructure Operations


Get Sales Structure

Here's the payload that the ndCtoSalesStructure operation returns for the VIK12-100 congured item. For details about
this item, see the Overview of Using Web Services with Congure-to-Order topic.

LINE_ID SUB_ITEM_TYPE ITEM_NUMBER PARENT_ CONFIG ITEM QTY UOM


LINE_ID NUMBER

1 ATO VIK12 1 VIK12-100 1 EA


             

2 ATO BRN1 1 BRN1-11 1 EA


             

3 OPTION CLASS FTOC 2 FTOC 1 EA


             

4 RES GAS 3 GAS 1 EA


             

5 ATO BSOC 2 BSOC-2 1 EA


             

6 OPTION CLASS COM 5 COM 1 EA


             

1356
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

LINE_ID SUB_ITEM_TYPE ITEM_NUMBER PARENT_ CONFIG ITEM QTY UOM


LINE_ID NUMBER

7 RES COMLG 6 COMLG 1 EA


             

8 RES GRD 6 GRD 1 EA


             

The payload includes each of the child assemble-to-order items. Assume BRN-11, BSOC-2, and OVOC-30 are the child
congured items.

Get Item Structure

Here's the payload that the ndCtoItemStructure operation returns for the VIK12-100 congured item.

LINE_ID SUB_ITEM_TYPE
ITEM_NUMBER
INVENTORY_ITEM_ID
PARENT_LINE_ID
CONFIG QTY UOM WIP_SUPPLY_TYPE
RootPhantomItemId
ITEM_NUMBER

1 ATO VIK12 100 1 VIK12-100 1 EA - -


                   

2 ATO BRN1 101 1 BRN1-11 1 EA - -


                   

3 OPTION FTOC 102 2 FTOC 1 EA - -


  CLASS                
 

4 STD GAS 103 3 GAS 1 EA - -


                   

5 ATO BSOC 200 2 BSOC-2 1 EA - -


                   

6 OPTION COM 201 5 COM 1 EA - -


  CLASS                
 

7 RES COMLG 202 6 COMLG 1 EA Phantom -


                   

8 RES COM- 203 7 COM- 1 EA Phantom 202


    BRN     BRN        
   

9 RES COM- 204 8 COM- 1 EA - 202


    BRN-BS     BRN-BS        
   

10 RES COM- 205 8 COM- 1 EA - 202


    BRN-     BRN-        
VAL VAL
   

11 RES COM- 206 7 COM- 1 EA - 202


    BCAP     BCAP        

1357
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

LINE_ID SUB_ITEM_TYPE
ITEM_NUMBER
INVENTORY_ITEM_ID
PARENT_LINE_ID
CONFIG QTY UOM WIP_SUPPLY_TYPE
RootPhantomItemId
ITEM_NUMBER

   

12 RES GRD 207 6 GRD 1 EA - -


                   

13 ATO OVOC 300 1 OVOC-30 1 EA - -


                   

14 OPTION OVTY 301 13 OVTY 1 EA - -


  CLASS                
 

15 RES GASC 302 14 GASC 1 EA - -


                   

16 OPTION WRM 303 13 WRM 1 EA - -


  CLASS                
 

17 RES WRMGASC 304 16 WRMGASC 1 EA - -


                   

18 OPTION FINOC 104 1 FINOC 1 EA - -


  CLASS                
 

19 RES FINSS 105 18 FINSS 1 EA - -


                   

20 RES STVU 106 1 STVU 1 EA - -


                   

21 RES CLK 107 1 CLK 1 EA Phantom -


                   

22 RES CLSS 108 21 CLSS 1 EA - 107


                   

23 RES CL-CTRL 109 21 CL-CTRL 1 EA - 107


                   

ndCtoItemStructure includes details that ndCtoSalesStructure doesn't include.


• The payload includes the required items STVU and CLK.
• PARENT_LINE_ ID identies the parent of the item. For example, PARENT_LINE_ ID for BRN1 is 1. BRN1 is a child
in VIK12. The LINE_ID for VIK12 is 1.
• WIP_SUPPLY_TYPE indicates whether the item is a phantom.
• COMLG and CLK are phantom items, so the detail includes their subassemblies.
• RootPhantomItemId identies the phantom that contains the item. For example, the RootPhantomItemId for
CM-BRN is 202. CM-BRN is an item in phantom COMLG. The INVENTORY_ITEM_ ID for COMLG is 202.

Transaction Aributes

The web service also returns transaction aributes when it returns the item.

1358
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

LINE_ID ATTRIBUTE_NAME CHARACTER_ATTRIBUTE_VALUE


NUMBER_AT TIMESTAMP_
TRIBUTE_VALUE ATTRIBUTE_VALUE

7 FINISH Black - -
         

refreshCongStructure and deleteCongStrucure Operations


Congure-to-order saves structure details for the congured item in the explosion repository when the ow requests
the structure. You use the refreshCongStructure operation to refresh this data. Refreshing helps to reduce the amount
of data that ndCtoItemStructure returns and improves performance.

Details for the congured item are already available in the repository, so it isn't necessary to bring data into the
repository as part of ndCtoItemStructure.

• Use refreshCongStructure before you use ndCtoItemStructure.


• Use the same set of parameters you use with ndCtoItemStructure.
• Set the RefreshStructure aribute in the rst row of your payload. Set it to.

◦ true. Refresh data that already exists in the repository before geing it.
◦ false. Save only the missing structure details in the repository. Don't refresh data that already exists in
the repository. The default value is false.

Use deleteCongStrucure to delete structure details of the congured item from the repository.

Parameters You Use with Operations


Here are the parameters you can use with the operations to identify the item you want to nd, refresh or delete. Use
them with operations.

• ndCtoSalesStructure
• ndCtoItemStructure
• refreshCongStructure
• deleteCongStrucure

You must use at least one of parameter. If you don't, the web service will raise an error.

Aribute Type Description

CongItemId Long Value that identies the congured item.


     

CongItemNumber String Name of the congured item.


     

BaseModelId Long Value that identies the assemble-to-


    order model.
 

BaseModelItemNumber String Name of the assemble-to-order model.


     

1359
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Aribute Type Description

CreationDateFrom Date Date when the ow started to create the


    congured item.
 

CreationDateTo Date Date when the ow nished creating the


    congured item.
 

For example, to refresh data for the VIK12-100, set CongItemNumber to VIK12-100.

Structure Your Congured Item Payload


Structure your payload when you call the ConguredItemService web service.
Here's the hierarchy you use.
• 1 ndCriteria. Structure that contains the entire object and aribute lter criteria.

◦ 1.1 fetchStart and fetchSize. Required. Specify the number of rows in the result set, and specify which
row to start with.
• fetchStart. Row to use as the starting point. The default is 0. If you set the value to 0, then the
result set begins with the rst row of the data set. If you set the value to 99, then the result set
begins with the 100th row of the data set.

Caution: If you use ndCtoItemStructure, and if you set fetchStart to any value other
than 0, then you must use refreshCongStructure before you use ndCtoItemStructure.
The web service assumes the congured item is available in the explosion repository and
gets records beginning with the starting point. Using refreshCongStructure makes sure
the starting point contains a value.
• fetchSize. Maximum number of rows to get. If you set fetchSize to -1 (negative one), then the
search gets all rows that it nds, starting with the row that fetchStart species.
If fetchSize is greater than the number of remaining rows, then the search returns only the
remaining rows. The predened maximum fetchSize is 500. You can't exceed it in a single query.
If you set fetchSize to a value greater than 500 or to -1, and if more than 500 records match your
search criteria, then the web service creates an exception.
◦ 1.2 lter. Structure that contains runtime search conditions. The view criteria restricts data that your
query returns to the rows that match the lters you specify. If no view criteria exists, then the web service
doesn't apply lters when it processes your request.
Think of view criteria as a collection of one or more query-by-example (QBE) rows that dene a data lter
for a view object. The web service converts view criteria to an SQL WHERE clause.
• 1.2.1 conjunction. Specify how to evaluate search conditions in relation to each other. For example,
And, Or, Not, AndNot, and OrNot.
If you don't specify a value, then the web service uses AND. Behavior is similar to how Oracle
Application Development Framework works when a conjunction exists between view criteria and
the previous view criteria.

1360
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Conjunction is case sensitive.


• 1.2.2 Structure that contains a set of runtime lter conditions for one or more aributes.
Behavior is similar to how Oracle Application Development Framework handles a list of view
criteria rows, where each row denes one view criteria.

◦ 1.2.2.1 conjunction. See level 1.2.1.


◦ 1.2.2.2 item. Structure that contains one runtime search condition for an aribute.

• 1.2.2.2.1 conjunction. See level 1.2.1.


• 1.2.2.2.2 upperCaseCompare. Boolean value that species whether to convert the
aribute value that the search returns to uppercase. Conversion happens before
ltering.
• 1.2.2.2.3 aribute. For details, see the Aributes subtopic, below.
• 1.2.2.2.4 operator. For details, see the Operators subtopic, below.
• 1.2.2.2.5 value. Filter criteria the web service uses when it searches for an aribute.
You can use % as a wildcard, but you must not use % as the rst character. For
example, you can use MySearch%, but you can't use %MySearch.
◦ 1.3 sortOrder. Sort the result set in ascending order or descending order.
◦ 1.4 ndAribute. Aributes to get after the web service applies your lter criteria. If you specify aribute
x, then the web service only gets the value for aribute x. If you don't specify a value, then the web
service gets all aributes. A child object is an aribute of the parent object.
◦ 1.5 excludeAribute. Boolean value. If True, get all aributes except the ones you specify in
ndAribute. If False, get the aributes you specify in ndAribute.
• 2 ndControl. Get all translations of aributes that exist. This parameter aects the entire result set.

1.2.2.2.3 Aributes
Include the case sensitive name of the aribute to lter on. The root node of a child object is an aribute of the parent
object.

Here are the aributes you can use. You must use at least one of them. If you don't, the web service will raise an error.

Aribute Type Description

CongItemId Long Value that identies the congured item.


     

CongItemNumber String Name of the congured item.


     

BaseModelId Long Value that identies the assemble-to-


    order model.
 

BaseModelItemNumber String Name of the of the assemble-to-order


    model.
 

CreationDate Date Date when the ow created the congured


    item.
 

1361
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

You can also include one of these aributes, as necessary.

Aribute Type Description

OrganizationId Big Decimal Value that identies the organization you


    associate with the congured item.
 

OrganizationCode String Abbreviation that identies the


    organization.
 

EectiveAsOfDate Date Date that the congured item goes into


    eect.
 

RefreshStructure Boolean
    Contains.

• True. Refresh the structure in the


explosion repository before the web
service does the search.
• False. Don't refresh. The default
value is false.

1.2.2.2.4 Operators
Note.

• Use one of =, >=, <=, >, <,<>, ISBLANK, ISNOTBLANK, CONTAINS, STARTSWITH, AFTER, ONORAFTER,
BEFORE, ONORBEFORE, BETWEEN, or NOTBETWEEN.
• Some operators won't work for all aribute types, such as String, Integer, Date, and so on.
• You typically use numeric operators , such as = or < , for a String aribute.
• Each text operator is case sensitive. For example, ISBLANK is a text operator and is case sensitive.

Here are the operators you can use to search a required aribute when you use ndCtoItemStructure. If you use any
other operator, the web service will create an error.

Aribute Operator

CongItemId =
   

CongItemNumber =
   

BaseModelId =
   

BaseModelItemNumber =
   

CreationDate BETWEEN

1362
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Aribute Operator

   

You can use any operator on an aribute that isn't required when you use ndCtoSalesStructure or
ndCtoItemStructure.

Call Web Service and Process Response


Use your preferred development tool to call the web service, then process the response.

Call Web Service


1. Use a URL in a browser, Soap UI, or some other development tool to call the web service.

http://hostname:port/ctoUtilitiesPublicService/ConfiguredItemService

2. Choose ndCtoItemStructure, ndCtoSalesStructure, refreshCongStructure or deleteCongStructure from the


list of operations.
3. Enter your payload.
4. Click Invoke.

Process the Response


Use dierent techniques to process the response.

Use SQL

1. Use a proxy to call the web service.


2. Store the response for each row of the response in a relational database table.

You create two tables.

◦ Table CTO_ITEM_STRUCTURE includes a column for each aribute in the response.


◦ Table CTO_TRANSACTION_ATTR stores values for transaction aributes. It also includes foreign keys to
CTO_ITEM_STRUCTURE according to the LINE_ID aribute.

1363
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

For example.

3. Use SQL to query the table to get details about the response.
SELECT * FROM CTO_ITEM_STRUCTURE WHERE <CONDITION>

Use Java and SQL


1. Use a proxy to call the service.
2. Convert each row of the response to XML.
Here's an example of the Java code you use to convert.
JAXBContext contextObj = JAXBContext.newInstance(new Class[] {
CtoItemStructure.class
});
Marshaller marshallerObj = contextObj.createMarshaller();
marshallerObj.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
JAXBElement < CtoItemStructure > rootElement = new JAXBElement < CtoItemStructure > (new
QName("CtoItemStructureRow"), CtoItemStructure.class, opTempList.get(Index));
marshallerObj.marshal(rootElement, baos);
String xmlContent = new String(baos.toByteArray());
ClobDomain objClobDomain = new ClobDomain(xmlContent);

1364
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

3. Store data in the CTO_ITEM_STRUCTURE table. Use this structure.

Aribute Name Type Description

CONFIG_ITEM_ID Long Value that identies the congured item.


     

ITEM_STRUCTURE Clob XML data of the row. This is the output of


    your Java code.
 

4. Use SQL to query the table.


For example.
select CONFIG_ITEM_ID,
extractvalue(ITEM_STRUCTURE,'/ CtoItemStructureRow /ConfigItemId ')CONFIG_ITEM_ID,
extractvalue(ITEM_STRUCTURE,'/ CtoItemStructureRow /ConfigItemNumber ')CONFIG_ITEM_NUMBER,
extractvalue(ITEM_STRUCTURE,'/ CtoItemStructureRow /BaseModelId ')BASE_MODEL_ID,
extractvalue(ITEM_STRUCTURE,'/ CtoItemStructureRow /BaseModelItemNumber ')BASE_MODEL_ITEM_NUMBER,
extractvalue(ITEM_STRUCTURE,'/ CtoItemStructureRow /InventoryItemId ') INVENTORY_ITEM_ID,
extractvalue(ITEM_STRUCTURE,'/ CtoItemStructureRow /InventoryItemNumber ')INVENTORY_ITEM_NUMBER,
extractvalue(ITEM_STRUCTURE,'/ CtoItemStructureRow /LineId ')LINE_ID,
extractvalue(ITEM_STRUCTURE,'/ CtoItemStructureRow /ParentLineId ')PARENT_LINE_ID,
extractvalue(ITEM_STRUCTURE,'/ CtoItemStructureRow /SubItemType ') SUB_ITEM_TYPE,
extractvalue(ITEM_STRUCTURE,'/ CtoItemStructureRow /OptionalComponent') OPTIONAL_COMPONENT,
extractvalue(ITEM_STRUCTURE,'/ CtoItemStructureRow /ComponentHierarchy ')COMPONENT_HEIRARCHY from
CTO_ITEM_STRUCTURE where CONFIG_ITEM_ID =<CONFIGURED ITEM ID>

Format the Response


The XML output of the web service isn't indented or organized hierarchically according to parent-child relationships.
Use an XSLT (Extensible Stylesheet Language Transformations) style sheet to format the web service response so you
can visualize the hierarchy.

Here's some XSLT code you can use to format the response. Use this code with your favorite XML tool.
< xsl: stylesheet version = "1.0"
xmlns: xsl = "http://www.w3.org/1999/XSL/Transform"
xmlns: ns0 = "http://xmlns.oracle.com/apps/scm/cto/matchRepository/utilities/configItemStructureSer
vice / types / "
xmlns: ns2 = "http://xmlns.oracle.com/apps/scm/cto/matchRepository/utilities/configItemStructureSer vice/
types/"
xmlns: ns1 = "http://xmlns.oracle.com/apps/scm/cto/matchRepository/utilities/configItemStructureSer
vice / "
xmlns: env = "http://schemas.xmlsoap.org/soap/envelope/"
xmlns: wsa = "http://www.w3.org/2005/08/addressing"
xmlns: typ = "http://xmlns.oracle.com/apps/scm/cto/matchRepository/utilities/configItemStructureService/
types/ " >
<
xsl: output method = "xml"
indent = "yes"
version = "1.0"
encoding = "UTF-8" / >
<
xsl: template match = "*" >
<
xsl: element name = "{local-name()}" >
<
xsl: if test = "not(not(text()) and not(node()))" >
<

1365
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

xsl: apply - templates select = " node()" / >


<
/ xsl : if > <
/ xsl : element > <
/ xsl : template > <
xsl: template match = "env:Envelope" >
<
xsl: apply - templates select = "env:Body" / >
<
/ xsl : template > <
xsl: template match = "env:Body" >
<
xsl: apply - templates select = " ns0:findCtoItemStructureResponse | ns0:findCtoItemStructureAsyncResponse
" / >
<
/ xsl : template > <
xsl: template match = "ns0 ns0:findCtoItemStructureResponse | ns0:findCtoItemStructureAsyncResponse" >
<
xsl: copy >
<
xsl: apply - templates select = ".//ns2:result[not(ns1:ParentLineId/node())]" / >
<
/ xsl : copy > <
/ xsl : template > <
xsl: template match = "ns2:result" >
<
xsl: variable name = "LineId"
select = "./ns1:LineId" / >
<
xsl: variable name = "OrganizationId"
select = "./ns1:OrganizationId" / >
<
xsl: variable name = "InventoryItemId"
select = "./ns1:InventoryItemId" / >
<
xsl: variable name = "ComponentItemHierarchy"
select = "./ns1:ComponentItemHierarchy" /
>
<
xsl: element name = "ns2:result" >

<
xsl: apply - templates select = "node()" / >
<
xsl: if test = "../ns2:result[(./ns1:ParentLineId = $LineId and ./ns1:OrganizationId =
$OrganizationId and concat($ComponentItemHierarchy, '-', . / ns1: InventoryItemId) =
. / ns1: ComponentItemHierarchy)]
">

<
xsl: apply - templates select = "../ns2:result[(./ns1:ParentLineId = $LineId and
. / ns1: OrganizationId = $OrganizationId)]
" /> <
/ xsl : if > <
/ xsl : element > <
xsl: variable name = "nl"
select = "'
'" / >
<
xsl: value - of select = "$nl"
disable - output - escaping = "no" / >
<
/ xsl : template > <
/ xsl : stylesheet >

1366
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Use this XSLT code only to format the output of the ndCtoItemStructure operation.

As an alternative, here's some example code you can use to programmatically format the response.
String xml = "input.xml ; // input XML file location
String xslt = "transformations.xsl"; // XSLT file location
String output = "formatted.xml"; //output XML file location
TransformerFactory tf = TransformerFactory.newInstance();
Transformer tr = tf.newTransformer(new StreamSource(new File(xslt)));
tr.transform(new StreamSource(new File(xml)),

Call the Web Service Through Proxy


Create the proxy for the web service, then use the Java programming language to call the service through your proxy.
You send lter criteria as the input.

Get the Item Structure According to a Simple Condition


Here's part of a payload that gets the item structure for congured items you create between 09-Dec-2018 and 09-
Dec-2019. You call the service in a loop, where each iteration calls the service with a fetch size of 500. If the number of
records you fetch is less than 500, then the code exits the loop.
ObjectFactory obj = new ObjectFactory();
ViewCriteriaRow vcr = obj.createViewCriteriaRow();
ViewCriteria vc = obj.createViewCriteria();
ViewCriteriaItem vci = obj.createViewCriteriaItem();
vci.setAttribute("CreationDate");
vci.getValue().add("2018-12-09");
vci.getValue().add("2019-12-09");
vci.setOperator("BETWEEN");
vci.setConjunction(Conjunction.AND);
vcr.getItem().add(vci);
vc.setConjunction(Conjunction.AND);
vc.getGroup().add(vcr);
FindCriteria fc = obj.createFindCriteria();

fc.setFilter(vc);
int fetchCounter = 0;
List < CtoItemStructure > opList = new ArrayList < CtoItemStructure > ;
List
for storing all the output records List < CtoItemStructure > opTempList = null;
List
for storing the result of one service call
while (opTempList == null || opTempList.size() == 500) {
fc.setFetchStart(fetchCounter);
fc.setFetchSize(500);
opTempList = ctoConfigItemService.findCtoItemStructure(fc, null);
opList.addAll(opTempList);
items of result list from the service call be will be added to the final list fetchCounter = fetchCounter +
500;
}

Get the Item Structure According to Transaction Aribute


Here's part of a payload that gets the item structure for congured items you create between 09-Dec-2017 and 09-
Dec-2019, and where the SCO_color transaction aribute contains the value Black.
//Get the list of configured items according to transaction attribute
ObjectFactory obj = new ObjectFactory();
ViewCriteriaRow vcr = obj.createViewCriteriaRow();

1367
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

ViewCriteria vc = obj.createViewCriteria();
ViewCriteriaItem vci = obj.createViewCriteriaItem();
vci.setAttribute("CreationDate");
vci.getValue().add("2017-12-09");
vci.getValue().add("2019-12-09");
vci.setOperator("BETWEEN");
vci.setConjunction(Conjunction.AND);
vcr.getItem().add(vci);

//Set the filter criteria for the transaction attribute


ViewCriteriaItem childExistsItem = obj.createViewCriteriaItem();
childExistsItem.setAttribute("CtoTransactionAttr"); childExistsItem.setOperator("EXISTS");
childExistsItem.setConjunction(Conjunction.AND); vcr.getItem().add(childExistsItem);
vc.setConjunction(Conjunction.AND);
ViewCriteriaRow childCriteriaRow = obj.createViewCriteriaRow();
ViewCriteria childCriteria = obj.createViewCriteria();
ViewCriteriaItem childCriteriaItem = obj.createViewCriteriaItem();
childCriteriaItem.setAttribute("AttributeName");
childCriteriaItem.getValue().add("SCO_Color");
childCriteriaItem.setOperator("=");
childCriteriaItem.setConjunction(Conjunction.AND);
childCriteriaRow.getItem().add(childCriteriaItem);
childCriteriaItem = obj.createViewCriteriaItem();
childCriteriaItem.setAttribute("CharacterAttributeValue");
childCriteriaItem.getValue().add("Black");
childCriteriaItem.setOperator("=");
childCriteriaItem.setConjunction(Conjunction.AND);
childCriteriaRow.getItem().add(childCriteriaItem);
childCriteria.getGroup().add(childCriteriaRow);
childExistsItem.setNested(childCriteria);
vc.getGroup().add(vcr);

//Make the first call


FindCriteria fc = obj.createFindCriteria(); fc.setFilter(vc);
int counter = 0;
List < CtoItemStructure > configItemList = new ArrayList < CtoItemStructure > (); //List that holds the
output from the first call
List < CtoItemStructure > opTempList = null;
while (opTempList == null || opTempList.size() == 500) {
fc.setFetchStart(counter);
fc.setFetchSize(500);
opTempList = ctoConfigItemService.findCtoItemStructure(fc, null);
counter = counter + 500;
configItemList.addAll(opTempList);

}
//End of making the first call

//End of get the list of configured items according to transaction attribute

//Get the item structure for configured items that the first call returned
ViewCriteriaRow configVcr = obj.createViewCriteriaRow();
ViewCriteria configVc = obj.createViewCriteria();
ViewCriteriaItem configVci = null;
for (CtoItemStructure itemStructRow: configItemList) //For loop to iterate through the list of configured
items
{
if (itemStructRow.getSubItemType().getValue().intValue() == 1) // if it is a config item create condition
based on config item id
{
configVci = obj.createViewCriteriaItem();
configVci.setAttribute("ConfigItemId");
configVci.getValue().add(itemStructRow.getConfigItemId().getValue());

configVci.setOperator("=");
configVci.setConjunction(Conjunction.OR);

1368
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

configVcr.getItem().add(configVci);

}
}
configVc.getGroup().add(configVcr);
//Make the second call
FindCriteria configFc = obj.createFindCriteria(); configFc.setFilter(configVc);
counter = 0;
List < CtoItemStructure > opList = new ArrayList < CtoItemStructure > (); //List for storing the final
output opTempList=null;
while (opTempList == null || opTempList.size() == 500) {
configFc.setFetchStart(counter);
configFc.setFetchSize(500);
opTempList = ctoConfigItemService.findCtoItemStructure(configFc, null);
counter = counter + 500;
opList.addAll(opTempList);
}
//End of making the second call
//End of get the item structure for configured items that the first call returned

Here's an example of the response you receive for the entire structure.
< ns0: findCtoItemStructureResponse xmlns: ns0 = "http://xmlns.oracle.com/apps/scm/cto/matchRepository/
utilities/configItemStructureService/ty
pes / "> <
ns2: result
xmlns: ns2 = "http://xmlns.oracle.com/apps/scm/cto/matchRepository/utilities/configItemStructureService/ty
pes/"
xmlns: ns1 = "http://xmlns.oracle.com/apps/scm/cto/matchRepository/utilities/configItemStructureService/"
xmlns: ns0 = "http://xmlns.oracle.com/adf/svc/types/"
xmlns: xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi: type = "ns1:CtoItemStructure" >
<
ns1: ConfigItemId > 300100071637243 < /ns1:ConfigItemId> <
ns1: ConfigItemNumber > DOS - BAT - CTO * 101 * < /ns1:ConfigItemNumber> <
ns1: BaseModelId > 100100035462338 < /ns1:BaseModelId> <
ns1: BaseModelItemNumber > DOS - BAT - CTO < /ns1:BaseModelItemNumber> <
ns1: InventoryItemId > 300100071637243 < /ns1:InventoryItemId> <
ns1: InventoryItemNumber > DOS - BAT - CTO * 101 * < /ns1:InventoryItemNumber> <
ns1: ParentInventoryItemId > 300100071637243 < /ns1:ParentInventoryItemId> <
ns1: ParentInventoryItemNumber > DOS - BAT - CTO * 101 * < /ns1:ParentInventoryItemNumber> <
ns1: HeaderId > 300100071637281 < /ns1:HeaderId> <
ns1: LineId > 300100071637284 < /ns1:LineId> <
ns1: ParentLineId xsi: nil = "true" / >
<
ns1: SubItemType > 1 < /ns1:SubItemType> <
ns1: UnitQuantity xmlns: tns = "http://xmlns.oracle.com/adf/svc/errors/"
unitCode = "Ea" > 1 < /ns1:UnitQuantity> <
ns1: UnitUOM > Ea < /ns1:UnitUOM> <
ns1: CreationDate > 2018 - 12 - 02 T10: 59: 08.119 + 05: 30 < /ns1:CreationDate> <
ns1: RevisionId xsi: nil = "true" / >
<
ns1: EffectivityDate > 2018 - 12 - 02 T10: 59: 08.119 + 05: 30 < /ns1:EffectivityDate> <
ns1: DisableDate xsi: nil = "true" / >
<
ns1: OrganizationId > 204 < /ns1:OrganizationId> <
ns1: OrganizationCode > V1 < /ns1:OrganizationCode> <
ns1: BillSequenceId > 300100046112964 < /ns1:BillSequenceId> <
ns1: ComponentSequenceId xsi: nil = "true" / >
<
ns1: ComponentType > 1 < /ns1:ComponentType> <
ns1: WIPSupplyType xsi: nil = "true" / >
<
ns1: OptionalComponent > Y < /ns1:OptionalComponent> <
ns1: SubstituteComponent > N < /ns1:SubstituteComponent> <
ns1: ComponentYieldFactor xsi: nil = "true" / >

1369
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

<
ns1: PlanningFactor xsi: nil = "true" / >
<
ns1: RoundingDirection xsi: nil = "true" / >
<
ns1: BasisType xsi: nil = "true" / >
<
ns1: CheckATP xsi: nil = "true" / >
<
ns1: ComponentHierarchy > 300100046112964 < /ns1:ComponentHierarchy> <
ns1: ComponentItemHierarchy > 300100071637243 < /ns1:ComponentItemHierarchy> <
ns1: ItemClassId > 100000011369001 < /ns1:ItemClassId> <
ns1: RootPhantomItemId > < /ns1:RootPhantomItemId> <
/ns2:result> <
ns2: result >. . .< /ns2:result> <
ns2: result >. . .< /ns2:result>. . .<
/ns0:findCtoItemStructureResponse>

Here's an example of the response you receive for the structure according to congure options your user sets in the
sales order.
< ns2: result xsi: type = "ns1:CtoSalesStructure"
xmlns: ns2 = "http://xmlns.oracle.com/apps/scm/cto/matchRepository/utilities/configItemStructureService/
types /
" xmlns:ns1="
http: //xmlns.oracle.com/apps/scm/cto/matchRepository/utilities/configItemStructureService/"
xmlns:ns0="http://xmlns.oracle.com/adf/svc/types/" xmlns:xsi="http://www.w3.org/2001/XMLSchema- instance">
<
ns1: ConfigItemId > 300100090366280 < /ns1:ConfigItemId> <
ns1: ConfigItemNumber > BSOC * 220 * < /ns1:ConfigItemNumber> <
ns1: BaseModelId > 300100032201662 < /ns1:BaseModelId> <
ns1: BaseModelItemNumber > BSOC < /ns1:BaseModelItemNumber> <
ns1: InventoryItemId > 300100032201442 < /ns1:InventoryItemId> <
ns1: InventoryItemNumber > STD - Burner < /ns1:InventoryItemNumber> <
ns1: ParentInventoryItemId > 300100090366280 < /ns1:ParentInventoryItemId> <
ns1: ParentInventoryItemNumber > BSOC * 220 * < /ns1:ParentInventoryItemNumber> <
ns1: HeaderId > 300100090366310 < /ns1:HeaderId> <
ns1: LineId > 300100090366315 < /ns1:LineId> <
ns1: ParentLineId > 300100090366312 < /ns1:ParentLineId> <
ns1: SubItemType > 2 < /ns1:SubItemType> <
ns1: UnitQuantity unitCode = "Ea"
xmlns: tns = "http://xmlns.oracle.com/adf/svc/errors/" > 1 < /ns1:UnitQuantity> <
ns1: UnitUOM > Ea < /ns1:UnitUOM> <
ns1: ItemHierarchy > /300100090366280/
300100032201442 < /ns1:ItemHierarchy> <
ns1: CreationDate > 2018 - 10 - 05 T06: 49: 45.836 - 07: 00 < /ns1:CreationDate> <
ns1: RootHeaderId > 300100090366310 < /ns1:RootHeaderId> <
ns1: CtoTransactionAttr >
<
ns1: LineId > 300100090366315 < /ns1:LineId> <
ns1: TimestampAttributeValue xsi: nil = "true" / >
<
ns1: NumberAttributeValue > 0 < /ns1:NumberAttributeValue> <
ns1: DateAttributeValue xsi: nil = "true" / >
<
ns1: CharacterAttributeValue xsi: nil = "true" / >
<
ns1: AttributeName > Number < /ns1:AttributeName> <
/ns1:CtoTransactionAttr> <
/ns2:result>

1370
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Examples of Using Web Services with Congure-to-Order


Use these example payloads to get some ideas on how you can use web services with congure-to-order.

Basic Queries
Query on Simple Condition

Use ndCtoItemStructure to get the entire structure of congured item VIK12-100.


<?xml version="1.0" encoding="UTF-8"?>
<ns1:findCtoItemStructure xmlns:ns1="http://xmlns.oracle.com/apps/scm/cto/matchRepository/utilities/
configItemStructureService/types/">
<ns1:findCriteria xmlns:ns2="http://xmlns.oracle.com/adf/svc/types/">
<ns2:fetchStart>0</ns2:fetchStart>
-- start at index 0
<ns2:fetchSize>-1</ns2:fetchSize>
-- Get all rows
<ns2:filter>
<ns2:conjunction>And</ns2:conjunction>
<ns2:group>
<ns2:conjunction>And</ns2:conjunction>
<ns2:upperCaseCompare />
<ns2:item>
<ns2:conjunction>And</ns2:conjunction>
<ns2:upperCaseCompare />
<ns2:attribute>ConfigItemNumber</ns2:attribute>
-- Condition on ConfigItemNumber
<ns2:operator>=</ns2:operator>
<ns2:value>VIK12-100</ns2:value>
--value for Configured Item Number
</ns2:item>
</ns2:group>
<ns2:nested />
</ns2:filter>
<ns2:excludeAttribute />
</ns1:findCriteria>
<ns1:findControl xmlns:ns2="http://xmlns.oracle.com/adf/svc/types/">
<ns2:retrieveAllTranslations />
</ns1:findControl>
</ns1:findCtoItemStructure>

Query on More Than One Condition and Filter Results

Use ndCtoItemStructure to get the entire structure for each congured item created between 09-Dec-2018
and 09-Dec-2019 where the conguration model is VIK12. Don't include the InventoryItemId aribute or the
ParentInventoryItemId aribute in the response.
<ns1: findCtoItemStructurexmlns:ns1="http://xmlns.oracle.com/apps/scm/cto/matchRepository/utilities/
configItemStr uctureService/types/">
<ns1:findCriteria xmlns:ns2="http://xmlns.oracle.com/adf/svc/types/">
<ns2:fetchStart>0</ns2:fetchStart>
<ns2:fetchSize>-1</ns2:fetchSize>
<ns2:filter>
<ns2:conjunction>And</ns2:conjunction>
<ns2:group>
<ns2:conjunction>And</ns2:conjunction>
<ns2:upperCaseCompare></ns2:upperCaseCompare>
<ns2:item>
<ns2:conjunction>And</ns2:conjunction>

1371
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

<ns2:upperCaseCompare></ns2:upperCaseCompare>
<ns2:attribute>CreationDate</ns2:attribute>
<ns2:operator>between</ns2:operator>
<ns2:value>2018-10-9</ns2:value> -- Use format YYYY-MM-DD.
<ns2:value>2019-12-09</ns2:value>
</ns2:item>
<ns2:item>
<ns2:conjunction>And</ns2:conjunction>
<ns2:upperCaseCompare></ns2:upperCaseCompare>
<ns2:attribute> BaseModelItemNumber </ns2:attribute>
<ns2:operator>CONTAINS</ns2:operator>
<ns2:value>VIK12</ns2:value>
</ns2:item>
</ns2:group>
</ns2:filter>
<ns2:findAttribute>InventoryItemId</ns2:findAttribute> --List of attributes to include or not include in
response.
<ns2:findAttribute>ParentInventoryItemId</ns2:findAttribute>
<ns2:excludeAttribute>true</ns2:excludeAttribute> --true means don't include in response.
</ns1:findCriteria>
</ns1: findCtoItemStructure>

Refresh, Then Query on More Than One Condition

Use ndCtoItemStructure to get the entire structure for each congured item created between 09-Dec-2018 and 09-
Dec-2019 where the conguration model is VIK12. Use RefreshStructure to refresh the explosion repository.
<ns1: findCtoItemStructurexmlns:ns1="http://xmlns.oracle.com/apps/scm/cto/matchRepository/utilities/
configItemStructureService/types/">
<ns1:findCriteria xmlns:ns2="http://xmlns.oracle.com/adf/svc/types/">
<ns2:fetchStart>0</ns2:fetchStart>
<ns2:fetchSize>-1</ns2:fetchSize>
<ns2:filter>
<ns2:conjunction>And</ns2:conjunction>
<ns2:group>
<ns2:conjunction>And</ns2:conjunction>
<ns2:upperCaseCompare></ns2:upperCaseCompare>
<ns2:item>
<ns2:conjunction>And</ns2:conjunction>
<ns2:upperCaseCompare></ns2:upperCaseCompare>
<ns2:attribute>CreationDate</ns2:attribute>
<ns2:operator>between</ns2:operator>
<ns2:value>2018-10-09</ns2:value> -- Use format YYYY-MM-DD.
<ns2:value>2019-12-09</ns2:value>
</ns2:item>
<ns2:item>
<ns2:conjunction>And</ns2:conjunction>
<ns2:upperCaseCompare></ns2:upperCaseCompare>
<ns2:attribute> BaseModelItemNumber </ns2:attribute>
<ns2:operator>CONTAINS</ns2:operator>
<ns2:value>VIK12</ns2:value>
</ns2:item>
<ns2:item>
<ns2:conjunction>And</ns2:conjunction>
<ns2:upperCaseCompare></ns2:upperCaseCompare>
<ns2:attribute> RefreshStructure </ns2:attribute>
<ns2:operator>=</ns2:operator>
<ns2:value>true</ns2:value> -- Use true or false with RefreshStructure.
</ns2:item>
</ns2:group>
</ns2:filter>
</ns1:findCriteria>
</ns1: findCtoItemStructure>

1372
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Get Large Structures


Get Large Structures

If the web service response for a congured item structure includes more than 500 rows, then you must call the service
one time for each set of 500 rows. For example, if the structure contains 1550 rows, then you make four calls.
• First call gets rows 0 through 499
• Second call gets rows 500 through 999
• Third call gets rows 1,000 through 1,499
• Fourth call gets rows 1,500 through 1,550

You must not set the start value to a value greater than 0 in the rst call. The start value for the second call is greater
than zero, so the web service doesn't refresh the repository. Seing the start value to 0 in the rst call makes sure the
web service refreshes the entire structure.

In this example, assume your response contains 690 rows.


• The rst call sets the start to 0 and size to 500 to get rows 0 through 499.
• The second call sets the start to 500 to get rows 500 to 690.

Here's the rst call.


<?xml version="1.0" encoding="UTF-8"?>
<ns1:findCtoItemStructure xmlns:ns1="http://xmlns.oracle.com/apps/scm/cto/matchRepository/utilities/
configItemStructureService/types/">
<ns1:findCriteria xmlns:ns2="http://xmlns.oracle.com/adf/svc/types/">
<ns2:fetchStart>0</ns2:fetchStart>
<ns2:fetchSize>500</ns2:fetchSize>
<ns2:filter>
<ns2:conjunction>And</ns2:conjunction>
<ns2:group>
<ns2:conjunction>And</ns2:conjunction>
<ns2:upperCaseCompare />
<ns2:item>
<ns2:conjunction>And</ns2:conjunction>
<ns2:upperCaseCompare />
<ns2:attribute>CreationDate</ns2:attribute>
<ns2:operator>BETWEEN</ns2:operator>
<ns2:value>2018-12-09</ns2:value>
<ns2:value>2019-12-09</ns2:value>
</ns2:item>
</ns2:group>
</ns2:filter>
<ns2:excludeAttribute />
</ns1:findCriteria>
<ns1:findControl xmlns:ns2="http://xmlns.oracle.com/adf/svc/types/">
<ns2:retrieveAllTranslations />
</ns1:findControl>
</ns1:findCtoItemStructure>

Here's the second call.


<?xml version="1.0" encoding="UTF-8"?>
<ns1:findCtoItemStructure xmlns:ns1="http://xmlns.oracle.com/apps/scm/cto/matchRepository/utilities/
configItemStructureService/types/">
<ns1:findCriteria xmlns:ns2="http://xmlns.oracle.com/adf/svc/types/">
<ns2:fetchStart>500</ns2:fetchStart>
<ns2:fetchSize>500</ns2:fetchSize>
<ns2:filter>
<ns2:conjunction>And</ns2:conjunction>

1373
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

<ns2:group>
<ns2:conjunction>And</ns2:conjunction>
<ns2:upperCaseCompare />
<ns2:item>
<ns2:conjunction>And</ns2:conjunction>
<ns2:upperCaseCompare />
<ns2:attribute>CreationDate</ns2:attribute>
<ns2:operator>BETWEEN</ns2:operator>
<ns2:value>2018-12-09</ns2:value>
<ns2:value>2019-12-09</ns2:value>
</ns2:item>
</ns2:group>
</ns2:filter>
<ns2:excludeAttribute />
</ns1:findCriteria>
<ns1:findControl xmlns:ns2="http://xmlns.oracle.com/adf/svc/types/">
<ns2:retrieveAllTranslations />
</ns1:findControl>
</ns1:findCtoItemStructure>

Refresh, Then Get Large Structures

Using ndCtoItemStructure to get a large structure might take a lot of time because it must rst refresh the explosion
repository to get structure details, and then query the data. To avoid this problem, make two calls.

• Refresh the repository.


• Get the structure.

Use the same parameter values in each call.

Here's the rst call.


<?xml version="1.0" encoding="UTF-8"?>
<ns1:refreshConfigStructure xmlns:ns1="http://xmlns.oracle.com/apps/scm/cto/matchRepository/utilities/
configItemStructureService/types/">
<ns1:configList xmlns:ns2="http://xmlns.oracle.com/apps/scm/cto/matchRepository/utilities/
configItemStructureService/">
<ns2:CreationDateFrom>2018-12-09</ns2:CreationDateFrom>
<ns2:CreationDateTo>2019-12-09</ns2:CreationDateTo>
</ns1:configList>
</ns1:refreshConfigStructure>

Add subsequent calls to get the structure. See the Get Large Structures section, above.

Other Queries
Group Your Conditions

In this example, use ndCtoItemStructure to get the entire structure of each congured item created between 09-
Dec-2018 and 09-Dec-2019 for conguration model VIK12. Use the OR conjunction to group your conditions.
<?xml version="1.0" encoding="UTF-8"?>
<ns1:findCtoItemStructure xmlns:ns1="http://xmlns.oracle.com/apps/scm/cto/matchRepository/utilities/
configItemStructureService/types/">
<ns1:findCriteria xmlns:ns2="http://xmlns.oracle.com/adf/svc/types/">
<ns2:fetchStart>0</ns2:fetchStart>
<ns2:fetchSize>500</ns2:fetchSize>
<ns2:filter>
<ns2:conjunction>And</ns2:conjunction>
<ns2:group>
<ns2:conjunction>And</ns2:conjunction>
<ns2:upperCaseCompare />
<ns2:item>

1374
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

<ns2:conjunction>And</ns2:conjunction>
<ns2:upperCaseCompare />
<ns2:attribute>CreationDate</ns2:attribute>
<ns2:operator>BETWEEN</ns2:operator>
<ns2:value>2018-12-09</ns2:value>
<ns2:value>2019-12-09</ns2:value>
</ns2:item>
</ns2:group>
<ns2:group>
<ns2:conjunction>Or</ns2:conjunction>
--Group with the OR condition.
<ns2:upperCaseCompare />
<ns2:item>
<ns2:conjunction>And</ns2:conjunction>
<ns2:upperCaseCompare />
<ns2:attribute>BaseModelItemNumber</ns2:attribute>
<ns2:operator>=</ns2:operator>
<ns2:value>VIK12</ns2:value>
</ns2:item>
</ns2:group>
</ns2:filter>
<ns2:excludeAttribute />
</ns1:findCriteria>
<ns1:findControl xmlns:ns2="http://xmlns.oracle.com/adf/svc/types/">
<ns2:retrieveAllTranslations />
</ns1:findControl>
</ns1:findCtoItemStructure>

Get Transaction Aributes

Use ndCtoItemStructure to get the entire structure of the VIK12-100 congured item. Filter the result so it only includes
details for transactional aribute names that start with MFG_Transactional_Aributes, and that contain the value Black.
<ns1:findCtoItemStructure xmlns:ns1="http://xmlns.oracle.com/apps/scm/cto/matchRepository/utilities/
configItemStructureService/types/"
>
<ns1:findCtoItemStructure>
<ns1:findCriteria>
<ns2:fetchStart>0</ns2:fetchStart>
<ns2:fetchSize>-1</ns2:fetchSize>
<ns2:filter>
<ns2:conjunction>And</ns2:conjunction>
<ns2:group>
<ns2:conjunction>And</ns2:conjunction>
<ns2:upperCaseCompare>false</ns2:upperCaseCompare>
<ns2:item>
<ns2:conjunction>And</ns2:conjunction>
<ns2:upperCaseCompare>false</ns2:upperCaseCompare>
<ns2:attribute>ConfigItemNumber</ns2:attribute>
<ns2:operator>=</ns2:operator>
<ns2:value>VIK12*100</ns2:value>
</ns2:item>
</ns2:group>
</ns2:filter>
<ns2:childFindCriteria> -- This is the structure for adding conditions based on TIA
<ns2:fetchStart>0</ns2:fetchStart>
<ns2:fetchSize>-1</ns2:fetchSize>
<ns2:filter>
<ns2:conjunction>And</ns2:conjunction>
<ns2:group>
<ns2:conjunction>And</ns2:conjunction>
<ns2:upperCaseCompare>false</ns2:upperCaseCompare>
<ns2:item>
<ns2:conjunction>And</ns2:conjunction>
<ns2:upperCaseCompare>false</ns2:upperCaseCompare>

1375
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

<ns2:attribute>AttributeName</ns2:attribute>
<ns2:operator>STARTSWITH</ns2:operator>
<ns2:value>MFG_Transactional_Attributes</ns2:value>
</ns2:item>
<ns2:item>
<ns2:conjunction>And</ns2:conjunction>
<ns2:upperCaseCompare>false</ns2:upperCaseCompare>
<ns2:attribute>CharacterAttributeValue</ns2:attribute>
<ns2:operator>=</ns2:operator>
<ns2:value>Black</ns2:value>
</ns2:item>
</ns2:group>
</ns2:filter>
<ns2:childFindCriteria/>
<ns2:childAttrName>CtoTransactionAttr</ns2:childAttrName> -- This value is fixed and needs to be passed if
we want filter based on the TIA
</ns2:childFindCriteria>
</ns1:findCriteria>
<ns1:findControl>
<ns2:retrieveAllTranslations>false</ns2:retrieveAllTranslations>
</ns1:findControl>
</ns1:findCtoItemStructure>

Get Entire Item Structure According to Transaction Aribute

Get the entire item structure for congured items created between 09-DEC-2018 and 09-DEC-2019, and where the
value of transaction aribute SCO_color is Black.

You call the service two times.


• Get congured items that match the lter.
• Use values that the rst call returns as the parameters, such as CongItemNumber.

Here's the rst call.


<?xml version="1.0" encoding="UTF-8"?>
<ns1:findCtoItemStructure xmlns:ns1="http://xmlns.oracle.com/apps/scm/cto/matchRepository/utilities/
configItemStructureService/types/">
<ns1:findCriteria xmlns:ns2="http://xmlns.oracle.com/adf/svc/types/">
<ns2:fetchStart>0</ns2:fetchStart>
<ns2:fetchSize>500</ns2:fetchSize>
<ns2:filter>
<ns2:conjunction>And</ns2:conjunction>
<ns2:group>
<ns2:conjunction>And</ns2:conjunction>
<ns2:upperCaseCompare>false</ns2:upperCaseCompare>
<ns2:item>
<ns2:conjunction>And</ns2:conjunction>
<ns2:upperCaseCompare>false</ns2:upperCaseCompare>
<ns2:attribute>CreationDate</ns2:attribute>
<ns2:operator>BETWEEN</ns2:operator>
<ns2:value>2018-12-09</ns2:value>
<ns2:value>2019-12-09</ns2:value>
</ns2:item>
<ns2:item>
--This block contains logic for filtering configured items according to TIA
<ns2:conjunction>And</ns2:conjunction>
<ns2:upperCaseCompare>false</ns2:upperCaseCompare>
<ns2:attribute>CtoTransactionAttr</ns2:attribute>
<ns2:operator>Exists</ns2:operator>
<ns2:nested>
<ns2:group>
<ns2:conjunction>And</ns2:conjunction>
<ns2:upperCaseCompare>false</ns2:upperCaseCompare>
<ns2:item>

1376
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

<ns2:conjunction>And</ns2:conjunction>
<ns2:upperCaseCompare>false</ns2:upperCaseCompare>
<ns2:attribute>AttributeName</ns2:attribute>
<ns2:operator>=</ns2:operator>
<ns2:value>SCO_Color</ns2:value>
</ns2:item>
<ns2:item>
<ns2:conjunction>And</ns2:conjunction>
<ns2:upperCaseCompare>false</ns2:upperCaseCompare>
<ns2:attribute>CharacterAttributeValue</ns2:attribute>
<ns2:operator>=</ns2:operator>
<ns2:value>Black</ns2:value>
</ns2:item>
</ns2:group>
</ns2:nested>
</ns2:item>
</ns2:group>
</ns2:filter>
<ns2:excludeAttribute />
</ns1:findCriteria>
</ns1:findCtoItemStructure>

Here's the second call.


<?xml version="1.0" encoding="UTF-8"?>
<ns1:findCtoItemStructure xmlns:ns1="http://xmlns.oracle.com/apps/scm/cto/matchRepository/utilities/
configItemStructureService/types/">
<ns1:findCriteria xmlns:ns2="http://xmlns.oracle.com/adf/svc/types/">
<ns2:fetchStart>0</ns2:fetchStart>
-- start at index 0
<ns2:fetchSize>-1</ns2:fetchSize>
-- Indicates all the rows should be returned
<ns2:filter>
<ns2:conjunction>And</ns2:conjunction>
<ns2:group>
<ns2:conjunction>And</ns2:conjunction>
<ns2:upperCaseCompare />
<ns2:item>
-- This block has to be repeated for all the configured items returned from the previous call
<ns2:conjunction>And</ns2:conjunction>
<ns2:upperCaseCompare />
<ns2:attribute>ConfigItemNumber</ns2:attribute>
-- Condition is Based on ConfigItemNumber
<ns2:operator>=</ns2:operator>
<ns2:value>VIK12*100</ns2:value>
-- Configured Item Number returned from the previous call
</ns2:item>
</ns2:group>
<ns2:nested />
</ns2:filter>
<ns2:excludeAttribute />
</ns1:findCriteria>
</ns1:findCtoItemStructure>

Remove the Item Structure

Remove the structure of a congured item from the repository.

Here's a payload that removes the structure of all congured items that include VIK12 as the item number.
<?xml version="1.0" encoding="UTF-8"?>
<ns1:deleteConfigStructure xmlns:ns1="http://xmlns.oracle.com/apps/scm/cto/matchRepository/utilities/
configItemStructureService/types/">
<ns1:configList xmlns:ns2="http://xmlns.oracle.com/apps/scm/cto/matchRepository/utilities/
configItemStructureService/">
<ns2:BaseModelItemNumber>VIK12</ns2:BaseModelItemNumber>

1377
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

</ns1:configList>
</ns1:deleteConfigStructure>

Aributes in the Response Payload


Get details about aributes that the ConguredItemService web service returns in the response payload.

Structure of the Sales Order


Here are the aributes that the response payload includes when you get the structure of the sales order.

Aribute Type Description

CongItemId Long Value that identies the conguration


    item that the ow creates.
 

CongItemNumber String Number that identies the congured


    item.
 

BaseModelId Long Value that identies the inventory item for


    the assemble-to-order model that your
user uses to choose the congure options.
 

BaseModelItemNumber String Number that identies the name of the


    assemble-to-order model.
 

InventoryItemId Long Value that identies the inventory item for


    the line item.
 

InventoryItemNumber String Number that identies Item name of the


    line item.
 

ParentInventoryItemId Long Value that identies the parent of the


    inventory item.
 

ParentInventoryItemNumber String Number that identies the name of the


    parent of the inventory item.
 

HeaderId Long Value that identies the match header


    record.
 

LineId Long Value that uniquely identies the line


    assigned to the match detail record.
 

ParentLineId Long Value that identies the line that


    represents the immediate parent item of
the component.

1378
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Aribute Type Description

SubItemType Long Value that identies the type of sub item.


    The aribute value is 1, 2, or 4.
 
1. Assemble-to-order item.
 
2. Option class.
 
4. Congure option.
 

UnitQuantity BigDecimal Quantity needed to make one unit of the


    top level assembly.
 

UnitUOM String Unit of measure for the quantity.


     

ItemHierarchy String Hierarchy of inventory item identiers,


    separated by a forward slash ( / ).
 

CreationDate Timestamp Date when the user created the congured


    item.
 

RootHeaderId Long Value that identies the header of the top


    level assemble-to-order item.
 

Structure of the Entire Instance


Here are the aributes that the response includes when you get the structure of the entire instance. The response also
includes the same aributes for the structure of the sales order except for ItemHierarchy and RootHeaderId.

Aribute Type Description

RevisionId Long Value that identies the item revision.


     

EectivityDate Timestamp Date when the item or component goes


    into eect.
 

DisableDate Timestamp Date when the ow disables the item or


    component.
 

OrganizationId Long Value that identies the organization of


    the inventory item.
 

OrganizationCode String Abbreviation that identies the


    organization of the inventory item.

1379
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Aribute Type Description

BillSequenceId Long Value that identies the bill sequence


    for the assemble-to-order model. The
structure of the conguration model
denes the sequence.
 

ComponentSequenceId Long Value that identies the sequence for the


    selected component. The structure of the
conguration model denes the sequence.
 

ComponentType String The type of component. Contains 1 or -1


    (negative value of 1).
 
1. Assembled component.
 
-1. Component that isn't assembled. Its
typically part of an assembled component.
 

WIPSupplyType BigDecimal Type of supply that's work-in-process.


    The structure of the conguration model
denes the type.
 

OptionalComponent String Contains Y or N.


     
Y. The component is optional.
 
N. The component is required.
 

SubstituteComponent String Contains Y or N.


     
Y. The component is a substitute.
 
N. The component isn't a substitute.
 

ComponentYieldFactor BigDecimal Multiplication factor the ow uses to


    determine the quantity needed to fulll
the component. The structure of the
conguration model denes the factor.
 

PlanningFactor BigDecimal Multiplication factor the ow uses to


    determine the quantity needed to plan
the component. The structure of the
conguration model denes the factor.
 

RoundingDirection BigDecimal Species the rounding direction as up or


    down. The structure of the conguration
model denes the direction.
 

BasisType BigDecimal Species whether the value is an item. The


    value 1 species its an item.

1380
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Aribute Type Description

CheckATP BigDecimal Specify whether to run available-to-


    promise rule. Contains 1 or 2.
 
1. Run rule.
 
2. Don't run rule.
 
The structure of the conguration model
determines whether to run the rule.
 

ComponentHierarchy String Hierarchy of the components in the


    conguration model. It's a hierarchical list
of identiers, where a dash ( - ) separates
each identier.
 

ComponentItemHierarchy String Hierarchy of the inventory items in the


    conguration model. It's a hierarchical list
of identiers, where a dash ( - ) separates
each identier.
 

ItemClassId Long Value that identies the item class of the


    congured item.
 

RootPhantomItemId Long Value that uniquely identies the phantom


    of a subassembly item.
 

Transaction Aribute
Here are the aributes that the response contains when your payload includes a transaction aribute.

Aribute Type Description

LineId Long Value that uniquely identies the order


    line.
 

AributeName String Name of the transaction aribute.


     

CharacterAributeValue String Contains the character value of the


    transaction aribute.
 

NumberAributeValue Long Contains the number value of the


    transaction aribute.
 

DateAributeValue Date Contains the date value of the transaction


    aribute.

1381
Oracle SCM Cloud Chapter 9
Implementing Order Management Congure-to-Order

Aribute Type Description

TimestampAributeValue Timestamp Contains the time stamp value of the


    transaction aribute.
 

1382
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

10 Extend

Extensions
Overview
Overview of Creating Order Management Extensions
Write your own Groovy script that modies your Order Management deployment, implements your own functionality,
and species the extension point that determines when to run this script.
An order management extension is a Groovy script you write that meets your specic business requirements. An
extension point is an event that you specify to determine when to run the script.

You can use a exeld to modify the data model, or Page Composer to modify the user interface, but you can't use
them to programmatically modify logic or modify your order management deployment. Instead, you can create an
order management extension.

1383
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Here is some Groovy script in an example extension named Update Order Submit Date. It uses aribute
_H1AributeDateTime so it can set the value of an extensible exeld to the date and time when Order Management
submied the sales order.

Business Requirements That Your Order Management Extension Can Meet

Example Requirement Description

Get data
  Create an order management extension to get data from dierent sources.

• Use the getAr method to get data from Order Management.

1384
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Example Requirement Description

• Use a public view object (PVO) to get data from some other Oracle Fusion product.
A public view object is a data object that Order Management gets from some other
Oracle Fusion solution. For example, you can use a public view object to look up an item
category in Product Information Management or a purchase order in Oracle Fusion
Purchasing.
• Use a web service to get data from a source that resides outside of Order Management
Cloud.

Implement your own logic Use Groovy to write your own logic when you code your extension. Your code can validate the
  sales order. If validation fails, then your code can stop the ow and create a message.
 
For details about Groovy, see website Groovy Programming Language at www. groovy-lang.
org.
 

Raise error messages and warnings Create an extension that raises an error message or warning.
   

Set the default value for sales order Use Groovy to write your own logic that sets default values before you save the sales order or
aributes or extensible exelds submit it to order fulllment.
   

Get values for return lines from the A return order doesn't include values from the original order on some order line aributes. For
original sales order. example, the return line doesn't include the original value for the sales credit or purchase order
  number. You can use an extension to get the value from the original line order.
 

Example Actions

Action Description

Submit a sales order • Reassign the warehouse for pick-to-order. Set up an item that determines whether the
  sales order references a pick-to-order or a hardware model.
• Stop support lines that reference an incorrect accounting rule. Set up item entities and
accounting rule entities.
• Make sure only one contract is Active or Signed for a booking. Set up entities for the
installed base, contracts, or order management.
• Assign a sales representative. Set up sales compensation rules.
• Update the accounting rule for a model for included items.
• Update the quote status for each sales order from a store front that a third-party partner
maintains.
• Verify the purchase order number that the Order Entry Specialist enters on the sales
order equals a purchase order in Oracle Fusion Procurement.
• Assign the Salesperson according to a sales compensation rule that you create in some
application outside of Oracle Fusion, then use a web service to call the application.
• During order import, copy aachments from a purchase-to-order kit to each item that
the kit contains.
• Set the default value for order preferences in each sales order. Get these values from the
customer master.

Save or validate a sales order Write a validation on an imported source order that rejects the import or prevents the Order
  Entry Specialist from saving the order without xing the problem.
 

1385
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Parts of an Order Management Extension

Part Description

Function A Groovy function, similar to a Java function, such as getAr. Use a function only in the
  extension where you set it up. You can't dene a function in one extension, and then use it in
another extension.
 

Aribute The aribute of a sales order, such as ShippingInstructions.


   

Web Service
  The name of a web service.

• Your extension code can only call a web service that you set up on the Manage Web
Service Denitions page.
• You must manually create the request payload in your code.
• Your code must parse and interpret the response payload.
• You must write your code so it works only for a synchronous interaction. You can't write
code for an asynchronous interaction.

Message
  A message you send to Order Management and that can display in the Order Management
work area.

• An extension can log an error or warning message in the messaging framework.


• Order Management logs each message in a log le as part of order import or when a
web service rejects a sales order.
• An error message stops the ow and rejects the save or submit action.
• A warning allows the ow to continue. If you use a warning at the beginning of a
submission request, then Order Management displays the warning message to the
Order Entry Specialist, then continues to process the sales order in order fulllment.
• Use the Manage Messages page to dene messages and tokens.
• Use tokens to insert dynamic content into each message.
• Modify the DOO_MSG_REQUEST_FUNCTION lookup to categorize the errors that Order
Management displays to the Order Entry Specialist and improve search for these errors.

1386
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Points Where You Can Run Order Management Extensions


Run an order management extension at dierent extension points when creating a sales order or during order
fulllment.

Note.
1. Something occurs that triggers the On Save extension point.
◦ An Order Entry Specialist does an action in the Order Management work area that causes Order
Management Cloud to automatically save the sales order. Here are some example actions.
• Validate
• Save

1387
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

• Save and Close


• Reprice
• Submit
• Copy Order
• Create Revision
• Create Return
◦ Order Management imports a source order from a source system, then processes it, such as creating a
cross-reference, defaulting a value, and so on.
2. You can create an extension that runs on the On Save extension point.
3. You can create an extension that runs on the On Start of Submission Request extension point. If the extension
results in failure, then Order Management sets the sales order status to Draft, with errors.
4. Order Management processes the submission request, including running validations, doing credit check,
communicating with Global Trade Management, order approvals, and so on.
5. You can create an extension that runs on the On End of Submission Request extension point. If the extension
results in. . .
◦ Failure. Order Management sets the sales order status to Draft, with errors.
◦Warning. Order Management displays a warning message, successfully submits the sales order, and
continues to process it through order fulllment. The Order Entry Specialist can examine the warning
messages on the submied order.
6. The fulllment system fullls the sales order, including shipping, invoicing, and so on. You can't run an
extension after Order Management submits the sales order to order fulllment and order orchestration.

Extension Point Behavior


On Save

If an order management extension that runs during On Save raises a validation failure, then Order Management stops
running the extension and moves control to the next extension that you specify to run during On Save. If the validation
failure includes at least one error message, and if Order Management has already run each of the On Save extensions,
then it aborts the save for the sales order.

Order Management handles each message that the extension raises dierently depending on how its saving the sales
order.
• An Order Entry Specialist is saving a sales order in the Order Management work area. Order Management
displays the message in a dialog. This user must correct the validation error and aempt to save the sales order
again.
• A service is saving a source order during order import. Order Management returns the message in a response.
The channel that's importing the source order must x it, then import it again.

Order Management doesn't save the message in the messaging framework because it might not have saved the sales
order and the change that caused the validation to fail.

On Start of Submission Request


• Order Management calls the extension when the extension point occurs. Its the rst operation that Order
Management does when it validates the submit.
• An extension can modify values on each writable order aribute, including header aributes and order line
aributes, exeld aributes, and aachment aributes.
• Order Management runs the extension before it validates the submit or applies constraints.
• If an extension raises a validation failure, then Order Management stops running the extension and moves
control to the next extension that you specify to run during On Start of Submission Request.

1388
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

• If the validation failure includes at least one error message, then Order Management aborts the submit for the
sales order, returns the order status to Draft, then logs the error and warning messages.
• If the Order Entry Specialist is saving a sales order in the Order Management work area, and if the validation
failure includes at least one error message, then Order Management displays a dialog that includes the
message.
• If all messages are warnings, then Order Management submits the sales order to order fulllment and doesn't
display a dialog in the Order Management work area. The user can view the warning message after Order
Management submits the sales order to order fulllment.

On End of Submission Request


• Order Management calls the extension when the extension point occurs. It makes this call as the last step
before it sends the sales order to order fulllment.
• The extension can modify values only on header exelds and fulllment line exelds. If the extension
aempts to modify any other aribute, then Order Management logs a runtime error and aborts all extensions
that its running for this extension point.

Guidelines for Creating Order Management Extensions


Use guidelines to help you create an order management extension.
Here are some examples you can use to get started.
• See the Examples section, starting with Use Order Management Extensions to Update the Order Submit Date.
• See article Dening Order Management Extensions - Including Examples (Doc ID 2428750.1),
on My Oracle support, at hps://support.oracle.com/epmos/faces/DocumentDisplay?
_afrLoop=486888338798676&id=2428750.1

Determine Your Data Requirements


Determine the type of data you need and how you will access it.

Type of Data You Need How to Access Data Limitation

Data from a sales order in Order To read data, use methodgetAribute. Each method can read or write only to the
Management Cloud.   sales order that the Order Entry Specialist
  To write data, use method setAribute. is currently entering in work area Order
  Management. They don't read or write to
some other version of the current sales
order, or to some other sales order in
Order Management.
 
Use a public view object to access data
from a sales order that isn't the current
sales order.
 
Each method can only read from or write
to an aribute. They can't create an order
line.
 

Data from an Oracle Fusion Application Public View Object (PVO). The Oracle Fusion Application must share
outside of Order Management, such as   their data through a public view object.
the customer master, the item master For details, see topic Using Extensions The public view object you need might not
in Oracle Fusion Procurement or Oracle to Access Data Outside of Order be available, or it might not provide access
Fusion Receivables, and so on. Management: Procedure. to the aribute that you require. It might
   

1389
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Type of Data You Need How to Access Data Limitation

Data from a sales order in Order be necessary to submit a request to get


Management Cloud that isn't the current access to the data you need.
sales order.  
 

Data from a system that resides outside of Web service. You can use only a synchronous web
an Oracle Fusion Application   service. You can't use an asynchronous
  web service. You can only use a SOAP
service. You can't use a REST service.
 

Consider the data you can access. For a complete list, see topic Aributes You Can Use With Order Management
Extensions: Reference.

Read Access Write Access

Do a read operation on this data at Do a write operation on this data during extension points On Save or On Start of Submission
any of the extension points. Request.

• Order header, including • Order header, including extensible exeld


extensible exeld • Fulllment line, including extensible exeld
• Fulllment lines, including • Aachment
extensible exeld • Sales credit
• Sales credit • Transaction item aribute
• Pricing entity, such as charge, • Document reference
charge component, manual
price adjustment, total, price
validation, tax detail, and so on You can't do a write operation on this data during extension point On End of Submission
• Lot or serial Request because Order Management already performed a large set of predened validations
• Transaction item aribute at this point.
• Payment
• Billing plan Perform a write operation on this data during extension point On End of Submission Request.
• Aachment
• Fulllment line detail • Extensible exeld on the order header
• Document reference • Extensible exeld on the fulllment line
• Aachment

1390
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Consider Runtime Behavior

Note.

• Each extension runs in sequential order, and only extensions where aribute Active contains a check mark run.
Assume you create extensions x, y, and z. Extension x runs rst, then extension y. If you make z active, then
extension x runs, and then z, and then y.

Sequence Extension Name Active

1 x Contains a check mark

1391
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Sequence Extension Name Active

     

10 y Contains a check mark


     

5 z Doesn't contain a check mark


     

• Each active extension runs until it nishes unless an error or warning occurs. If an error or warning occurs, then
no more extensions will run. For example, assume x, y, and z are active, x nishes, but z ends in error. Extension
y won't run.
• Each variable is local to each extension. You can't share them across extensions. For example, assume you
require variable A in extensions x and y. If you dene variable A in x, then you can't use A in y. Instead, you
must write logic in y that references A in x.

Use Proven Coding Techniques

1392
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Note.
1. Use an IF. Avoid writing code that runs in every condition in your development environment. Instead, use an IF
statement so your code runs only in your specic use case.
Assume you write a statement that runs every time the extension point occurs, without conditional logic,
but the extension contains an error. The extension might cause every sales order in your development
environment to fail in every situation, regardless of the condition you must test. This situation might negatively
aect other developers, and also make it more dicult for you to manage each of your own extensions.
For example, assume you write an extension that manipulates aribute shipInstructions. You can add this
statement as the rst statement in your extension so your code runs only for your use case.
if (shipInstructions != "ValidateCustomerPONumber" ) return;

If the statement evaluates to true, then no more logic in your extension runs. Instead, the ow exits your
extension.
Remove the IF after you test your extension and are ready to deploy into production.
2. Check for empty values. Avoid a null pointer exception. Use an IF statement that makes sure each aribute
you reference contains a value. If it doesn't, then return ow out of the extension.
3. Add comments. Add detailed comments that document each part of your code so you know exactly the logic
that each statement implements. Comments help others to understand the intent of your code, and also help
you to troubleshoot large complex code, or code that you haven't examined for a long period of time.
• Consider all factors that impact the order line, such as congured items, kits, or ship sets.
• Take advantage of Groovy constructs, such as simplied array usage and initializing maps.

Dene Variable Type in Groovy

Groovy is a dynamic language and doesn't require you to dene the type for each variable. For example, you can dene
soldToPartyName and Lines each as a variable without a type. As an option, specify a type, if necessary. For example,
dene soldToPartyName as type String.

Access each child entity as an aribute. For example.


header.getAttribute("Lines"), header.getAttribute("SalesCredits")

Use Implicit Variables

Use implicit variables with each extension. You don't need to dene them.

Implicit Variable Description

Header Represents the order header object. Use the Header variable to access order header aributes
  and child entity rows.
 

Context Context object that allows each extension to access context details, such as the name of the
  extension that's running, the event code, and so on. The context object also provides access to
utility and helper methods, such as logging.
 
You use this format.
 
context extension name
 
For example.

1393
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Implicit Variable Description

 
context Update Order Submit Date
 

Reference Sales Order Entities

Use the implicit header variable to access each order entity. Order Management exposes each entity as a generic row
object. Each extension can reference only get methods or set methods.

Action Code

Read an aribute value.


  getAribute("aributeName")

Write to an aribute.
  setAribute("aributeName", aributeValue)

For example.

Code Description

def soldToPartyName = header. Get the value of the BuyingPartyName aribute.


getAribute("BuyingPartyName");  
 

header.
setAribute("ShippingInstructions" Set the value of the ShippingInstructions aribute to Use only next-day air.
"Use only next-day air.");
 

def lines = header. Return a set of lines. You can iterate over the iterator to access individual lines.
getAribute("Lines");  
 

Navigate Row Sets

1394
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Order Management returns each child entity as a set of rows. For example, an order line is a child of a sales order. This
example illustrates how you can use while next to loop through each row, an order line, from the set, which is the sales
order.

Here's the same code with descriptions.

Code Description

def lines = header. Call the getAribute method on the order header to access the row set iterator for the order
getAribute("Lines"); lines.
   

while( lines. hasNext() ) { Determine whether the lines row set includes a next row, and loop until the row set doesn't
  contain any more rows.
 

def line = lines.next();


  Get the next order line row.

• On the rst loop through the while, move from line 1 to line 2.
• On the second loop through the while, move from line 2 to line 3.
• And so on.

line. Set the value of the billing transaction type on the order line to 12345L.
SetAribute("BillingTransactionTypeIdentier
 
12345L"); For brevity, this example hard codes the value 12345L. In most situations, its more likely you
  would dene a variable or some other logic rather than hard code the value.
 

Here's the same code without comments.


def lines = header.getAttribute("Lines");
while( lines.hasNext() ) {
def line = lines.next();
line.SetAttribute("BillingTransactionTypeIdentifier, 12345L");
}

Navigate Row Sets of Grandchild Entities

Access a grandchild entity.

1395
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

The following example extension.


• Accesses the Charge Component row of an order line
• Gets the order line
• Accesses the order charge rows below the order line
• Accesses the charge component rows from the order charge

Code Description

def lines = header. Use method getAribute on the order header to access the row set iterator for the order lines.
getAribute("Lines");  
 

while( lines. hasNext() ) { Determine whether the lines row set includes a next row, and loop until the row set doesn't
  contain any more rows.
 

def line = lines.next(); Get the next row.


   

def charges = line. Get the row set for the order charges on the order line.
getAribute("OrderCharges");  
 

while( charges. hasNext() ) { Loop through the order charge rows.


   

def charge = charges. next(); Get the next order charge from the row set.
   

def chargeComps = charge. Get the row set for the charge components of the child entity.
getAribute("ChargeComponents");  
 

while( chargeCompo. hasNext() ) { Loop through the charge components for the current charge.
   

def chargeComp = chargeCompo. Get the next charge component.


next();  
 

def currency = chargeComp. Get the value of aribute ChargeCurrencyCode from the current charge component row.
getAribute("ChargeCurrencyCode");  
 

Here's the same code without comments.


def lines = header.getAttribute("Lines"); //get the lines row set
while( lines.hasNext() ) {//determine whether more lines exist
def line = lines.next();
def charges = line.getAttribute("OrderCharges");
while( charges.hasNext() ) {
def charge = charges.next();
def chargeComps = charge.getAttribute("ChargeComponents");
while( chargeCompo.hasNext() ) {
def chargeComp = chargeCompo.next();
def currency = chargeComp.getAttribute("ChargeCurrencyCode");
}

1396
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

}
}

Use Extensible Flexelds

For details, see topic Using Extensible Flexelds in Order Management: Guidelines.

Implement Security

Write logic according to the job role. For example, write an extension that prevents an action or that sets default values
on the sales order according to the job role that the Order Entry Specialist uses when signing into Order Management.
This example references ORA_FOM_ORDER_ENTRY_SPECIALIST_JOB, which is the role code for job role Order Entry
Specialist.

1397
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Note.
1. Use the Security Console to get details about the job roles and role code that your extension must reference.
For details, see topic Security Console: Overview.
2. Use method isUserInRole.
3. In the rst parameter for isUserInRole, reference the role code that the security console denes.
Manipulate Aachments

Use an order management extension to create, read, update, or delete an aachment. Use a text or XML aachment le.
Don't use a binary le.

Note.
1. Use get methods to get aachment details from an aachment that already exists, such as getText to get all
the text that the aachment contains, use getPklValue to get the sales order or order line that references the

1398
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

aachment, getFileName to get the name of the aachment le name, and so on. Here's some of the methods
you can use.

◦ getText
◦ getPklValue
◦ getEntityName
◦ getDataTypeCode
◦ getTitle
◦ getDescription
◦ getFileName
◦ getUrl
◦ getCategoryName
2. Use method createAachment to create an aachment, and use set methods to specify how to create it. You
can specify a new aachment le of type File, Text, or URL. For example, use setFileName to specify the name
of the aachment le. Here's some of the methods you can use.

◦ setDataTypeCode
◦ setTitle
◦ setDescription
◦ setFileName
◦ setFileContentType
◦ setFileContent
3. Use method deleteAachment to delete an aachment. In this example, the code uses a for statement to
iterate through all the aachments that a sales order contains and deletes all of them.

1399
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Dene Messages
Use an extension to dene a message.

Note.

1. messageType. Dene the messageType as WARNING or ERROR. The Order Management work area uses a
dierent icon for each type.
2. Lookup. Use page Manage Order Lookups in work area Setup and Maintenance to categorize your messages,
then reference them from your code.

Use predened lookups or create your own. Categorizing helps the Order Entry Specialist search for messages
and view them in analytic charts.

1400
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Use Error to improve search and display because errors display in work area Order Management in aribute
Error Type.

In this example, assume you dene the Meaning as Customer Relationship Mismatch.
3. Header or line. Indicate where the error occurs. Use one of these values.

◦ header. Apply the message to an error that occurs on the order header.
◦ line. Apply the message to an error that occurs on an order line.

The example in the screen print uses line. This example includes code (not visible, for brevity) above
throw new ValidationException that denes line as a variable, uses it to iterate through all the lines in the
sales order, then saves the order line number where the error occurs, such as line 3. At run time, Order
Management displays an icon on line 3 that the Order Entry Specialist can click to examine message
details.
4. Manage Messages. Use page Manage Messages in work area Setup and Maintenance.

◦ Referencing a message provides advantages over hard coding the message.


◦Reference the message from dierent extensions, manage the message independently of the extension,
and translate the message to some other language besides English.
◦ Using page Manage Messages can simplify message management because other developers and
administrators can use page Manage Messages instead of modifying hard coded messages in your
extension, which requires knowledge of writing in Groovy.
◦ You can also dene a message to help you troubleshoot your extension during development. You
can include details in the message that display the state of various objects to help you pinpoint
problem areas. Remove the message when you're ready to deploy your extension to your production
environment.
5. Use tokens as placeholders for variable content.
The Order Entry Specialist can view and search data in work area Order Management according to Error Type or
Message Type. In this example, notice that Customer Relationship Mismatch displays as a label in the Draft Orders in
Error diagram on the Overview page.

1401
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

The Order Entry Specialist can take action.

• Click on the orange part of the circle to drill into to sales orders that are in error because of the mismatch.
• Search aribute Error Type on page Manage Orders for Customer Relationship Mismatch.

For details, see topic Dening Error Messages When Using Order Management Extensions: Explained.

Accumulate Error Messages and Display Them

Accumulate messages, then display them in work area Order Management all together at one time. For example,
assume you write an extension that contains three lines that check for error conditions, x, y, and z. At run time, assume
x, y and z all meet their error conditions, but the extension stops immediately after it encounters x and displays the
message for error x. Instead, write your extension so it continues to run through y and z, saves each message to a
temporary list, then displays messages for x, y and z together in a single dialog. This technique allows the Order Entry

1402
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Specialist to examine all errors together, correct them, then resubmit the sales order instead of correcting x, submit,
correct y, submit, correct z, and submit.

For example.

This example uses the following code to examine each sales credit. If the revenue percentage is less than 30% for the
sales credit, then the extension creates a message and stores it in a local list. The extension processes all sales credits.
If the local list contains any messages after it nishes processing sales credits, then the extension displays them in a
dialog in work area Order Management.

Code Description

import oracle. apps. scm. Import method ValidationException so your code can use it.
doo. common. extensions.  
ValidationException;
 

import oracle. apps. scm. doo. Import method Message so your code can use it.
common. extensions. Message;  
 

def salesCredits = header. Dene a local variable named salesCredits, use method getAribute to get the value of
getAribute("SalesCredits"); aribute SalesCredits from the order header, then set the value of this variable to the value
  that getAribute returns.
 

1403
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Code Description

getArbute("SalesCredits") returns an iterator you can use to access sales credits rows. For
example, the code references salesCredits later in this topic to get SalesCreditTypeCode,
Percent, and Salesperson.
 

List<Message> msgs = new


ArrayList<Message>(); Use this code.
 
• List<Message> msgs. Dene a local variable named msgs as a list type. Use this
technique to add more than one message into the list so ValidationException can raise
all messages at one time.
You typically use this technique in a longer extension that contains more than one
condition. The extension code stops when it raises the rst message, so you can use
ValidationException to let all validations run, then display a dialog that includes all
errors.
• new ArrayList<Message>(). Dene an array that uses list format. You will use this
array to store messages that the while loop creates.

The while loop Iterate through each sales credit until it nishes processing all of them.
   
Examine aributes SalesCreditTypeCode, Percent, and Salesperson for each sales credit.
 

def percent = salesCredit. Dene a local variable named percent, use method getAribute to get the value of aribute
getAribute("Percent") Percent from local variable salesCredit, then set this variable to the value that getAribute
  returns.
 

if ( percent < 30 ) If the condition is True, then create a message, and add it to the local msgs list. Messages
  accumulate in the msgs list until the extension nishes processing all sales credits.
 

def tokens
  Dene these tokens.

• SALESPERSON. def tokens sets the value of this token to the value that method
getAribute gets for aribute Salesperson from local variable salesCredit.
• PERCENT. def tokens sets the value of this token to the value of variable percent
that the while loop denes.

Message msg = new Message Dene a local variable named msg and add it to local array Message. msg stores each message
  that the code adds to list object msgs.
 

(Message. MessageType. ERROR


"SALES_ CREDIT_ TOO_LOW_MSG" Use this code.
tokens);
  • Message.Use method Message to dene a message.
• MessageType.ERROR. Set the Message type to ERROR.
• SALES_CREDIT_TOO_LOW_MSG. Get message text details from message
SALES_CREDIT_TOO_LOW_MSG from page Manage Message, then add this text to
local variable msg.
• tokens. Get the value of local variable tokens, then add it to local variable msg
immediately after message text SALES_CREDIT_TOO_LOW_MSG.

msgs.add(msg); Add the contents of local variable msg, which contains a single message, to local list variable
  msgs, which is an array that includes all messages that the code creates in this scenario.

1404
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Code Description

If local list msgs isn't empty, then run method ValidationException. Display all the messages
if( !msgs.isEmpty() ) { that local list msgs contains.
throw new  
ValidationException(msgs); Perform this check after the while loop nishes processing all sales credits.
}  

Here's the complete code without comments.


import oracle.apps.scm.doo.common.extensions.ValidationException;
import oracle.apps.scm.doo.common.extensions.Message;
def salesCredits = header.getAttribute("SalesCredits");
List<Message> msgs = new ArrayList<Message>();
while( salesCredits.hasNext() ) {
def salesCredit = salesCredits.next();
if( "1".equals(salesCredit.getAttribute("SalesCreditTypeCode")) ) {
def percent = salesCredit.getAttribute("Percent");
if ( percent < 30 ) {
def tokens = [SALESPERSON: salesCredit.getAttribute("Salesperson"), PERCENT: percent];
Message msg = new Message(Message.MessageType.ERROR, "SALES_CREDIT_TOO_LOW_MSG", tokens);
msgs.add(msg);
}
}
}
if( !msgs.isEmpty() ) {
throw new ValidationException(msgs);
}

Consider Order Import Behavior

Import behavior it dierent depending on whether your extension creates a warning message or error message.

1405
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Note.

• Sales orders entered in work area Order Management. The Warning dialog in work area Order Management
allows the Order Entry Specialist to examine the warning, then submit the sales order or cancel.
• Source orders imported from a source system. Order processing stops only if an error occurs. If only
warnings occur, then you can view the messages but the import submits the sales order to order fulllment. It
doesn't allow user intervention.

1406
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Use Public View Objects


Reference a public view object. For a list of the view objects you can use, see Public View Objects in Oracle
Applications Cloud (Doc ID 2386411.1) on My Oracle Support at hps://support.oracle.com/epmos/faces/ui/km/
DocumentDisplay.jspx?_afrLoop=581155108280882&id=2386411.1.

Note.

Code Description

Object getItem(Long itemId, Dene a local object that your code can call. This object will contain data from the public view
Long orgId) { object.

• Object getItem. Dene an object named getItem.


• Long itemId, Long orgId. Specify itemId and orgId as Long data type strings.
These strings will contain data from the public view object.

def itemPVO = Create an instance of the public view object for the item, then store it in variable itemPVO. Use
context.getViewObject("context") this format.

• itemPVO. Variable that will contain the instance.


• context.getViewObject. Use method getViewObject to get the view object
according to the context.
• "context". Context to use when geing the view object.

For example, reference public view object ItemPVO.

def itemPVO =
context.getViewObject("oracle.apps.scm.productModel.items.publicView.ItemPVO")

1407
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Code Description

where

• oracle.apps.scm.productModel.items is the context. It species to get product


model items from supply chain management.

def vc = Dene the variable that will store details for the public view object.
itemPVO.createViewCriteria();
• vc. Variable that stores details for the view criteria object.
View criteria is a lter that determines the data that the public view object returns.
• itemPVO. Name of the public view object that contains the data you must get and lter.
• createViewCriteria. Method that creates the view criteria object. It denes vc as a
list that contains one or more rows.

def vcrow = Dene a variable for the row.


vc.createViewCriteriaRow();
• vcrow. Variable that stores details for rows of the view criteria object.
• vc.createViewCriteriaRow. Use method createViewCriteriaRow to create a row in
variable vc.

vcrow.setAttribute("InventoryItemId",
Populate variable vcrow with data from the public view object.
itemId);
• setAttribute. Method that sets the value for the aribute in the row.
• InventoryItemId. Aribute in the public view object. This example gets the value that
uniquely identies the item in inventory.
• itemId. Variable that the extension code denes. This code gets the value of aribute
InventoryItemId on the order line from the public view object, then stores it in itemId.

vcrow.setAttribute("OrganizationId",
Populate variable vcrow with data from the public view object.
orgId);
• setAttribute. Method that sets the value for the aribute in the row.
• OrganizationId. Aribute in the public view object. This example gets the value that
uniquely identies the organization that ordered the item.
• orgId. Variable that the extension code denes. This code gets the value of aribute
OrganizationId on the order header from the public view object, then stores it in orgId.

def rowset = Get the iterator that contains the number of rows that meet the criteria and store it in local
itemPVO.findByViewCriteria(vc, variable rowset.
-1);
• rowset. Variable that stores the iterator.
• findByViewCriteria. Method that searches the public view object according to
criteria that you dene.
• vc. Contains the data that the public view object returns.
• -1. Return all rows that match the view criteria.
You can also use a positive integer to get a subset of rows. For example, use vc, 3 to
get the rst three rows that match the criteria. If only two rows match the criteria, then
the method returns only these two rows.

Dene a variable named item.


def item = rowset.first()  

The variable item can now access all aributes in ItemPVO. return returns variable item so you
return item can reference item from your extension to get details from ItemPVO.

1408
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Code Description

Here's the entire code without comments.


Object getItem(Long itemId, Long orgId) {
def itemPVO = context.getViewObject(
"oracle.apps.scm.productModel.items.publicView.ItemPVO");
def vc = itemPVO.createViewCriteria();
def vcrow = vc.createViewCriteriaRow();
vcrow.setAttribute("InventoryItemId", itemId);
vcrow.setAttribute("OrganizationId", orgId);
def rowset = itemPVO.findByViewCriteria(vc, -1);
def item = rowset.first();
return item;
}

Get Descriptive Flexelds from a Public View Object

The customer master in Oracle Trading Community Architecture (TCA) might include descriptive exelds. However,
public view objects that contain customer account site details, such as PartyPVO, might not include these descriptive
exelds. Use this technique to get them.

1409
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Note.

1. Navigate to page Manage Customer Account Site Descriptive Flexelds, locate the descriptive exeld that you
must access, click Download Flexeld Archive, then examine the structure that it uses.
2. Reference public view object publicFlex to reference the descriptive exeld. In this example, you reference
publicFlex for custAccountSite.

oracle.apps.cdm.foundation.parties.publicFlex.custAccountSite.view.CustAccountSiteInformationVO

3. Use the structure you examined when you downloaded the archive to help determine how to specify the view
criteria.
Here is the entire code.

1410
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

def siteFlexPVO = context.getViewObject


("oracle.apps.cdm.foundation.parties.publicFlex.
custAccountSite.view.CustAccountSiteInformationVO");
def vc = siteFlexPVO.createViewCriteria();
def vcrow = vc.createViewCriteriaRow();
vc.add(vcrow);
def rowset = siteFlexPVO.findByViewCriteriaWithBindVars
(vc, -1, new String [0], new String [0]);
def custDFF = rowset.first();
String values = custDFF.getAttribute("Salesperson")

Get Data From Sales Orders That Aren't the Current Sales Order

You can use HeaderPVO to access order header data and FulllLinePVO to access order line or fulllment line data.
For example, if the Order Entry Specialist sets the purchase order number on a sales order, then make sure some other
sales order doesn't already use this purchase order number. Perform this validation when the Order Entry Specialist
submits the sales order.

Here's some more examples.

• If a new sales order includes return lines, then get the order type from the original sales order and use it to set
the order type on each return line.
• If order revision 2 increases the total price of the sales order by 10% or more over the total price on order
revision 1, then don't allow the revision. For example, version 1 of sales order x is a complete and separate sales
order from version 2 of sales order x. Use a public view object to get data from a version that isn't the current
version.

1411
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Call Web Services


Apply these guidelines when your extension calls a web service.

Note.
1. Use method invokeSoapService in your extension to call the web service.
You can call an Oracle Fusion web service or some other service that resides outside of Oracle Fusion. You can
call only a SOAP service. You can't call a REST service.
2. You must use page Manage Connector Details to dene the web service that you reference in your extension.
Set these values.

Aribute Value

Connector Name Use the exact same name that you use in the extension. For example.
   
For this example, set Connector Name to FundsCapturePaymentMethod.

1412
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Aribute Value

Connector URL Enter the URL that locates the web service address that you deploy on the external system.
   

User Name Enter the user name you use to sign into the web service.
   

Password Enter the password you use to sign into the web service.
   

Invocation Mode You must use Synchronous Service.


   

Dene the payload.

1413
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Note.

1. Dene the payload. This example uses String payLoad to hard code the payload as a string. You can also use
other techniques to meet your requirements, such as dening variables in the payload.
2. Reference your payload denition in a parameter of method invokeSoapService. This example references string
payLoad.
3. Use method getSoapBody to handle the response that the web service sends in reply to your request. Your
extension can receive the response, parse it, then extract the details it requires from the response.
4. Dene your payload so it includes only the main content. Don't include envelope or body details.
invokeSoapService expects only the main content. It will add envelope and body details.
Extract Details from Web Service Response

The getSoapBody() call on the response object in a web service response is an instance of Java class
javax.xml.soap.SOAPBody for a SOAP body (Simple Object Access Protocol). The Java documentation at hps://
docs.oracle.com/javaee/5/api/javax/xml/soap/SOAPBody.html describes that SOAPBody is an instance of
org.w3c.dom.Element and org.w3c.dom.Node. Use the methods that are available on these interfaces to extract details
from a web service response.

This example order management extension uses methods from these interfaces to extract data from the response.
import oracle.apps.scm.doo.common.extensions.ValidationException;
import oracle.apps.scm.doo.common.extensions.Message;

def poNumber = header.getAttribute("CustomerPONumber");

if( poNumber != "CreditCheck" ) return;

// get attribute to populate in the payload


String customer = header.getAttribute("BillToCustomerName");
Long accountId = header.getAttribute("BillToCustomerIdentifier");
BigDecimal amount = new BigDecimal(1000);

// prepare the payload


String payLoad = "<ns1:creditChecking xmlns:ns1=\"http://xmlns.oracle.com/apps/financials/receivables/
creditManagement/creditChecking/creditCheckingService/types/\">" +
"<ns1:request xmlns:ns2=\"http://xmlns.oracle.com/apps/financials/receivables/creditManagement/
creditChecking/creditCheckingService/\">" +
"<ns2:CustomerName>" + customer + "</ns2:CustomerName>" +
"<ns2:CustomerAccountNumber>" + accountId + "</ns2:CustomerAccountNumber>" +
"<ns2:RequestType>Authorization</ns2:RequestType>" +
"<ns2:PriceType>ONE_TIME</ns2:PriceType>" +
"<ns2:RecurrencePeriod></ns2:RecurrencePeriod>" +
"<ns2:RequestAuthorizationAmount currencyCode=\"USD\">" + amount + "</ns2:RequestAuthorizationAmount>" +
"<ns2:RequestAuthorizationCurrency>USD</ns2:RequestAuthorizationCurrency>" +
"<ns2:ExistingAuthorizationNumber></ns2:ExistingAuthorizationNumber>" +
"<ns2:Requestor>ar_super_user</ns2:Requestor>" +
"</ns1:request>" +
"</ns1:creditChecking>";

// invoke the Check Check service using web service connector name 'CreditCheckService'. The connector is
set up using task 'Manage External Interface Web Service Details'. Since this is an external service that
is secured
// using message protection policy, we have registered the the https (external) URL of the service
def response = context.invokeSoapService("CreditCheckService", payLoad);

// print a debug message. This appends the entire response to the shipping instuctions attribute.
// Note: debug statements like these should be disabled in extensions on production instance as they can
cause performance issues.
debug(response.getSoapBody().getTextContent());

1414
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

// The response XML sent by the Credit Check service contains an element named 'Response'. A YES value
indicates that credit check passed. Let us extract the contents of Response tag. The following XML API will
return all nodes (tags)
// with name 'Response' in a NodeList element. We are expecting only one such element in our XML response
def nodeList = response.getSoapBody().getElementsByTagNameNS("*", "Response");

// print out the lenght of the node list


debug(nodeList.getLength());

// Get the first element with name 'Response' (we are expecting only one), and gets its text content
String ccResponse = nodeList.item(0).getTextContent();

debug(ccResponse);

// Check if credit check passed


if( ccResponse != 'YES' ) {
// Credit check failed. Raise a warning validation exception here
throw new ValidationException( new Message(Message.MessageType.WARNING, "Credit check failed.") );
}
else {
// Credit check passed
// Write the credit check response in an EFF attribute.
def psiContext = header.getOrCreateContextRow("ComplianceDetails");
psiContext.setAttribute("_ComplianceInfo", ccResponse);
}

/**
* Appends passed in msg to the Shipping Instructions attribute. This method has been implemented only for
debugging purposes.
*/
void debug(def msg) {
String si = header.getAttribute("ShippingInstructions");
header.setAttribute("ShippingInstructions", si + ", " + msg.toString());
}

Test Your Work


Validate Your Code

Enter your code into area Denition of page Edit Extensions, then click Validate to validate your design-time code.
Order Management will make sure you correctly formaed your code, such as correct usage of parentheses,
semicolons, and so on.

If an error occurs at runtime, then Order Management handles the error in the same way it handles any other error. It
displays the cause of failure, extension name, and event name. It displays these details in work area Order Management
and in the log les. It can handle these runtime errors.

• Reference to an aribute or method that isn't valid


• Incorrect reference between the message name and a token
• Incorrect reference to a web service name

Use Logging to Test Your Code

1415
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Include debugging tests during development to test your code and verify that it runs as expected.

Note.

• After you nish testing and are ready to deploy your extension to production, modify your debugging logic to
write to a log le instead of commenting your test code. Writing to the log le can be helpful for future possible
troubleshooting. If you write data to the log le in a production environment, then you must contact Oracle
Support or a customer administrator to get view access to the log les that include application diagnostic data.
• Use the log les to evaluate performance. For example, if you write a lot of extension code, then examine and
monitor performance to make sure your code doesn't impact performance in a negative way.

For example, extension code typically performs a signicant amount of validation immediately after the Order
Entry Specialist clicks Submit. If Order Management requires a long amount of time to nish the submit, such
as ve minutes, then it might be necessary to look closely at your code to determine whether it contains some
logic you can streamline.

Inspect Payloads When You Use Web Services or Public View Objects

It might be dicult to examine the response from a web service or from the view criteria of a public view object. Use
method setAribute during development to get values for the aributes that your code references, display them in work
area Order Management, then examine these values to verify your code returns the values you expect.

1416
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

For example, assume your extension references shipping instructions. You can use this code to write the contents of
ShippingInstructions into the response from the web service.
header.setAttribute("ShippingInstructions", response.getSoapBody().getTextContext());

You can write the same data into the response from a public view object.

Make sure you convert your test code to log les or comment it ( // ) before you deploy to production.

You can also write a message to achieve a similar result. However, a message stops or pauses processing. Use a payload
so processing can continue without interruption, and so you can view aribute values in the context of how they display
in work area Order Management, such as aribute Shipping Instructions on the order line.

Use the Debug Method

1417
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Use the Debug method at various points in your code during development to write variables and other values to an
aribute that you can examine in work area Order Management. This example calls debug three times, then writes the
contents of debug into the ShippingInstructions aribute.

You can then write your code so it displays these contents in aribute Shipping Instructions in work area Order
Management, then examine this display output to determine the values of various aributes and variables that exist at
various points in your code.

When you're ready to deploy to production, modify void debug. For example, assume you use this code to write your
debug contents.
void debug(def msg)
{String si = header.getAttribute("ShippingInstructions");
header.setAttribute("ShippingInstructions", si + ", " + msg.toString());

1418
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Modify this code so it writes to the log. You replace header.setAttribute with logger.logFine. For example.
void debug(def msg)
{String si = header.getAttribute("ShippingInstructions");
logger.logFine("ShippingInstructions", si + ", " + msg.toString());

Use this approach so you can change only a single line in your code, which is useful if you have 10s of lines that call
debug. You can also comment each line that calls the debug method, but commenting runs the risk of missing lines that
call debug, or accidentally commenting a line that doesn't call debug but that's critical to your code logic.

Here's the complete code for this example.


import oracle.apps.scm.doo.common.extensions.ValidationException;
import oracle.apps.scm.doo.common.extensions.Message;

def poNumber = header.getAttribute("CustomerPONumber");

if( poNumber != "CreditCheck" ) return;

// get attribute to populate in the payload


String customer = header.getAttribute("BillToCustomerName");
Long accountId = header.getAttribute("BillToCustomerIdentifier");
BigDecimal amount = new BigDecimal(1000);

// prepare the payload


String payLoad = "<ns1:creditChecking xmlns:ns1=\"http://xmlns.oracle.com/apps/financials/receivables/
creditManagement/creditChecking/creditCheckingService/types/\">" +
"<ns1:request xmlns:ns2=\"http://xmlns.oracle.com/apps/financials/receivables/creditManagement/
creditChecking/creditCheckingService/\">" +
"<ns2:CustomerName>" + customer + "</ns2:CustomerName>" +
"<ns2:CustomerAccountNumber>" + accountId + "</ns2:CustomerAccountNumber>" +
"<ns2:RequestType>Authorization</ns2:RequestType>" +
"<ns2:PriceType>ONE_TIME</ns2:PriceType>" +
"<ns2:RecurrencePeriod></ns2:RecurrencePeriod>" +
"<ns2:RequestAuthorizationAmount currencyCode=\"USD\">" + amount + "</ns2:RequestAuthorizationAmount>" +
"<ns2:RequestAuthorizationCurrency>USD</ns2:RequestAuthorizationCurrency>" +
"<ns2:ExistingAuthorizationNumber></ns2:ExistingAuthorizationNumber>" +
"<ns2:Requestor>ar_super_user</ns2:Requestor>" +
"</ns1:request>" +
"</ns1:creditChecking>";

// invoke the Check Check service using web service connector name 'CreditCheckService'. The connector is
set up using task 'Manage External Interface Web Service Details'. Since this is an external service that
is secured
// using message protection policy, we have registered the the https (external) URL of the service
def response = context.invokeSoapService("CreditCheckService", payLoad);

// print a debug message. This appends the entire response to the shipping instuctions attribute.
// Note: debug statements like these should be disabled in extensions on production instance as they can
cause performance issues.
debug(response.getSoapBody().getTextContent());

// The response XML sent by the Credit Check service contains an element named 'Response'. A YES value
indicates that credit check passed. Let us extract the contents of Response tag. The following XML API will
return all nodes (tags)
// with name 'Response' in a NodeList element. We are expecting only one such element in our XML response
def nodeList = response.getSoapBody().getElementsByTagNameNS("*", "Response");

// print out the lenght of the node list


debug(nodeList.getLength());

// Get the first element with name 'Response' (we are expecting only one), and gets its text content
String ccResponse = nodeList.item(0).getTextContent();

debug(ccResponse);

1419
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

// Check if credit check passed


if( ccResponse != 'YES' ) {
// Credit check failed. Raise a warning validation exception here
throw new ValidationException( new Message(Message.MessageType.WARNING, "Credit check failed.") );
}
else {
// Credit check passed
// Write the credit check response in an EFF attribute.
def psiContext = header.getOrCreateContextRow("ComplianceDetails");
psiContext.setAttribute("_ComplianceInfo", ccResponse);
}

/**
* Appends passed in msg to the Shipping Instructions attribute. This method has been implemented only for
debugging purposes.
*/
void debug(def msg) {
String si = header.getAttribute("ShippingInstructions");
header.setAttribute("ShippingInstructions", si + ", " + msg.toString());
}

Filter Lines In Your Extensions, Rules, and Constraints


Make sure you lter out lines that you don't want to revise when you create an order management extension or
business rule, and that you constrain the changes you allow on the fulllment line.
For example.

• Filter out order lines that are canceled, closed, on backorder, or that Order Management has sent to billing
when you create a business rule that modies a value on a fulllment line that's still in progress.
• Filter out order lines you already fullled. For example, lter out lines you already shipped for outbound lines or
lines you already received and delivered for return lines.
• Filter so you only process changes that you make to billing aributes, for example, on the Billing tab of the
order line, and only if you haven't sent the order line to billing. For example, only modify Accounting Rule,
Payment Terms, Receivable Transaction Type, and so on. Don't modify any other aributes.
• Avoid the NullPointerException error. If your logic depends on using an aribute value as part of a calculation,
then lter out lines that include an aribute that doesn't contain a value.
• Filter according to line category code. For example, to process only order lines, not return lines, lter the
categoryCode aribute on the fulllment line according to ORDER. To process only returns, lter it according to
the value RETURN.
• If you use an order management extension, pretransformation rule, or posransformation rule to set the
default values for aributes, then lter out fulllment lines that reference the original return when you populate
the value for the Accounting Rule aribute and Invoicing Rule aribute.

Here are some more topics you might nd useful.

• Filter out lines that aren't shippable. Don't aempt to ship an item that isn't shippable, such as a warranty.
For an example that lters out lines that aren't shippable, see topic Select Fulllment Lines for Orchestration
Process Steps.
• Filter out lines that reference a coverage item, such as a service agreement. To reserve means you reserve an
item in inventory. You don't store a service agreement in inventory because its not a physical item, so don't
reserve it. For details, see topic Another Example of Using Extensible Flexelds In Line-Selection Rules.
• Filter out return lines that you don't want to ship on an outbound sales order. See topic Prevent Orchestration
Process from Shipping Return Lines.

1420
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

• Filter out lines that already passed trade compliance. If the line passed, then don't send a request to screen the
line for trade compliance. For details, see topic Use Extensible Flexelds in Line-Selection Rules.

Create Filters In an Order Management Extension


Assume you're revising a line that Order Management is currently fullling, so you don't want to revise lines that are
closed, canceled, shipped, or that Order Management has sent to accounts receivable. Write an extension that lters the
lines.
//
//===========================================================
import oracle.apps.scm.doo.common.extensions.ValidationException;

def lines = header.getAttribute("Lines");

while( lines.hasNext() ) {
def line = lines.next();
Long referenceFlineId = line.getAttribute("ReferenceFulfillmentLineIdentifier");

// If the reference line is null then this isn't a revision.


if(referenceFlineId != null) {
// Get running line if this is a revision.
def runningLine = getLinesFromRunningOrder(referenceFlineId);

if( runningLine == null ) {


// We have an error condition. No fline found with referenceFlineId.
throw new ValidationException("Something's not right. Couldn't find line using reference fline id.");
}

if (runningLine.getAttribute("FulfillLineStatusCode") == "CLOSED" ||
runningLine.getAttribute("FulfillLineCanceledFlag") == "Y" || //Line is cancelled.
runningLine.getAttribute("FulfillLineShippedQty") != null || //Line is shipped.
runningLine.getAttribute("FulfillLineInvoiceInterfacedFlag") == "Y" ){ //Line is interfaced to invoicing.
// This line isn't valid for setting default values.
continue;
}
}
else {
// This sales order doesn't have a revision.
//Its ok to set the default value for attributes.
}
//Put your defaulting logic here.
//line.setAttribute(<attribute name>, <value>);
}

Object getLinesFromRunningOrder(Long runningLineId) {

// Create an instance of the FulfillLinePVO public view object (PVO).


def flinePVO = context.getViewObject("oracle.apps.scm.doo.publicView.analytics.FulfillLinePVO");

// Create a view criteria object.


def vc = flinePVO.createViewCriteria();

// Create a view criteria row.


def vcrow = vc.createViewCriteriaRow();

// Set query conditions on the view criteria row.


vcrow.setAttribute("FulfillLineId", runningLineId);
vc.add(vcrow);

def rowset = flinePVO.findByViewCriteriaWithBindVars(vc, -1, new String [0], new String [0]);

if (rowset.hasNext()) {
def fline = rowset.first();

1421
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

return fline;
}
}

Create Filters in Business Rules


Write a business rule that lters fulllment lines, such as in a pretransformation rule, posransformation rule, line-
selection criteria, or assignment rule.

Here's an example line-selection criteria.

The line-selection criteria lters out lines that can't ship so Order Management only sends shippable lines to the
fulllment system that processes shippable lines, such as the shipping system or Global Order Promising.

1422
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Note.

• Use the Manage Orchestration Process Denitions task in the Setup and Maintenance work area.
• Use the line-selection criteria to add the rule.
• Add the rule to each orchestration process step that shippable aects, as necessary. For example, if the item is
a warranty, then it isn't shippable. To lter out the line that isn't shippable, you probably want to add the rule to
each step that references a schedule, reserve, or ship task, such as the Schedule step, the Create Reservation
step, Create Shipment Request step, and so on.
• The entire If statement isn't visible in the screen capture. Here are the entire statements.

◦ DooSeededOrchestrationRules.DOOFLine.categoryCode is "ORDER"
◦ DooSeededOrchestrationRules.DOOFLine.shippableFlag is "Y"

• You can't use Visual Information Builder to select fulllment lines. You must edit the orchestration process and
use Oracle Business Rules.

Example of a Pretransformation Rule

Write a pretransformation rule where you set the value for an aribute, but only after you lter lines. For example.

• If the order line isn't closed, canceled, shipped, or already sent to billing, then set the default value for the
requested ship date aribute.

For details about how to create a posransformation rule, see the Transformation Rules topic.

1423
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Constrain Changes You Allow on Fulllment Lines

Note.

• Use the Manage Processing Constraints task in the Setup and Maintenance work area.
• Set the Entity aribute to Order Fulllment Line.
• Use the Details area to add your lters.

Assume you don't want your users to modify a fulllment line value, such as Ship-to Site, if the line is closed or
canceled, or if it already shipped or already invoiced.

1424
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Aribute Name Validation Operation Value String

Canceled Equal To Yes


     

Invoiced Equal To Yes


     

Shipped Quantity Is Not Null -


     

Status Equal To Closed


     

You can also create a constraint that prevents the user from submiing a sales order that doesn't include payment
terms for lines that meet a specic criteria. For example, the line isn't a return line, or the line is for an internal transfer.
For details, see the Control Payment Terms section in topic Guidelines for Controlling Customer Details in Order
Management.

Related Topics
• Processing Constraints
• Orchestration Processes
• Select Fulllment Lines for Orchestration Process Steps

External
Call Web Services from Order Management Extensions
Use an order management extension to get data from a source that resides outside of Order Management Cloud before
you do default logic or validation logic.
Use ServiceInvoker in your extension code to call a web service and get the data. ServiceInvoker is available from the
context object. You use the ExecutionContext method.

You will create an example extension that. . .


• Allocates sales credits to a salesperson for order lines that include an item that satises a condition.
• References the purchase order number and item number when it calls a web service so it can get the name of
the salesperson and the percent sales credit to allocate.
• Extracts the salesperson name and percent allocation from the web service response, then creates a new row in
the sales credit row set that it gets from the order line.

Summary of the Steps


1. Register the web service.
2. Call the web service.
3. Determine item of interest.
This topic includes example values. You might use dierent values, depending on your business requirements.

Register the Web Service


1. Go to the Manage Connector Details page, then set the value.

1425
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Aribute Value

Invocation Mode Synchronous Service


   
You must use Synchronous Service with an order management extension.
 

For details, see the Manage Connector Details Between Order Management and Your Fulllment System topic.
2. Go to the Manage Order Management Extensions page and create a new extension.
3. Set up the call.

Code Description

def lines = header. Get the row set for the order lines.
getAribute("Lines");  
 

while( lines. hasNext() ) Determine whether more lines exist that we must process.
   

def line = lines.next(); Get the item number that the line species.
   
def itemNumber = line.
getAribute("ProductNumber");
 

if( itemOfInterest(itemNumber) ) Determine whether the item number satises a condition.


   

allocateSalesCredits(line); Call the method that allocates sales credits for this line.
   

Call the Web Service


Add code that calls the web service so it can get the sales credit allocation.

Code Description

void allocateSalesCredits(def line, Get the handle that you use to call the web service.
String itemNumber) {  
 
def serviceInvoker = context.
getServiceInvoker();
 

def poNumber = header. Get the value of aribute Purchase Order Number for the customer from the order header.
getAribute("CustomerPONumber");  
 

String payLoad = "<ns1: Concatenate the strings so you can prepare the payload. As an option, you can also use an
GetSalesCreditAllocation xmlns: XML API to concatenate the string.
 

1426
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Code Description

ns1\"hp://www. yourcompany.
com/ SalesCreditWS/ \">" +
 
"<ns1: poNumber>" + poNumber +
"</ns1: poNumber>" +
 
"<ns1: itemNumber>" + itemNumber
+ "</ns1: itemNumber>" +
 
"</ns1: GetSalesCreditAllocation>";
 

def responseBody = serviceInvoker. Use the interface name of the web service and the request payload to call the web service.
invokeSoapService("SalesCreditAllocationService"
 
payLoad). getSoapBody(); You must specify the interface name in the Connector Name aribute on the Manage External
  Interface Web Service Details page. For this example, you specify SalesCreditAllocationService
as the connector name.
 

def salesPerson = //; Extract the salesperson name from the response payload.
   

def percent = // Extract the percent allocation from the response payload.
   

def salesCredits = line. Get the row set for the sales credit from the current line.
getAribute("SalesCredits");  
 

def salesCredit = salesCredits. Create a sales credit row.


createRow();  
 

sc. setAribute("Salesperson" Set the value for the salesperson aribute.


salesPerson);  
 

sc. setAribute("Percent" new Set the value for the percent allocation aribute.
BigDecimal(percent));  
 

sc. Set the sales credit type. In this example, assume that 1 equals Revenue credits.
setAribute("SalesCreditTypeCode"  
1L);
 

salesCredits. insertRow(salesCredit); Insert the new row in the row set.


   
}
 

The code uses parameters.

• param line. Line where we will allocate the sales credit.


• param itemNumber. Number of the item that you specify on the line.

1427
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Determine Item of Interest


Add code that returns a boolean value to indicate whether we are interested in the item that the web service sent.

Code Description

boolean itemOfInterest(String For brevity, this example doesn't include details about how to implement this method. The
itemNumber) { logic you use is specic to your business requirement.
   

if condition condition is code you write. It decides whether the item number is of interest.

return true;

else

return false

Complete Code
Here's the code for this example.
//get the lines row set.
def lines = header.getAttribute("Lines");

//if more lines exist.


while( lines.hasNext() ) {

def line = lines.next();

//then get the item number that the line specifies.


def itemNumber = line.getAttribute("ProductNumber");

//determine whether the item number satisfies the condition.


if( itemOfInterest(itemNumber) ) {

//call method to allocate sales credits for this line.


allocateSalesCredits(line);
}
}

/**
* Call a web service that gets sales credit allocation for the order line.
* @param line identifies the line where you allocate sales credit.
* @param itemNumber is the number of the item that the line specifies.
*/
void allocateSalesCredits(def line, String itemNumber) {

//get a handle for the method that calls the web service.
def serviceInvoker = context.getServiceInvoker();

//get the customer attribute for the purchase order number from the order header.
def poNumber = header.getAttribute("CustomerPONumber");

String payLoad = "<ns1:GetSalesCreditAllocation

1428
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

//concatenate the strings to prepare the payload.


xmlns:ns1=\"http://your.address/SalesCreditWS/\">" +
//As an alternative, you can also use the following code.
"<ns1:poNumber>" + poNumber + "</ns1:poNumber>" +
//XML APIs
"<ns1:itemNumber>" + itemNumber + "</ns1:itemNumber>" +
"</ns1:GetSalesCreditAllocation>";

def responseBody =

//use the web service name and the constructed payload to call the service.
serviceInvoker.invokeSoapService("SalesCreditAllocationService",
payLoad).getSoapBody();

//get the salesperson name from the web service response.


def salesPerson = //;

//get the percent allocation from the service response.


def percent = //

//get the row set for the sales credit for the current line.
def salesCredits = line.getAttribute("SalesCredits");

//create a new row for the sales credit.


def salesCredit = salesCredits.createRow();

//set the salesperson attribute.


sc.setAttribute("Salesperson", salesPerson);

//set the percent allocation attribute.


sc.setAttribute("Percent", new BigDecimal(percent));

//set the sales credit type. This code assumes your implementation uses the value 1 for revenue credits.
sc.setAttribute("SalesCreditTypeCode", 1L);

//set a unique identifier in case more than one SalesCredit exists. For example, 5768342869.
salesperson.setAttribute("SourceTransactionSalesCreditIdentifier',5768342869);

//insert the new row in the rowset.


salesCredits.insertRow(salesCredit);

/**
*Return a boolean that indicates whether the item is of interest.
*/
boolean itemOfInterest(String itemNumber) {

//For brevity, and to keep focus on calling the web service,


//this example does not include details about how to implement this method.
//The logic you use is specific to your business process.

//Decide whether the item number is of interest. Pseudocode:


// if (some condition)
return true;
// else
// return false
}

Here's the same code without comments.


def lines = header.getAttribute("Lines");

while( lines.hasNext() ) {
def line = lines.next();

1429
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

def itemNumber = line.getAttribute("ProductNumber");

if( itemOfInterest(itemNumber) ) {
allocateSalesCredits(line);
}
}
void allocateSalesCredits(def line, String itemNumber) {
def serviceInvoker = context.getServiceInvoker();
def poNumber = header.getAttribute("CustomerPONumber");

String payLoad = "<ns1:GetSalesCreditAllocation

xmlns:ns1=\"http://your.address/SalesCreditWS/\">" +

serviceInvoker.invokeSoapService("SalesCreditAllocationService",
payLoad).getSoapBody();
def salesPerson = //;
def percent = //
def salesCredits = line.getAttribute("SalesCredits");
def salesCredit = salesCredits.createRow();
sc.setAttribute("Salesperson", salesPerson);
sc.setAttribute("Percent", new BigDecimal(percent));
sc.setAttribute("SalesCreditTypeCode", 1L);
salesperson.setAttribute("SourceTransactionSalesCreditIdentifier',5768342869);
salesCredits.insertRow(salesCredit);

}
boolean itemOfInterest(String itemNumber) {

//implement this method.

//Decide whether the item number is of interest. Pseudocode:


// if (some condition)
return true;
// else
// return false
}

Use Extensions to Access Data Outside of Order Management


Write an order management extension that calls an API on the context object so it queries the table and accesses the
public view objects that the table contains.
If you deploy into Oracle Fusion Cloud, then you can't programmatically access the Oracle database. You can't use PL,
SQL, or JDBC to access data in other application tables. Write an extension instead.

Here's an example extension that accesses a public view object.

Code Description

def itemPVO = context. Create an instance of the public view object for the item. You must specify the entire name of
getViewObject("oracle. apps. scm. the public view object.
productModel. items. publicView.  
ItemPVO"); This code uses each public view object as a row iterator, so the methods on the RowIterator
  interface are also available on each public view object. You can use the RowSetIterator method
to access a method that gets the rows that the view object query returns, and to navigate the
row set for the public view object. For details, see the ViewObject method in the Methods You
Can Use with Order Management Extensions topic.
 

def item = itemPVO. rst(); Access the rst item.

1430
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Code Description

   

Here's the public view objects you typically use.

Data View Object Name

Sales Order HeaderPVO


   
FulllLinePVO
 

Item ItemPVO
   
ItemCategoryPVO
 

Customer PartyPVO
   
PartySitePVO
 
LocationPVO
 

Customer Account CustomerAccountPVO


   
CustomerAccountSitePVO
 
CustomerAccountSiteUsePVO
 

Receivable TransactionTypePVO
   

To get a complete list of the public view objects you can use, the aributes they contain, and to help determine the view
object you need, see Public View Objects in Oracle Applications Cloud (Document ID 2386411.1) on My Oracle Support.

Using View Criteria Objects to Filter Results


The example above is only for demonstration purposes. Its too simplistic for practical use because it gets arbitrary items
from the items table. Its more likely that you must query for an item or a set of items that match a criterion. To support
SQL, your extension must provide a WHERE clause that only selects rows that match a criterion. Use the ViewCriteria
object for this purpose.

An order management extension can create a view criteria object that adds ltering logic to the public view object
before it gets data from these objects. A view criteria object is a lter that you create and apply programmatically to a
view object. Order Management converts each of these lters into a WHERE clause when your extension runs the query
that you dene in the public view object.

You use the view criteria row object to create a view criteria object. The view criteria object contains the aribute
names and aribute values that become part of the WHERE clause.

You will create an extension that. . .

• Creates a view criteria and uses it to query a public view object.

1431
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

• Queries the item master for an item according to the item Id and inventory organization Id.
• Examines the HazardousMaterialFlag aribute on the item.
• If the HazardousMaterialFlag aribute ags the item as hazardous, then the extension sets the Shipping
Instruction exeld context segment to indicate that the item needs hazardous handling.

This topic includes example values. You might use dierent values, depending on your business requirements.

Use view criteria objects to lter results.


1. Get the item.

Code Description

def lines = header. Get the row set for the order lines.
getAribute("Lines");  
 

while( lines. hasNext() ) { Determine whether we must process more order lines.
   

def line = lines.next(); Get the next line and assign it to the variable line.
   

def inventoryItemId = line. Get the inventory item Id for the item from the order line that the Order Entry Specialist
getAribute("ProductIdentier"); selected.
   

def orgId = line. Get the organization for the item from the order line that the Order Entry Specialist selected.
getAribute("InventoryOrganizationIdentier");
 
 

def item = getItem(inventoryItemId, Get the item. Use the item Id and the organization Id to call the getItem method.
orgId);  
 

String hazardous = item. Get the HazardousMaterialFlag aribute from the item.
getAribute("HazardousMaterialFlag");  
 

if( "Y". equals(hazardous) ) { Determine whether HazardousMaterialFlag ags the item as hazardous.
   

def packShipInstruction = line. Get the row for the extensible exeld context named PackShipInstruction.
getOrCreateContextRow("PackShipInstruction");
 
 

packShipInstruction. Set the Shipping Instruction context segment.


setAribute("ShippingInstruction"  
"Hazardous Handling Required.");
 

2. Dene the public view object.

Code Description

Object getItem(Long itemId, Long Create an instance of the public view object for the item.
orgId) {  

1432
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Code Description

 
def itemPVO = context.
getViewObject("oracle. apps.
 
scm. productModel. items.
publicView. ItemPVO");
 

def vc = itemPVO. Create the view criteria object.


createViewCriteria();  
 

def vcrow = vc. Create the view criteria row.


createViewCriteriaRow();  
 

vcrow. Set the inventory item aribute so you can include it in the lter condition, and set the value
setAribute("InventoryItemId" that you will use to compare to this aribute.
itemId);  
 

vcrow. setAribute("OrganizationId" Set the organization aribute so you can include it in the lter condition, and set the value
orgId); that you will use to compare to this aribute.
   

def rowset = itemPVO. Dene the view criteria that lters the rows when you query the public view object.
ndByViewCriteria(vc -1);  
 

def item = rowset. rst(); Get the rst item row that meets the condition.
   

The code uses parameters.

◦ param itemId. Inventory item Id that identies the item.


◦ param orgId. Inventory organization Id that identies the organization that owns of the item.

Code Without Comments


Here's the entire code for this example with no comments.
def lines = header.getAttribute("Lines");
while( lines.hasNext() ) {
def line = lines.next();
def inventoryItemId = line.getAttribute("ProductIdentifier");
def orgId = line.getAttribute("InventoryOrganizationIdentifier");
def item = getItem(inventoryItemId, orgId);
String hazardous = item.getAttribute("HazardousMaterialFlag");
if( "Y".equals(hazardous) ) {
def packShipInstruction = line. getOrCreateContextRow("PackShipInstruction");
packShipInstruction.setAttribute("_ShippingInstruction", "Hazardous Handling Required.");
}
}

Object getItem(Long itemId, Long orgId) {


def itemPVO = context.getViewObject("oracle.apps.scm.productModel.items.publicView.ItemPVO");
def vc = itemPVO.createViewCriteria();
def vcrow = vc.createViewCriteriaRow();

1433
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

vcrow.setAttribute("InventoryItemId", itemId);
vcrow.setAttribute("OrganizationId", orgId);
def rowset = itemPVO.findByViewCriteria(vc, -1);
def item = rowset.first();
return item;
}

Messages
Use Messages in Your Order Management Extensions
Create an order management extension to raise a validation error that indicates a sales order requires correction before
Order Management Cloud submits it to order fulllment.
• To raise a validation error, Order Management creates a validation exception, stops running the extension that
failed, then runs a subsequent extension for this extension point that you set up.
• Order Management accumulates each message that it creates from validation exceptions for all the extensions
that it runs during the extension point, then displays them together to the Order Entry Specialist or, if its a
source order from a source system, returns them through a web service call in the response to the caller.

If Order Management creates a validation exception, then your extension code must send a message that describes the
cause of the failure. You must do one of.
• Add the message text to your extension. You must specify Distributed Order Orchestration as the application
for the message. Order Management will display this text in the Order Management work area without
modication.
• Add the name of an Oracle Fusion message and message parameters in your extension. Order
Management will get the message from the Oracle Fusion message repository, populate any message tokens
that the message references, display the message in the Order Management work area, then add it to the
message log. You can use the Manage Messages page to create a message. For details, see the Create
Messages in Order Management topic.

This topic frequently mentions ValidationException. For details, see the ValidationException method in the Methods
You Can Use with Order Management Extensions topic.

Here's the code that creates a validation exception.

Code Description

import oracle. apps. scm. Import the ValidationException class.


doo. common. extensions.  
ValidationException;
 

def salesCredits = header. Get the row set for the sales credits that the order header references.
getAribute("SalesCredits");  
 

while( salesCredits. hasNext() ) Determine whether more sales credit rows exist.
   

def salesCredit = salesCredits. next(); Get the next sales credit row.
   

if( "1". equals(salesCredit. Determine whether the sales credit is a revenue percent.
getAribute("SalesCreditTypeCode")) )  

1434
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Code Description

def percent = salesCredit. Get the percent allocation of the sales credit.
getAribute("Percent");  
 

if( percent < 30 ) { If percent is less than 30, then create a validation error.
   

def tokens = [SALESPERSON: Specify the token values to send to ValidationException.


salesCreditgetAribute("Salesperson")  
PERCENT: percent];
 

throw new Create the exception, and then stop the execution.
ValidationException("SALES_  
CREDIT_ TOO_LOW_MSG" tokens);
 

Here's the same code without comments.


import oracle.apps.scm.doo.common.extensions.ValidationException;
def salesCredits = header.getAttribute("SalesCredits");
while( salesCredits.hasNext() ) {
def salesCredit = salesCredits.next();
if( "1".equals(salesCredit.getAttribute("SalesCreditTypeCode")) ) {
def percent = salesCredit.getAttribute("Percent");
if( percent < 30 ) {
def tokens = [SALESPERSON: salesCredit.getAttribute("Salesperson"), PERCENT: percent];
throw new ValidationException("SALES_CREDIT_TOO_LOW_MSG", tokens);
}
}
}

Hard Coding the Message

Here's a variation that creates a validation exception that hard codes the message text. You replace def tokens and
throw new with this code.

String messageText = "The " + percent + "% sales credit for salesperson " + salesperson + " is less than the
required minimum, which is 30%.";
throw new ValidationException(messageText);

For example, if percent equals 20, and if salesperson equals Diane Cho, then here's the text that displays at run time.
The 20% sales credit for salesperson Diane Cho is less than the required minimum, which is 30%.

Reference Request Functions

Here's a variation that creates a validation exception that references a request function that you dene instead of the
default function that comes predened with Order Management. You replace def tokens and throw new with this code.
def tokens = [SALESPERSON: salesCredit.getAttribute("Salesperson"), PERCENT: percent];
throw new ValidationException("ORA_CUSTOM_REQ_FUNCTION", "SALES_CREDIT_TOO_LOW_MSG", tokens);

1435
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Raise More Than One Validation Message


In the example above, the extension stops running as soon as it nds one sales credit record that doesn't meet the
requirement, then reports the error. This extension code doesn't create or use a Message object but instead works
directly against the ValidationException class.

An extension can create one or more instances of a Message object before calling ValidationException. Use this
capability to report all sales credit rows that fail the requirement, and to control how you code your extension.

Here's an example that uses the Message object and provides detailed error reporting. It reports all sales credit rows
that fail validation.

Code Description

import oracle. apps. scm. Import the ValidationException class so you can construct a ValidationMessage object.
doo. common. extensions.  
ValidationException;
 

import oracle. apps. scm. doo. Import the Message class so you can construct a Message object.
common. extensions. Message;  
 

def salesCredits = header. Get the row set for the sales credits that the order header references.
getAribute("SalesCredits");  
 

List<Message> msgs = new Determine whether more sales credit rows exist that we must process.
ArrayList<Message>();  
 
while( salesCredits. hasNext() )
 

def salesCredit = salesCredits. next(); Get the next sales credit row.
   

if( "1". equals(salesCredit. Determine whether the sales credit is a revenue percent.
getAribute("SalesCreditTypeCode")) )  
{
 

def percent = salesCredit. Get the percent allocation of the sales credit.
getAribute("Percent");  
 

if( percent < 30 ) { If percent is less than 30, then create a validation error.
   

def tokens = [SALESPERSON: Specify the token values to send to ValidationException.


salesCreditgetAribute("Salesperson")  
PERCENT: percent];
 

Message msg = new Create a new message.


Message(Message. MessageType.  
ERROR "SALES_ CREDIT_
TOO_LOW_MSG" tokens);
 

1436
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Code Description

msgs.add(msg); Accumulate each message in a list.


   

if( !msgs. isEmpty() ) { If the msgs list isn't empty, then at least one sales credit row is in error.
   

throw new Create and throw ValidationException.


ValidationException(msgs);  
 

Here's the same code without comments.


import oracle.apps.scm.doo.common.extensions.ValidationException;
import oracle.apps.scm.doo.common.extensions.Message;
def salesCredits = header.getAttribute("SalesCredits");
List<Message> msgs = new ArrayList<Message>();
while( salesCredits.hasNext() ) {
def salesCredit = salesCredits.next();
if( "1".equals(salesCredit.getAttribute("SalesCreditTypeCode")) ) {
def percent = salesCredit.getAttribute("Percent");
if( percent < 30 ) {
def tokens = [SALESPERSON: salesCredit.getAttribute("Salesperson"), PERCENT: percent];
Message msg = new Message(Message.MessageType.ERROR, "SALES_CREDIT_TOO_LOW_MSG", tokens);
msgs.add(msg);
}
}
}
if( !msgs.isEmpty() ) {
throw new ValidationException(msgs);
}

Write Error Messages to Logs When Using Order Management Extensions


Create an order management extension that writes log messages to the same applications log le and uses the same
application seings that an Oracle Fusion application uses.
Avoid degrading performance during logging.
• Use the SEVERE logging level only for extremely important conditions, such as a read error condition. Logging
all events as SEVERE will produce a large number of log messages and degrade performance.
• Use the FINEST logging level to get detailed reporting. Use FINEST for entry and exit logging. The Logger
Method can write logs at dierent levels.
• Avoid concatenating strings. If your log statement must concatenate strings, then write your code so it makes
sure logging for the targeted logging level is enabled before you concatenate.
Use the Logger method to avoid code readability problems that sometimes occur when you write code that
makes sure the logging level is enabled, and when you include this code for every log statement. The Logger
Method provides an alternative way to log for each level. It can use a format string and parameters as input.
It can substitute the parameters in the format string only if the logging is enabled at the targeted level before
writing to the log. This approach postpones string manipulation until your code conrms that logging is
enabled.

For details about how to set log levels, see java.util.logging.Level on the Java Platform, Standard Edition 7 API
Specication website at hps://docs.oracle.com/javase/7/docs/api/java/util/logging/Level.html.

This topic includes example values. You might use dierent values, depending on your business requirements.

1437
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Write error messages to logs when using order management extensions:

1. Write to the log.

Code Description

def logger = context. getLogger(); Get the logger object from the context. The rst few lines have been left out of the example.
   

def item = getItem(inventoryItemId, Get the item. Use item Id and organization Id when calling the getItem method.
orgId);  
 

String hazardous = item. Get the HazardousMaterialFlag aribute from the item.
getAribute("HazardousMaterialFlag");  
 

if( "Y". equals(hazardous) ) { Determine whether the item is hazardous.


   

logger. logFinest("Found line Log at the nest level. Note that the string format provides the rst argument and the
with hazardous item %s, %s", subsequent arguments provide the parameters.
inventoryItemId, orgId);  
 

def packShipInstruction = line. Get the row for the extensible exeld context named PackShipInstruction.
getOrCreateContextRow("PackShipInstruction");
 
 

packShipInstruction. Set the context segment for Shipping Instruction.


setAribute("ShippingInstruction"  
"Hazardous Handling Required.");
 

2. Dene the public view object.

Code Description

Object getItem(Long itemId, Long Create an instance of a public view object named Item. Specify to log at the FINER level.
orgId, def logger) {  
 
logger. logFiner("Entering method
getItem");
 
def itemPVO = context.
getViewObject("oracle. apps. scm.
productModel. items. publicView.
ItemPVO");
 

def vc = itemPVO. Create the view criteria object.


createViewCriteria();  
 

def vcrow = vc. Create the view criteria row.


createViewCriteriaRow();  
 

1438
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Code Description

vcrow. Set the inventory item aribute to include in the lter condition and the value to use when
setAribute("InventoryItemId" comparing against this aribute.
itemId);  
 

vcrow. setAribute("OrganizationId" Set the organization aribute to include in the lter condition and the value to use when
orgId); comparing against this aribute.
   

def rowset = itemPVO. Specify the view criteria to lter rows and query the view object.
ndByViewCriteria(vc -1);  
 

def item = rowset. rst(); Get the rst item row that matches the condition.
   

logger. logFiner("Exiting method Specify to log at the FINER level. Exit the log.
getItem: itemNumber %s", item.  
getAribute("ItemNumber"));
 

The code uses parameters.

◦ param itemId. Inventory item Id that identies the item.


◦ param orgId. Inventory organization Id that identies the organization that owns the item.

Here's the same code with no comments.


def logger = context.getLogger();
def item = getItem(inventoryItemId, orgId);
String hazardous = item.getAttribute("HazardousMaterialFlag");
if( "Y".equals(hazardous) ) {
logger.logFinest("Found line with hazardous item %s, %s", inventoryItemId, orgId);
def packShipInstruction = line. getOrCreateContextRow("PackShipInstruction");
packShipInstruction.setAttribute("_ShippingInstruction", "Hazardous Handling Required.");
}
Object getItem(Long itemId, Long orgId, def logger) {
logger.logFiner("Entering method getItem");
def itemPVO = context.getViewObject("oracle.apps.scm.productModel.items.publicView.ItemPVO");
def vc = itemPVO.createViewCriteria();
def vcrow = vc.createViewCriteriaRow();
vcrow.setAttribute("InventoryItemId", itemId);
vcrow.setAttribute("OrganizationId", orgId);
def rowset = itemPVO.findByViewCriteria(vc, -1);
def item = rowset.first();
logger.logFiner("Exiting method getItem: itemNumber %s", item.getAttribute("ItemNumber"));
return item;
}

1439
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Examples
Use Extensions to Update the Order Submit Date
Create an extension that uses an extensible exeld to update the order submit date.
This topic includes example values. You might use dierent values, depending on your business requirements.
1. Create an extensible exeld.

Aribute Value

Name H1AributeDateTime1
   

Category Additional Header Information


   

Context HeaderContext1
   

For details about how to create an extensible exeld, see the Set Up Extensible Flexelds in Order
Management topic.
2. In the Setup and Maintenance work area, go to the task.
◦ Oering: Order Management
◦ Functional Area: Orders
◦ Task: Manage Order Management Extensions
3. On the Manage Order Management Extensions page, notice the elements.
◦ Three tabs, one for each extension point.
◦ A Sequence column. Order Management runs the extensions for each extension point sequentially
according to the values in the Sequence column. For example, if the rst row contains a value of 10, the
second row a value of 30, and the third row a value of 20, then Order Management will run row one, row
three, and then row two.
4. On the Manage Order Management Extensions page, click Actions > Create New.
5. In the Create Extension dialog, accept the default values, then click OK.
The Use Existing option creates a reference to an extension that already exists. It doesn't create a copy. For
example, assume an extension named My_Extension already exists on the On Save extension point. Assume
you set Use Existing to My_Extension when you create an extension on the On Start of Submission Request
extension point. If you modify My_Extension from On Start of Submission Request at any point in the future,
then Order Management will automatically update My_Extension for On Save with your modication. If
you modify My_Extension for On Save, then Order Management will update My_Extension for On Start of
Submission Request.
6. On the Create Extension page, on the On Start of Submission Request tab, enter values.

Aribute Value

Name Update Order Submit Date

1440
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Aribute Value

   

Description This extension sets the value of an extensible exeld to the date and time when Order
  Management submied the sales order.
 

7. In the Denition area, add code.


// Make sure the extension runs only for your test sales order. If multiple developers use your test
environment, then this condition makes sure the code updates only your sales order. You must remove
this condition in a production environment.
def poNumber = header.getAttribute("CustomerPONumber");
if( !"UpdateOrderSubmissionDate".equals(poNumber) ) return;

// Get the current time, and then create an instance of java.sql.Date, and set it to the current time.
long currentTime = new Date().getTime();
def date = new java.sql.Date(currentTime);

// Get the row for the flexfield context named HeaderContext1.


def flexfieldContext = header.getOrCreateContextRow("HeaderContext1");

// Set the date on the attribute named _H1AttributeDateTime1 to the current date. Use flexfieldContext
to identify the flexfield context where _H1AttributeDateTime1 resides, which is HeaderContext1.
flexfieldContext.setAttribute("_H1AttributeDateTime1", date);

8. Click Validate > Save and Close.

Test Your Set Up


1. Navigate to the Order Management work area, create a new sales order, then click Submit.

Aribute Value

Purchase Order UpdateOrderSubmitDate_ run_extension


   

2. Click Actions > View Additional Information.


3. In the Additional Information dialog, click HeaderEFFDetails, then verify that the dialog displays the value.

Aribute Value

H1AributeDateTime1 The current date and time. For example:


   
04/01/17 6:25 PM
 

Use Extensions to Validate Relationships Between Aributes


Create an order management extension that makes sure the sales order includes a relationship between the sold-to
customer and the ship-to customer, and between the sold-to customer and bill-to customer.
If one of these relationships doesn't exist when the user aempts to submit the sales order, then the extension stops the
sales order from proceeding and displays an error message.

1441
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

This topic includes example values. You might use dierent values, depending on your business requirements.

1. In the Setup and Maintenance work area, go to the task.

◦ Oering: Order Management


◦ Functional Area: Orders
◦ Task: Manage Order Management Extensions
2. On the Manage Order Management Extensions page, on the On Start of Submission Request tab, create a new
extension.

Aribute Value

Name Validate Relationships Between Aributes


   

Description Make sure a relationship exists between the sold-to customer and the ship-to customer, and
  between the sold-to customer and the bill-to customer. If one of these relationships doesn't
exist, then create an error and stop the sales order from proceeding.
 

3. In the Denition area, add code.

//import classes for validation exceptions and messages from Oracle Trading Community Architecture.
import oracle.apps.scm.doo.common.extensions.ValidationException;
import oracle.apps.scom.doo.comm.extensions.Message;

// Make sure the extension runs only for your test sales order. If multiple developers use your test
environment, then this condition makes sure the code updates only your sales order. You must remove
this condition in a production environment.
def poNumber = header.getAttribute("CustomerPONumber" );
if(poNumber == null) return;
if( !poNumber.startsWith("MatchRelationship") ) return;
boolean relationExists=false;

//define the variables you will use to store the identifiers.


def soldTo = header.getAttribute("BuyingPartyIdentifier")
def billTo = header.getAttribute("BillToCustomerIdentifier")

//if the relationship exists, then further validation is not necessary, so save the sales order, and
then exit.
if (header.getAttribute("BuyingPartyName")==header.getAttribute("BillToCustomerName"))
relationExists=true;

//determine what relationship currently exists between the bill-to customer and the sold-to customer.
//reference the view object that stores the relationship. In this example, the
CustomerAccountRelationship view object stores this relationship.
def CustPVO =
context.getViewObject("oracle.apps.cdm.foundation.parties.publicView.customerAccounts.CustomerAccountRelationshi

//create the view criteria.


def vc = CustPVO.createViewCriteria();
def vcrow = vc.createViewCriteriaRow();
//RelatedCustAccountId is an attribute that stores the sold-to relationship, so you set vcrow to
reference RelatedCustAccountId. You will examine it to determine whether the sold-to customer is
related to the bill-to customer.
vcrow.setAttribute("RelatedCustAccountId", soldTo);
//Query the view object according to the criteria that you set in the previous line of code.
def rowSet = CustPVO.findByViewCriteria(vc, -1);

1442
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

//Read through the row set. If a row exists that contains a relationship, then you have determined that
a relationship exists between sold-to and bill-to, so save the sales order, and then exit.
while (rowSet.hasNext()) {
def row = rowSet.next();
def billtorelation=row.getAttribute("CustAccountId")
if (billtorelation == billTo)
{
relationExists=true;
}
}
//Create an exception when a relationship does not exist and display an error message.
//header.setAttribute("ShippingInstructions", header.getAttribute("ShippingInstructions") + ", "
relationExists)

if( !relationExists) {
throw new ValidationException("The order submit failed because the bill-to customer is not related to
the sold-to customer.");
}

This example is only for demonstration purposes in a development environment. It hard codes the message
to display in the Order Management work area in the English language as The order submit failed because
the bill-to customer is not related to the sold-to customer. To avoid problems with translation to other
languages, don't code the message in a production environment.

Instead, here's some code you can use to reference a message from the messaging framework.

throw new ValidationException("lookup_code", "message name", token_values);

where

◦ lookup_code determines where and how to display the message in the Order Management work area.
For example, you can reference more than one lookup code to display messages in dierent pie slices on
the infolets in the Order Management work area, according to lookup code.
◦ message name identies the name of the message that exists in the messaging framework.
◦ token_values species a list of the values to use in the tokens that the message contains. If the message
doesn't contain any tokens, then use null.

For example, here's some code that displays the contents of the FOM_CMN_INV_BILL_TO message.

throw new ValidationException("ORA_MANAGE_EXTENSIONS", "FOM_CMN_INV_BILL_TO", null);

For details about using lookup_code, see the ValidationException method in the Methods You Can Use with
Order Management Extensions topic.

Test Your Set Up


1. Navigate to the Order Management work area, create a new sales order, then click Submit.

Aribute Value

Customer Computer Service and Rentals


   

Bill-to Customer Business World Inc.


   

1443
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Aribute Value

Purchase Order ValidateRelationshipsBetweenAributes _ run_extension


   

2. Verify that the error dialog displays the message you coded.
Computer Service and Rentals is the sold-to customer, Business World Inc is the bill-to customer, they don't
match, so Order Management displays an error.
3. Set the value, then click Submit.

Aribute Value

Bill-to Customer Computer Service and Rentals


   

4. Verify that Order Management submits the sales order and sets the status to Processing.
Computer Service and Rentals is the sold-to customer and the bill-to customer, they match, so Order
Management processes the sales order.

Use Extensions to Verify Data That Users Enter


Create an order management extension that determines whether a purchase order exists for the purchase order
number that the Order Entry Specialist enters in the Purchase Order aribute.
It calls a public view object to get data from Oracle Fusion Procurement.

For demonstration purposes, this example hard codes some values, such as HW INTERNAL. Your environment will likely
require dierent variable values.

This topic includes example values. You might use dierent values, depending on your business requirements.
1. In the Setup and Maintenance work area, go to the task.
◦ Oering: Order Management
◦ Functional Area: Orders
◦ Task: Manage Order Management Extensions
2. On the Manage Order Management Extensions page, on the On Start of Submission Request tab, create a new
extension.

Aribute Value

Name Verify That the Purchase Order Exists


   

Description Determine whether a purchase order exists for the purchase order number that the Order
  Entry Specialist enters in the Purchase Order aribute.
 

3. In the Denition area, add code.


//Import classes for validation exceptions and messages from Oracle Trading Community Architecture.

1444
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

import oracle.apps.scm.doo.common.extensions.ValidationException;

def orderType = header.getAttribute("TransactionTypeCode");

//Determine whether the sales order is internal.


if(orderType != null && orderType.contains("HW INTERNAL")) {

//Determine whether the purchase order exists.


String poNumber = header.getAttribute("CustomerPONumber");

boolean poExists = false;


if( poNumber != null ) {

//Get the PVO you need to access purchase orders.


def poPVO = context.getViewObject("oracle.apps.prc.po.publicView.PurchasingDocumentHeaderPVO");

//Create the view criteria. Use where clause predicates.


def vc = poPVO.createViewCriteria();
def vcrow = vc.createViewCriteriaRow();
vcrow.setAttribute("Segment1", poNumber);

//Query the view object to find a matching row.


def rowset = poPVO.findByViewCriteriaWithBindVars(vc, 1, new String [0], new String [0]);

//Determine whether a matching row exists.


poExists = rowset.hasNext();
}

//If a matching row does not exist, then the purchase order that the user entered does not exist. Create
a validation error and stop the sales order submit.
if( !poExists ) {
throw new ValidationException("ORA_MANAGE_EXTENSIONS", "DOO_EXT_HW_INTERNAL_PO_REQD", null);
}
}

Use Extensions to Cancel Order Lines


Create an extension that uses an extensible exeld to cancel order lines in a sales order.
Assume your customer places a sales order for items you can't fulll because the items have become obsolete and your
supplier no longer supplies the item. You can use an order management extension to cancel lines that contain a value,
such as Obsolete, in an extensible exeld.

This topic includes example values. You might use dierent values, depending on your business requirements.
1. Create the extensible exeld.
◦ Add it to the Fulllment Line Information exeld. Use these values.

Aribute Value

Name CancelLine
   

Category Additional Fulllment Line Information


   

Context ProductObsoleteContext
   

◦ Set values on the Create Segment page.

1445
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Aribute Value

Name CancelLine
   

Code CancelLine
   

API Name cancelline


   

Enabled Contains a check mark.


   

Data type Character


   

Table Column ATTRIBUTE_ CHAR2


   

Value Set 10 Characters


   

Prompt Cancel Line


   

Display Type Text Box


   

◦ Publish and deploy your exeld.

For details about how to create an extensible exeld, see the Set Up Extensible Flexelds in Order
Management topic.
2. Create your extension.

◦ In the Setup and Maintenance work area, go to the task.

• Oering: Order Management


• Functional Area: Orders
• Task: Manage Order Management Extensions
◦ On the Create Extension page, on the On Start of Submission Request tab, enter values.

Aribute Value

Name Cancel Order Quantity


   

Description This extension examines the value of an extensible exeld on an order line to
  determine whether to cancel the line.
 

◦ In the Denition area, add code.

1446
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

import oracle.apps.scm.doo.common.extensions.ValidationException;

def poNumber = header.getAttribute("CustomerPONumber");


if( !"CancelOrderQuantity".equals(poNumber) )
return;

def lines = header.getAttribute("Lines");

if(lines == null)
return;

while(lines.hasNext()){

def line = lines.next();

//Get the row for the flexfield context named ProductObsoleteContext.


//Use the code value for the context as the argument to get the context row.

def context = line.getOrCreateContextRow("ProductObsoleteContext");

if(context == null)
throw new ValidationException("Context ProductObsoleteContext was null");

def cancelLineEffVal = context.getAttribute("cancelline");

if("Y".equals(cancelLineEffVal)){
line.setAttribute("OrderedQuantity",0);
}

◦ Click Validate > Save and Close.

Test Your Setup


Create a test sales order for customer Computer Service and Rentals.

1. Create the sales order.

◦ Go to the Order Management work area and create a new sales order.

Set aributes on the order header.

Aribute Value

Customer Computer Service and Rentals


   

Order Type Standard Orders


   

◦ Add an order line that contains an item that isn't congured.


◦ Click Submit.
2. Wait for the order line status to change to Awaiting Shipping. Click Refresh to update the status.
3. Revise your sales order.

◦ On the Manage Orders page, click Actions > Create Revision

1447
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

◦ On the Create Revision page, set the aribute on the order header.

Aribute Value

Purchase Order CancelOrderQuantity


   

◦ Click an order line, then click Update Lines.


◦ On the Update Lines page, move the Additional Information aribute to the Selected window, then click
Next.
◦ In the Specify values area, click Update Additional Information.
◦ In the dialog that opens, click CancelLine.
◦ In the ProductObsoleteContext area, in the window next to CancelLine, enter "Y".

You must include the double quotation marks.


◦ Click Ok, then click Update.
4. Verify that Order Management changed the quantity on the order line to 0, and canceled the line.

Use Extensions to Get Values for Return Orders


A return order doesn't include values from the original order on some order line aributes. For example, the return line
doesn't include the original value for the sales credit or purchase order number. You can use an extension to get the
value from the original order line.
Here are some examples you can use to get values from the original order when you use a return material authorization
(RMA).

Get Order Type from Original Sales Order


Get the order type from the original sales order and use it to set the value of the order type of a return order.
// Extension : DefaultOrderTypeFromOrigOrder
//
//===========================================================
import oracle.apps.scm.doo.common.extensions.ValidationException;

// Go through all the order lines. We're interested in return lines. As soon as we find a return line, we
will use the document
// reference on the line to try to locate the original order.
def lines=header.getAttribute(""Lines"");

while (lines.hasNext()) {

def line=lines.next();

// Get the line type specified on the line. A line type code of ORA_RETURN means its a return line.
String lineTypeCode=line.getAttribute(""TransactionLineTypeCode"");

if (""ORA_RETURN""==lineTypeCode) {
// We have a return line. Now let's find the original order.
// We will go through the document references on this line to locate the document reference
// that identifies the original order.
def docRefs=line.getAttribute(""DocumentReferences"");

while (docRefs.hasNext()) {
def docRef=docRefs.next();
String docRefType=docRef.getAttribute(""DocumentReferenceType"");

1448
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

if (""ORIGINAL_ORCHESTRATION_ORDER""==docRefType) {
// We found the document reference that points to the original order.
// The DocumentIdentifier attribute is the header id of the original order.
Long headerId=new Long(docRef.getAttribute(""DocumentIdentifier""));
// Call the getOrderType method to get the order type of the original order using a PVO
String orderTypeCode=getOrderType(headerId);

debug(""Original Order Order Type: ""+ orderTypeCode);

// If order type isn't null, set it on the current order, else raise a validation exception.
if (orderTypeCode !=null) {
header.setAttribute(""TransactionTypeCode"", orderTypeCode);
break;
}

else {
throw new ValidationException(""Order type isn't specified on the original order."");
}
}
}
}
}

/**
* Returns the order type of the indicated order.
*/
String getOrderType(Long headerId) {
debug(""finding order by headerId: ""+ headerId);

def vo=context.getViewObject(""oracle.apps.scm.doo.publicView.analytics.HeaderPVO"");

Object[] rows=vo.findByKey(headerId, 1);


def originalHeader=rows[0];

return originalHeader.getAttribute(""OrderTypeCode"");
}

Get Purchase Order from Original Sales Order


Get purchase order details from the order header and order line of the original order, then copy them to the return
order and return order line.
import oracle.apps.scm.doo.common.extensions.ValidationException;
import oracle.apps.scm.doo.common.extensions.Message;
import java.util.logging.Level;
Long lineId = 0;
Long headerId = 0;
def lines = header.getAttribute("Lines");
while (lines.hasNext()) {
def line = lines.next();
String categoryCode = line.getAttribute("TransactionCategoryCode");

if ("RETURN" != categoryCode) continue;


def docRefs = line.getAttribute("DocumentReferences");
lineId = 0;
while (docRefs.hasNext() & lineId == 0) {
def docRef = docRefs.next();
String docRefType = docRef.getAttribute("DocumentReferenceType");

if ("ORIGINAL_ORCHESTRATION_ORDER" == docRefType) {
// We found the document reference that points to the original order.
// The DocumentSubLineIdentifier attribute is the fulfillline id of the original order fulfillment line.
lineId = new Long(docRef.getAttribute("DocumentSubLineIdentifier"));

1449
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

if (headerId == 0) {
// The DocumentIdentifier attribute is the header id of the original order header.
headerId = new Long(docRef.getAttribute("DocumentIdentifier"));
}
}
}
if (lineId != 0) {
// throw new ValidationException(lineId.toString());
def oLine = getLine(lineId);

if (oLine == null) continue;


def oLinePO = oLine.getAttribute("FulfillLineCustomerPoNumber");
def oHeaderPO = oLine.getAttribute("HeaderCustomerPoNumber");
line.setAttribute("CustomerPONumber", oLinePO);
header.setAttribute("CustomerPONumber", oHeaderPO);
} else {
throw new ValidationException("Value not found");
}
}
def Object getLine(Long lineId) {
def vo = context.getViewObject("oracle.apps.scm.doo.publicView.analytics.FulfillLinePVO");
Object[] rows = vo.findByKey(lineId, 1);
def originalFLine = rows[0];
return originalFLine;
}

Get Extensible Flexelds from Original Sales Order


Get extensible exelds from the order line of the original order, then copy it to a return order line.
import oracle.apps.scm.doo.common.extensions.ValidationException;
import oracle.apps.scm.doo.common.extensions.Message;
import java.util.logging.Level;
Long lineId = 0;
Long headerId = 0;
def lines = header.getAttribute("Lines");
while (lines.hasNext()) {
def line = lines.next();

String categoryCode = line.getAttribute("TransactionCategoryCode");

if ("RETURN" != categoryCode) continue;


def docRefs = line.getAttribute("DocumentReferences");
lineId = 0;
while (docRefs.hasNext() & lineId == 0) {
def docRef = docRefs.next();
String docRefType = docRef.getAttribute("DocumentReferenceType");
if ("ORIGINAL_ORCHESTRATION_ORDER" == docRefType) {
// We found the document reference that references the original order.
// The DocumentSubLineIdentifier attribute identifies the fulfillment line in the original order.

lineId = new Long(docRef.getAttribute("DocumentSubLineIdentifier"));


if (headerId == 0) {
// The DocumentIdentifier attribute identifies the header in the original order.
headerId = new Long(docRef.getAttribute("DocumentIdentifier"));
}
}
}
if (lineId != 0) {
// throw new ValidationException(lineId.toString());
def oLine = getLine(lineId);
if (oLine == null) continue;

def Ocontext = oLine.getAttribute("FulfillLineBIEffEFFBIFlattened");


def oContextRow = Ocontext.first();

1450
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

def oattr1 = oContextRow.getAttribute("DOO_FULFILL_LINES_ADD_INFO_FulfillLineContext1_EffLineId");


def oattr = oContextRow.getAttribute("DOO_FULFILL_LINES_ADD_INFO_FulfillLineContext1__FL1AttributeNum1");

def context = line.getOrCreateContextRow("FulfillLineContext1");


context.setAttribute("_FL1AttributeNum1", oattr);
} else {
throw new ValidationException("Value not found");

}
}
def Object getLine(Long lineId) {

def vo = context.getViewObject("oracle.apps.scm.doo.publicView.analytics.FulfillLinePVO");
Object[] rows = vo.findByKey(lineId, 1);
def originalFLine = rows[0];

return originalFLine;
}

Code Examples and Snippets for Order Management Extensions


Use these code examples and code snippets to help you create order management extensions in your implementation.
Many of these examples test a value for the purchase order number on the order header. This test isolates the
extension and prevents it from aecting other developers who might also be running test code. For details about this
technique, see the Guidelines for Creating Extensions That Modify Order Management topic.

Order Headers
Set the Billing Transaction Type According to Order Type

import oracle.apps.scm.doo.common.extensions.ValidationException;
import oracle.apps.scm.doo.common.extensions.Message;

String orderTypeCode = header.getAttribute("TransactionTypeCode");


def billingTxnTypeId = null;

//Message msg = new Message(Message.MessageType.WARNING, "Order Type: " + orderTypeCode);


//throw new ValidationException(msg);

//Case statement which tests order type and calls function to get billing transaction type

switch (orderTypeCode) {
case ["AUTO RETURN - SHIP", "AUTO RETURN - SHIP", "AUTO RETURN - MXT SHIP", "Mosoi_test"]:
billingTxnTypeId = getBillingTxnTypeId("MOTO_INVOICE");
//msg = new Message(Message.MessageType.WARNING, "First Case " + billingTxnTypeId );
break;
case ["UnreferencedRMA"]:
billingTxnTypeId = getBillingTxnTypeId("Invoice");
//msg = new Message(Message.MessageType.WARNING, "Second Case " + billingTxnTypeId );
break;
default:
billingTxnTypeId = null;
//msg = new Message(Message.MessageType.WARNING, "Default " + billingTxnTypeId );
break;
}

//throw new ValidationException(msg);

//update all order lines with the Billing Transaction Type

def lines = header.getAttribute("Lines"); //get the lines row set


while (lines.hasNext()) { //if there are more order lines

1451
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

def line = lines.next();


line.setAttribute("BillingTransactionTypeIdentifier", billingTxnTypeId);
}

//Function to get Billing Transaction Type

Long getBillingTxnTypeId(String billingTxnTypeName) {

def txnTypePVO = context.getViewObject("oracle.apps.financials.receivables.publicView.TransactionTypePVO");

//Create view criteria (where clause predicates)


def vc = txnTypePVO.createViewCriteria();
def vcrow = vc.createViewCriteriaRow();

//Only return Billing Transaction Type for the - Common Set - to be changed as required

vcrow.setAttribute("Name", billingTxnTypeName);
vcrow.setAttribute("SetName", "Common Set");

//Execute the view object query to find a matching row


def rowset = txnTypePVO.findByViewCriteriaWithBindVars(vc, 1, new String[0], new Object[0]);

//check if we have a matching row


def row = rowset.first();

Long txnTypeId = (Long) row.getAttribute("CustTrxTypeSeqId");

return txnTypeId;
}

Add Aachment to Order Header


import oracle.apps.scm.doo.common.extensions.ValidationException;
import oracle.apps.scm.doo.common.extensions.Message;
import oracle.apps.scm.doo.common.extensions.Attachment;
import oracle.jbo.domain.BlobDomain;
String poNumber = header.getAttribute("CustomerPONumber");
if (poNumber == null) return;
if (!poNumber.startsWith("WriteAttachmentsHeaderOnEndSubmit_run_extension")) return;

List < Message > messages = new ArrayList < Message > ();
//messages.add(new Message( Message.MessageType.ERROR, "HeaderId: " + header.getAttribute("HeaderId")));

/////////////////create header attachments


//Create TEXT attachment
Attachment newAttachment1 = new Attachment();
newAttachment1.setDatatypeCode("TEXT");
newAttachment1.setTitle("This is a text type title on submit");
newAttachment1.setText("this is some text");
newAttachment1.setDescription("this is some description");
header.createAttachment(newAttachment1);

//Create URL attachment


Attachment newAttachment2 = new Attachment();
newAttachment2.setDatatypeCode("WEB_PAGE");
newAttachment2.setTitle("This URL points to google server on submit");
newAttachment2.setUrl("http://www.google.com/");
newAttachment2.setDescription("Used for searching stuffs");
header.createAttachment(newAttachment2);

//Create a file attachment


Attachment newAttachment3 = new Attachment();
newAttachment3.setDatatypeCode("FILE");
newAttachment3.setTitle("file type title");
newAttachment3.setDescription("this file contains some random data on submit");

1452
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

newAttachment3.setFileName("APITextFile.txt");
//newAttachment3.setFileContentType("application/text");
newAttachment3.setFileContentType("text/plain");
//newAttachment3.setFileContent(new BlobDomain("This is a test creation using Bytes".getBytes()));
newAttachment3.setFileContent("This is a test for creation file from api using bytes".getBytes());
header.createAttachment(newAttachment3);

/*delete all header attachments


//messages.add(new Message( Message.MessageType.ERROR, "Delete all header attachments"));
def attachments1 = header.getAttachments();
for (int i; i< attachments1.size(); ++i) {
def attachment1 = attachments1[i];
//header.deleteAttachment(attachment1);
}*/

ValidationException ex = new ValidationException(messages);


throw ex;

Delete Aachment from Order Header


import oracle.apps.scm.doo.common.extensions.ValidationException;
import oracle.apps.scm.doo.common.extensions.Message;
import oracle.apps.scm.doo.common.extensions.Attachment;
import oracle.jbo.domain.BlobDomain;

String poNumber = header.getAttribute("CustomerPONumber");


if (poNumber == null) return;
if (!poNumber.startsWith("DeleteAttachmentsHeaderOnSubmit_run_extension")) return;

//delete all header attachments


//messages.add(new Message( Message.MessageType.ERROR, "Delete all header attachments"));
def attachments1 = header.getAttachments();

for (int i; i < attachments1.size(); ++i) {


//throw new ValidationException("An order with the Purchase Order ddddd Number " + attachments1 + " already
exists.");
def attachment1 = attachments1[i];
header.deleteAttachment(attachment1);
}

Set Extensible Flexeld On Order Header

Set an aribute to the current date and time. Use an extensible exeld on the order header.
import oracle.apps.scm.doo.common.extensions.ValidationException;
def poNumber = header.getAttribute("CustomerPONumber");
//throw new ValidationException("An order with the Purchase Order Number " + poNumber + " already exists.");

if (poNumber == null || !poNumber.startsWith("SetDateEffAttributeOnSubmit")) return;

Date now = new Date();

//throw new ValidationException("An order with the Purchase Order Number " + now + " already exists.");
def complianceDetails = header.getOrCreateContextRow("ComplianceDetails");

complianceDetails.setAttribute("compliancedatetime", now);

Set the Pricing Freeze Aributes on the Order Header


String poNumber = header.getAttribute("CustomerPONumber");
if (poNumber == null) return;
if (!poNumber.startsWith("WriteFreezeFlags_run_extension")) return;
header.setAttribute("FreezePriceFlag", "N");
header.setAttribute("FreezeShippingChargeFlag", "N");
header.setAttribute("FreezeTaxFlag", "N");

1453
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Set Extensible Flexeld Values for Hazardous items

If the HazardousMaterialFlag aribute equals Y, then set value for aributes that use extensible exelds on the order
header and order lines.
import oracle.apps.scm.doo.common.extensions.ValidationException;
def poNumber = header.getAttribute("CustomerPONumber");

if (poNumber == null) return;

if (!poNumber.startsWith("SetEFFAttributeOnSave")) return;

def lines = header.getAttribute("Lines");


while (lines.hasNext()) {
def line = lines.next();
def inventoryItemId = line.getAttribute("ProductIdentifier");
def orgId = line.getAttribute("InventoryOrganizationIdentifier");
def item = getItem(inventoryItemId, orgId);

String hazardous = item.getAttribute("HazardousMaterialFlag");

//throw new ValidationException("Item Hazardous Material Flag is " + hazardous);

if ("Y".equals(hazardous)) {
//get tow for fulfill line context PackShipInstruction
def packShipInstruction = line.getOrCreateContextRow("PackShipInstruction");
packShipInstruction.setAttribute("shippinginstruction", "Hazardous Handling Required.");
}
}

Date now = new Date();

def complianceDetails = header.getOrCreateContextRow("ComplianceDetails");


complianceDetails.setAttribute("compliancedatetime", now);
complianceDetails.setAttribute("compliancereason", "This is a compliance reason.");

Object getItem(Long itemId, Long orgId) {


def itemPVO = context.getViewObject("oracle.apps.scm.productModel.items.publicView.ItemPVO");
def vc = itemPVO.createViewCriteria();
def vcrow = vc.createViewCriteriaRow();
vcrow.setAttribute("InventoryItemId", itemId);
vcrow.setAttribute("OrganizationId", orgId);
vc.add(vcrow);

def rowset = itemPVO.findByViewCriteriaWithBindVars(vc, -1, new String[0], new String[0]);


def item = rowset.first();

return item;

Set Payment Term on Order Header

Set the default value to use for the payment term on the order header.
import oracle.apps.scm.doo.common.extensions.ValidationException;
import oracle.apps.scm.doo.common.extensions.Message;

List < Message > messages = new ArrayList < Message > ();
def logger = context.getLogger();
def HeaderPayTerm = header.getAttribute("PaymentTerm");
def PName = header.getAttribute("BillToCustomerName");
def AId = header.getAttribute("BillToCustomerIdentifier");

1454
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

def lines = header.getAttribute("Lines");


while (lines.hasNext()) {
def line = lines.next();
def linePayTerm = line.getAttribute("PaymentTerm");
def linetransactioncode = line.getAttribute("TransactionCategoryCode")
def partyId = getBillToPartyId(PName);
def termId = gettermID(AId, partyId);
def termName = gettermName(termId);

if (HeaderPayTerm == null && linePayTerm == null && linetransactioncode != 'RETURN') {


if (termName != null)
header.setAttribute("PaymentTerm", termName.getAttribute("Name"));
}
}

Object getBillToPartyId(String partyName) {


def partyId;
def logger = context.getLogger();
def custPVO =
context.getViewObject("oracle.apps.scm.doo.workbench.publicViewEcsf.view.CustomerPVO");
def vc = custPVO.createViewCriteria();
def vcrow = vc.createViewCriteriaRow();
vcrow.setAttribute("PartyName", partyName);
def rowset = custPVO.findByViewCriteria(vc, -1);
def partyIdRowSet = rowset.first();
if (partyIdRowSet != null)
partyId = partyIdRowSet.getAttribute("PartyId");
logger.logSevere("party id for Bill To customer", partyId);
return partyId;
}

Object gettermID(Long AId, Long partyId) {


def termId;
def logger = context.getLogger();
def custProfilePVO =
context.getViewObject("oracle.apps.financials.receivables.publicView.analytics.CustomerProfilePVO");
def vc1 = custProfilePVO.createViewCriteria();
def vcrow1 = vc1.createViewCriteriaRow();
vcrow1.setAttribute("CustAcctProfileCustAccountId", AId);
vcrow1.setAttribute("CustFinProfileSiteUseId", null);
vcrow1.setAttribute("CustAcctProfilePartyId", partyId);
def rowset1 = custProfilePVO.findByViewCriteria(vc1, -1);
def profile = rowset1.first();
if (profile != null)
termId = profile.getAttribute("CustProfileStandardTerms");
logger.logSevere("Term Id from customer profile VO", termId);
return termId;
}

Object gettermName(Long termID) {


def raTermPVO =
ontext.getViewObject("oracle.apps.financials.receivables.publicView.TrxPaymentTermPVO");
def vc2 = raTermPVO.createViewCriteria();
def vcrow2 = vc2.createViewCriteriaRow();
vcrow2.setAttribute("TermId", termID);
def rowset2 = raTermPVO.findByViewCriteria(vc2, -1);
def termName = rowset2.first();
return termName;
}

Validate That Ship-to Site Belongs to Business Unit on Order Header


import oracle.apps.scm.doo.common.extensions.ValidationException;

1455
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

def VARShipToPartySiteIdentifier = header.getAttribute("ShipToPartySiteIdentifier");


def VARBusinessUnitIdentifier = header.getAttribute("BusinessUnitIdentifier");
def ShipToPartySite = getShipTo(VARShipToPartySiteIdentifier);
def RETShipToSetId = ShipToPartySite.getAttribute("SetId")
def VARBusinesseUnitSetId = 0

//A test should be created for each Business Unit SET ID Assignment Set combination using the following SQL:
//SELECT haotl.NAME ,
//haotl.organization_id,
//fsa.SET_ID
//FROM fusion.FND_SETID_ASSIGNMENTS fsa,
//fusion.HR_ORGANIZATION_UNITS_F_TL haotl
//WHERE reference_group_name LIKE 'HZ_CUSTOMER_ACCOUNT_SITE'
//AND determinant_value = haotl.organization_id
//AND haotl.NAME LIKE '&Business_Unit_Name%'
//AND haotl.LANGUAGE = USERENV('LANG')

//

if (300000017871360. equals(VARBusinessUnitIdentifier)) {
VARBusinesseUnitSetId = 300000000002582;
}

if ((VARBusinesseUnitSetId).equals(RETShipToSetId)) {} else {
//The validation error below can be amended to match your business requirements. The example provided shows
information on the SET IDs returned
Throw new ValidationException("BU Set Id does not match Customer Ship to SET ID - BU Set ID is " +
VARBusinesseUnitSetId + " Ship to Set ID is :" + RETShipToSetId)
}

Object getShipTo(Long ShipToSiteId) {


def ShipToPVO =
context.getViewObject("oracle.apps.hed.campusCommunity.shared.shoppingCart.publicModel.view.AccountSitePVO");
def vc = ShipToPVO.createViewCriteria();
def vcrow = vc.createViewCriteriaRow();
vcrow.setAttribute("PartySiteId", ShipToSiteId);
def rowset = ShipToPVO.findByViewCriteria(vc, -1);
def ShipTo = rowset.first();
return ShipTo;
}

Prevent Duplicate Purchase Order Numbers on Order Header

Prevent Order Management from creating a duplicate of the purchase order number on the order header.
import oracle.apps.scm.doo.common.extensions.ValidationException;
//get the Customer PO Number, order number and the buying party id from the order header of the order being
saved
String customerPONumber = header.getAttribute("CustomerPONumber");
String buyingPartyIdentifier = header.getAttribute("BuyingPartyIdentifier");
String OrderNumber = header.getAttribute("OrderNumber");

//If the PO number is null, then there's nothing to validate


if (customerPONumber == null) return;

//Convert User Entered PO Number to upper case


customerPONumber = customerPONumber.toUpperCase()
//We will use the HeaderPVO to run a query with a predicate based on customer PO Number and Sold To Party
Id. The where clause predicate will be set using
//a view criteria
def vo = context.getViewObject("oracle.apps.scm.doo.publicView.analytics.HeaderPVO");
def vc = vo.createViewCriteria();
def vcrow = vc.createViewCriteriaRow();
vcrow.setAttribute("CustomerPoNumber", customerPONumber);
vcrow.setAttribute("SoldToPartyId", buyingPartyIdentifier);
vc.add(vcrow);

1456
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

//Find one row using the specified view criteria. Even if we find one row, we know that we already have an
order with the same PO Number and Bill to Site ID
def rowset = vo.findByViewCriteria(vc, 1);

if (rowset.hasNext()) {
//An Order has been found for the Bill to Site and the order number entered
//Now test to check if the order currently worked on has been previously save or if this is a revision
def vcSameOrder = vo.createViewCriteria();
def vcSameOrderrow = vc.createViewCriteriaRow();
vcSameOrderrow.setAttribute("CustomerPoNumber", customerPONumber);
vcSameOrderrow.setAttribute("SoldToPartyId", buyingPartyIdentifier);
vcSameOrderrow.setAttribute("OrderNumber", OrderNumber);
vcSameOrder.add(vcSameOrderrow);
def rowsetSameOrder = vo.findByViewCriteria(vcSameOrder, 1);
if (rowsetSameOrder.hasNext()) {
//An Order has been found. this has the same order number and PO number as the order being worked on. this
is a valid case. The order found is a revision or a previously saved order.
header.setAttribute("CustomerPONumber", customerPONumber);
} else
//The order found is for a different order number
//Set the customerPO number to the upper case value
{
throw new ValidationException("An order with the Purchase Order Number for this Customer already exists " +
customerPONumber + " already Exists");
}
} else
//No Order found for the bill to site id an po Number - the order can be saved
//Set the customerPO number to the upper case value
{
header.setAttribute("CustomerPONumber", customerPONumber);
}

Order Lines
Set the Fulllment Organization and Shipping Instructions on the Order Line

If the item is shippable, then set the fulllment organization for the order line and shipping instructions on the line to
the default shipping organization that the item references.
import oracle.apps.scm.doo.common.extensions.ValidationException;
import oracle.apps.scm.doo.common.extensions.Message;

def poNumber = header.getAttribute("CustomerPONumber");

if (poNumber == null) return;

if (!poNumber.startsWith("DefaultShippingOrg")) return;

def lines = header.getAttribute("Lines");


while (lines.hasNext()) {
def line = lines.next();
def inventoryItemId = line.getAttribute("ProductIdentifier");
def orgId = line.getAttribute("InventoryOrganizationIdentifier");
def item = getItem(inventoryItemId, orgId);

String shippable = item.getAttribute("ShippableItemFlag");

if ("Y".equals(shippable)) {
Long defaultOrgId = item.getAttribute("DefaultShippingOrg");

//msg = new Message(Message.MessageType.WARNING, "default: " + inventoryItemId + " - " + orgId + " - " +
shippable+ " - " + defaultOrgId);
//throw new ValidationException(msg);

1457
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

line.setAttribute("FulfillmentOrganizationIdentifier", defaultOrgId);
line.setAttribute("FulfillmentOrganizationIdentifier", 1234);
line.setAttribute("ShippingInstructions", "Ship From Org :" + 999);
}
}

Object getItem(Long itemId, Long orgId) {


def itemPVO = context.getViewObject("oracle.apps.scm.productModel.items.publicView.ItemPVO");
def vc = itemPVO.createViewCriteria();
def vcrow = vc.createViewCriteriaRow();
vcrow.setAttribute("InventoryItemId", itemId);
vcrow.setAttribute("OrganizationId", orgId);
vc.add(vcrow);

def rowset = itemPVO.findByViewCriteriaWithBindVars(vc, -1, new String[0], new String[0]);


def item = rowset.first();

return item;

Add Packing Instruction for Hazardous Item

If the item is hazardous, then set the packing instructions on the order line.
def poNumber = header.getAttribute("CustomerPONumber");

if (poNumber == null) return;

if (!poNumber.startsWith("HazardousMaterial")) return;

def lines = header.getAttribute("Lines");


while (lines.hasNext()) {
def line = lines.next();
def inventoryItemId = line.getAttribute("ProductIdentifier");
def orgId = line.getAttribute("InventoryOrganizationIdentifier");
def item = getItem(inventoryItemId, orgId);

String hazardous = item.getAttribute("HazardousMaterialFlag");

if ("Y".equals(hazardous)) {
//get row for fulfill line context PackShipInstruction
line.setAttribute("PackingInstructions", "Hazardous Handling Required.");
}
}

Object getItem(Long itemId, Long orgId) {


def itemPVO = context.getViewObject("oracle.apps.scm.productModel.items.publicView.ItemPVO");
def vc = itemPVO.createViewCriteria();
def vcrow = vc.createViewCriteriaRow();
vcrow.setAttribute("InventoryItemId", itemId);
vcrow.setAttribute("OrganizationId", orgId);
vc.add(vcrow);

def rowset = itemPVO.findByViewCriteriaWithBindVars(vc, -1, new String[0], new String[0]);


def item = rowset.first();

return item;

Add Aachment to Order Line


import oracle.apps.scm.doo.common.extensions.ValidationException;
import oracle.apps.scm.doo.common.extensions.Message;
import oracle.apps.scm.doo.common.extensions.Attachment;

1458
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

import oracle.jbo.domain.BlobDomain;

String poNumber = header.getAttribute("CustomerPONumber");


if (poNumber == null) return;
if (!poNumber.startsWith("WriteAttachmentsLineOnEndSubmitOnly_run_extension")) return;

List < Message > messages = new ArrayList < Message > ();
//messages.add(new Message( Message.MessageType.ERROR, "HeaderId: " + header.getAttribute("HeaderId")));
def lines = header.getAttribute("Lines");

while (lines.hasNext()) {

def line = lines.next();

/////////////////create header attachments


//Create TEXT attachment
Attachment newAttachment1 = new Attachment();
newAttachment1.setDatatypeCode("TEXT");
newAttachment1.setTitle("This is a text type title");
newAttachment1.setText("this is some text");
newAttachment1.setDescription("this is some description");

line.createAttachment(newAttachment1);

//Create URL attachment


Attachment newAttachment2 = new Attachment();
newAttachment2.setDatatypeCode("WEB_PAGE");
newAttachment2.setTitle("This URL points to google server");
newAttachment2.setUrl("http://www.google.com/");
newAttachment2.setDescription("Used for searching stuffs");
line.createAttachment(newAttachment2);

//Create a file attachment


Attachment newAttachment3 = new Attachment();
newAttachment3.setDatatypeCode("FILE");
newAttachment3.setTitle("file type title");
newAttachment3.setDescription("this file contains some random data");
newAttachment3.setFileName("APITextFile.txt");
//newAttachment3.setFileContentType("application/text");
newAttachment3.setFileContentType("text/plain");
//newAttachment3.setFileContent(new BlobDomain("This is a test creation using Bytes".getBytes()));
newAttachment3.setFileContent("This is a test for creation file from api using bytes".getBytes());
line.createAttachment(newAttachment3);

}
/*delete all header attachments
//messages.add(new Message( Message.MessageType.ERROR, "Delete all header attachments"));
def attachments1 = header.getAttachments();
for (int i; i< attachments1.size(); ++i) {
def attachment1 = attachments1[i];
//header.deleteAttachment(attachment1);
}*/

ValidationException ex = new ValidationException(messages);


throw ex;

Delete Aachment from Order Line


import oracle.apps.scm.doo.common.extensions.ValidationException;
import oracle.apps.scm.doo.common.extensions.Message;
import oracle.apps.scm.doo.common.extensions.Attachment;
import oracle.jbo.domain.BlobDomain;
String poNumber = header.getAttribute("CustomerPONumber");
if (poNumber == null) return;
if (!poNumber.startsWith("DeleteAttachmentsLineOnSubmitOnly_run_extension")) return;

1459
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

List < Message > messages = new ArrayList < Message > ();
//messages.add(new Message( Message.MessageType.ERROR, "HeaderId: " + header.getAttribute("HeaderId")));
def lines = header.getAttribute("Lines");

while (lines.hasNext()) {

def line = lines.next();

//delete all header attachments


//messages.add(new Message( Message.MessageType.ERROR, "Delete all header attachments"));
def attachments1 = line.getAttachments();
for (int i; i < attachments1.size(); ++i) {
def attachment1 = attachments1[i];
line.deleteAttachment(attachment1);
}

Other Behavior
Display Warning When Fulllment Can't Meet the Order Date

Use the server time to determine whether fulllment can ship the item according to the order entry date. If it doesn't,
display a warning.
import oracle.apps.scm.doo.common.extensions.ValidationException;
import oracle.apps.scm.doo.common.extensions.Message;

//Get the sold-to customer


String customer = header.getAttribute("BuyingPartyName");

//If cusomer is not PMC - Snow Enterprise then we do not want to check for the order date
if( customer != "PMC - Snow Enterprise" ) return;

//Initialize the variable indicating that the order is past cut off time to false
boolean orderAfterCutOffTime = false;

//Initialize calendar object. By default calendar has the current system time. We want to setup the calendar
to be in Eastern Stardard Time
Calendar now = new GregorianCalendar(TimeZone.getTimeZone("EST"));

//The following commented out code line is just for debugging purposes. It prints out the customer, and hour
of day values in the shipping instructions attribute which is visible in the UI.
//This is an easy way to inspect variable values and debug code
header.setAttribute("ShippingInstructions", customer + ", " + now.get(Calendar.HOUR_OF_DAY) + ", " +
now.get(Calendar.MINUTE));

CutOffHour = 10
CurrentHour = now.get(Calendar.HOUR_OF_DAY)

if( CurrentHour > CutOffHour ) {


orderAfterCutOffTime = true;
}

//We will iterate through the lines in the order to check if any of the lines has ship from organization set
to "Vision Operations". In order to save CPU cycles, we run this code
//to iterate through lines only if the order is past the cut-off time
if( orderAfterCutOffTime ) {
//get the lines iterator
count = 0

def lines = header.getAttribute("Lines");//get the lines row set


while( lines.hasNext() ) {//if there are more order lines
def line = lines.next();
count = count +1;

1460
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

String shipFromOrgName = line.getAttribute("FulfillmentOrganizationName");

if( shipFromOrgName != null) {


if( shipFromOrgName != "Vision Operations" ){
msg = new Message(Message.MessageType.WARNING, "This order has been entered after the cut off time " +
CutOffHour + " and will not be shipped tomorrow, current hour is : " + CurrentHour + " !!!!!");
throw new ValidationException(msg);
}
}
}
}

Copy Extensible Flexeld from Original Order to an RMA

Copy extensible exeld data from the original order to a return order that includes a return material authorization.
import oracle.apps.scm.doo.common.extensions.ValidationException;
import oracle.apps.scm.doo.common.extensions.Message;
import java.util.logging.Level;

//Following lines are for applying this extension only to specific cases
String poNumber = header.getAttribute("CustomerPONumber");
if (poNumber == null) return;
if (poNumber != "PMC TEST") return;

Long lineId = 0;
Long headerId = 0;

def lines = header.getAttribute("Lines");


while (lines.hasNext()) {
def line = lines.next();

//get the category code specified on the line. A category code of RETURN means it is a return line
String categoryCode = line.getAttribute("TransactionCategoryCode");

if ("RETURN" != categoryCode) continue;

//we have a return line. Now let's find the original line
//we will go through the document references on this line to locate the document reference
//that identifies the original order line.

def docRefs = line.getAttribute("DocumentReferences");


lineId = 0;
while (docRefs.hasNext() & lineId == 0) {

def docRef = docRefs.next();


String docRefType = docRef.getAttribute("DocumentReferenceType");
if ("ORIGINAL_ORCHESTRATION_ORDER" == docRefType) {
//We found the document reference that points to the original order.
//The DocumentSubLineIdentifier attribute is the fulfillline id of the original order fulfillment line

lineId = new Long(docRef.getAttribute("DocumentSubLineIdentifier"));

if (headerId == 0) {
//The DocumentIdentifier attribute is the header id of the original order header
headerId = new Long(docRef.getAttribute("DocumentIdentifier"));
}
}
}
/*
if (lineId != 0) {

//call method getline to get the original line a PVO


def oLine = getLine(lineId);
if (oLine == null) continue;

1461
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

//Define the context variable that you want to copy value to


def context1 = line.getOrCreateContextRow("FulfillLineContext1");
//Define the next context variable that you want to copy value to
def packShipContext = line.getOrCreateContextRow("PackShipInstruction");
//Define the next context variable that you want to copy value to
def itemMaterialContext = line.getOrCreateContextRow("Item Material");
//get Context form the oldline
def Ocontext = oLine.getAttribute("FulfillLineBIEffEFFBIFlattened");
//get to the first row of the context for the original order fulfillment line
def oContextRow = Ocontext.first();
//Attribute name will be like DOO_FULFILL_LINES_ADD_INFO_<contextname>_<segmentname>
//You can download the Flexfield archives and navigate to oracle\apps\scm\doo\processOrder\flex
\fulfillLineCategories\view\
//and look for j_ExtendedDeclarativeprivateVO.xml. This is where you will find all the flex attribute names
in above fashion
def attr1 = oContextRow.getAttribute("DOO_FULFILL_LINES_ADD_INFO_FulfillLineContext1__FL1AttributeNum1");
context1.setAttribute("_FL1AttributeNum1", attr1);
context1.setAttribute("_FL1AttributeChar1",oContextRow.getAttribute("DOO_FULFILL_LINES_ADD_INFO_FulfillLineContext1
context1.setAttribute("_FL1AttributeDate1",oContextRow.getAttribute("DOO_FULFILL_LINES_ADD_INFO_FulfillLineContext1
itemMaterialContext.setAttribute("lineMaterialSgmt",oContextRow.getAttribute("DOO_FULFILL_LINES_ADD_INFO_Item__Mate
itemMaterialContext.setAttribute("lineMaterialText",oContextRow.getAttribute("DOO_FULFILL_LINES_ADD_INFO_Item__Mate
packShipContext.setAttribute("_PackingInstruction",oContextRow.getAttribute("DOO_FULFILL_LINES_ADD_INFO_PackShipIns
}
}
*/

if (headerId != 0) {

def oHeader = getHeader(headerId)

if (oHeader == null) continue;


//get Context from the original header
def context = oHeader.getAttribute("HeaderBIEffEFFBIFlattened");

//get to the first row of the context for the original header
def contextRow = context.first();

//Attribute name will be like DOO_HEADERS_ADD_INFO_<contextname>_<segmentname>


//You can download the Flexfield archives and navigate to oracle\apps\scm\doo\processOrder\flex
\headerCategories\view\
//and look for j_ExtendedDeclarativeprivateVO.xml. This is where you will find all the flex attribute names
in above fashion
def complInfo = contextRow.getAttribute("DOO_HEADERS_ADD_INFO_PMC__Pricing_partyid");

//Define the context variable that you want to copy value to - header is the header of the return oorder
which is currently being worked on
def complianceDetails = header.getOrCreateContextRow("PMC Pricing");
complianceDetails.setAttribute("partyid", complInfo);

/* The following SQL will be useful in identifying the correct values to set

select
fdsb.context_code
,fdsb.segment_code
,fdsb.SEGMENT_IDENTIFIER
from
fnd_df_segments_tl fdst,
fnd_df_segments_b fdsb
where
fdst.APPLICATION_ID = fdsb.APPLICATION_ID and
fdst.ENTERPRISE_ID = fdsb.ENTERPRISE_ID and
fdst.DESCRIPTIVE_FLEXFIELD_CODE = fdsb.DESCRIPTIVE_FLEXFIELD_CODE and
fdst.CONTEXT_CODE = fdsb.CONTEXT_CODE and
fdst.SEGMENT_CODE = fdsb.SEGMENT_CODE and
fdst.language = 'US' and
fdst.descriptive_flexfield_code = 'DOO_HEADERS_ADD_INFO'

1462
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

order by
fdst.CONTEXT_CODE,
fdsb.SEQUENCE_NUMBER

In this instance the Sql returned

CONTEXT_CODE SEGMENT_CODE SEGMENT_IDENTIFIER

PMC Pricing PartyID partyid

The value DOO_HEADERS_ADD_INFO_PMC__Pricing_partyid - is derived from :

Context_code = PMC Pricing , note the space is replaced by __


Segment_identifier = partyid

*/

}
}

def Object getLine(Long lineId) {

def vo = context.getViewObject("oracle.apps.scm.doo.publicView.analytics.FulfillLinePVO");

Object[] rows = vo.findByKey(lineId, 1);


def originalFLine = rows[0];

return originalFLine;
}

def Object getHeader(Long headerId) {


def vo = context.getViewObject("oracle.apps.scm.doo.publicView.analytics.HeaderPVO");

Object[] rows = vo.findByKey(headerId, 1);


def originalHeader = rows[0];
return originalHeader;
}

void debug(String msg) {


header.setAttribute("ShippingInstructions", header.getAttribute("ShippingInstructions") + ", " + msg);
}

Get Document References


import oracle.apps.scm.doo.common.extensions.ValidationException;
import oracle.apps.scm.doo.common.extensions.Message;

String poNumber = header.getAttribute("CustomerPONumber");


if (poNumber == null) return;
if (!poNumber.startsWith("DocReferences")) return;

List < Message > messages = new ArrayList < Message > ();
messages.add(new Message(Message.MessageType.ERROR, "HeaderId: " + header.getAttribute("HeaderId")));
messages.add(new Message(Message.MessageType.ERROR, "Pre-submit"));

def docReferences = header.getAttribute("DocumentReferences");


while (docReferences.hasNext()) {
def docRef = docReferences.next();
messages.add(new Message(Message.MessageType.ERROR, "DocumentAdditionalNumber: " +
docRef.getAttribute("DocumentAdditionalNumber")));
messages.add(new Message(Message.MessageType.ERROR, "DocumentAdditionaldentifier: " +
docRef.getAttribute("DocumentAdditionaldentifier")));
messages.add(new Message(Message.MessageType.ERROR, "DocumentIdentifier: " +
docRef.getAttribute("DocumentIdentifier")));

1463
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

messages.add(new Message(Message.MessageType.ERROR, "DocumentAdditionalLineNumber: " +


docRef.getAttribute("DocumentAdditionalLineNumber")));
messages.add(new Message(Message.MessageType.ERROR, "DocumentAdditionalLineIdentifier" +
docRef.getAttribute("DocumentAdditionalLineIdentifier")));
messages.add(new Message(Message.MessageType.ERROR, "DocumentLineIdentifier: " +
docRef.getAttribute("DocumentLineIdentifier")));
messages.add(new Message(Message.MessageType.ERROR, "DocumentLineNumber: " +
docRef.getAttribute("DocumentLineNumber")));
messages.add(new Message(Message.MessageType.ERROR, "DocumentReferenceType: " +
docRef.getAttribute("DocumentReferenceType")));
messages.add(new Message(Message.MessageType.ERROR, "DocumentAdditionalSubLineNumber: " +
docRef.getAttribute("DocumentAdditionalSubLineNumber")));
messages.add(new Message(Message.MessageType.ERROR, "DocumentAdditionalSubLineIdentifier: " +
docRef.getAttribute("DocumentAdditionalSubLineIdentifier")));
messages.add(new Message(Message.MessageType.ERROR, "DocumentSubLineIdentifier: " +
docRef.getAttribute("DocumentSubLineIdentifier")));
messages.add(new Message(Message.MessageType.ERROR, "DocumentSubLineNumbe: " +
docRef.getAttribute("DocumentSubLineNumber")));
messages.add(new Message(Message.MessageType.ERROR, "DocumentNumber: " +
docRef.getAttribute("DocumentNumber")));
messages.add(new Message(Message.MessageType.ERROR, "FulfillLineIdentifier: " +
docRef.getAttribute("FulfillLineIdentifier")));
messages.add(new Message(Message.MessageType.ERROR, "LineIdentifier: " +
docRef.getAttribute("LineIdentifier")));
messages.add(new Message(Message.MessageType.ERROR, "OwnerTableId: " +
docRef.getAttribute("OwnerTableId")));
messages.add(new Message(Message.MessageType.ERROR, "OwnerTableName: " +
docRef.getAttribute("OwnerTableName")));
messages.add(new Message(Message.MessageType.ERROR, "TaskType: " + docRef.getAttribute("TaskType")));
messages.add(new Message(Message.MessageType.ERROR, "DocumentSystemReferenceIdentifier: " +
docRef.getAttribute("DocumentSystemReferenceIdentifier")));
messages.add(new Message(Message.MessageType.ERROR, "HeaderId: " + docRef.getAttribute("HeaderId")));
}

def lines = header.getAttribute("Lines");


messages.add(new Message(Message.MessageType.ERROR, "get lines"));
while (lines.hasNext()) {
messages.add(new Message(Message.MessageType.ERROR, "A line"));
def line = lines.next();
def lineDocReferences = line.getAttribute("DocumentReferences");
while (lineDocReferences.hasNext()) {
messages.add(new Message(Message.MessageType.ERROR, "has doc references"));
def lineDocRef = lineDocReferences.next();
messages.add(new Message(Message.MessageType.ERROR, "DocumentAdditionalNumber: " +
lineDocRef.getAttribute("DocumentAdditionalNumber")));
messages.add(new Message(Message.MessageType.ERROR, "DocumentAdditionaldentifier: " +
lineDocRef.getAttribute("DocumentAdditionaldentifier")));
messages.add(new Message(Message.MessageType.ERROR, "DocumentIdentifier: " +
lineDocRef.getAttribute("DocumentIdentifier")));
messages.add(new Message(Message.MessageType.ERROR, "DocumentAdditionalLineNumber: " +
lineDocRef.getAttribute("DocumentAdditionalLineNumber")));
messages.add(new Message(Message.MessageType.ERROR, "DocumentAdditionalLineIdentifier" +
lineDocRef.getAttribute("DocumentAdditionalLineIdentifier")));
messages.add(new Message(Message.MessageType.ERROR, "DocumentLineIdentifier: " +
lineDocRef.getAttribute("DocumentLineIdentifier")));
messages.add(new Message(Message.MessageType.ERROR, "DocumentLineNumber: " +
lineDocRef.getAttribute("DocumentLineNumber")));
messages.add(new Message(Message.MessageType.ERROR, "DocumentReferenceType: " +
lineDocRef.getAttribute("DocumentReferenceType")));
messages.add(new Message(Message.MessageType.ERROR, "DocumentAdditionalSubLineNumber: " +
lineDocRef.getAttribute("DocumentAdditionalSubLineNumber")));
messages.add(new Message(Message.MessageType.ERROR, "DocumentAdditionalSubLineIdentifier: " +
lineDocRef.getAttribute("DocumentAdditionalSubLineIdentifier")));
messages.add(new Message(Message.MessageType.ERROR, "DocumentSubLineIdentifier: " +
lineDocRef.getAttribute("DocumentSubLineIdentifier")));

1464
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

messages.add(new Message(Message.MessageType.ERROR, "DocumentSubLineNumbe: " +


lineDocRef.getAttribute("DocumentSubLineNumber")));
messages.add(new Message(Message.MessageType.ERROR, "DocumentNumber: " +
lineDocRef.getAttribute("DocumentNumber")));
messages.add(new Message(Message.MessageType.ERROR, "FulfillLineIdentifier: " +
lineDocRef.getAttribute("FulfillLineIdentifier")));
messages.add(new Message(Message.MessageType.ERROR, "LineIdentifier: " +
lineDocRef.getAttribute("LineIdentifier")));
messages.add(new Message(Message.MessageType.ERROR, "OwnerTableId: " +
lineDocRef.getAttribute("OwnerTableId")));
messages.add(new Message(Message.MessageType.ERROR, "OwnerTableName: " +
lineDocRef.getAttribute("OwnerTableName")));
messages.add(new Message(Message.MessageType.ERROR, "TaskType: " + lineDocRef.getAttribute("TaskType")));
messages.add(new Message(Message.MessageType.ERROR, "DocumentSystemReferenceIdentifier: " +
lineDocRef.getAttribute("DocumentSystemReferenceIdentifier")));
messages.add(new Message(Message.MessageType.ERROR, "HeaderId: " + lineDocRef.getAttribute("HeaderId")));
}
}

ValidationException ex = new ValidationException(messages);


throw ex;

Test a Transaction Aribute

Test a transaction aribute during the On Save extension point.


import oracle.apps.scm.doo.common.extensions.ValidationException;
import oracle.apps.scm.doo.common.extensions.Message;

if (!"TestTIAOnSave_run_extension".equals(header.getAttribute("CustomerPONumber"))) return;

String poNumber = header.getAttribute("CustomerPONumber");


//Long headerId = header.getAttribute("HeaderId");

List < Message > messages = new ArrayList < Message > ();
/*messages.add(new Message( Message.MessageType.ERROR, "Enter TIA On Save"));
messages.add(new Message( Message.MessageType.ERROR, "CustomerPONumber: " + poNumber));
messages.add(new Message( Message.MessageType.ERROR, "HeaderId: " + headerId));*/

def lines = header.getAttribute("Lines");


def i = 0;
while (lines.hasNext()) {
def line = lines.next();
def tias = line.getAttribute("TransactionAttributes");
while (tias.hasNext()) {
messages.add(new Message(Message.MessageType.ERROR, "FulfillLineId: " +
line.getAttribute("FulfillmentLineIdentifier")));
def tia = tias.next();
messages.add(new Message(Message.MessageType.ERROR, "TransactionAttributeIdentifier: " +
tia.getAttribute("TransactionAttributeIdentifier")));
messages.add(new Message(Message.MessageType.ERROR, "TransactionAttributeCode: " +
tia.getAttribute("TransactionAttributeCode")));
messages.add(new Message(Message.MessageType.ERROR, "TransactionAttributeName: " +
tia.getAttribute("TransactionAttributeName")));
messages.add(new Message(Message.MessageType.ERROR, "CharacterValue: " +
tia.getAttribute("CharacterValue")));
messages.add(new Message(Message.MessageType.ERROR, "NumberValue: " + tia.getAttribute("NumberValue")));
messages.add(new Message(Message.MessageType.ERROR, "DateValue: " + tia.getAttribute("DateValue")));
messages.add(new Message(Message.MessageType.ERROR, "TimestampValue: " +
tia.getAttribute("TimestampValue")));
/*
//tia.setAttribute("TransactionAttributeCode", "Color"); //TransactionAttributeIdentifier will be
300100061374755
//messages.add(new Message( Message.MessageType.ERROR, "After setting TransactionAttributeCode to Color,
TransactionAttributeCode: " + tia.getAttribute("TransactionAttributeCode")));

1465
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

//messages.add(new Message( Message.MessageType.ERROR, "After setting TransactionAttributeCode to Color,


TransactionAttributeName: " + tia.getAttribute("TransactionAttributeName")));
//messages.add(new Message( Message.MessageType.ERROR, "After setting TransactionAttributeCode to Color,
TransactionAttributeIdentifier: " + tia.getAttribute("TransactionAttributeIdentifier")));
//messages.add(new Message( Message.MessageType.ERROR, "After setting TransactionAttributeCode to Color,
CharacterValue: " + tia.getAttribute("CharacterValue")));
//messages.add(new Message( Message.MessageType.ERROR, "After setting TransactionAttributeCode to Color,
NumberValue: " + tia.getAttribute("NumberValue")));
//messages.add(new Message( Message.MessageType.ERROR, "After setting TransactionAttributeCode to Color,
DateValue: " + tia.getAttribute("DateValue")));
//messages.add(new Message( Message.MessageType.ERROR, "After setting TransactionAttributeCode to Color,
TimestampValue: " + tia.getAttribute("TimestampValue")));

//tia.setAttribute("CharacterValue", "Purple");
//messages.add(new Message( Message.MessageType.ERROR, "After setting CharacterValue to Purple,
CharacterValue: " + tia.getAttribute("CharacterValue")));

//tia.setAttribute("TransactionAttributeName", "zcz colors 2"); //TransactionAttributeIdentifier will be


300100033383860, code: zcz_colors_2
//messages.add(new Message( Message.MessageType.ERROR, "After setting TransactionAttributeName to zcz
colors 2, TransactionAttributeCode: " + tia.getAttribute("TransactionAttributeCode")));
//messages.add(new Message( Message.MessageType.ERROR, "After setting TransactionAttributeName to zcz
colors 2, TransactionAttributeName: " + tia.getAttribute("TransactionAttributeName")));
//messages.add(new Message( Message.MessageType.ERROR, "After setting TransactionAttributeName to zcz
colors 2, TransactionAttributeIdentifier: " + tia.getAttribute("TransactionAttributeIdentifier")));
//messages.add(new Message( Message.MessageType.ERROR, "After setting TransactionAttributeName to zcz
colors 2, CharacterValue: " + tia.getAttribute("CharacterValue")));
//messages.add(new Message( Message.MessageType.ERROR, "After setting TransactionAttributeName to zcz
colors 2, NumberValue: " + tia.getAttribute("NumberValue")));
//messages.add(new Message( Message.MessageType.ERROR, "After setting TransactionAttributeName to zcz
colors 2, DateValue: " + tia.getAttribute("DateValue")));
//messages.add(new Message( Message.MessageType.ERROR, "After setting TransactionAttributeName to zcz
colors 2, TimestampValue: " + tia.getAttribute("TimestampValue")));

//tia.setAttribute("TransactionAttributeIdentifier", "300100039021944"); //mapping to internal name:


zCZ_FRAME_COLOR, display name: Frame Color
//messages.add(new Message( Message.MessageType.ERROR, "After setting TransactionAttributeIdentifier to
300100039021944, TransactionAttributeCode: " + tia.getAttribute("TransactionAttributeCode")));
//messages.add(new Message( Message.MessageType.ERROR, "After setting TransactionAttributeIdentifier to
300100039021944, TransactionAttributeName: " + tia.getAttribute("TransactionAttributeName")));
//messages.add(new Message( Message.MessageType.ERROR, "After setting TransactionAttributeIdentifier to
300100039021944, TransactionAttributeIdentifier: " + tia.getAttribute("TransactionAttributeIdentifier")));
//messages.add(new Message( Message.MessageType.ERROR, "After setting TransactionAttributeIdentifier to
300100039021944, CharacterValue: " + tia.getAttribute("CharacterValue")));
//messages.add(new Message( Message.MessageType.ERROR, "After setting TransactionAttributeIdentifier to
300100039021944, NumberValue: " + tia.getAttribute("NumberValue")));
//messages.add(new Message( Message.MessageType.ERROR, "After setting TransactionAttributeIdentifier to
300100039021944, DateValue: " + tia.getAttribute("DateValue")));
//messages.add(new Message( Message.MessageType.ERROR, "After setting TransactionAttributeIdentifier to
300100039021944, TimestampValue: " + tia.getAttribute("TimestampValue")));

tia.setAttribute("TransactionAttributeIdentifier", "300100005319663"); //set back to the original


TransactionAttributeIdentifier
tia.setAttribute("CharacterValue", "BLUE");
messages.add(new Message( Message.MessageType.ERROR, "After resetting TransactionAttributeIdentifier to
300100005319663, TransactionAttributeCode: " + tia.getAttribute("TransactionAttributeCode")));
messages.add(new Message( Message.MessageType.ERROR, "After resetting TransactionAttributeIdentifier to
300100005319663, TransactionAttributeName: " + tia.getAttribute("TransactionAttributeName")));
messages.add(new Message( Message.MessageType.ERROR, "After resetting TransactionAttributeIdentifier to
300100005319663, TransactionAttributeIdentifier: " + tia.getAttribute("TransactionAttributeIdentifier")));
messages.add(new Message( Message.MessageType.ERROR, "After resetting TransactionAttributeIdentifier to
300100005319663, CharacterValue: " + tia.getAttribute("CharacterValue")));
messages.add(new Message( Message.MessageType.ERROR, "After resetting TransactionAttributeIdentifier to
300100005319663, NumberValue: " + tia.getAttribute("NumberValue")));
messages.add(new Message( Message.MessageType.ERROR, "After resetting TransactionAttributeIdentifier to
300100005319663, DateValue: " + tia.getAttribute("DateValue")));

1466
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

messages.add(new Message( Message.MessageType.ERROR, "After resetting TransactionAttributeIdentifier to


300100005319663, TimestampValue: " + tia.getAttribute("TimestampValue")));*/
}
}

ValidationException ex = new ValidationException(messages);


throw ex;

Get Tax Details for Sales Order


import oracle.apps.scm.doo.common.extensions.ValidationException;
import oracle.apps.scm.doo.common.extensions.Message;

if (!"OrderTaxDetails_run_extension".equals(header.getAttribute("CustomerPONumber"))) return;

List < Message > messages = new ArrayList < Message > ();

messages.add(new Message(Message.MessageType.ERROR, "Status Code is " + header.getAttribute("StatusCode")));

def lines = header.getAttribute("Lines");


while (lines.hasNext()) {
def line = lines.next();
def charges = line.getAttribute("OrderCharges");
while (charges.hasNext()) {
def charge = charges.next();
def chargeComponents = charge.getAttribute("OrderChargeComponents");
while (chargeComponents.hasNext()) {
def chargeComponent = chargeComponents.next();
def taxDetails = chargeComponent.getAttribute("OrderTaxDetails");
while (taxDetails.hasNext()) {
def taxDetail = taxDetails.next();
messages.add(new Message(Message.MessageType.ERROR, "OrderChargeComponentId is " +
taxDetail.getAttribute("OrderChargeComponentId")));
messages.add(new Message(Message.MessageType.ERROR, "TaxRate is " + taxDetail.getAttribute("TaxRate")));
messages.add(new Message(Message.MessageType.ERROR, "TaxIncludedFlag is " +
taxDetail.getAttribute("TaxIncludedFlag")));
messages.add(new Message(Message.MessageType.ERROR, "HeaderCurrencyTaxUnitAmount is " +
taxDetail.getAttribute("HeaderCurrencyTaxUnitAmount"))); //Not HdrCurrTaxUnitAmt
messages.add(new Message(Message.MessageType.ERROR, "HeaderCurrencyTaxableUnitAmount is " +
taxDetail.getAttribute("HeaderCurrencyTaxableUnitAmount"))); //Not HdrCurrTaxableUnitAmt
messages.add(new Message(Message.MessageType.ERROR, "TaxRateIdentifier is " +
taxDetail.getAttribute("TaxRateIdentifier"))); //Not TaxRateId
messages.add(new Message(Message.MessageType.ERROR, "OrderTaxDetailId is " +
taxDetail.getAttribute("OrderTaxDetailId")));
messages.add(new Message(Message.MessageType.ERROR, "TaxExemptReasonCode is " +
taxDetail.getAttribute("TaxExemptReasonCode")));
messages.add(new Message(Message.MessageType.ERROR, "TaxExemptionCertificateNumber is " +
taxDetail.getAttribute("TaxExemptionCertificateNumber"))); //Not TaxExemptCertificateNumber
}
}
}

ValidationException ex = new ValidationException(messages);


throw ex;

Handle an Unexpected Exception

Handle an unexpected exception during the On Save extension point.


import oracle.apps.scm.doo.common.extensions.ValidationException;
import oracle.apps.scm.doo.common.extensions.Message;
import oracle.apps.scm.doo.common.extensions.Person;

String poNumber = header.getAttribute("CustomerPONumber");

1467
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

if (poNumber == null) return;


if (!poNumber.startsWith("UnexpectedExceptionOnSave_run_extension")) return;

List < Message > messages = new ArrayList < Message > ();

//Test DOO:::DOO_CX_EXECUTION_ERROR for NoDataFoundException when setAttribute on header


//An error occurred when running extension **, during event **: JBO-25002: Definition ** of type Attribute
is not found..
//header.setAttribute("NonExistAttribute", "anyvalue"); //An error occurred when running extension
UnexpectedExceptionOnSave, during event On Save: JBO-25058: Definition NonExistAttribute of type Attribute
is not found in Header..
//header.getAttribute("HeaderAddresses"); //HeaderEffCategories

//Test DOO:::DOO_CX_ATTRIB_NO_DATA
//Expected message: A value could not be assigned to attribute {ATTRIBUTE}, while running extension
{EXTENSION}, during event {EVENT}, because no data was found.
//Acutally got: An error occurred when running extension UnexpectedExceptionOnSave,
during event On Save: oracle.jbo.JboException: JBO-29000: Unexpected exception caught:
oracle.apps.scm.doo.common.extensions.NoDataFoundException, msg=No data was found using the provided
parameters.
def person = new Person("First Name", "Last Name");
header.setBillToAccount(person);

//header.setAttribute("FreezePriceFlag", "1231"); //Error message: Value 100 for field FreezePriceFlag


exceeds the maximum length allowed.

//def lines = header.getAttribute("Lines");


//if (lines.hasNext()) {
//def line = lines.next();
//Test DOO:::DOO_CX_ATTRIB_NO_DATA for NoDataFoundException when setAttribute on line
//line.setAttribute("NonExistAttribute", "anyvalue");

//Test DOO:::DOO_CX_CONN_NOT_FOUND for ServiceDetailNotFound when invokeSoapService


//def itemNumber = line.getAttribute("ProductNumber");
//String payLoad = "<ns1:GetSalesCreditAllocation xmlns:ns1=\"http://www.yourCompany.com/SalesCreditWS/\">"
+
//"<ns1:poNumber>" + poNumber + "</ns1:poNumber>" +
//"<ns1:itemNumber>" + itemNumber + "</ns1:itemNumber>" +
//"</ns1:GetSalesCreditAllocation>";
//Correct integration name is SalesCreditAllocationService
//def responseBody = (context.invokeSoapService("SalesCreditAllocationService", payLoad)).getSoapBody();
////def serviceInvoker = context.getServiceInvoker();
////def responseBody = (serviceInvoker.invokeSoapService("SalesCreditAllocationService",
payLoad)).getSoapBody();
//messages.add(responseBody);

//}

//ValidationException ex = new ValidationException(messages);


//throw ex;

Code Snippets
Use a code snippet in your order management extension. Each snippet describes how to do a function or how to access
data.

Snippet 1. Get Pricing Details for Order Header


import oracle.apps.scm.doo.common.extensions.ValidationException;
import oracle.apps.scm.doo.common.extensions.Message;

if (!"PMC TEST".equals(header.getAttribute("CustomerPONumber"))) return;

List < Message > messages = new ArrayList < Message > ();

1468
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

def payments = header.getAttribute("OrderTotals");


while (payments.hasNext()) {
def payment = payments.next();
messages.add(new Message(Message.MessageType.ERROR, "TotalAmount is " +
payment.getAttribute("TotalAmount")));
messages.add(new Message(Message.MessageType.ERROR, "OrderTotalId is " +
payment.getAttribute("OrderTotalId")));
messages.add(new Message(Message.MessageType.ERROR, "TotalCode is " + payment.getAttribute("TotalCode")));
messages.add(new Message(Message.MessageType.ERROR, "CurrencyCode is " +
payment.getAttribute("CurrencyCode")));
messages.add(new Message(Message.MessageType.ERROR, "DisplayName is " +
payment.getAttribute("DisplayName")));
messages.add(new Message(Message.MessageType.ERROR, "TotalGroup is " +
payment.getAttribute("TotalGroup")));
messages.add(new Message(Message.MessageType.ERROR, "PrimaryFlag is " +
payment.getAttribute("PrimaryFlag")));

messages.add(new Message(Message.MessageType.ERROR, "EstimatedFlag is " +


payment.getAttribute("EstimatedFlag")));
messages.add(new Message(Message.MessageType.ERROR, "CreatedBy is " + payment.getAttribute("CreatedBy")));

messages.add(new Message(Message.MessageType.ERROR, "HeaderId is " + payment.getAttribute("HeaderId")));


messages.add(new Message(Message.MessageType.ERROR, "ObjectVersionNumber is " +
payment.getAttribute("ObjectVersionNumber")));

ValidationException ex = new ValidationException(messages);


throw ex;

Snippet 2. Get Details for Billing Plans from Order Lines


import oracle.apps.scm.doo.common.extensions.ValidationException;
import oracle.apps.scm.doo.common.extensions.Message;

def poNumber = header.getAttribute("CustomerPONumber");


if (poNumber == null) return;
if (!poNumber.startsWith("PMC TEST")) return;

List < Message > messages = new ArrayList < Message > ();

def lines = header.getAttribute("Lines");


while (lines.hasNext()) {
def line = lines.next();
def billingPlans = line.getAttribute("BillingPlans");
while (billingPlans.hasNext()) {
def billingPlan = billingPlans.next();
messages.add(new Message(Message.MessageType.ERROR, "BillingPlanTypeCode is " +
billingPlan.getAttribute("BillingPlanTypeCode")));
messages.add(new Message(Message.MessageType.ERROR, "BillingPlanId is " +
billingPlan.getAttribute("BillingPlanId")));
messages.add(new Message(Message.MessageType.ERROR, "ObjectVersionNumber is " +
billingPlan.getAttribute("ObjectVersionNumber")));
messages.add(new Message(Message.MessageType.ERROR, "BillingTrxDate is " +
billingPlan.getAttribute("BillingTrxDate")));
messages.add(new Message(Message.MessageType.ERROR, "CancellationEffectiveDate is " +
billingPlan.getAttribute("CancellationEffectiveDate")));
messages.add(new Message(Message.MessageType.ERROR, "FulfillLineId is " +
billingPlan.getAttribute("FulfillLineId")));

messages.add(new Message(Message.MessageType.ERROR, "OverridePeriod is " +


billingPlan.getAttribute("OverridePeriod")));

1469
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

messages.add(new Message(Message.MessageType.ERROR, "OverridePeriodAmount is " +


billingPlan.getAttribute("OverridePeriodAmount")));
messages.add(new Message(Message.MessageType.ERROR, "PeriodicityCode is " +
billingPlan.getAttribute("PeriodicityCode")));
messages.add(new Message(Message.MessageType.ERROR, "PeriodicityName is " +
billingPlan.getAttribute("PeriodicityName")));
}
}

ValidationException ex = new ValidationException(messages);


throw ex;.

Snippet 3. Get Details for Payment Methods from Order Lines


import oracle.apps.scm.doo.common.extensions.ValidationException;
import oracle.apps.scm.doo.common.extensions.Message;

if (!"PMC TEST".equals(header.getAttribute("CustomerPONumber"))) return;

List < Message > messages = new ArrayList < Message > ();

def lines = header.getAttribute("Lines");


while (lines.hasNext()) {
def line = lines.next();

def payments = line.getAttribute("Payments");

messages.add(new Message(Message.MessageType.ERROR, "PaymentMethodCode is " + payments.hasNext()));

while (payments.hasNext()) {
def payment = payments.next();

messages.add(new Message(Message.MessageType.ERROR, "PaymentMethodCode is " +


payment.getAttribute("PaymentMethodCode")));
messages.add(new Message(Message.MessageType.ERROR, "PaymentTransactionIdentifier is " +
payment.getAttribute("PaymentTransactionIdentifier")));
messages.add(new Message(Message.MessageType.ERROR, "PaymentSetIdentifier is " +
payment.getAttribute("PaymentSetIdentifier")));
messages.add(new Message(Message.MessageType.ERROR, "SourceTransactionPaymentIdentifier is " +
payment.getAttribute("SourceTransactionPaymentIdentifier")));
messages.add(new Message(Message.MessageType.ERROR, "ReceiptMethodId is " +
payment.getAttribute("ReceiptMethodId")));
messages.add(new Message(Message.MessageType.ERROR, "PaymentMethod is " +
payment.getAttribute("PaymentMethod")));
messages.add(new Message(Message.MessageType.ERROR, "PaymentTypeCode is " +
payment.getAttribute("PaymentTypeCode")));
messages.add(new Message(Message.MessageType.ERROR, "PaymentType is " +
payment.getAttribute("PaymentType")));
messages.add(new Message(Message.MessageType.ERROR, "FulfillLineId is " +
payment.getAttribute("FulfillLineId")));
messages.add(new Message(Message.MessageType.ERROR, "HeaderId is " + payment.getAttribute("HeaderId")));
messages.add(new Message(Message.MessageType.ERROR, "ObjectVersionNumber is " +
payment.getAttribute("ObjectVersionNumber")));

messages.add(new Message(Message.MessageType.ERROR, "AuthorizationStatus is " +


payment.getAttribute("AuthorizationStatus")));
messages.add(new Message(Message.MessageType.ERROR, "InstrumentAssignmentIdentifier is " +
payment.getAttribute("InstrumentAssignmentIdentifier")));
}

ValidationException ex = new ValidationException(messages);


throw ex;

1470
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Snippet 4. Get Details for Related Order

Get details about the relationship between the sales order and other related sales orders, such as the original order of a
copied order or a return order.
import oracle.apps.scm.doo.common.extensions.ValidationException;
import oracle.apps.scm.doo.common.extensions.Message;

String poNumber = header.getAttribute("CustomerPONumber");


if (poNumber == null) return;
if (!poNumber.startsWith("PMC TEST")) return;

List < Message > messages = new ArrayList < Message > ();
messages.add(new Message(Message.MessageType.ERROR, "HeaderId: " + header.getAttribute("HeaderId")));

def docReferences = header.getAttribute("DocumentReferences");

messages.add(new Message(Message.MessageType.ERROR, "Header Doc"));


while (docReferences.hasNext()) {

def docRef = docReferences.next();


messages.add(new Message(Message.MessageType.ERROR, "Header Doc Refs"));
messages.add(new Message(Message.MessageType.ERROR, "DocumentAdditionalNumber: " +
docRef.getAttribute("DocumentAdditionalNumber")));
messages.add(new Message(Message.MessageType.ERROR, "DocumentAdditionaldentifier: " +
docRef.getAttribute("DocumentAdditionaldentifier")));
messages.add(new Message(Message.MessageType.ERROR, "DocumentIdentifier: " +
docRef.getAttribute("DocumentIdentifier")));
messages.add(new Message(Message.MessageType.ERROR, "DocumentAdditionalLineNumber: " +
docRef.getAttribute("DocumentAdditionalLineNumber")));
messages.add(new Message(Message.MessageType.ERROR, "DocumentAdditionalLineIdentifier" +
docRef.getAttribute("DocumentAdditionalLineIdentifier")));
messages.add(new Message(Message.MessageType.ERROR, "DocumentLineIdentifier: " +
docRef.getAttribute("DocumentLineIdentifier")));
messages.add(new Message(Message.MessageType.ERROR, "DocumentLineNumber: " +
docRef.getAttribute("DocumentLineNumber")));
messages.add(new Message(Message.MessageType.ERROR, "DocumentReferenceType: " +
docRef.getAttribute("DocumentReferenceType")));
messages.add(new Message(Message.MessageType.ERROR, "DocumentAdditionalSubLineNumber: " +
docRef.getAttribute("DocumentAdditionalSubLineNumber")));
messages.add(new Message(Message.MessageType.ERROR, "DocumentAdditionalSubLineIdentifier: " +
docRef.getAttribute("DocumentAdditionalSubLineIdentifier")));
messages.add(new Message(Message.MessageType.ERROR, "DocumentSubLineIdentifier: " +
docRef.getAttribute("DocumentSubLineIdentifier")));
messages.add(new Message(Message.MessageType.ERROR, "DocumentSubLineNumbe: " +
docRef.getAttribute("DocumentSubLineNumber")));
messages.add(new Message(Message.MessageType.ERROR, "DocumentNumber: " +
docRef.getAttribute("DocumentNumber")));
messages.add(new Message(Message.MessageType.ERROR, "FulfillLineIdentifier: " +
docRef.getAttribute("FulfillLineIdentifier")));
messages.add(new Message(Message.MessageType.ERROR, "LineIdentifier: " +
docRef.getAttribute("LineIdentifier")));
messages.add(new Message(Message.MessageType.ERROR, "OwnerTableId: " +
docRef.getAttribute("OwnerTableId")));
messages.add(new Message(Message.MessageType.ERROR, "OwnerTableName: " +
docRef.getAttribute("OwnerTableName")));
messages.add(new Message(Message.MessageType.ERROR, "TaskType: " + docRef.getAttribute("TaskType")));
messages.add(new Message(Message.MessageType.ERROR, "DocumentSystemReferenceIdentifier: " +
docRef.getAttribute("DocumentSystemReferenceIdentifier")));
messages.add(new Message(Message.MessageType.ERROR, "HeaderId: " + docRef.getAttribute("HeaderId")));
}

def lines = header.getAttribute("Lines");


messages.add(new Message(Message.MessageType.ERROR, "get lines"));
while (lines.hasNext()) {

1471
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

messages.add(new Message(Message.MessageType.ERROR, "A line"));


def line = lines.next();
def lineDocReferences = line.getAttribute("DocumentReferences");
while (lineDocReferences.hasNext()) {
messages.add(new Message(Message.MessageType.ERROR, "has doc references"));
def lineDocRef = lineDocReferences.next();
messages.add(new Message(Message.MessageType.ERROR, "DocumentAdditionalNumber: " +
lineDocRef.getAttribute("DocumentAdditionalNumber")));
messages.add(new Message(Message.MessageType.ERROR, "DocumentAdditionaldentifier: " +
lineDocRef.getAttribute("DocumentAdditionaldentifier")));
messages.add(new Message(Message.MessageType.ERROR, "DocumentIdentifier: " +
lineDocRef.getAttribute("DocumentIdentifier")));
messages.add(new Message(Message.MessageType.ERROR, "DocumentAdditionalLineNumber: " +
lineDocRef.getAttribute("DocumentAdditionalLineNumber")));
messages.add(new Message(Message.MessageType.ERROR, "DocumentAdditionalLineIdentifier" +
lineDocRef.getAttribute("DocumentAdditionalLineIdentifier")));
messages.add(new Message(Message.MessageType.ERROR, "DocumentLineIdentifier: " +
lineDocRef.getAttribute("DocumentLineIdentifier")));
messages.add(new Message(Message.MessageType.ERROR, "DocumentLineNumber: " +
lineDocRef.getAttribute("DocumentLineNumber")));
messages.add(new Message(Message.MessageType.ERROR, "DocumentReferenceType: " +
lineDocRef.getAttribute("DocumentReferenceType")));
messages.add(new Message(Message.MessageType.ERROR, "DocumentAdditionalSubLineNumber: " +
lineDocRef.getAttribute("DocumentAdditionalSubLineNumber")));
messages.add(new Message(Message.MessageType.ERROR, "DocumentAdditionalSubLineIdentifier: " +
lineDocRef.getAttribute("DocumentAdditionalSubLineIdentifier")));
messages.add(new Message(Message.MessageType.ERROR, "DocumentSubLineIdentifier: " +
lineDocRef.getAttribute("DocumentSubLineIdentifier")));
messages.add(new Message(Message.MessageType.ERROR, "DocumentSubLineNumbe: " +
lineDocRef.getAttribute("DocumentSubLineNumber")));
messages.add(new Message(Message.MessageType.ERROR, "DocumentNumber: " +
lineDocRef.getAttribute("DocumentNumber")));
messages.add(new Message(Message.MessageType.ERROR, "FulfillLineIdentifier: " +
lineDocRef.getAttribute("FulfillLineIdentifier")));
messages.add(new Message(Message.MessageType.ERROR, "LineIdentifier: " +
lineDocRef.getAttribute("LineIdentifier")));
messages.add(new Message(Message.MessageType.ERROR, "OwnerTableId: " +
lineDocRef.getAttribute("OwnerTableId")));
messages.add(new Message(Message.MessageType.ERROR, "OwnerTableName: " +
lineDocRef.getAttribute("OwnerTableName")));
messages.add(new Message(Message.MessageType.ERROR, "TaskType: " + lineDocRef.getAttribute("TaskType")));
messages.add(new Message(Message.MessageType.ERROR, "DocumentSystemReferenceIdentifier: " +
lineDocRef.getAttribute("DocumentSystemReferenceIdentifier")));
messages.add(new Message(Message.MessageType.ERROR, "HeaderId: " + lineDocRef.getAttribute("HeaderId")));
}
}

ValidationException ex = new ValidationException(messages);


throw ex;

Snippet 5. Get Manual Price Adjustments from Order Lines


Iimport oracle.apps.scm.doo.common.extensions.ValidationException;
import oracle.apps.scm.doo.common.extensions.Message;

if (!"PMC TEST".equals(header.getAttribute("CustomerPONumber"))) return;

List < Message > messages = new ArrayList < Message > ();

def lines = header.getAttribute("Lines");


while (lines.hasNext()) {
def line = lines.next();
def MPAS = line.getAttribute("ManualPriceAdjustments");

while (MPAS.hasNext()) {
def mpa = MPAS.next();

1472
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

messages.add(new Message(Message.MessageType.ERROR, "AdjustmentElementBasis is " +


mpa.getAttribute("AdjustmentElementBasis")));
messages.add(new Message(Message.MessageType.ERROR, "AdjustmentTypeCode is " +
mpa.getAttribute("AdjustmentTypeCode")));
messages.add(new Message(Message.MessageType.ERROR, "ChargeDefinitionCode is " +
mpa.getAttribute("ChargeDefinitionCode")));
messages.add(new Message(Message.MessageType.ERROR, "ChargeRollupFlag is " +
mpa.getAttribute("ChargeRollupFlag")));

messages.add(new Message(Message.MessageType.ERROR, "Comments is " + mpa.getAttribute("Comments")));


messages.add(new Message(Message.MessageType.ERROR, "ManualPriceAdjustmentId is " +
mpa.getAttribute("ManualPriceAdjustmentId")));

messages.add(new Message(Message.MessageType.ERROR, "ParentEntityCode is " +


mpa.getAttribute("ParentEntityCode")));

messages.add(new Message(Message.MessageType.ERROR, "ParentEntityId is " +


mpa.getAttribute("ParentEntityId")));

messages.add(new Message(Message.MessageType.ERROR, "PricePeriodicityCode is " +


mpa.getAttribute("PricePeriodicityCode")));
messages.add(new Message(Message.MessageType.ERROR, "ReasonCode is " + mpa.getAttribute("ReasonCode")));
messages.add(new Message(Message.MessageType.ERROR, "SequenceNumber is " +
mpa.getAttribute("SequenceNumber")));

messages.add(new Message(Message.MessageType.ERROR, "SourceManualPriceAdjustmentIdentifier is " +


mpa.getAttribute("SourceManualPriceAdjustmentIdentifier")));
messages.add(new Message(Message.MessageType.ERROR, "ValidationStatusCode is " +
mpa.getAttribute("ValidationStatusCode")));

messages.add(new Message(Message.MessageType.ERROR, "ChargeDefinition is " +


mpa.getAttribute("ChargeDefinition")));
messages.add(new Message(Message.MessageType.ERROR, "AdjustmentType is " +
mpa.getAttribute("AdjustmentType")));
messages.add(new Message(Message.MessageType.ERROR, "AdjustmentElementBasisCode is " +
mpa.getAttribute("AdjustmentElementBasisCode")));

}
}

ValidationException ex = new ValidationException(messages);


throw ex;

Snippet 6. Get Fulllment Line Aributes


import oracle.apps.scm.doo.common.extensions.ValidationException;
import oracle.apps.scm.doo.common.extensions.Message;

if (!"PMC TEST".equals(header.getAttribute("CustomerPONumber"))) return;

List < Message > messages = new ArrayList < Message > ();

def lines = header.getAttribute("Lines");


while (lines.hasNext()) {
def line = lines.next();
def flinedetails = line.getAttribute("FulfillLineDetails");
while (flinedetails.hasNext()) {
def flinedetail = flinedetails.next();
messages.add(new Message(Message.MessageType.ERROR, "ActualDeliveryDate is " +
flinedetail.getAttribute("ActualDeliveryDate")));

messages.add(new Message(Message.MessageType.ERROR, "AvailabilityShipDate is " +


flinedetail.getAttribute("AvailabilityShipDate")));

1473
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

messages.add(new Message(Message.MessageType.ERROR, "BillOfLadingNumber is " +


flinedetail.getAttribute("BillOfLadingNumber")));
messages.add(new Message(Message.MessageType.ERROR, "BillingTransactionNumber is " +
flinedetail.getAttribute("BillingTransactionNumber")));
messages.add(new Message(Message.MessageType.ERROR, "DeliveryName is " +
flinedetail.getAttribute("DeliveryName")));
messages.add(new Message(Message.MessageType.ERROR, "ExceptionFlag is " +
flinedetail.getAttribute("ExceptionFlag")));

messages.add(new Message(Message.MessageType.ERROR, "Category is " +


flinedetail.getAttribute("Category")));
messages.add(new Message(Message.MessageType.ERROR, "CreatedBy is " +
flinedetail.getAttribute("CreatedBy")));
messages.add(new Message(Message.MessageType.ERROR, "CreationDate is " +
flinedetail.getAttribute("CreationDate")));
messages.add(new Message(Message.MessageType.ERROR, "CustomerTrxLineId is " +
flinedetail.getAttribute("CustomerTrxLineId")));

messages.add(new Message(Message.MessageType.ERROR, "FulfillLineDetailId is " +


flinedetail.getAttribute("FulfillLineDetailId")));
messages.add(new Message(Message.MessageType.ERROR, "FulfillLineId is " +
flinedetail.getAttribute("FulfillLineId")));
messages.add(new Message(Message.MessageType.ERROR, "LastUpdateDate is " +
flinedetail.getAttribute("LastUpdateDate")));
messages.add(new Message(Message.MessageType.ERROR, "LastUpdateLogin is " +
flinedetail.getAttribute("LastUpdateLogin")));
messages.add(new Message(Message.MessageType.ERROR, "LastUpdatedBy is " +
flinedetail.getAttribute("LastUpdatedBy")));

messages.add(new Message(Message.MessageType.ERROR, "ObjectVersionNumber is " +


flinedetail.getAttribute("ObjectVersionNumber")));
messages.add(new Message(Message.MessageType.ERROR, "Quantity is " +
flinedetail.getAttribute("Quantity")));
messages.add(new Message(Message.MessageType.ERROR, "RmaReceiptDate is " +
flinedetail.getAttribute("RmaReceiptDate")));
messages.add(new Message(Message.MessageType.ERROR, "RmaReceiptLineNumber is " +
flinedetail.getAttribute("RmaReceiptLineNumber")));
messages.add(new Message(Message.MessageType.ERROR, "RmaReceiptNumber is " +
flinedetail.getAttribute("RmaReceiptNumber")));
messages.add(new Message(Message.MessageType.ERROR, "RmaReceiptTransactionId is " +
flinedetail.getAttribute("RmaReceiptTransactionId")));
messages.add(new Message(Message.MessageType.ERROR, "Status is " + flinedetail.getAttribute("Status")));
messages.add(new Message(Message.MessageType.ERROR, "StatusAsofDate is " +
flinedetail.getAttribute("StatusAsofDate")));

messages.add(new Message(Message.MessageType.ERROR, "TaskType is " +


flinedetail.getAttribute("TaskType")));
messages.add(new Message(Message.MessageType.ERROR, "TrackingNumber is " +
flinedetail.getAttribute("TrackingNumber")));
messages.add(new Message(Message.MessageType.ERROR, "TradeComplianceCode is " +
flinedetail.getAttribute("TradeComplianceCode")));
messages.add(new Message(Message.MessageType.ERROR, "TradeComplianceExplanation is " +
flinedetail.getAttribute("TradeComplianceExplanation")));
messages.add(new Message(Message.MessageType.ERROR, "TradeComplianceResultCode is " +
flinedetail.getAttribute("TradeComplianceResultCode")));
messages.add(new Message(Message.MessageType.ERROR, "TradeComplianceTypeCode is " +
flinedetail.getAttribute("TradeComplianceTypeCode")));

messages.add(new Message(Message.MessageType.ERROR, "WaybillNumber is " +


flinedetail.getAttribute("WaybillNumber")));
messages.add(new Message(Message.MessageType.ERROR, "TradeComplianceName is " +
flinedetail.getAttribute("TradeComplianceName")));

1474
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

messages.add(new Message(Message.MessageType.ERROR, "TradeComplianceCode is " +


flinedetail.getAttribute("TradeComplianceCode")));
messages.add(new Message(Message.MessageType.ERROR, "TradeComplianceResultName is " +
flinedetail.getAttribute("TradeComplianceResultName")));
messages.add(new Message(Message.MessageType.ERROR, "TradeComplianceTypeName is " +
flinedetail.getAttribute("TradeComplianceTypeName")));

ValidationException ex = new ValidationException(messages);


throw ex;

Snippet 7. Get Aachments from Order Headers


import oracle.apps.scm.doo.common.extensions.ValidationException;
import oracle.apps.scm.doo.common.extensions.Message;
import oracle.apps.scm.doo.common.extensions.Attachment;
import oracle.jbo.domain.BlobDomain;

String poNumber = header.getAttribute("CustomerPONumber");


if (poNumber == null) return;
if (!poNumber.startsWith("PMC TEST")) return;

List < Message > messages = new ArrayList < Message > ();
//messages.add(new Message( Message.MessageType.ERROR, "HeaderId: " + header.getAttribute("HeaderId")));

/////////////////Read header attachments


def attachments = header.getAttachments();
for (int i = 0; i < attachments.size(); ++i) {
def attachment = attachments[i];
messages.add(new Message(Message.MessageType.ERROR, "Pk1value:" + attachment.getPk1Value()));
messages.add(new Message(Message.MessageType.ERROR, "Entityname:" + attachment.getEntityName()));
messages.add(new Message(Message.MessageType.ERROR, "DatatypeCode:" + attachment.getDatatypeCode()));
messages.add(new Message(Message.MessageType.ERROR, "Title:" + attachment.getTitle()));
messages.add(new Message(Message.MessageType.ERROR, "Description:" + attachment.getDescription()));
messages.add(new Message(Message.MessageType.ERROR, "FileName:" + attachment.getFileName()));
messages.add(new Message(Message.MessageType.ERROR, "File Content Type:" +
attachment.getFileContentType()));
def blobDomainData = attachment.getFileContent();
messages.add(new Message(Message.MessageType.ERROR, "File Content:" + blobDomainData.toString()));
messages.add(new Message(Message.MessageType.ERROR, "Url:" + attachment.getUrl()));
messages.add(new Message(Message.MessageType.ERROR, "Text:" + attachment.getText()));
}

ValidationException ex = new ValidationException(messages);


throw ex;

Snippet 8. Get Aachments from Order Lines


import oracle.apps.scm.doo.common.extensions.ValidationException;
import oracle.apps.scm.doo.common.extensions.Message;

String poNumber = header.getAttribute("CustomerPONumber");


if (poNumber == null) return;
if (!poNumber.startsWith("PMC TEST")) return;

List < Message > messages = new ArrayList < Message > ();
//messages.add(new Message( Message.MessageType.ERROR, "Enter Attachment On Save"));
//messages.add(new Message( Message.MessageType.ERROR, "CustomerPONumber: " + poNumber));
Long headerId = header.getAttribute("HeaderId");
messages.add(new Message(Message.MessageType.ERROR, "HeaderId: " + headerId));

1475
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

def lines = header.getAttribute("Lines");

while (lines.hasNext()) {

def line = lines.next();


def attachments = line.getAttachments();

for (int i = 0; i < attachments.size(); ++i) {


def attachment = attachments[i];
messages.add(new Message(Message.MessageType.ERROR, "Pk1value:" + attachment.getPk1Value()));
messages.add(new Message(Message.MessageType.ERROR, "Entityname:" + attachment.getEntityName()));
messages.add(new Message(Message.MessageType.ERROR, "DatatypeCode:" + attachment.getDatatypeCode()));
messages.add(new Message(Message.MessageType.ERROR, "Text:" + attachment.getText()));
messages.add(new Message(Message.MessageType.ERROR, "Title:" + attachment.getTitle()));
messages.add(new Message(Message.MessageType.ERROR, "Description:" + attachment.getDescription()));
messages.add(new Message(Message.MessageType.ERROR, "FileName:" + attachment.getFileName()));
messages.add(new Message(Message.MessageType.ERROR, "Url:" + attachment.getUrl()));
messages.add(new Message(Message.MessageType.ERROR, "Url:" + attachment.getCategoryName()));
}
}
ValidationException ex = new ValidationException(messages);
throw ex;

Snippet 9. Validate Sales Credits for Salesperson

Get the sales credit percent, then validate that Order Management allocates a percent greater than x to each
salesperson.
import oracle.apps.scm.doo.common.extensions.ValidationException;

def poNumber = header.getAttribute("CustomerPONumber");

if (poNumber != null && poNumber.startsWith("PMC TEST")) {


//def tokens = [EVENT_CODE: "Jason Carrier", EVENT_CRITERIA: "20"];
//throw new ValidationException("ORA_MANAGE_EXTENSIONS", "DOO_CMN_ETP_INVALID_EVENT_DTLS", tokens);
}

def salesCredits = header.getAttribute("SalesCredits"); //get the row set for sales credits specified on the
header

while (salesCredits.hasNext()) {
def salesCredit = salesCredits.next();
if ("1".equals(salesCredit.getAttribute("SalesCreditTypeCode"))) {
//we are dealing with revenue percent
def percent = salesCredit.getAttribute("Percent");

if (percent < 30) {


def tokens = [EVENT_CODE: salesCredit.getAttribute("Salesperson"), EVENT_CRITERIA: percent];
throw new ValidationException("ORA_MANAGE_EXTENSION", "DOO_CMN_ETP_INVALID_EVENT_DTLS", tokens);
}
}
}

Snippet 10. Call the Web Service That Does Credit Check
import oracle.apps.scm.doo.common.extensions.ValidationException;
import oracle.apps.scm.doo.common.extensions.Message;

def poNumber = header.getAttribute("CustomerPONumber");

if (poNumber != "PMC TEST") return;

//get attribute to populate in the payload


String customer = header.getAttribute("BillToCustomerName");

1476
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Long accountId = header.getAttribute("BillToCustomerIdentifier");


BigDecimal amount = new BigDecimal(1000);

//prepare the payload


String payLoad = "<ns1:creditChecking xmlns:ns1=\"http://xmlns.oracle.com/apps/financials/receivables/
creditManagement/creditChecking/creditCheckingService/types/\">" +
"<ns1:request xmlns:ns2=\"http://xmlns.oracle.com/apps/financials/receivables/creditManagement/
creditChecking/creditCheckingService/\">" +
"<ns2:CustomerName>" + customer + "</ns2:CustomerName>" +
"<ns2:CustomerAccountNumber>" + accountId + "</ns2:CustomerAccountNumber>" +
"<ns2:RequestType>Authorization</ns2:RequestType>" +
"<ns2:PriceType>ONE_TIME</ns2:PriceType>" +
"<ns2:RecurrencePeriod></ns2:RecurrencePeriod>" +
"<ns2:RequestAuthorizationAmount currencyCode=\"USD\">" + amount + "</ns2:RequestAuthorizationAmount>" +
"<ns2:RequestAuthorizationCurrency>USD</ns2:RequestAuthorizationCurrency>" +
"<ns2:ExistingAuthorizationNumber></ns2:ExistingAuthorizationNumber>" +
"<ns2:Requestor>ar_super_user</ns2:Requestor>" +
"</ns1:request>" +
"</ns1:creditChecking>";

//invoke the Check Check service using web service connector name 'CreditCheckService'. The connector is set
up using task 'Manage External Interface Web Service Details'. Since this is an external service that is
secured
//using message protection policy, we have registered the the https (external) URL of the service
def response = context.invokeSoapService("CreditCheckService", payLoad);

//print a debug message. This appends the entire response to the shipping instuctions attribute.
//Note: debug statements like these should be disabled in extensions on production instance as they can
cause performance issues.
debug(response.getSoapBody().getTextContent());

//The response XML sent by the Credit Check service contains an element named 'Response'. A YES value
indicates that credit check passed. Let us extract the contents of Response tag. The following XML API will
return all nodes (tags)
//with name 'Response' in a NodeList element. We are expecting only one such element in our XML response
def nodeList = response.getSoapBody().getElementsByTagNameNS("*", "Response");

//print out the lenght of the node list


debug(nodeList.getLength());

//Get the first element with name 'Response' (we are expecting only one), and gets its text content
String ccResponse = nodeList.item(0).getTextContent();

debug(ccResponse);

//Check if credit check passed


if (ccResponse != 'YES') {
//Credit check failed. Raise a warning validation exception here
throw new ValidationException(new Message(Message.MessageType.WARNING, "Credit check failed."));
} else {
//Credit check passed
//Write the credit check response in an EFF attribute.
def psiContext = header.getOrCreateContextRow("ComplianceDetails");
psiContext.setAttribute("_ComplianceInfo", ccResponse);
}

/**
* Appends passed in msg to the Shipping Instructions attribute. This method has been implemented only for
debugging purposes.
*/
void debug(def msg) {
String si = header.getAttribute("ShippingInstructions");
header.setAttribute("ShippingInstructions", si + ", " + msg.toString());
}

1477
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Snippet 11. Validate Bill-to, Ship-to, and Sold-to Aributes

Get values for the Bill-to, Ship-to, and Sold-to aributes from the order header. Compare them to the customer account
details and validate that they're all for the same customer.
import oracle.apps.scm.doo.common.extensions.ValidationException;
import oracle.apps.scm.doo.common.extensions.Message;

def poNumber = header.getAttribute("CustomerPONumber");

if (poNumber == null) return;

if (!poNumber.startsWith("PMC TEST")) return;

List < Message > messages = new ArrayList < Message > ();

boolean relationExists = false;

def soldTo = header.getAttribute("BuyingPartyIdentifier");


def shipTo = header.getAttribute("ShipToPartyIdentifier");
def billTo = header.getAttribute("BillToCustomerIdentifier");

messages.add(new Message(Message.MessageType.ERROR, "Sold to is " + soldTo));


messages.add(new Message(Message.MessageType.ERROR, "Ship to is " + shipTo));
messages.add(new Message(Message.MessageType.ERROR, "Bill to is " + billTo));

if (header.getAttribute("BuyingPartyName") == header.getAttribute("BillToCustomerName"))
relationExists = true;

messages.add(new Message(Message.MessageType.ERROR, "Buying Party Name is " +


(header.getAttribute("BuyingPartyName"))));
messages.add(new Message(Message.MessageType.ERROR, "Bill to Customer Name is " +
header.getAttribute("BillToCustomerName")));

def CustPVO =
context.getViewObject("oracle.apps.cdm.foundation.parties.publicView.customerAccounts.CustomerAccountRelationshipPV
def vc = CustPVO.createViewCriteria();
def vcrow = vc.createViewCriteriaRow();
vcrow.setAttribute("RelatedCustAccountId", soldTo);
def rowSet = CustPVO.findByViewCriteria(vc, -1);

messages.add(new Message(Message.MessageType.ERROR, "Found a row: " + rowSet.hasNext()));

while (rowSet.hasNext()) {
def row = rowSet.next();
def billtorelation = row.getAttribute("CustAccountId");
if (billtorelation == billTo) {
relationExists = true;
}
}

//header.setAttribute("ShippingInstructions", header.getAttribute("ShippingInstructions") + ", " +


relationExists);

/*
if( !relationExists) {

messages.add(new Message( "Bill To Customer is not related with Sold To"));


}
*/
ValidationException ex = new ValidationException(messages);
throw ex;

1478
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Snippet 12. Validate Revision on Drop Ship Order

Make sure the purchase order isn't on hold when you revise a sales order in a drop ship ow.
import oracle.apps.scm.doo.common.extensions.ValidationException;
import oracle.apps.scm.doo.common.extensions.Message;

def poNumber = header.getAttribute("CustomerPONumber");

if (poNumber == null) return;

if (!poNumber.startsWith("PMC TEST")) return;

List < Message > messages = new ArrayList < Message > ();

messages.add(new Message(Message.MessageType.ERROR, "In Code"));

def lines = header.getAttribute("Lines");

def headerPVO =
context.getViewObject("oracle.apps.scm.doo.processOrder.publicModel.partyMerge.view.HeaderPVO");

def vc = headerPVO.createViewCriteria();
def vcrow = vc.createViewCriteriaRow();
vcrow.setAttribute("SourceOrderNumber", header.getAttribute("SourceTransactionNumber"));
vcrow.setAttribute("SourceOrderSystem", header.getAttribute("SourceTransactionSystem"));
vcrow.setAttribute("StatusCode", "OPEN");

def rowset = headerPVO.findByViewCriteria(vc, -1);


def headerPRow = rowset.first();
def headerId = null;

if (headerPRow != null)
headerId = headerPRow.getAttribute("HeaderId");
else {
//ValidationException ex = new ValidationException(messages);
//throw ex;
return;
}

while (lines.hasNext()) {
def line = lines.next();

def linePVO =
context.getViewObject("oracle.apps.scm.doo.processOrder.publicModel.partyMerge.view.FulfillLinePVO");

def vcLine = linePVO.createViewCriteria();


def vcrowLine = vcLine.createViewCriteriaRow();
vcrowLine.setAttribute("HeaderId", headerId);
vcrowLine.setAttribute("SourceLineId", line.getAttribute("SourceTransactionLineIdentifier"));

def rowsetLine = linePVO.findByViewCriteria(vcLine, -1);


def linePRow = rowsetLine.first();
def flineId = null;

if (linePRow != null)
flineId = linePRow.getAttribute("FulfillLineId");
else
continue;

def docRefPVO =
context.getViewObject("oracle.apps.scm.doo.common.pricing.integration.publicView.DocumentReferencePVO");

def vcDr = docRefPVO.createViewCriteria();


def vcrowDr = vcDr.createViewCriteriaRow();

1479
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

vcrowDr.setAttribute("HeaderId", headerId);
vcrowDr.setAttribute("FulfillLineId", flineId);
vcrowDr.setAttribute("DocRefType", "DROPSHIP_PO_REFERENCE");

def rowsetDr = docRefPVO.findByViewCriteria(vcDr, -1);


def drPRow = rowsetDr.first();
def poHeaderId = null;

if (drPRow != null)
poHeaderId = drPRow.getAttribute("DocId");
else
continue;

def poPVO = context.getViewObject("oracle.apps.prc.po.publicView.PurchasingDocumentHeaderPVO");

def vcPo = poPVO.createViewCriteria();


def vcrowPo = vcPo.createViewCriteriaRow();
vcrowPo.setAttribute("PoHeaderId", poHeaderId);

def rowsetPo = poPVO.findByViewCriteria(vcPo, -1);


def poPRow = rowsetPo.first();

if (poPRow != null) {
if ("Y".equals(poPRow.getAttribute("FrozenFlag")) || "ON
HOLD".equals(poPRow.getAttribute("DocumentStatus")))
throw new ValidationException("PO is frozen. OM Change cannot be submitted");

def pvPVO = context.getViewObject("oracle.apps.prc.po.publicView.PurchasingDocumentVersionPVO");

def vcPv = pvPVO.createViewCriteria();


def vcrowPv = vcPv.createViewCriteriaRow();
vcrowPv.setAttribute("PoHeaderId", poHeaderId);
vcrowPv.setAttribute("ChangeOrderStatus", "INCOMPLETE");

def rowsetPv = pvPVO.findByViewCriteria(vcPv, -1);


def pvPRow = rowsetPv.first();

if (pvPRow != null)
messages.add(new Message(Message.MessageType.ERROR, "PO Change is in progress. OM Change cannot be
submitted"));

} else
continue;
}

ValidationException ex = new ValidationException(messages);


throw ex;

Reference
Methods You Can Use with Order Management Extensions
Get details about the methods you can use with your order management extension.

Execution Context Method


The ExecutionContext method calls a SOAP web service.

Use this format.


SoapServiceResponse invokeSoapService(String integrationName, String xmlStr)

1480
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

where

• integrationName. Identies the name of the integration.


• xmlStr. XML representation of the SOAP body in String format.

ExecutionContext returns details.

Parameter Description

public String getExtensionName() String. Name of the order management extension that's currently running.
   

public String getEventCode() String. Abbreviation that identies the event that triggered the extension.
   

public Logger getLogger() Logger. Logger where the extension can write logs.
   

public ServiceInvoker Returns a service that you can use to call a web service from the code in your order
getServiceInvoker() management extension.
   

public String getUserName() Returns the name of the user currently signed in.
   

public boolean isUserInRole(String


roleName) Returns one of.
 
• True. The user currently signed in is using the role that roleName species.
• False. The user isn't using this role.

where

• roleName. A string that identies the role name.

public String getLanguage() Returns an abbreviation that identies the language that the user is using in the current
  session.
 

public Date getCurrentDate() Returns the current system date in an instance of java. sql.Date.
   

public Timestamp getCurrentTime() Returns the current system time in a java. sql. Timestamp object.
   

Logger Method
The Logger method returns the message log.

Use this format.

1481
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Format Description

public boolean isEnabled(Level level)


  Returns one of.

• True. Logging is enabled at the level that Level species.


• False. Logging isn't enabled at this level.

where

• level. Sets the logging level according to a constant from java.util.logging.Level.

public void logFine(String message)


  Saves message to the log at the ne level.

where

• message. A text string that the command saves to the log.

public void logFine(String


messageFormat, Object... arguments) Saves the message at the ne level.
 
where

• messageFormat. Format of the message. The command uses this format to create the
message string. It passes the format and argumentsto String.format().
• arguments. Arguments that replace the tokens in the format string.

public void logFiner(String message)


  Saves message to the log at the ner level.

where

• message. A text string that the command saves to the log.

public void logFiner(String


messageFormat, Object... arguments) Saves the message at the ner level.
 
where

• messageFormat. Format of the message. The command uses this format to create the
message string. It passes the format and argumentsto String.format().
• arguments. Arguments that replace the tokens in the format string.

public void logFinest(String message)


  Saves message to the log at the nest level.

where

• message. A text string that the command saves to the log.

public void logFinest(String message)


  Saves message to the log at the nest level.

where

• message. A text string that the command saves to the log.

1482
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Format Description

public void logSevere(String


messageFormat, Object... arguments) Saves the message at the severe level.
 
where

• messageFormat. Format of the message. The command uses this format to create the
message string. It passes the format and argumentsto String.format().
• arguments. Arguments that replace the tokens in the format string.

public void logSevere(String


messageFormat, Object... arguments) Saves the message at the severe level.
 
where

• messageFormat. Format of the message. The command uses this format to create the
message string. It passes the format and argumentsto String.format().
• arguments. Arguments that replace the tokens in the format string.

Message Method
The Message method uses a message type and message text to create a message for the sales order. It uses the
ORA_MANAGE_EXTENSIONS request function to log messages, by default.

Here's the format to use to display a literal message that uses the default message category and no tokens.
Message(MessageType type, String text)

where

• type. Type of message. You can use ERROR or WARNING.


• text. Text of the message to display, enclosed with one set of double quotation marks ( " " ).

Here's an example warning message that includes a literal string.


Message(MessageType Message.MessageType.WARNING, String "This is the warning message.")

Here's an error message that includes a literal string.


Message(MessageType Message.MessageType.ERROR, String "This is the error message.")

Specify Message Name and Tokens

Here's the format to use to specify the message name and message token parameters.
Message(MessageType type, String name, Map<String, Object> parameters)

where

• type. Type of message. You can use ERROR or WARNING.


• name. Name of a message from the Manage Messages page.

Here's the values that aributes for this message must use on the Manage Messages page.

1483
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Aribute Value

Application Distributed Order Orchestration


   

Module Distributed Order Orchestration


   

For details, see the Creating Messages in Order Management topic.


• parameters. A map that contains message tokens and token values. The Message method uses this map to
populate tokens with values. These tokens are part of the message.

Here's some example code that displays the contents of a message named DOO_CUST_RELATIONSHIP_WARNING.
Message(MessageType Message.MessageType.WARNING, String "DOO_CUST_RELATIONSHIP_WARNING", Map<String, Object>
messageParams)

Create Messages for Sales Orders and Sales Order Lines

You can use the Request function, message name, and message token parameters to create a message for the sales
order or the order line. The Message method will log the message with the request function that you specify.

Here's the format to use for the sales order.


Message(MessageType type, String requestFunction, String name, Map string, object msgParams)

Here's the format to use for the order line.


Message(MessageType type, String requestFunction, Object line, String name, Map string, object msgParams)

where

• Object line. Identies the order line to reference when logging the message.

For details about the other parameters, see the Map Tokens for the Message Repository section in this topic.

Here's some example code that uses a request function.


Message(MessageType Message.MessageType.WARNING, String "DEMO_REQFUNC", String
"DOO_CUST_RELATIONSHIP_WARNING", Map string, object msgParams)

where

• DEMO_REQFUNC is a value in lookup DOO_MSG_REQUEST_FUNCTION.

Row Set Iterator Method


The RowSetIterator method manages rows in the iterator.

Use this format.


Row first()

RowSetIterator returns details.

1484
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Parameter Description

Row rst() Returns the rst row in the iterator.


   

hasNext() Returns a Boolean value that indicates whether another row exists after the current row.
   

Row next() Returns the next row in the iterator.


   
If no more rows exist after the current row, then this parameter returns a null value.
 

Row last() Returns the last row in the iterator.


   

hasPrevious() Returns a Boolean value that indicates whether another row exists before the current row.
   

Row previous() Returns the previous row in the iterator.


   
If no more rows exist before the current row, then this parameter returns a null value.
 

createRow() Creates a new row. If the entity doesn't support creating a new row, then this parameter
  returns an error message when your extension calls this method.
 

insertRow(Row row) Inserts the row into the current iterator, where row species the row number to insert.
   
Use this method to add a new row to the iterator after you create the iterator.
 

Service Invoker Method


The ServiceInvoker method calls a service.

Validation Exception Method


The ValidationException method uses the error text that you specify to create a validation exception. It displays the
message text that you specify.

Use this format.


ValidationException(String messageText)

Display Messages from the Message Repository

ValidationException can get the error message text from the Oracle Fusion message repository, populate token values,
and then display the message in the Order Management work area.

Use this format.


ValidationException(String name, Map string, object parameters)

where

• name. Name of the message that you specify on the Manage Messages page.

1485
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

• parameters. A map that contains message tokens and token values. ValidationException uses this map to
populate tokens with values in the message.

Map Tokens for the Message Repository

Here's the format to use with ValidationException to create the map that parameters species.
ValidationException(java.lang.String requestFunction, java.lang.String name,
java.util.Map<java.lang.String,java.lang.Object> parameters)

where
• requestFunction. Lookup code of the request function to log the message against. You use the Order
Management lookup named Request Function to dene a request function. If this parameter passes an empty
value, then ValidationException defaults the request function to ORA_MANAGE_EXTENSIONS.
• name. Name of the message that you specify on the Manage Messages page. You must specify Distributed
Order Orchestration as the application for this message when you use the Manage Messages page.
• parameters. A map that contains message tokens and token values. ValidationException uses this map to
populate tokens with values in the message.

Display Message Objects from the Message Repository

ValidationException can use a list of message objects to create a validation exception. It can accommodate a validation
error that includes more than one message.

Use this format.


ValidationException(List message messages)

where
• messages. A list of message objects. For details about how to create a message object, see the Message
Method section in this topic.

Use Reference Lookup Codes

Here's the format you use to reference a lookup code.


throw new ValidationException("lookup_code")

The lookup type named DOO_MSG_REQUEST_FUNCTION contains lookup codes.

Lookup Code Description

ASSIGN_PROC Process assignment.


   

MANAGE_TASK Fulllment task.


   

MANAGE_HOLD Hold.
   

MANAGE_PROC Fulllment process.


   

PLAN_PROC Fulllment planning.


   

1486
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Lookup Code Description

PROC_CHANGE Change order.


   

XFORM_ORDER Order transformation. Location that Order Management uses to store an incoming source
  order before it transforms it to a sales order.
 

VALD_ CONSTRAINT Processing constraint.


   

VALD_PROC_DEFN Process denition.


   

VALD_ ACTION_ELGB Action eligibility.


   

ORA_ VALD_ ORDER_DATA Order validation.


   

ORA_ VALD_CONFIG Conguration.


   

ORA_ VALD_PRICING Pricing.


   

ORA_ NOTIFY_EVENT Event notication.


   

ORA_ VALD_PAYMENT Payment.


   

ORA_ VERIFY_ TRADE_ COMPLIANCE Verify that fulllment lines meet trade compliance policies.
   

ORA_ CREDIT_CHECK Verify credit check failure.


   

ORA_ ORDER_ APPROVALS Message function classication for Order Approval messages.
   

ORA_ MANAGE_ EXTENSIONS Default type for messages that the extensions framework logs.
   

You can specify one of these lookup codes or add new ones to the lookup.

View Object Method


The ViewObject method nds and returns a view criterion.

Use this format.


ViewCriteria getViewCriteria(name)

where

• name. Name of the view criterion.

1487
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

A view criterion is a list of row criterion for the WHERE clause in a view object. Each row criterion is an array that
contains criterion for each aribute.

Create View Criterion

Use this format.


ViewCriteria createViewCriteria()

ViewObject returns the new view criterion object.

Finding Rows According to View Criterion

Here's the format to use to nd rows according to the view criterion that you provide and return them in an iterator.
RowIterator findByViewCriteria(ViewCriteria viewCriteria, int numberOfRows)

where
• viewCriteria. Name of the view criteria to use to nd rows.
• numberOfRows. Number of rows to return. Use one of.
◦ -1. Get all rows that match the view criteria.
◦ Positive integer. Get a subset of rows. For example, use 3 to get the rst three rows that match the
criteria. If only two rows match the criteria, then the method returns only these two rows.

For example, here's some code that gets all rows and stores them in a local variable named vc.
def rowset = itemPVO.findByViewCriteria(vc, -1);

Here's the format to include an array of variable names and values.


RowIterator findByViewCriteriaWithBindVars(ViewCriteria viewCriteria, int maxNumOfRows, String[]
variableNames, Object[] variableValues)

where
• variableNames. Array of variable names to use with the view criteria.
• variableValues. Array of variable values to use with the view criteria.

Here's the format to use to nd rows according to the name of the view criteria.
RowIterator findByViewCriteriaWithBindVars(String viewCriteriaName, int maxNumOfRows, String[]
variableNames, Object[] variableValues)

where
• viewCriteriaName. Name of the view criteria to use to nd the rows.

Entities and Aributes You Can Use With Order Management Extensions
Get details about entities and aributes you can use with your order management extensions.
• An extension can read from or write to the identier aributes of a sales order, such as
BillToCustomerIdentier.
The text Identier, Id, or ID typically identies an identier aribute.
• Your extension code can use the aribute name of the public view object.
• Order Management converts values to identiers when it saves your code.
• Some identier values use identier Oracle Mobile Supply Chain.

1488
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

• You can use a public view object, but it might be necessary for you to use the identier aributes.
• If you set a default value for the ShipSetName aribute, then you must also set aribute PartialShipAllowedFlag
to N.
• Use the Line entity to get the value of the ItemSubTypeCode aribute.
• Use the public view object for the item to get the ShippableFlag aribute.
• You can't use the public view object for an order line that the user adds in the Order Management work area
before the user clicks Submit because Order Management hasn't yet saved it to the database.

Sales Order Entities


Each extension can read data from or write data to sales order entities. Use method getAribute() to access them.

Entity Value to Use in Parent Read During All Write During Write During End
Code Events Save or Start of Submission
of Submission Request
Request

Order header Header Not applicable Yes Yes No


           

Order line Lines Header Yes Yes No


           

Fulllment line FulllLineDetails Lines Yes No No


detail          
 

Sales credit SalesCredits Header, Lines Yes Yes No


           

Order total OrderTotals Header Yes No No


           

Manual price ManualPriceAdjustments


Lines Yes No No
adjustment          
 

Order charge OrderCharges Lines Yes No No


           

Order charge OrderChargeComponents


OrderCharges Yes No No
component          
 

Lot serial LotSerial Lines Yes No No


           

Transactional item TransactionAributes Lines Yes Yes No


aribute          
 

Payment Payments Headers, Lines Yes No No


           

Billing plan BillingPlans Lines Yes No No


           

1489
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Entity Value to Use in Parent Read During All Write During Write During End
Code Events Save or Start of Submission
of Submission Request
Request

Order tax detail OrderTaxDetails OrderChargeComponents


Yes No No
           

Document DocumentReferences Header, Lines No No No


reference          
 

Project Projects Lines Yes Yes No


           

Use method getAachments() to get these aributes.

Entity Value to Use in Parent Read During All Write During Write During End
Code Events Save or Start of Submission
of Submission Request
Request

Header Not applicable Header Yes Yes Yes


aachment          
 

Fulllment line Not applicable Lines Yes Yes No


aachment          
 

Use methods getOrCreateContextRow("context code") and getAttribute("API name") with these aributes, where
context code is the name of the context code of the extensible exeld and API name is the name of the API (application
programming interface) you use to call the method.

Entity Value to Use in Parent Read During All Write During Write During End
Code Events Save or Start of Submission
of Submission Request
Request

Extensible exeld Not applicable Header Yes Yes Yes


on order header          
 

Extensible exeld Not applicable Lines Yes Yes Yes


on fulllment line          
 

List of Aributes
Here's the list of aributes you can use in an order management extension. To get them in an Excel le, click Download
Files at this end of this topic.

Order Header Aributes

1490
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Aribute Updatable

AgreementHeaderId Yes
   

AgreementNumber Yes
   

AllowCurrencyOverrideFlag No
   

AppliedCurrencyCode No
   

AppliedCurrencyName No
   

BillToAccountContactIdentier Yes
   

BillToAccountContactName Yes
   

BillToAccountContactNumber Yes
   

BillToAccountDescription No
   

BillToAccountPersonFirstName No
   

BillToAccountPersonLastName No
   

BillToAccountPersonMiddleName No
   

BillToAccountPersonNameSux No
   

BillToAccountPersonTitle No
   

BillToAddress1 No
   

BillToAddress2 No
   

BillToAddress3 No
   

BillToAddress4 No
   

BillToCity No
   

1491
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Aribute Updatable

BillToContactFirstName No
   

BillToContactLastName No
   

BillToContactMiddleName No
   

BillToContactNameSux No
   

BillToContactTitle No
   

BillToCountry No
   

BillToCounty No
   

BillToCustomerIdentier Yes
   

BillToCustomerName Yes
   

BillToCustomerNumber Yes
   

BillToCustomerSiteIdentier Yes
   

BillToPartyType Yes
   

BillToPostalCode No
   

BillToProvince No
   

BillToState No
   

BusinessUnitIdentier Yes
   

BusinessUnitName Yes
   

BuyingPartyContactFirstName No
   

BuyingPartyContactId Yes
   

1492
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Aribute Updatable

BuyingPartyContactLastName No
   

BuyingPartyContactMiddleName No
   

BuyingPartyContactName Yes
   

BuyingPartyContactNameSux No
   

BuyingPartyContactNumber Yes
   

BuyingPartyContactTitle No
   

BuyingPartyIdentier Yes
   

BuyingPartyName Yes
   

BuyingPartyNumber Yes
   

BuyingPartyPersonFirstName No
   

BuyingPartyPersonLastName No
   

BuyingPartyPersonMiddleName No
   

BuyingPartyPersonNameSux No
   

BuyingPartyPersonTitle No
   

BuyingPartyType Yes
   

CancelReason Yes
   

CancelReasonCode Yes
   

CarrierId Yes
   

CarrierName Yes
   

1493
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Aribute Updatable

ChangeVersionNumber No
   

Comments Yes
   

CurrencyConversionDate Yes
   

CurrencyConversionRate Yes
   

CurrencyConversionTypeCode Yes
   

CustomerPONumber Yes
   

DemandClass Yes
   

DemandClassCode Yes
   

EarliestAcceptableShipDate Yes
   

EarliestAcceptArrivalDate Yes
   

EarliestAcceptArrivalDateTransient Yes
   

FOBPoint Yes
   

FOBPointCode Yes
   

FreezePriceFlag Yes
   

FreezeShippingChargeFlag Yes
   

FreezeTaxFlag Yes
   

FreightTerms Yes
   

FreightTermsCode Yes
   

FulllmentOrganizationCode Yes
   

1494
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Aribute Updatable

FulllmentOrganizationIdentier Yes
   

FulllmentOrganizationName Yes
   

HeaderId No
   

LatestAcceptableShipDate Yes
   

LatestAcceptArrivalDate Yes
   

OrderNumber No
   

OrigSysDocumentRef Yes
   

PackingInstructions Yes
   

PartialShipAllowedFlag Yes
   

PaymentTerm Yes
   

PaymentTermCode Yes
   

PreCreditCheckedFlag Yes
   

PreferredBillToContactPointIdentier Yes
   

PreferredShipToContactPointIdentier Yes
   

PreferredSoldToContactPointIdentier Yes
   

PricedOn No
   

PricingSegmentCode No
   

PricingSegmentExplanation No
   

PricingStrategy No
   

1495
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Aribute Updatable

PricingStrategyExplanation No
   

PricingStrategyIdentier No
   

ReferenceHeaderId No
   

RequestArrivalDate Yes
   

RequestCancelDate Yes
   

RequestingBusinessUnit No
   

RequestingBusinessUnitIdentier Yes
   

RequestingLegalUnit Yes
   

RequestingLegalUnitIdentier Yes
   

RequestShipDate Yes
   

RevisionSourceOrderSystem Yes
   

SalesChannel Yes
   

SalesChannelCode Yes
   

Salesperson Yes
   

SalespersonIdentier Yes
   

SegmentExplanationMessage No
   

SegmentExplanationMsgName No
   

ShipClassOfService Yes
   

ShipClassOfServiceCode Yes
   

1496
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Aribute Updatable

ShipmentPriority Yes
   

ShipmentPriorityCode Yes
   

ShipModeOfTransport Yes
   

ShipModeOfTransportCode Yes
   

ShippingInstructions Yes
   

ShipsetFlag Yes
   

ShipToAddress1 No
   

ShipToAddress2 No
   

ShipToAddress3 No
   

ShipToAddress4 No
   

ShipToCity No
   

ShipToContactFirstName No
   

ShipToContactLastName No
   

ShipToContactMiddleName No
   

ShipToContactNameSux No
   

ShipToContactTitle No
   

ShipToCountry No
   

ShipToCounty No
   

ShipToPartyContactIdentier Yes
   

1497
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Aribute Updatable

ShipToPartyContactName Yes
   

ShipToPartyContactNumber No
   

ShipToPartyIdentier Yes
   

ShipToPartyName Yes
   

ShipToPartyNumber Yes
   

ShipToPartyPersonFirstName No
   

ShipToPartyPersonLastName No
   

ShipToPartyPersonMiddleName No
   

ShipToPartyPersonNameSux No
   

ShipToPartyPersonTitle No
   

ShipToPartySiteIdentier Yes
   

ShipToPartyType Yes
   

ShipToPostalCode No
   

ShipToProvince No
   

ShipToState No
   

SoldToPartyContactPointId Yes
   

SourceTransactionIdentier No
   

SourceTransactionNumber No
   

SourceTransactionRevisionNumber No
   

1498
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Aribute Updatable

SourceTransactionSystem No
   

StatusCode No
   

StrategyExplanationMessage No
   

StrategyExplanationMsgName No
   

SubmiedBy Yes
   

SubmiedDate Yes
   

SubmiedFlag No
   

SubstituteAllowedFlag Yes
   

SupplierAddressCity No
   

SupplierAddressCountry No
   

SupplierAddressCounty No
   

SupplierAddressLine1 No
   

SupplierAddressLine2 No
   

SupplierAddressLine3 No
   

SupplierAddressLine4 No
   

SupplierAddressPostalCode No
   

SupplierAddressProvince No
   

SupplierAddressState No
   

SupplierCode Yes
   

1499
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Aribute Updatable

SupplierName Yes
   

SupplierNumber Yes
   

SupplierSiteIdentier Yes
   

TradeComplianceResult Yes
   

TradeComplianceResultCode No
   

TransactionalCurrencyCode Yes
   

TransactionalCurrencyName Yes
   

TransactionDocumentTypeCode Yes
   

TransactionOn Yes
   

TransactionType No
   

TransactionTypeCode Yes
   

Lines No
   

SalesCredits No
   

OrderTotals No
   

Payments No
   

DocumentReferences No
   

Order Line Aributes

Aribute Updatable

AccountingRule Yes
   

1500
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Aribute Updatable

AccountingRuleCode Yes
   

ActionType Yes
   

ActionTypeCode Yes
   

AssessableValue Yes
   

AssetGroupNumber Yes
   

AssetTrackedFlag Yes
   

BillingTransactionTypeIdentier Yes
   

BillToAccountContactIdentier Yes
   

BillToAccountContactName Yes
   

BillToAccountContactNumber Yes
   

BillToAccountPersonFirstName No
   

BillToAccountPersonLastName No
   

BillToAccountPersonMiddleName No
   

BillToAccountPersonNameSux No
   

BillToAccountPersonTitle No
   

BillToAccountSiteUseIdentier Yes
   

BillToAddress1 No
   

BillToAddress2 No
   

BillToAddress3 No
   

1501
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Aribute Updatable

BillToAddress4 No
   

BillToCity No
   

BillToContactFirstName No
   

BillToContactLastName No
   

BillToContactMiddleName No
   

BillToContactNameSux No
   

BillToContactTitle No
   

BillToCounty No
   

BillToCustomerIdentier Yes
   

BillToCustomerName Yes
   

BillToCustomerNumber Yes
   

BillToPartyType Yes
   

BillToPostalCode No
   

BillToProvince No
   

BillToState No
   

BillingTransactionTypeIdentier Yes
   

BusinessUnitIdentier Yes
   

BusinessUnitName Yes
   

CancelReason Yes
   

1502
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Aribute Updatable

CancelReasonCode Yes
   

Comments Yes
   

ComponentIdPath Yes
   

CongHeaderId Yes
   

CongRevisionNumber Yes
   

ConguratorPath Yes
   

ContractEndDate Yes
   

ContractStartDate Yes
   

ContractEndDate1 Yes
   

ContractStartDate1 Yes
   

CreditCheckAuthorizationCode Yes
   

CreditCheckAuthorizationExpiryDate Yes
   

CustomerPOLineNumber Yes
   

CustomerPONumber Yes
   

CustomerPOScheduleNumber Yes
   

CustomerProductDescription Yes
   

CustomerProductIdentier Yes
   

CustomerProductNumber Yes
   

DefaultTaxationCountry Yes
   

1503
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Aribute Updatable

DefaultTaxationCountryShortName Yes
   

DemandClass Yes
   

DemandClassCode Yes
   

DestinationShippingAddressCity No
   

DestinationShippingAddressCountry No
   

DestinationShippingAddressCounty No
   

DestinationShippingAddressLine1 No
   

DestinationShippingAddressLine2 No
   

DestinationShippingAddressLine3 No
   

DestinationShippingAddressLine4 No
   

DestinationShippingAddressPostalCode No
   

DestinationShippingAddressProvince No
   

DestinationShippingAddressState No
   

DestinationShippingLocationIdentier Yes
   

DestinationShippingOrganizationCode Yes
   

DestinationShippingOrganizationIdentier Yes
   

DestinationShippingOrganizationName Yes
   

DisplayLineNumber No
   

DocumentSubType Yes
   

1504
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Aribute Updatable

DocumentSubTypeName Yes
   

EarliestAcceptableShipDate Yes
   

ExtendedAmount Yes
   

FinalDischargeLocationAddressCity No
   

FinalDischargeLocationAddressCountry No
   

FinalDischargeLocationAddressCounty No
   

FinalDischargeLocationAddressLine1 No
   

FinalDischargeLocationAddressLine2 No
   

FinalDischargeLocationAddressLine3 No
   

FinalDischargeLocationAddressLine4 No
   

FinalDischargeLocationAddressPostalCodeNo
   

FinalDischargeLocationAddressProvince No
   

FinalDischargeLocationAddressState No
   

FinalDischargeLocationIdentier Yes
   

FirstPartyTaxRegistration Yes
   

FirstPartyTaxRegistrationNumber Yes
   

FOBPoint Yes
   

FOBPointCode Yes
   

FreightTerms Yes
   

1505
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Aribute Updatable

FreightTermsCode Yes
   

FulllInstanceId Yes
   

FulllmentLineIdentier No
   

FulllmentOrganizationCode Yes
   

FulllmentOrganizationIdentier Yes
   

FulllmentOrganizationName Yes
   

HeaderId No
   

IntendedUseClassicationIdentier Yes
   

IntendedUseClassicationName Yes
   

InventoryOrganization No
   

InventoryOrganizationIdentier No
   

InvoicingRule Yes
   

InvoicingRuleCode Yes
   

IsValidConguration Yes
   

ItemSubTypeCode No
   

LatestAcceptableArrivalDate Yes
   

LatestAcceptableShipDate Yes
   

LineAgreementNumber Yes
   

LineId No
   

1506
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Aribute Updatable

LineNumber No
   

LineType No
   

ModiedFlag Yes
   

OrderedQuantity Yes
   

OrderedUOM Yes
   

OrderedUOMCode Yes
   

OriginalProductDescription Yes
   

OriginalProductIdentier Yes
   

OriginalProductNumber Yes
   

PackingInstructions Yes
   

ParentLineReference Yes
   

PartialShipAllowedFlag Yes
   

PaymentTerm Yes
   

PaymentTermCode Yes
   

PreferredBillToContactPointIdentier Yes
   

PreferredShipToContactPointIdentier Yes
   

ProductCategory Yes
   

ProductCategoryName Yes
   

ProductDescription Yes
   

1507
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Aribute Updatable

ProductFiscalCategoryIdentier Yes
   

ProductFiscalCategoryName Yes
   

ProductIdentier Yes
   

ProductNumber Yes
   

ProductType Yes
   

ProductTypeName Yes
   

ProjectRecordIndicator Yes
   

PromiseArrivalDate Yes
   

PromiseShipDate Yes
   

QuantityPerModel Yes
   

ReferenceFulllmentLineIdentier No
   

RequestCancelDate Yes
   

RequestedArrivalDate Yes
   

RequestedShipDate Yes
   

RequestingBusinessUnitIdentier Yes
   

RequestingBusinessUnitName Yes
   

RequiredFulllmentDate Yes
   

ReturnReason Yes
   

ReturnReasonCode Yes
   

1508
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Aribute Updatable

RootParentLineReference Yes
   

Salesperson Yes
   

SalespersonIdentier Yes
   

SalesProductType Yes
   

SalesProductTypeCode Yes
   

ScheduleArrivalDate Yes
   

ScheduleShipDate Yes
   

ServiceCancelDate Yes
   

ServiceDuration Yes
   

ServiceDurationPeriod Yes
   

ServiceDurationPeriodCode Yes
   

ShipmentPriority Yes
   

ShipmentPriorityCode Yes
   

ShippableFlag Yes
   

ShippingCarrier Yes
   

ShippingCarrierCode Yes
   

ShippingInstructions Yes
   

ShippingMode Yes
   

ShippingModeCode Yes
   

1509
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Aribute Updatable

ShippingServiceLevel Yes
   

ShippingServiceLevelCode Yes
   

ShipSetName Yes
   

ShipToAddress1 No
   

ShipToAddress2 No
   

ShipToAddress3 No
   

ShipToAddress4 No
   

ShipToCity No
   

ShipToContactFirstName No
   

ShipToContactId Yes
   

ShipToContactLastName No
   

ShipToContactMiddleName No
   

ShipToContactNameSux No
   

ShipToContactTitle No
   

ShipToCounty No
   

ShipToPartyContactIdentier Yes
   

ShipToPartyContactName Yes
   

ShipToPartyContactNumber Yes
   

ShipToPartyIdentier Yes
   

1510
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Aribute Updatable

ShipToPartyName Yes
   

ShipToPartyNumber Yes
   

ShipToPartyPersonFirstName No
   

ShipToPartyPersonLastName No
   

ShipToPartyPersonMiddleName No
   

ShipToPartyPersonNameSux No
   

ShipToPartyPersonTitle No
   

ShipToPartySiteIdentier Yes
   

ShipToPartyType Yes
   

ShipToPostalCode No
   

ShipToProvince No
   

ShipToRequestRegion Yes
   

ShipToState Yes
   

SourceTransactionIdentier No
   

SourceTransactionLineIdentier No
   

SourceTransactionLineNumber No
   

SourceTransactionNumber No
   

SourceTransactionRevisionNumber No
   

SourceTransactionScheduleIdentier No
   

1511
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Aribute Updatable

SourceTransactionScheduleNumber No
   

SourceTransactionSystem No
   

StatusCode No
   

SubInventoryCode Yes
   

SubInventoryIdentier Yes
   

SubstitutionAllowedFlag Yes
   

SubstitutionReason Yes
   

SubstitutionReasonCode Yes
   

SupplierAddressCity No
   

SupplierAddressCountry No
   

SupplierAddressCounty No
   

SupplierAddressLine1 No
   

SupplierAddressLine2 No
   

SupplierAddressLine3 No
   

SupplierAddressLine4 No
   

SupplierAddressPostalCode No
   

SupplierAddressProvince No
   

SupplierAddressState No
   

SupplierCode Yes
   

1512
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Aribute Updatable

SupplierName Yes
   

SupplierNumber Yes
   

SupplierSiteIdentier Yes
   

SupplyStatusCode Yes
   

TaxClassication Yes
   

TaxClassicationCode Yes
   

TaxExemptFlag Yes
   

TaxExemptionCerticateNumber Yes
   

TaxExemptReason Yes
   

TaxExemptReasonCode Yes
   

TaxInvoiceNumber Yes
   

ThirdPartyTaxRegistration Yes
   

ThirdPartyTaxRegistrationNumber Yes
   

TotalContractAmount Yes
   

TotalContractQuantity Yes
   

TransactionBusinessCategory Yes
   

TransactionBusinessCategoryName Yes
   

TransactionCategoryCode Yes
   

TransactionLineType Yes
   

1513
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Aribute Updatable

TransactionLineTypeCode Yes
   

UnitListPrice Yes
   

UnitQuantity Yes
   

UnitSellingPrice Yes
   

UnreferencedReturnFlag No
   

UserDenedFiscClass Yes
   

UserDenedFiscClassName Yes
   

TransactionAributes No
   

SalesCredits No
   

OrderCharges No
   

ManualPriceAdjustments No
   

Payments No
   

DocumentReferences No
   

BillingPlans No
   

FulllLineDetails No
   

LotSerial No
   

Projects No
   

Order Charge Aributes

1514
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Aribute Updatable

ApplyTo No
   

AverageUnitSellingPrice No
   

CanAdjustFlag No
   

ChargeCurrencyCode No
   

ChargeCurrencyName No
   

ChargeDenition No
   

ChargeDenitionCode No
   

ChargeSubtype No
   

ChargeSubtypeCode No
   

ChargeType No
   

ChargeTypeCode No
   

GSAUnitPrice No
   

OrderChargeId No
   

ParentEntityId No
   

PricedQuantity No
   

PricedQuantityUOM No
   

PricedQuantityUomCode No
   

PricePeriodicityCode No
   

PriceType No
   

1515
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Aribute Updatable

PriceTypeCode No
   

PrimaryFlag No
   

RollupFlag No
   

SequenceNumber No
   

SourceChargeIdentier No
   

OrderChargeComponents No
   

Charge Component Aributes

Aribute Updatable

ChargeCurrencyCode No
   

ChargeCurrencyDurationExtendedAmountNo
   

ChargeCurrencyExtendedAmount No
   

ChargeCurrencyName No
   

ChargeCurrencyUnitPrice No
   

Explanation No
   

HeaderCurrencyCode No
   

HeaderCurrencyDurationExtendedAmountNo
   

HeaderCurrencyExtendedAmount No
   

HeaderCurrencyName No
   

HeaderCurrencyUnitPrice No
   

1516
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Aribute Updatable

OrderChargeComponentId No
   

OrderChargeId No
   

PercentOfComparisonElement No
   

PriceElement No
   

PriceElementCode No
   

PriceElementUsage No
   

PriceElementUsageCode No
   

RollupFlag No
   

SequenceNumber No
   

SourceChargeComponentId No
   

SourceChargeId No
   

SourceMpaId No
   

SourceParentChargeComponentId No
   

TaxIncludedFlag No
   

OrderTaxDetails No
   

Order Total Aributes

Aribute Updatable

CurrencyCode No
   

DisplayName No
   

1517
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Aribute Updatable

EstimatedFlag No
   

OrderTotalId No
   

PrimaryFlag No
   

TotalAmount No
   

TotalCode No
   

TotalGroup No
   

Order Tax Detail Aributes

Aribute Updatable

HeaderCurrencyTaxableUnitAmount No
   

HeaderCurrencyTaxUnitAmount No
   

OrderChargeComponentId No
   

OrderTaxDetailId No
   

TaxExemptionCerticateNumber No
   

TaxExemptReason No
   

TaxExemptReasonCode No
   

TaxIncludedFlag No
   

TaxRate No
   

TaxRateIdentier No
   

Billing Plan Aributes

1518
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Aribute Updatable

BillingNumberOfPeriods No
   

BillingPeriodEndDate No
   

BillingPeriodNumber No
   

BillingPeriodStartDate No
   

BillingPlanId No
   

BillingPlanTypeCode No
   

BillingTrxDate No
   

CancellationEectiveDate No
   

NetBillingAmountPERPeriod No
   

OverridePeriod No
   

OverridePeriodAmount No
   

OverridePeriodQuantity No
   

PeriodicityCode No
   

PeriodicityName No
   

SourceBillingPlanId No
   

Sales Credit Aributes

Aribute Updatable

Percent Yes
   

SalesCreditIdentier No
   

1519
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Aribute Updatable

SalesCreditType Yes
   

SalesCreditTypeCode Yes
   

Salesperson Yes
   

SalespersonIdentier Yes
   

SourceTransactionSalesCreditIdentier Yes
   

Transaction Item Aributes

Aribute Updatable

CharacterValue Yes
   

DateValue Yes
   

NumberValue Yes
   

SourceTransactionLineAributeIdentier Yes
   

TimestampValue Yes
   

TransactionAributeCode Yes
   

TransactionAributeIdentier Yes
   

TransactionAributeName Yes
   

TransactionArId No
   

Lot Serial Aributes

Aribute Updatable

ItemRevisionNumber No

1520
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Aribute Updatable

   

LocatorIdentier No
   

LotNumber No
   

LotSerialId No
   

SerialNumberFrom No
   

SerialNumberTo No
   

SourceTransactionLotIdentier No
   

Payment Aributes

Aribute Updatable

AuthorizationStatus No
   

InstrumentAssignmentIdentier No
   

PaymentMethod No
   

PaymentMethodCode No
   

PaymentSetIdentier No
   

PaymentTransactionIdentier No
   

PaymentType No
   

PaymentTypeCode No
   

SourceTransactionPaymentIdentier No
   

Document Reference Aributes

1521
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Aribute Updatable

DocumentAdditionaldentier Yes
   

DocumentAdditionalLineIdentier Yes
   

DocumentAdditionalLineNumber Yes
   

DocumentAdditionalNumber Yes
   

DocumentAdditionalSubLineIdentier Yes
   

DocumentAdditionalSubLineNumber Yes
   

DocumentIdentier Yes
   

DocumentLineIdentier Yes
   

DocumentLineNumber Yes
   

DocumentNumber Yes
   

DocumentReferenceType Yes
   

DocumentSubLineIdentier Yes
   

DocumentSubLineNumber Yes
   

DocumentSystemReferenceIdentier No
   

OwnerTableId Yes
   

OwnerTableName Yes
   

TaskType Yes
   

Aributes for Manual Price Adjustments

1522
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Aribute Updatable

AdjustmentAmount No
   

AdjustmentElementBasis No
   

AdjustmentElementBasisCode No
   

AdjustmentType No
   

AdjustmentTypeCode No
   

ChargeDenition No
   

ChargeDenitionCode No
   

ChargeRollupFlag No
   

Comments No
   

ManualPriceAdjustmentId No
   

ParentEntityCode No
   

ParentEntityId No
   

PricePeriodicityCode No
   

Reason No
   

ReasonCode No
   

SequenceNumber No
   

SourceManualPriceAdjustmentIdentier No
   

ValidationStatusCode No
   

Fulllment Line Aributes

1523
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Aribute Updatable

ActualDeliveryDate No
   

AvailabilityShipDate No
   

BillingTransactionAmount No
   

BillingTransactionDate No
   

BillingTransactionNumber No
   

BillOfLadingNumber No
   

CustomerTrxLineIdentier No
   

DeliveryName No
   

ExceptionFlag No
   

FulllLineDetailId No
   

FulllLineId No
   

Quantity No
   

RMAReceiptDate No
   

RMAReceiptLineNumber No
   

RMAReceiptNumber No
   

RMAReceiptTransactionIdentier No
   

Status No
   

StatusAsOfDate No
   

TaskType No
   

1524
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Aribute Updatable

TrackingNumber No
   

TradeComplianceCode No
   

TradeComplianceExplanation No
   

TradeComplianceName No
   

TradeComplianceResultCode No
   

TradeComplianceResultName No
   

TradeComplianceTypeCode No
   

TradeComplianceTypeName No
   

WaybillNumber No
   

Project Aributes

Aribute Updatable

ContractId Yes
   

ContractNumber Yes
   

DooOrderPrjId No
   

ExpenditureItemDate Yes
   

ExpenditureOrganization Yes
   

ExpenditureType Yes
   

ExpenditureTypeId Yes
   

FundingSource Yes
   

1525
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Aribute Updatable

OrganizationId Yes
   

ParentEntityCode No
   

ParentEntityId No
   

ProjectId Yes
   

ProjectNumber Yes
   

ReferenceProjectId No
   

ReservedAribute1 Yes
   

TaskId Yes
   

TaskNumber Yes
   

Related Topics
• Download Files

Flexelds
Overview
Overview of Using Extensible Flexelds in Order Management
Set up an extensible exeld so you can add your own aribute to Order Management Cloud.
An extensible exeld is a eld you can use to capture details in a sales order that are unique to your business
requirements. Each sales order in Order Management comes predened with a lot of aributes, but you might need one
that's specic to your needs.

You can use the details in an extensible exeld to determine process automation, send and receive details when
communicating with systems outside of Order Management, or provide the criteria to use in a complex business rule.
For example.
• Capture consumer details in an extensible exeld, then use them to add free samples to a shipment.
• Capture customer loyalty details in an extensible exeld, then determine whether to call the customer or
upgrade shipping priority.

1526
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

• Receive a sales order request that includes unique build specications from your customer, store them in
an extensible exeld, and then route the sales order to dierent manufacturing facilities according to the
specications.
• Select and ship a bole of wine according to your customer dining preferences. Store these preferences in an
extensible exeld.
• Store the user ID of the order entry clerk who submied a source order from a source system.
• Track source orders that include warning messages from a source system.
• Store the original schedule date and the new schedule date on the order line so you can track and report
scheduling throughout the fulllment lifecycle.

Note.
• An extensible exeld supports a one-to-many relationship between one entity and one or more aributes. You
can use it to add more than one context sensitive segment.
• You can set up an extensible exeld for a fulllment line, or on some other object that supports an extensible
exeld.

For background details, see the Overview of Flexelds topic.

Examples of Using Extensible Flexelds

Example Description

Get details from a source system. Get source order details from one or more source systems. A source order is an order that you
  import into Order Management from a source system, such as from an upstream channel.
 
A source order contains a set of aributes. If you need details or aributes that the source
order doesn't contain, then you can use an extensible exeld to get them, then use these
details during order fulllment.
 
You can use the same extensible exeld aributes to receive details from each source system,
or use dierent extensible exeld aributes according to the unique requirements of each
source system.
 

Send details to a fulllment system. Order Management sends a fulllment request that includes a predened set of aributes to a
  fulllment system. You can use an extensible exeld to send details that these aributes don't
include, but that the fulllment system needs to nish the fulllment request.
 

Integrate with systems outside of For details, see the Overview of Using Flexelds to Integrate Order Management with Other
Order Management. Oracle Applications topic.
   

Receive details from a fulllment A fulllment system might send aributes that provide a business value, and that the Order
system. Entry Specialist must view in Order Management or in the source system. In some situations,
  Order Management might also use these details in the next set of tasks that it runs in an
orchestration process. You can use an extensible exeld to receive these aributes.
 

Write a business rule.


  Use an extensible exeld aribute with a business rule.

• Transformation rule. Write a rule that references an extensible exeld to add order
details, delete unnecessary details, or modify details. Use an extensible exeld to
determine the transformations to do.

1527
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Example Description

• External interface routing rule.


• Assignment rule.

For details, see the Overview of Using Business Rules With Order Management topic.

Manage change. Use an extensible exeld as an order aribute to store details about a change that occurred.
  For example, use an extensible exeld as input to calculate the cost of change and to select a
compensation paern when Order management receives a change order.
 

Display aributes in the Order Allow the Order Entry Specialist to search for sales orders in the Order Management work area
Management work area. according to the value of an extensible exeld.
   
Note that the Order Entry Specialist can read but not edit an extensible exeld aribute.
 

Examples of Using Extensible Flexelds with Orchestration Processes

Example Description

Assign an orchestration process. Use the value of an extensible exeld in an assignment rule to automatically assign an
  orchestration process during order fulllment to fulll each sales order and each order line.
 
Use an extensible exeld as part of the selection criteria during assignment.
 

Set up an orchestration process. Create a business rule that uses an extensible exeld to determine branching and the tasks to
  run in an orchestration process.
 

Select the fulllment lines to process. Use an extensible exeld to determine whether a task in an orchestration process will process
  the fulllment line or ignore it during order fulllment.
 

Calculate the lead time that an


orchestration process step requires. Use an extensible exeld to calculate lead time according to your data. For example, create an
  extensible exeld named Engraving that includes a Yes or No value, then set up conditions.

• If the item is a silver cup, and if engraving is yes, then set lead time to 3 days.
• If the item is a silver cup, and if engraving is no, then set lead time to 1 day.

For details, see the Set Up Jeopardy and Lead Time to Manage Delay topic.

Entities You Can Use With Extensible Flexelds


Here are the entities you can use with an extensible exeld on a sales order.
• Header
• Order line
• Fulllment line
• Fulllment line detail

1528
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

• Price adjustment
• Sales credit
• Payment
• Lot serial
• Activity

Web Services You Can Use to Map Extensible Flexelds


You can use these web services with all task types.

Web Service Description

Receive Fulll Order Orchestration


Task Response Service For data that ows into Order Management. It uses this composite.
 
• DooTaskFulllOrderResponseInterfaceComposite

Request Fulll Order Orchestration


Task Service For data that ows out of Order Management. It uses this composite.
 
• DooTaskFulllOrderRequestInterfaceComposite

Related Topics
• Overview of Flexelds

1529
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Overview of Seing Up Extensible Flexelds in Order Management


Use a hierarchy to determine how to display an extensible exeld in the Order Management work area.
Here's the hierarchy.

Note.

1. Order Management Entity. The top-level object in the hierarchy. You can specify an entity.

◦ Header Information. Store details about the order header.


◦ Fulllment Line Information. Store details about the order line while order fulllment processes the
order line.

1530
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

◦Fulllment Line Detail Information. Store details that the fulllment system provides that you don't
typically store on the fulllment line.
2. Extensible Flexeld. Each extensible exeld includes categories, contexts, and segments.
3. Extensible Flexeld Category. Organize your data into a category according to aributes that contain similar
business data. Specify where to display the extensible exeld in the Order Management work area, such as on
the order header or order line. You can use only one category for each entity.
4. Extensible Flexeld Context. Specify how to display the aribute. For example.

◦ Dene criteria that determines the aribute to display.


◦ Type of interface element that will display the aribute, such as text box or list of values.
◦ Whether the Order Entry Specialist can view or edit the aribute.
◦ Validation to do on the aribute.
◦ Help text to display for the aribute.
◦ Data type of the aribute.
◦ Table column that stores the aribute.

You can dene one or more contexts in each category.


5. Extensible Flexeld Segment. Specify the aributes. An extensible exeld segment is equivalent to a sales
order aribute. Each context includes one or more segments that you can use to specify sales order aributes
that store your data. You can dene one or more segments in each context.
Consider an example.

1531
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Note.

• Context1 stores details about trade compliance.


• SegmentA references an aribute that stores the compliance description.
• SegmentB references an aribute that stores the compliance date.
• Context2 stores details about the call center representative who manages details about trade compliance.
• SegmentF references an aribute that stores the representative name.
• SegmentG references an aribute that stores the name of the person who manages the representative.

Here's an example that displays an extensible exeld in the Order Management work area.

1532
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Note.

1. Additional Information. A dialog that displays when you click Actions > Edit Additional Information on the
sales order header in the Order Management work area.
2. Manage Order Extensible Flexelds. The setup page you use in the Setup and Maintenance work area to
dene an extensible exeld.
3. Additional Header Information. Species the data to display and how to display it in Additional Information.
4. Pages tab. You use the Pages tab to dene each area where your extensible exeld displays. In this example,
the Pages tab denes one area named Compliance Info and another area named HeaderEFFDetails. The
example displays HeaderEFFDetails in the dialog. You can dene one or more area, and you can dene one
more contexts in each area.

1533
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

In this example, the Pages tab denes HeaderContext1 and HeaderContext2. However, for brevity, the screen
capture displays only HeaderContext1. The Sequence species the sequence to use when displaying these
contexts in the area, with 1 displaying at the top, 2 below 1, 3 below 2, and so on.
5. Sequence and Display Name for page. Denes the name for each category that displays in the dialog.
Sequence species the sequence to display the pages in the dialog. In the example, the Sequence is
10 for Compliance Info and 20 for HeaderEFFDetails, so the dialog displays Compliance Info rst, then
HeaderEFFDetails.
6. Sequence and Display Name for context. Denes the name for each context that displays in the dialog. For
example, HeaderContext1 organizes similar business data into a concise area of the dialog.
7. Context Sensitive Segment. Species one ore more segments that display details for each aribute. The
Sequence species the sequence to use when displaying these segments in the area. You can dene the
following segments in each context.

◦ 20 character segments. You can use up to 150 characters for each character segment.
◦ 10 number segments.
◦ Five date segments.
◦ Five date and time segments.

Flexeld Categories Determine Where to Display Extensible Flexelds


You can display an extensible exeld in dierent areas of the Order Management work area according to exeld
categories.

Flexeld Category Area in the Order Management Work Area

DOO_ HEADERS_ ADD_INFO Order header


   

DOO_ FULFILL_ LINES_ ADD_INFO Order line and fulllment line


   

DOO_ FULFILL_ LINE_ General tab on the fulllment line


DTLS_ADD_INFO  
 

View Extensible Flexelds in a Sales Order According to Flexeld Category

1. In the Navigator, click Order Management.


2. In the Order Management work area, on the Overview page, click Tasks > Create Order.
3. On the Create Order page, click Actions > Edit Additional Information.

1534
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

The Additional Information dialog displays each extensible exeld you create that references the
DOO_HEADERS_ADD_INFO exeld category. For example, HeaderEFFDetails is an extensible exeld.

4. Click Cancel.
5. In the Order Lines area, search for an item, then click Add.
6. On the order line, click the down arrow, then click Edit Additional Information.
7. Click Submit, then copy the sales order number, such as 57025.
8. On the Overview page, click Tasks > Manage Fulllment Lines.
9. On the Manage Fulllment Lines page, search for your sales order.
10. In the Search Results, scroll to the far right, then click Additional Information.

1535
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

The Additional Information dialog displays the extensible exeld you create that references the
DOO_FULFILL_LINE_DTLS_ADD_INFO exeld category. For example, Pack Ship Instruction is an extensible
exeld.

1536
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

11. In the Fulllment Line Details area, in the Aributes area, click General, scroll down, click Additional
Information, then notice the dialog that displays.

Another Example
Here's an Additional Information dialog that displays each extensible exeld that references the
DOO_FULFILL_LINES_ADD_INFO exeld category. For example, FulllLineEFFInfo is an extensible exeld.

Order Management displays each extensible exeld in an Additional Information dialog. Here's an example that
displays the View Additional Information menu item on each order line on the Order Lines tab.

1537
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

In this example, View Additional Information allows the Order Entry Specialist to access the Source Line Info extensible
exeld.

1538
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Overview of Your Setup

You do some or all of this set up, depending on your business requirements. It might be necessary to also do some of
this ow when you update your extensible exeld denition.

1. Manage Extensible Flexelds. Use the Manage Extensible Flexelds page in the Setup and Maintenance work
area to dene your extensible exeld. Click Deploy Flexeld to make it available throughout the architecture
and to other set up pages.
2. Order Management Work Area. Test your extensible exeld. Depending on your setup, you create a
new sales order, search for a sales order, use a fulllment view, and so on. For example, use the Additional
Information dialog when you create a new sales order to make sure your extensible exeld displays and works
as expected.

1539
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

3. Manage Order Management Extensions. Use the Manage Order Management Extensions page in the Setup
and Maintenance work area to add your extensible exeld to an order management extension.
4. Schedule New Process. Use the Publish Extensible Flexeld Aributes scheduled process to make your
extensible exeld available to various parts of Order Management, other set ups in Oracle Fusion Applications,
and integrations. This scheduled process updates the rule dictionaries in business rules, constraints, business
events, Integration Cloud Service, and the service mappings that you use for an internal integration.
5. Various Set Ups. Here's where you can use your extensible exeld.

Set Up Description

Business Rule
  Use your extensible exeld in a business rule.

◦ Pretransformation

◦ Transformation

◦ Posransformation

◦ Routing

◦ Assignment

◦ Line Selection Criteria

◦ Branching Expression

◦ Lead Time Expression

◦ Compensation Paern

◦ Cost of Change

You can't use an extensible exeld in an approval rule.

Business Event Use an extensible exeld to help determine when to raise a business event, and the actions
  to take when you raise it.
 

Constraint Use an extensible exeld to constraint a sales order aribute. Use a constraint to constrain
  an extensible exeld.
 

Integration Cloud Service


  Use an extensible exeld with Integration Cloud Service to help achieve and manage an
integration between Order Management and a technology or application.

◦ Order Import

◦ Order Information Service

◦ Transportation Management

◦ Global Trade Management

Integration with an Oracle Fusion


Application Use a service mapping to integrate with an Oracle Fusion Application.
 
◦ Shipping

◦ Accounts Receivables

◦ Purchasing

1540
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Set Up Description

◦ Receiving

6. Web Service. If you use one of these web services, then manually update your extensible exeld denition in
the web service payload.

◦ CreateOrder
◦ FulllOrderService
◦ FulllmentResponseService
7. Schedule New Process. Use scheduled process Import Oracle Fusion Data Extensions for Transactional
Business Intelligence to make your extensible exeld is available in area Subject Areas of Oracle Transactional
Business Intelligence.

Related Topics
• Overview of Importing Orders into Order Management

Guidelines for Seing Up Extensible Flexelds in Order Management


Apply guidelines when you set up an extensible exeld in Order Management Cloud.
• Unlike a descriptive exeld, you can add as many segments that you need.
• Use context to organize your business data into a concise area of the user interface element, such as a dialog.
• Organize your aributes into logical groups according to your display and usage requirements.
• Consider where an extensible exeld might be useful in the order capture and order fulllment lifecycle.
• An extensible exeld that you add on the sales order header is independent of an extensible exeld you add
on a fulllment line. Order Management doesn't communicate or transfer values between them, even if you
use the same name for each extensible exeld. If you require dependence between them, then create an order
management extension, then dene dependence logic in the extension.

For guidelines that describe how to use an extensible exeld in a business rule, see the Guidelines for Creating
Business Rules topic.

1541
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Dene Segments

Note.

• New segments you create. To simplify setup and maintenance, use the same value for the Code aribute and
the API Name aribute. You use API Name throughout the setup, such as during integration setup, with web
services, business rules, business intelligence, and so on. You can't modify Code or API Name after you create
the segment.
• Segments that already exist. Don't modify API Name. Extensible exeld logic examines API Name. If its
empty, then the logic uses the value in Code, so it isn't necessary to dene API Name. If you do modify API
Name, then your exeld might fail with unexpected results at run time.

1542
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

• Enter a unique code, name, and description for each segment. The Order Management work area doesn't
display these values, so use whatever nomenclature is most helpful to you during setup and maintenance.
• Don't include spaces in the Code aribute. Spaces will cause a run time error.

Import Source Orders

Apply guidelines when you use the order import template to import data for an extensible exeld.

• Assign the Table Column aribute of each segment so it references the correct column in the order import
template.
• Add a comment in Excel to document your set up.
• Use tab DOO_ORDER_HDRS_ALL_EFF_B_INT to capture extensible exeld details for order headers.
• Use tab DOO_ORDER_LINES_ALL_EFF_B_INT to capture extensible exeld details for fulllment lines.
• Use columns, such as ATTRIBUTE_CHAR1, to capture details for each aribute.
• Don't modify tab names or column names. Instead, add a comment.

You can't dene an extensible exeld on the order line entity. You can dene one only on the order header entity or
the fulllment line entity. The template uses the phrase DOO_ORDER_LINES, but it uses details that you add on tab
DOO_ORDER_LINES_ALL_EFF_B_INT to interact with extensible exelds on the fulllment line, not on the order line.

For details, see the Import Orders into Order Management topic.

This example illustrates how to set up the Compliance Info segment that references column ATTRIBUTE_CHAR1.

1543
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Integrate with Web Services During Order Import

Add extensible exeld details to the payload that Order Management uses to communicate with the web service.

• Get an example payload from the Example Web Service Payloads That Integrate Order Management topic. A
range of examples are available, such returns, coverage, congurations, and so on. These payloads include
most of the sales order data that you require.
• If you create your own payload, then create it according to the WSDL denition that the payload requires. For
details, see the Use Your Own Payload to Import Extensible Flexelds topic.
• Run the Publish Extensible Flexeld Aributes scheduled process.

1544
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

• Copy extensible exeld data from the log le that the scheduled process creates into the XSD le that contains
your payload. Copy this data onto each object that requires extensible exeld data. This approach helps to
keep your channel system synchronized with the set up in Order Management.
• Use the ADF import service. Don't use the SOA import service.

Here's an example payload that copies one section of code from the log le into the XSD le.

For details, see the Overview of Using Web Services to Integrate Order Management topic.

Integrate with Other Oracle Fusion Applications

Use an extensible exeld when you integrate with some other Oracle Fusion Application, such as Pricing, Receivables,
Shipping, Receiving, or Purchasing. You set up a service mapping that's similar to a service mapping that you set up for
Oracle Fusion Pricing. You use an extensible exeld to store values that the service mapping requires.

1545
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Note.

• Copy the name of the view object from the log le. The service mapping uses the view object to get data from
your extensible exeld. Use the log le that the Publish Extensible Flexeld Aributes scheduled process
creates.
• Use the _Custom sux when you dene each new entity.
• Use an integration algorithm to implement complex logic. For example, assume you must concatenate an
item with the coverage that covers the item, add quantity, then store the results in a descriptive exeld for
Accounts Receivable. You would use an integration algorithm to implement this requirement.

Create Order Management Extensions

1546
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Note.
• Include an If statement that makes sure each context and segment that your extension references exists and
contains a value. If you don't check for missing objects and empty values, then your extension might fail with
unpredictable results.
• Use the getOrCreateContextRow method to create or update a value in an extensible exeld. If the object
doesn't exist, then this method creates it, so it isn't necessary to determine whether the object exists before you
use this method to perform an update.
• Use Context Code when you reference an extensible exeld context.
• Use API Name when you reference an extensible exeld segment. If you don't specify API Name when you set
up the extensible exeld, then use Segment Code but with underscores ( _ ) instead of spaces ( ).
• Your Groovy code must traverse the context and the segment to get all data from the extensible exeld.
Here's an example that uses a while statement to traverse all data.
def complianceDetails = header.getOrCreateContextRow("ComplianceDetails");
complianceDetails.setAttribute("_ComplianceReason", "This has been set by pre submit extension.");

def lines = header.getAttribute("Lines");

1547
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

while( lines.hasNext() ) {
def line = lines.next();
def inventoryItemId = line.getAttribute("ProductIdentifier");
def orgId = line.getAttribute("InventoryOrganizationIdentifier");
def item = getItem(inventoryItemId, orgId);

String hazardous = item.getAttribute("HazardousMaterialFlag");


def packShipInstruction = line.getOrCreateContextRow("PackShipInstruction");

if( "Y".equals(hazardous) ) {
// get details for fulfill line context PackShipInstruction

packShipInstruction.setAttribute("_ShippingInstruction", "Hazardous Handling Required.");


}

Create Business Rules

If your fulllment system needs data that the predened aributes in a sales order don't provide, then use a value from
an extensible exeld as the criteria for seing the default value in some other sales order aribute.

Assume you set up an extensible exeld named Sample Requested. Here's the values it can contain.

• Complimentary
• Charge
• No Sample

You can create a transformation rule.

• If the value is Complimentary or Charge, then add a fulllment line for the sample item.

You can then set up a rule that populates price details for the sample lines according to whether the value is
Complimentary or Charge.

Make sure you run the defaulting rule during one of these types of transformations when you process the
transformation rule. You can't default an aribute value into an extensible exeld.

Type of Transformation Description

Pretransformation Use an extensible exeld when some other transformation logic requires the default aribute
  value.
 
For example, if you must use the defaulted aribute value to determine whether to add a free
sample item during transformation, then dene a pretransformation rule that sets the default
value.
 

Postransformation Use when transformation must occur before you run your defaulting rule.
   
For example, if you plan to add an item during transformation, and you also plan to use an
extensible exeld aribute on the order header to determine the defaulted value to set for the
new fulllment line.
 

Process Change Orders

1548
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Note.

• Identify your requirements for change management. For example, determine whether the orchestration
process must compensate when an extensible exeld value changes, and the action to take during
compensation, such as scheduling, calling Accounts Receivables, and so on.
• Compensate when a value that the orchestration process references changes.

◦ Any extensible exeld. Enable the Use Flexeld Aributes option on the header of the orchestration
process denition.
◦ A specic extensible exeld. Enable the Use Flexeld Aributes option in the Change Management
area of the orchestration process denition. Add it to the orchestration process step that references the
extensible exeld. Also dene a compensation paern on this step.

1549
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Use the compensation paern to specify the action to perform, such as Cancel, Create, Update, and so
on, depending on the value that changes. You can congure your set up to send an update when a single
value changes and to skip sending an update when other values change. This approach provides more
detailed control regarding the compensation you perform.

For example, you can write a compensation paern.

pseudocode:
If segment3 changes, then cancel task x, and then recreate task x.
If segment4 changes, then do nothing.
If segment5 changes, then call an update service.

For a detailed code example, see the Compensate Sales Orders That Change topic.
◦ To ignore changes to all extensible exeld values, make sure Use Flexeld Aributes for each step in the
Change Management area isn't enabled.

Change management ignores each change that the Order Entry Specialist makes to an extensible exeld value that
you dene on the sales order header.

Modify Reports

1550
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Note.
• The Order Entry Specialist can use the Sales Order report when creating or viewing a sales order.
• Add extensible exeld data to the report.
◦ Install Oracle BI Publisher Desktop,
◦ Use the Edit Sales Order Report action in BI Publisher. This action displays Sales Order Report in rich text
format so you can modify it.
◦ Right-click a eld, then click Copy.
◦ Use BI Publisher Properties to specify the source that the report uses to display data for the eld.
Use this format.

1551
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

<?context/segment?>

where
◦ context. Name of the extensible exeld context.
◦ / (forward slash). You must use the forward slash between context and segment.
◦ segment. Name of the extensible exeld segment.
◦ You must use a set of question marks ( ?? ) to enclose context/segment.
◦ You must use a set of angle brackets ( < > ) to enclose the question marks.

For example, assume you dene an extensible exeld that uses Context1 to store details about trade
compliance, and SegmentA to store the compliance description. Here's the code you use.

<?Context1/SegmentA?>

Modify Analytics

Oracle Transaction Business Intelligence (OTBI) provides analytic reporting. You can display extensible exeld data in
OTBI.

1552
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Note.

• Enable the BI Enabled option when you dene your extensible exeld.
• Run scheduled process Import Oracle Fusion Data Extensions for Transactional Business Intelligence. This
process updates OTBI so it displays your extensible exelds in area Subject Areas in OTBI.
• Add your extensible exelds from Subject Areas into a report in OTBI.
• Here's the format that OTBI uses.

Category_Context

For example.

1553
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Additional Fulfillment Line Information_Additional Details1

where
◦ Additional Fulfillment Line Information is the category
◦ Additional Details1 is the context

Related Topics
• Overview of Importing Orders into Order Management

Set Up
Set Up Extensible Flexelds in Order Management
Set up an extensible exeld in Order Management Cloud.
In this example, set up an extensible exeld so the Order Entry Specialist can view sales order status from the source
order.

Summary of the Steps


1. Create the context.
2. Associate the context with the category.
3. Add the page to the category.
4. Deploy the exeld.
5. Publish the extensible exeld.
6. Test your set up.

1554
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

For background details, see the Overview of Flexelds topic.

This topic includes example values. You might use dierent values, depending on your business requirements.

Create the Context


1. In the Navigator, click Setup and Maintenance.
2. In the Setup and Maintenance work area, go to the task.

◦ Oering: Order Management


◦ Functional Area: Orders
◦ Task: Manage Order Extensible Flexelds
3. On the Manage Order Extensible Flexelds page, enter the value, then click Search.

Aribute Value

Name Fulllment Line Information


   

4. On the Manage Extensible Flexelds page, click Actions > Edit.


5. On the Edit Extensible Flexeld page, click Manage Contexts.
6. On the Manage Contexts page, click Search.

Notice that the search results displays a list of predened contexts. For this example, you will add a new
context.
7. Click Actions > Create.
8. On the Create Context page, set values.

Aribute Value

Display Name SourceLineInfo


   

Code SourceLineInfo
   

API Name Sourcelineinfo


   

Behavior Single Row


   
You must use Single Row for any extensible exeld that you use in Order Management.
 

Values for some aributes, such as Code, automatically populate. In general, don't modify the predened
values.
9. On the Context Usages tab, click Actions > Create, set the value, then click Save.

1555
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Aribute Value

Name Additional Fulllment Line Information


   

10. In area Context Sensitive Segments, click Actions > Create.


11. On the Create Segment page, set values. For details about these aributes, see the Flexeld Segment
Properties topic.

Aribute Value

Name Status
   

Code Status
   

API Name status


   
The Create Segment page automatically sets the value for API Name. In this example, it sets
the value to status, and uses lower case for the rst leer. You must use the same value for
API Name that the XML uses when it creates the sales order.
 

Enabled Contains a check mark.


   

Data Type Character


   

Table Column
  ATTRIBUTE_CHAR1

You can use choose any column. Choose a column you aren't already using to store some
other value.

To view the values that are available, click the down arrow, then click Search. In the Search
and Select dialog, remove any values that display in the Name aribute, then click Search.

Value Set 10 Characters


   
Use any value.
 

Prompt Status
   

Display Type Text Box


   

12. Click Save and Close.


13. On the Edit Context page, set the Sequence, if necessary, then click Save and Close.

1556
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Associate the Context with the Category


1. On the Edit Extensible Flexeld page, in the Category area, in the Display Name column, click the text
Additional Fulllment Line Information.

Notice that the Category Details area populates the list in the Associated Contexts tab.
2. In the Associated Contexts tab, click Actions > Select and Add.
3. In the Select and Add dialog, in the Name aribute, enter SourceLineInfo, which is the context you created
earlier in this topic, then click Search.
4. In the search results, immediately above OK, click the row, then click Apply > OK.
5. On the Edit Extensible Flexeld page, click Save.
6. In the Category Details area, click Pages.
7. On the Pages tab, click Actions > Create.

Add the Page to the Category


To determine where the extensible exeld displays in the Order Management work area, you use the Pages tab to
assign each context to a page. The sequence number determines the sequence that Order Management uses when it
displays the extensible exeld.
1. In the Create Page dialog, set values, then click OK.

Aribute Value

Display Name Source Line Info


   

Code SourceLineInfo
   
Don't include spaces.
 

Usage Additional Fulllment Line Information


   

2. On the Edit Extensible Flexeld page, click Save.


3. In the Category Details area, in the Sequence aribute, enter a number.
4. In the Source Line Info area, click Actions > Select and Add.
5. In the Select and Add dialog, search for the value.

Aribute Value

Name SourceLineInfo
   

6. In the search results, click the row that contains SourceLineInfo in the Name column, then click Apply > OK.
7. On the Edit Extensible Flexeld page, click Save and Close.

Deploy the Flexeld


1. On the Manage Order Extensible Flexelds page, in the search results, click the row that includes the value.

1557
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Column Value

Name Fulllment Line Information


   

2. Click Deploy Flexeld.


3. In the Conrmation dialog, wait for the deployment to nish, then click OK.
4. On the Manage Order Extensible Flexelds page, verify that Deployment Status contains a check mark, then
click Done.

Publish the Extensible Flexeld


You must publish each time you change the set up for your extensible exeld. If you're using an extensible exeld
in a business rule or processing constraint, then you must publish so you can reference the exeld from a rule fact or
constraint.
1. In the Navigator, click Scheduled Processes.
2. On the Scheduled Processes page, click Actions > Schedule New Process.
3. In the Schedule New Process dialog, search for Publish Extensible Flexeld Aributes, then click OK.
4. In the Process Details dialog, click Submit.
5. In the Conrmation dialog, copy the Process ID to the clipboard, such as 68721, then click OK.
6. On the Scheduled Processes page, click Actions > Refresh, then notice the status of your process.
7. The status is likely Running. Wait a few minutes, then click Refresh again until Status is Succeeded.
Example Payload That Includes Extensible Flexelds

extensible_exeld_example_payload.xml includes code that's part of the payload that Order Management creates for
the sales order when it submits a sales order that includes an extensible exeld. It includes the XML that denes the
namespace. Click the Download Files link in the Related Topics section at the end of this topic to access this le.
• Context Code determines SourceLineInfo.
• Segment API Name determines ns22:status.
• The status value is FRAUD_HOLD. You will conrm this value later when you create a sales order.
• For details about how to determine aribute names in the namespace for an extensible exeld, see Document
ID 2195245.1 (How to Include EFF Aributes in the Order Creation Payload - Invoking Web Service) on My Oracle
Support.

Test Your Set Up


Verify that the extensible exeld displays correctly in the Order Management work area.
1. In the Navigator, click Order Management.
2. Create a new sales order, then add an order line.
3. At the far right of the order line, click the down arrow, then click Edit Additional Information.
4. In the Edit Additional Information dialog, verify that the Source Line Info displays, and that it includes status
value FRAUD_HOLD that you noticed earlier in this topic when you examined the payload.
5. As an option, use SQL (Structured Query Language) to query extensible_exeld_example_sql.xml. Verify the
values you dened in this topic. Click the Download Files link in the Related Topics section at the end of this
topic to access this le.

Her's the values that your SQL should return.

1558
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Aribute Value

SOURCE_ ORDER_NUMBER PMC-170113-001


   

ORDER_NUMBER 48030
   

FULFILL_ LINE_NUMBER 1
   

CONTEXT_CODE SourceLineInfo
   

ATTRIBUTE_ CHAR1 FRAUD_HOLD


   

Set Up Extensible Flexelds When Using Oracle BI Publisher


If you use Oracle BI Publisher, then make sure you do these steps when you set up your extensible exeld. For
assistance, contact Oracle support.
1. Run the Publish Extensible Flexeld Aributes scheduled process.
2. On the Manage Extensible Flexeld page, click Actions > Refresh and Deploy Oine.
3. Deploy your extensible exeld. For details, see the Deploy Extensible Flexelds in Order Management topic.
4. Download the exeld archive.
◦ On the Manage Extensible Flexeld page, click Actions > Download Flexeld Archive.
◦ Wait for the dialog to display 100%, then click Download.
◦ In the Opening dialog, click OK.
◦ Save the le to a folder of your choice.
◦ Unzip the le.
5. Reset the Financial Analytics container.

Related Topics
• Download Files
• How to Include EFF Aributes in the Order Creation Payload - Invoking Web Service
• Flexeld Segment Properties

Deploy Extensible Flexelds


Publish and deploy an extensible exeld in Order Management.
Summary of the Steps
1. Publish extensible exeld aributes.
2. Deploy extensible exeld aributes.

Publish Extensible Flexeld Aributes


Publish extensible exeld aributes into the business rules and processing constraints that Order Management uses.
You publish so you can reference these aributes from rules and constraints.
1. Sign in with a user that includes job role DOO_ORDER_ADMINISTRATOR.

1559
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

The scheduled process you run requires this role.


2. In the Navigator, click Scheduled Processes.
3. On the Scheduled Processes page, click Schedule New Process, then run the Publish Extensible Flexeld
Aributes scheduled process.
4. Click Actions > Refresh, then verify the value. It might be necessary to wait a few minutes and refresh.

Aribute Value

Status Succeeded
   

5. In the Navigator, click Setup and Maintenance.


6. On the Setup page, click Order Management.
7. In the Setup and Maintenance work area, go to the task.
◦ Oering: Order Management
◦ Functional Area: Orders
◦ Task: Manage Order Extensible Flexelds
8. On the Manage Order Extensible Flexelds page, click Search, then verify that the search results contains a list
of extensible exelds.

Deploy Extensible Flexeld Aributes


1. In the Search Results, choose the extensible exeld you must deploy, then click Actions > Edit.
2. On the Edit Extensible Flexeld page, dene contexts.
3. The context determines the aributes that display according to criteria you specify. A context is part of a
hierarchy of aributes.
◦ Entity and entity category represent the top level of the hierarchy.
◦ Contexts represent the middle levels.
◦ Aributes represent the lowest level.
4. Use the Pages tab in the Categories Details area to dene pages and to associate contexts to Order
Management pages.
5. Use the Manage Order Extensible Flexelds page to deploy each of your extensible exelds.
6. Sign out of Order Management, then sign back in to Order Management.
If you create a new segment, create a new context, change the default on a segment, and so on, then you must
do this step so Order Management can update your changes throughout the Order Management work area.

Extensible Flexelds You Can Publish


You can publish only the extensible exeld aributes that come predened with Order Management and that are part
of the predened extensible categories.

Entity Predened Category

Headers DOO_ HEADERS_ ADD_INFO

1560
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Entity Predened Category

   

Lines DOO_ LINES_ ADD_INFO


   

FulllLines DOO_ FULFILL_ LINES_ ADD_INFO


   

Payments DOO_ PAYMENTS_ ADD_INFO


   

PriceAdjustments DOO_ PRICE_ ADJUSTMENTS_ ADD_INFO


   

SalesCredits DOO_ SALES_ CREDITS_ ADD_INFO


   

OrchestrationTaskActivity DOO_ ACTIVITIES_ ADD_INFO


   

FulllLineDetails DOO_ FULFILL_ LINE_ DTLS_ADD_INFO


   

LotSerialNumber DOO_ LOT_ SERIAL_ NUM_ADD_INFO


   

The Category Hierarchy and Precongured Context Values aren't available for these extensible exelds.

Use Your Own Payload to Import Extensible Flexelds


You typically modify a predened, example payload that imports an extensible exeld. But you can also create your
own payload that meets your specic requirements.
• You will create an example payload that uses the ReceiveOrderRequestService web service to import a test
extensible exeld.
• This topic describes the minimum details you must include.
• To modify an example predened payload instead, see the Example Web Service Payloads That Integrate Order
Management topic.

Summary of the Steps


1. Create and import the payload.
2. Verify you imported the context code.
3. Verify you imported the exeld segment.

Create and Import the Payload


1. Create the payload.
◦ Add header details.
<ns2:AdditionalHeaderInformationCategories xsi:type="ns12:j_HeaderEffDooHeadersAddInfoprivate"
xmlns:ns3=http://xmlns.oracle.com/apps/scm/doo/processOrder/service/
xmlns:ns12=http://xmlns.oracle.com/apps/scm/doo/processOrder/flex/headerCategories/
xmlns:ns22=http://xmlns.oracle.com/apps/scm/doo/processOrder/flex/headerContextsB/
xmlns:ns8="http://xmlns.oracle.com/apps/scm/doo/processOrder/model/">

1561
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

<ns8:Category>DOO_HEADERS_ADD_INFO</ns8:Category>
<ns8:SourceTransactionLineIdentifier>1</ns8:SourceTransactionLineIdentifier>
<ns8:SourceTransactionScheduleIdentifier>1</ns8:SourceTransactionScheduleIdentifier>
<ns12:HeaderEffBPREVIOUS_5FSO_5FREFprivateVO>
<ns8:ContextCode>PREVIOUS_SO_REF</ns8:ContextCode>
<ns22:locationname>West Coast</ns22:locationname>
</ns12:HeaderEffBPREVIOUS_5FSO_5FREFprivateVO>
</ns2:AdditionalHeaderInformationCategories>

◦ Add fulllment line details.

<ns2:AdditionalFulfillmentLineInformationCategories
xsi:type="ns12:j_FulfillLineEffDooFulfillLinesAddInfoprivate"
xmlns:ns12="http://xmlns.oracle.com/apps/scm/doo/processOrder/flex/
fulfillLineCategories/"xmlns:ns22=http://xmlns.oracle.com/apps/scm/doo/processOrder/flex/
fulfillLineContextsB/
xmlns:ns8="http://xmlns.oracle.com/apps/scm/doo/processOrder/model/">
<ns8:Category>DOO_FULFILL_LINES_ADD_INFO</ns8:Category>
<ns8:SourceTransactionLineIdentifier>1</ns8:SourceTransactionLineIdentifier>
<ns8:SourceTransactionScheduleIdentifier>1</ns8:SourceTransactionScheduleIdentifier>
<ns12:FulfillLineEffBADD_CONTEXT_HEREprivateVO>
<ns8:ContextCode>ADD_CONTEXT_HERE</ns8:ContextCode>
<ns22:ADD_SEGMENT_HERE>Working</ADD_SEGMENT_HERE>
</ns12:FulfillLineEffBADD_CONTEXT_HEREprivateVO>
</ns2:AdditionalFulfillmentLineInformationCategories>
</ns2:OrchestrationOrderRequestLine>

where

• You change ADD_CONTEXT_HERE to the context code.


• You change ADD_SEGMENT_HERE to the segment.
• You add extensible exelds details as the last line of the order line details, immediately before </
ns2:OrchestrationOrderRequestLine>.

For example.

<ns2:AdditionalFulfillmentLineInformationCategories
xsi:type="ns12:j_FulfillLineEffDooFulfillLinesAddInfoprivate"
xmlns:ns12=http://xmlns.oracle.com/apps/scm/doo/processOrder/flex/fulfillLineCategories/
xmlns:ns22=http://xmlns.oracle.com/apps/scm/doo/processOrder/flex/fulfillLineContextsB/
xmlns:ns8="http://xmlns.oracle.com/apps/scm/doo/processOrder/model/">
<ns8:Category>DOO_FULFILL_LINES_ADD_INFO</ns8:Category>
<ns8:SourceTransactionLineIdentifier>1</ns8:SourceTransactionLineIdentifier>
<ns8:SourceTransactionScheduleIdentifier>1</ns8:SourceTransactionScheduleIdentifier>
<ns12:FulfillLineEffBPCTESTAUGprivateVO>
<ns8:ContextCode>PCTESTAUG</ns8:ContextCode>
<ns22:pctestaugseg1>Working</pctestaugseg1>
</ns12:FulfillLineEffBPCTESTAUGprivateVO>
</ns2:AdditionalFulfillmentLineInformationCategories>
</ns2:OrchestrationOrderRequestLine>

where

◦ PCTESTAUG is the context.


◦ pctestaugseg1 is the segment. PCTESTAUG includes only one segment.

Notice the value for the FulllLineEBPCTESTAUGprivateVO virtual object. You will verify it later.
2. Use ReceiveOrderRequestService to import the payload. For details, see the Overview of Using Web Services to
Integrate Order Management topic.

1562
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Verify You Imported the Context Code


1. Open SoapUI, then create a project.

Aribute Value

Project Name Create Order with EFF Test


   

Initial WSDL hp: //host:port/ soa-infra/ services/ default/


  DooDecompReceiveOrderExternalComposite/ ReceiveOrderRequestServiceWSDL
 
Replace host:port with your server address.
 

Create Requests Enabled.


   

2. Verify the virtual object.

◦ In the Projects area, double click ReceiveOrderRequestServiceBinding.

1563
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

◦ On the Overview tab, in the Denition Parts area, click the link next to J_FulllLineEFFDooFulllLinesAdd.

Your browser displays the XSD.

<?xml version='1.0' encoding='UTF-8'?>


<xsd:schema xmlns:ns0="http://xmlns.oracle.com/apps/scm/doo/processOrder/flex/
fulfillLineContextsB/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:sdoXML="commonj.sdo/
xml" xmlns:sdo="commonj.sdo" xmlns="http://xmlns.oracle.com/apps/scm/doo/processOrder/flex/
fulfillLineCategories/" targetNamespace="http://xmlns.oracle.com/apps/scm/doo/processOrder/flex/
fulfillLineCategories/" elementFormDefault="qualified">
<xsd:import schemaLocation="../fulfillLineContextsB/Lineprcoverride.xsd" namespace="http://
xmlns.oracle.com/apps/scm/doo/processOrder/flex/fulfillLineContextsB/"></xsd:import>
<xsd:import schemaLocation="../fulfillLineContextsB/Pctestaug.xsd" namespace="http://
xmlns.oracle.com/apps/scm/doo/processOrder/flex/fulfillLineContextsB/"></xsd:import>

1564
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

<xsd:import schemaLocation="https://eczc-test.scm.em2.oraclecloud.com:443/soa-infra/services/
default/DooDecompReceiveOrderExternalComposite/soa-cp/xml/sdoXML.xsd" namespace="commonj.sdo/
xml"></xsd:import>
<xsd:import schemaLocation="https://eczc-test.scm.em2.oraclecloud.com:443/soa-infra/services/
default/DooDecompReceiveOrderExternalComposite/soa-cp/xml/sdoModel.xsd" namespace="commonj.sdo"></
xsd:import>
<xsd:include schemaLocation="j_FulfillLineEffCategories.xsd"></xsd:include>
<xsd:complexType name="j_FulfillLineEffDooFulfillLinesAddInfoprivate">
<xsd:annotation>
<xsd:appinfo source="http://xmlns.oracle.com/adf/svc/metadata/">
<key xmlns="http://xmlns.oracle.com/adf/svc/metadata/">
<attribute>FulfillLineId</attribute>
</key>
</xsd:appinfo>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="j_FulfillLineEffCategories">
<xsd:sequence>
<xsd:element name="FulfillLineEffBLinePrcOverrideprivateVO" type="ns0:Lineprcoverride"
minOccurs="0" sdoXML:dataType="sdo:DataObject"></xsd:element>
<xsd:element name="FulfillLineEffBPCTESTAUGprivateVO" type="ns0:Pctestaug" minOccurs="0"
sdoXML:dataType="sdo:DataObject"></xsd:element>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="j_FulfillLineEffDooFulfillLinesAddInfoprivate"
type="j_FulfillLineEffDooFulfillLinesAddInfoprivate"></xsd:element>
</xsd:schema>

◦ In dataType="sdo:DataObject", verify that xsd:element name= contains


FulllLineEBPCTESTAUGprivateVO.

This value must match the value you included earlier in your import payload. For example,
<ns12:FulfillLineEffBPCTESTAUGprivateVO>.
3. Verify the context code.

◦ Sign into Order Management Cloud.


◦ In the Setup and Maintenance work area, go to the task.

• Oering: Order Management


• Functional Area: Orders
• Task: Manage Order Extensible Flexelds
◦ On the Manage Extensible Flexelds page, search for the value.

Aribute Value

Flexeld Code DOO_ FULFILL_ LINES_ ADD_INFO


   

◦ In the search results, click Actions > Edit.


◦ On the Edit Extensible Flexeld page, click Manage Contexts.
◦ On the Manage Contexts page, search for the value.

1565
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Aribute Value

Code PCTESTAUG
   

◦ Verify the search results display your context, then click Actions > Edit.
◦ On the Edit Context page, verify the context contains the values you imported.

On the header.

Aribute Value

Code PCTESTAUG
   

API Name Pctestaug


   
Note this value. You will use it later when you verify the segment.
 

In the Context Sensitive Segments area.

Aribute Value

Name PCTESTAUGSEG1
   

Code PCTESTAUGSEG1
   

On the Context usages tab, make sure a row exists that contains this value.

Aribute Value

Name Additional Fulllment Line Information


   

1566
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

For example.

If you prefer not to use the Manage Order Extensible Flexelds page, then as an alternative, run a SQL query
against the Oracle database.

select
fdct.application_ID,
fdct.descriptive_flexfield_code,
fdct.context_code,
fdcb.context_identifier,
fdcb.enabled_flag,
fdct.description

1567
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

from
fnd_df_contexts_TL fdct,
fnd_df_contexts_B fdcb
where
fdct.context_code = fdcb.context_code and
fdct.application_id = fdcb.application_id and
fdct.language = 'US' and
fdct.descriptive_flexfield_code = 'DOO_FULFILL_LINES_ADD_INFO';

Here's an example of data the query might return.

APPLICATION_ID DESCRIPTIVE_FLEXFIELD_CODE
CONTEXT_CODE CONTEXT_IDENTIFIER ENABLED_FLAG

10008 DOO_ FULFILL_ LinePrcOverride Lineprcoverride Y


  LINES_ ADD_INFO      
 

10008 DOO_ FULFILL_ Accounting_ Rule AccountingRule N


  LINES_ ADD_INFO      
 

10008 DOO_ FULFILL_ PCTESTAUG Pctestaug Y


  LINES_ ADD_INFO      
 

PCTESTAUG is the CONTEXT_CODE for this example.

Verify You Imported the Flexeld Segment


1. In SoapUI, in the Projects area, double click ReceiveOrderRequestServiceBinding.
2. On the Overview tab, in the Denition Parts area, click the link next to Pctestaug.xsd.

1568
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Pctestaug is the value of aribute API Name you noted earlier on the Edit Context page.

Your browser displays the XSD.

<?xml version='1.0' encoding='UTF-8'?>


<xsd:schema xmlns:ns0="http://xmlns.oracle.com/apps/scm/doo/processOrder/model/" xmlns:xsd="http://
www.w3.org/2001/XMLSchema" xmlns="http://xmlns.oracle.com/apps/scm/doo/processOrder/flex/
fulfillLineContextsB/" targetNamespace="http://xmlns.oracle.com/apps/scm/doo/processOrder/flex/
fulfillLineContextsB/" elementFormDefault="qualified"><xsd:include xmlns:id="Pctestaug-xsd"
schemaLocation="Pctestaug.xsd"></xsd:include>
<xsd:import schemaLocation="../../model/FulfillLineEff.xsd" namespace="http://xmlns.oracle.com/apps/
scm/doo/processOrder/model/"></xsd:import>
<xsd:complexType name="Pctestaug">
<xsd:annotation>
<xsd:appinfo source="http://xmlns.oracle.com/adf/svc/metadata/">
<key xmlns="http://xmlns.oracle.com/adf/svc/metadata/">

1569
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

<attribute>EffLineId</attribute>
</key>
</xsd:appinfo>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="ns0:FulfillLineEff">
<xsd:sequence>
<xsd:element name="pctestaugseg1" type="xsd:string" minOccurs="0" nillable="true"></xsd:element>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="pctestaug" type="Pctestaug"></xsd:element>
</xsd:schema>

3. In xsd:extension base="ns0:FulfillLineEff", verify that xsd:element name= contains pctestaugseg1.

This value must match the value you included earlier in your import payload.

If you prefer not to use SoapUI to verify the exeld segment, then as an alternative, run a SQL query against
the Oracle database.

select
fdst.DESCRIPTIVE_FLEXFIELD_CODE,
fdst.CONTEXT_CODE,
fdst.SEGMENT_CODE,
fdst.NAME,
fdsb.SEGMENT_IDENTIFIER,
fdsb.COLUMN_NAME,
fdsb.SEQUENCE_NUMBER
from
fnd_df_segments_tl fdst,
fnd_df_segments_b fdsb
where
fdst.APPLICATION_ID = fdsb.APPLICATION_ID and
fdst.ENTERPRISE_ID = fdsb.ENTERPRISE_ID and
fdst.DESCRIPTIVE_FLEXFIELD_CODE = fdsb.DESCRIPTIVE_FLEXFIELD_CODE and
fdst.CONTEXT_CODE = fdsb.CONTEXT_CODE and
fdst.SEGMENT_CODE = fdst.SEGMENT_CODE and
fdst.language = 'US' and
fdst.descriptive_flexfield_code = 'DOO_FULFILL_LINES_ADD_INFO'
order by
fdst.CONTEXT_CODE,
fdsb.SEQUENCE_NUMBER;

Here's an example of data the query might return.

DESCRIPTIVE_FLEXFIELD_CODE
CONTEXT_CODE SEGMENT_CODE NAME SEGMENT_IDENTIFIERCOLUMN_NAME

DOO_ FULFILL_ Accounting_ Rule PC 1 pc1 PC 1 ATTRIBUTE_


LINES_ ADD_INFO         CHAR1
   

DOO_ FULFILL_ LinePrcOverride SalePrcOverrideVal SalePrcOverrideVal saleprcoverrideval ATTRIBUTE_


LINES_ ADD_INFO         NUMBER1
   

DOO_ FULFILL_ PCTESTAUG PCTESTAUGSEG1 PCTESTAUGSEG1 pctestaugseg1 ATTRIBUTE_


LINES_ ADD_INFO         CHAR7
   

1570
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

The pctestaugseg1 value in the SEGMENT_IDENTIFIER column must match the value in <ns22:pctestaugseg1>
from your import payload.

Related Topics
• Use SQL to Query Order Management Data
• Example Web Service Payloads That Integrate Order Management
• Guidelines for Using Web Services to Integrate Order Management

Update Extensible Flexelds During Fulllment


Call the FulllmentResponse web service to update an extensible exeld on a sales order after your user already
submied the sales order to fulllment.
Make the call only when the orchestration process is on a wait step.

Here's an example payload.


<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns1:FulfillmentRequest
xmlns:ns1="http://xmlns.oracle.com/apps/scm/doo/taskLayer/fulfillOrder/
DooTaskFulfillOrderResponseInterfaceComposite">
<ns1:FLine
xmlns:ns2="http://xmlns.oracle.com/apps/scm/doo/common/process/model/">
<!-- Mandatory attributes 3 below, make sure you provide the correct value-->
<ns2:FulfillLineId>300100095720462</ns2:FulfillLineId>
<ns2:SourceOrderSystem>LEG</ns2:SourceOrderSystem>
<ns2:TaskType>FulfillOrder</ns2:TaskType>
<!-- Optional attributes -->
<ns2:OrderedQuantity unitCode="">11</ns2:OrderedQuantity>
<ns2:RecordNumber>1</ns2:RecordNumber>
<!-- Mandatory attributes assuming you want to update EFFs -->
<ns2:AdditionalFulfillLineInformationCategories
xsi:type="ns12:j_FulfillLineEffDooFulfillLinesAddInfoprivate"
xmlns:ns12="http://xmlns.oracle.com/apps/scm/doo/processOrder/flex/fulfillLineCategories/"
xmlns:ns22="http://xmlns.oracle.com/apps/scm/doo/processOrder/flex/fulfillLineContextsB/"
xmlns:ns8="http://xmlns.oracle.com/apps/scm/doo/processOrder/model/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ns8:Category>DOO_FULFILL_LINES_ADD_INFO</ns8:Category>
<!-- Nodes below repeats for each of the context that you want to update -->
<!-- The node itself contains the name of the virtual object for the context-->
<!-- To get these details, run the Publish Extensible Flexfields scheduled process-->
<!-- This example assumes you are updating two contexts -->
<ns12:FulfillLineEffBPackShipInstructionprivateVO>
<ns8:ContextCode>PackShipInstruction</ns8:ContextCode>
<ns22:_PackingInstruction>NKResponsePack</ns22:_PackingInstruction>
<ns22:_ShippingInstruction>NKResponseShip</ns22:_ShippingInstruction>
<ns22:_ShippingCost>31</ns22:_ShippingCost>
<ns22:_NeedbyDate>2016-04-21</ns22:_NeedbyDate>
<ns22:_PickDate>2016-04-21T12:12:12</ns22:_PickDate>
</ns12:FulfillLineEffBPackShipInstructionprivateVO>
<ns12:FulfillLineEffBFulfillLineContext1privateVO>
<ns8:ContextCode>FulfillLineContext1</ns8:ContextCode>
<ns22:_FL1AttributeChar1>FLC1-Resp</ns22:_FL1AttributeChar1>
<ns22:_FL1AttributeChar2>FLC2-Resp</ns22:_FL1AttributeChar2>
<ns22:_FL1AttributeNum1>620</ns22:_FL1AttributeNum1>
<ns22:_FL1AttributeDate1>2016-03-13</ns22:_FL1AttributeDate1>
<ns22:_FL1AttributeDateTime1>2016-03-13T12:12:12</ns22:_FL1AttributeDateTime1>
</ns12:FulfillLineEffBFulfillLineContext1privateVO>
</ns2:AdditionalFulfillLineInformationCategories>
</ns1:FLine>
</ns1:FulfillmentRequest>
</soap:Body>

1571
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

</soap:Envelope>

where

• FulllLineId identies your fulllment line, such as 300100095720462.


• SourceOrderSystem identies your source system, such as LEG.
• Replace values for other aributes, as necessary, such as PackingInstruction, dates, times, and so on.

Related Topics
• Guidelines for Integrating Order Management

Use Rich Text Files to Print Extensible Flexeld Data in Order Headers
Use an RTF le (Rich Text File) to print extensible exeld data in the order header.
1. Download, then install the BI Publisher for Microsoft Word plugin so you can edit the RTF layout. Select a
version that's compatible with your version of Microsoft, such as Oracle BI Publisher Desktop 11.1.1.9.0 for 32 bit
Oce on Windows.
2. Notice the BI Publisher option in the menu bar.

1572
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

3. Set the BI Publisher related properties in the RTF template. See the BI Publisher documentation for details.

1573
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

4. Access the line extensible exeld.

To view an example rtf le, click Download Files in the Related Links section at the end of this topic, then open
sales_order_report_with_extensible_exeld.rtf.

1574
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

5. Examine the example XML payload that represents a sales order that you send to BIP to create the report.

6. Create a new template.


7. Edit the Sales Order Report.
8. Upload the new template to Sales Order Report.
9. Notice that the new template is now available in the Template menu on the view document dialog.

Set the new template as the default template in BI Publisher.

1575
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

1576
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Related Topics
• Download Files

Business Rules
Use Extensible Flexelds in Transformation Rules
Use a transformation rule to add or change data in a fulllment line. The rule determines information to add or change
according to details that already exist in the fulllment order.
You will create a rule.

• If Preferred customer places a sales order that includes AS54888 Desktop Computer on or before 01/01/2019
12:00 AM, then set Shipment Priority to High Priority, and add a free printer to the shipment.

1577
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Create a rule that references an extensible exeld that stores loyalty details.

Summary of the Steps

1. Create pretransformation rule.


2. Create product transformation rule.
3. Create posransformation rule.
Assume you already created extensible exeld Loyalty Status.

For details about how to create a business rule, see the Overview of Using Business Rules With Order Management
topic.

This topic includes example values. You might use dierent values, depending on your business requirements.

1578
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Create Pretransformation Rule


Here's the rule you will create.

Do it.
1. Create the rule.
◦ In the Navigator, click Setup and Maintenance.
◦ In the Setup and Maintenance work area, go to the task.
• Oering: Order Management
• Functional Area: Orders
• Task: Manage Pretransformation Rules for Sales Orders
◦ On the Manage Pretransformation Defaulting Rules page, click Create New Rule.
◦ Set values.

Aribute Value

Name Expedite Shipping for Loyal Customer


   

1579
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Aribute Value

Description If loyal customer places a sales order that includes AS54888 Desktop Computer on or
  before promotion date, then add a free printer to the sales order.
 

2. Create the If statement.

◦ Click in the IF area to expand it.


◦ On the Aributes tab, expand Order Header > Header EFF Categories > Additional Header
Information > Header Loyalty Status.
◦ Click Loyalty Status, drag it, then drop it into the IF area.

◦ In the Create Condition dialog, set the operator to Is Equal To.

◦ Enter Preferred, then click OK.


3. Add the And condition for the computer.

◦ Click And.
◦ In the Create Condition dialog, enter item, wait a moment, then click Item (Item Denition).

1580
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

◦ Set the operator to =.


◦ Click Search.
◦ In the Search dialog, search for AS54888, then click OK.
4. Add the And condition for the date.

◦ Click And.
◦ In the Create Condition dialog, enter ordered, wait a moment, then click Ordered Date (Order Header).
◦ Set the operator to is before.

◦ Click Select Date and Time, set it to 01/01/2019 12:00 AM, then click OK > OK.
5. Create the Do statement.

◦ Click Then > Do > New Action > Set a Value, then click .
◦ In the Create Action dialog, enter ship, wait a moment, then click Shipment Priority (Order Header).
◦ Click Search.
◦ In the Search dialog, click Advanced > Search, then notice the dialog displays values you can set for this
aribute.

This functionality helps make sure you specify a value that Order Management can use and understand
for the aribute. For example, Shipment Priority can contain only alphabetic data.
◦ In the Meaning list, click High Priority > OK > OK > Save and Close.
6. Activate and publish your rule.

Create Product Transformation Rule


Use the value in the Loyalty Status extensible exeld as criteria to make other fulllment changes, such as add a
fulllment line for the free printer.

Use aributes to dene the object hierarchy of the sales order.

Aribute Usage Hierarchy

Determine whether customer is


preferred according to the value of Header
the Loyalty Status extensible exeld Header EFF Category
on the order header. Header EFF Context
 

Use the InventoryItemId aribute


on the fulllment line to identify the Header
computer. Line
  Fulfillment Line

Use the OrderedDate aribute on the


order header to identify the date. Header
 

Add a new fulllment line to the sales


order for the printer. Header
  Fulfillment Line

1581
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Create the Rule

1. In the Setup and Maintenance work area, go to the task.

◦ Oering: Order Management


◦ Functional Area: Orders
◦ Task: Manage Product Transformation Rules
2. On the Manage Product Transformation Rules page, in the View list, click TransformationDT.

3. To the right of View TransformationDT, click down arrow > Expand > Add Rule > Show Advanced Seings,
then set values.

Aribute Value

Name Add Printer for Loyal Customers


   

Description If loyal customer places a sales order that includes AS54888 Desktop Computer, on or before
  promotion date, then add a free printer to the sales order.
 

Eective Date Always


   

Priority Medium
   

1582
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Aribute Value

Active Contains a check mark


   

Advanced Mode Contains a check mark


   

4. Click Add Paern to add each paern.

Paern Operand Fact

header is a OrderTransformationRules. HeaderVO


     

line is a OrderTransformationRules. LineVO


     

ine is a OrderTransformationRules. FulllLineVO


     

headerEFFcat is a OrderTransformationRules.
    jHeaderEDooHeadersAddInfoprivateVO
 

headerEFFCtxt is a OrderTransformationRules.
    headerEFFcat.
HeaderEBLoyalty5FStatusprivateVO
 

Each paern denes one level of the hierarchy.

1583
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

For example, here's the rule that denes the rst paern, and the cursor is positioned to begin dening the
second paern.

Here's how your set up should look.

1584
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Dene the Hierarchy

You will dene this hierarchy.


header
line
fline
headerEFFcat
headerEFFctxt

To dene the hierarchy, create a test for each paerns.

1585
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Parent Paern Fact Operand Child Paern

header header. OrderLine contains line


       

header header. HeaderECategories is headerEFFcat


       

line line. OrderFulllLine contains ine


       

headerEFFcat headerEFFcat. contains headerEFFCtxt


  HeaderEBLoyalty5FStatusprivateVO
   
 

1586
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

To create a test, click Add Test (green icon underneath the paern), then click Simple Test.

Dene Test Criteria

Create the test criteria that identies AS54888 Desktop Computer. If you include optional aributes, then make sure you
include a NOT NULL check for each optional aribute to avoid the NullPointerExceptions runtime error.

Create tests.

Paern Fact Operand Value

header header. OrderedDate is "01/01/2019"

1587
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Paern Fact Operand Value

       

ine ine. InventoryItemId is "54888"


       

headerEFFctxt headerEFFCtxt. loyaltyStatus isn't null


       

headerEFFctxt headerEFFCtxt. loyaltyStatus is "Preferred"


       

Create them in the same way you created tests when you dened the hierarchy. You must include the double quotation
marks ( " ) as part of the value, where indicated. For example.

1588
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Create the Action

Create the action that adds a fulllment line for the free printer.

1. In the Then area, click Add Action > Assert New.


2. You must add a new fulllment line, so enter AddNew > OrderTransformationRules.AddNewOrderLine.
3. In the Then area, click Edit Properties.
4. In the Properties dialog, set values, then click OK.

Name Value

newItemId 4954L

1589
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Name Value

   
Assume 4954L identies the printer.
 

viewRowImpl ine. viewRowImpl


   

5. Make sure your set up looks like this.

6. Click Save and Close.

Create Posransformation Rule


Order Management must add values to some fulllment line aributes when it creates the fulllment line for the printer.
You use a posransformation rule to add the values.

1590
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Here's the rule you will create.

Do it.

1. In the Setup and Maintenance work area, go to the task.

◦ Oering: Order Management


◦ Functional Area: Orders
◦ Task: Manage Posransformation Defaulting Rules

1. On the Manage Posransformation Defaulting Rules page, click Add > Add Rule.
2. Click Expand > Show Advanced Seings, then set values.

1591
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Aribute Value

Name Set Aributes for Free Printer


   

Description Set aributes on the fulllment line for free printer.


   

Eective Date Always


   

Priority Medium
   

Active Contains a check mark


   

Advanced Mode Does not contain a check mark


   

3. In the If area, create a statement.

PostTransformationRules.FulfillLineVO.InventoryItemId is 4954L

4. Add the Then statement.

◦ In the Then area, click Add Action > Assert New.


◦ In the empty window, enter modify, wait a moment, then click PostTransformationRules.ModifyEntity.
◦ In the Then area, click Edit Properties.
◦ In the Properties dialog, set values, then click OK.

Aribute Value

arName "PackingInstructions"
   

arValue "Loyalty Promotion Packaging"


   

viewRowImpl PostTransformationRules. FulllLineVO. ViewRowImpl


   

5. Repeat step 4 for each aribute you must set.


6. Click Save and Close.

Related Topics
• Overview of Using Business Rules With Order Management
• How Order Management Transforms Source Orders Into Sales Orders

1592
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Use Extensible Flexelds in Advanced Transformation Rules


Use an extensible exeld in a decision table to implement more complex logic.
This example uses business rules to transform an item. It replaces a general item with a server, laptop, and handheld
device. It makes the replacement according to the product type and a Boolean value in an extensible exeld segment.

Here's the rule you create. For details, see the Overview of Using Business Rules With Order Management topic.

Here's what this example includes.


• A decision table that manages a set of rules
• header as an alias for the order header object
• line as an alias for the order line object
• fline as an alias for the fulllment line object

This example includes extensible exeld details.


• Extensible exeld named ProductInfo
• ineEFFctgry for the extensible exeld category
• ineEFFcntx for the extensible exeld context
• An underscore ( _ ) before the name of the extensible exeld segment

You will use Root Mode to implement the hierarchy.


Order Header
orderLine

1593
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

orderFulfillLine

where

• Order Header is the root


• orderLine is a child of Order Header
• orderFulllLine is a child of orderLine and a grandchild of Order Header

Summary of the Steps

1. Create the IF statements and tests.


2. Dene the decision table.
This topic includes example values. You might use dierent values, depending on your business requirements.

1594
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Create the IF Statements and Tests


You will create IF statements and tests.

Do it.
1. In the Navigator, click Setup and Maintenance.
2. In the Setup and Maintenance work area, go to the task.

◦ Oering: Order Management


◦ Functional Area: Orders
◦ Task: Manage Product Transformation Rules

1595
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

3. On the Manage Product Transformation Rules page, in the View list, click IF/THEN Rules.
4. Click Expand > Show Advanced Seings.
5. Create a rule.

Aribute Value

Eective Date Always


   

Priority Medium
   

Active Contains a check mark


   

Advanced Mode Contains a check mark


   

Tree Mode Contains a check mark


   

6. Set the root.

Aribute Value

Root DooSeededOrchestrationRules. DOOHeader


   

7. Dene IF statements.

◦ header is a OrderTransformationRules.HeaderVO
◦ line is a header/OrderLine
◦ ine is a header/OrderLine/OrderFulllLine
◦ ineEFFCtgry is a OrderTransformationRules.j_FulllLineEDooFulllLinesAddInfoprivateVO
◦ ineEFFCnts is a OrderTransformationRules.FulllLineEBProductInfoprivate
8. Dene tests.

◦ ineEFFCtgry isn't null


◦ ineEFFCntx isn't null
◦ ine.FulllLineECategories is ineEFFCtgry
◦ ineEFFCtgry.FulllLineEBProductInfoprivateVO isn't null
◦ ineEFFCtgry.FulllLineEBProductInfoprivateVO contains ineEFFCntx

Make sure you include a hierarchy test when you dene extensible exeld variables. The extensible exeld in this
example is ProductInfo. It contains the segment _CoverageProduct that you will use as a condition in the decision table.

1596
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Dene the Decision Table


Here's the decision table you will create.

Note.
• Dene a condition that examines the _CoverageProduct extensible exeld segment and ine.ItemTypeCode
aribute.
• The actions modify the ine.InventoryItemId aribute to transform one product to another product, and also
modify the ine.ReservableFlag aribute.
• A business rule can't modify the value of an extensible exeld.
• The ModifyEntity function modies aribute values.

If each of your business rules.


• Use the same value. You can dene them as part of the condition.
• Don't use the same value. You must set option Parameterized for the condition so the rule can set a dierent
value for each rule. Some actions in the decision table in this example return the existing product value instead
of a substitution. Also, some actions aren't active for some rules. To make an action active, make sure the
option above the value contains a check mark.

Related Topics
• Pricing Algorithm
• Service Mapping
• How Service Mappings, Pricing Algorithms, and Matrixes Work Together
• Use Extensible Flexelds to Integrate Order Management with Other Applications

Use Extensible Flexelds in Assignment Rules


Use an extensible exeld to assign the fulllment steps that your orchestration process does for each fulllment line.
The fulllment steps you use to fulll an item might be dierent for each sales order depending on your business
requirements.

An item aribute typically determines the orchestration process that runs and how to run orchestration process steps.
If no predened aributes meet your requirements, then you can create your own extensible exeld, use it to capture
important details about the item, then use it to select the fulllment steps that run. You can write an assignment rule
that uses extensible exeld data as part of the selection criteria.

Assume.
• You sell an item in your own country and to several other countries throughout the world.
• The item includes details that are protected through international trade agreements.

1597
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

• If you ship the item to a location that's outside of your own country, then the trade agreements require you to
consider it an export and screen it for trade compliance.
• You do a needs analysis and determine to create the Trade Compliance Details extensible exeld and add it to
the order header so the Order Entry Specialist can enter the value Export to indicate whether the sales order is
an export.

You will create an assignment rule that references the extensible exeld.

You will create an assignment rule.

• If the Trade Compliance Details extensible exeld contains the value Export, then assign the fulllment line to
the Screen_Exports_for_Trade_Compliance orchestration process.

1598
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Assume you already set up the extensible exeld and orchestration process. For details, see the Use Extensible
Flexelds in Order Management topic.

This topic includes example values. You might use dierent values, depending on your business requirements.

Assign an orchestration process according to the value of an extensible exeld.

1. Create the assignment rule.

◦ In the Navigator, click Setup and Maintenance.


◦ In the Setup and Maintenance work area, go to the task.

• Oering: Order Management


• Functional Area: Orders
• Task: Manage Process Assignment Rules for Sales Orders
◦ On the Manage Orchestration Process Assignment Rules page, click Create New Rule.
◦ Set values.

Aribute Value

Name Assign for Trade Compliance


   

Description Assign orchestration process depending on export.


   

2. Create the If statement.

◦ Click in the If area to expand it.


◦ On the Aributes tab, expand Order Header > Header EFF Categories > Additional Header
Information > Header Compliance Details.

1599
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

◦ Click Compliance Info, drag it, then drop it into the IF area.

◦ In the Create Condition dialog, set the operator to Is Equal To.

◦ Enter Export, then click OK.


3. Create the Do statement.

◦ Click Then > Do > New Action.


◦ In the Create Action dialog, enter process, wait a moment, then click Process Name (Order Fulll Line).

The phrase Order Fulll Line indicates that the orchestration process you set will process order fulllment
lines.

1600
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

4. Search for your orchestration process.

◦ Click Search > Advanced.


◦ Set Process Name to Contains.
◦ Enter Screen_Exports_for_Trade_Compliance.
The search is case sensitive.
◦ Click Search.
For this example, assume you already created and deployed this orchestration process. If you didn't
deploy, then Search won't nd it.
◦ Click the row in the search results.
◦ Click OK.
◦ In the Create Action dialog, click OK.
5. Activate and publish your rule.

Related Topics
• Overview of Using Business Rules With Order Management

Use Extensible Flexelds in Line-Selection Rules


Use the DooSeededOrchestrationRules object to reference an orchestration process when you use an extensible
exeld in a line-selection rule.
For example, assume you must set up a rule.
• If the order line contains a reward item, then use it when running this orchestration process step.

Here's the logic you would use.

Object Description

Paern
  Use paerns.

• Root: DooSeededOrchestrationRules.DOOHeader
• header is a DooSeededOrchestrationRules.DOOHeader
• ine is a header/childFLines
• ineEFF is a header/childFLines/exContexts

Test
  Use tests.

• ineEFF.context.equalsIgnoreCase("Item_Information") is
DooSeededOrchestrationRules.Boolean.TRUE
• ineEFF.getFlexAributeValue("_Reward_Item") isn't null

Note.

• The equalsIgnoreCase function is optional if you know the absolute case of the
argument.
• The getFlexAributeValue() function on the exContexts object looks up the extensible
exeld value.

1601
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Object Description

Action
  Use an Assert New action.

• DooSeededOrchestrationRules.Result (resultObjKey:FLine.fulllLineId)

This logic creates a hierarchy.


Order Header
childFLines
flexContext

where

• Order Header is the root


• childFLines is a child of Order Header
• exContext is a child of childFLines and a grandchild of Order Header

This example uses Tree Mode to maintain the hierarchy rather than explicitly creating the hierarchy. The forward slash
(/) species the hierarchy. For example.

• header/childFLines/flexContexts

In this example, you will dene line selection criteria in an orchestration process to specify which orchestration process
steps to run for each fulllment line. You dene this criterion according to the value that an extensible exeld contains.
You create a rule.

• If the Export Compliance status is Not Passed for an order line, then do a manual examination. Send other
order lines directly to shipping.

1602
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Here's the ow you create.

You will use an extensible exeld to store the value of the compliance status.

Context Extensible Flexeld Object Value

Compliance Compliance_ Status Fulllment Line EFF (DOO_ Not Passed


    FULFILL_ LINES_ ADD_INFO)  
 

You will create a line-selection rule rule.

1603
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Summary of the Steps

Fulll order lines according to the value of an extensible exeld.


1. Create the rule.
2. Establish the object hierarchy.
3. Select lines according to exeld context.
4. Select lines according to compliance status.
5. Identify the fulllment line that requires manual examination.
For details about how to create a business rule, see the Overview of Using Business Rules With Order Management
topic.

This topic includes example values. You might use dierent values, depending on your business requirements.

Create the Rule


1. In the Navigator, click Setup and Maintenance.
2. In the Setup and Maintenance work area, go to the task.
◦ Oering: Order Management

1604
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

◦ Functional Area: Orders


◦ Task: Manage Orchestration Process Denitions
3. On the Manage Orchestration Process Denitions page, locate the orchestration process you must edit, then
click Actions > Edit.
4. On the Edit Orchestration Process Denitions page, in the Process Details area, in the Step Denition list, add a
step.

Aribute Value

Step Name Compliance Check


   

Step Type Service


   

Task Type DOO_ TradeCompliance


   

Task DOO_ TradeCompliance


   

Service Request Screening for Trade Compliance


   

5. In the row you just added, in the Line-Selection Criteria column, click Click for Rule.
6. In the Line-Selection Criteria dialog, click Add Rule > Show Advanced Seings, then set values.

Aribute Value

Name Examine Compliance Status


   

Description If the Export Compliance status is Not Passed for an order line, then perform a manual
  examination.
 

Eective Date Always


   

Priority Medium
   

Active Contains a check mark.


   

Advanced Mode Contains a check mark.


   

Tree Mode Contains a check mark.


   
Use tree mode so you can include an extensible exeld in the root hierarchy of an
orchestration rule.
 

7. Set the root.

1605
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Aribute Value

Root DooSeededOrchestrationRules. DOOHeader


   

Establish the Object Hierarchy


You must establish an object hierarchy so the rule lters the data it processes.
Order Header
childFLines
flexContexts

where
• Order Header is the root
• childFLines is a child of Order Header
• exContexts is a child of childFLines and a grandchild of Order Header

This example uses Tree Mode to maintain the hierarchy rather than explicitly creating the hierarchy. Each forward slash
(/) species a hierarchy level.
header/childFLines/flexContexts

where
• header is the root. The root makes sure the rule processes data only in the child object that references the root.
• childFLines is the child. The child makes sure the rule processes data only in the grandchild object that
references the child.
• exContexts is the grandchild.

You will create an If statement. It establishes the object hierarchy.

Establish the object hierarchy.


1. In the If area, delete the value in the eld to the left of Is A, and then enter this value.

1606
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Aribute Value

Field to the left of Is A Header


   

2. In the eld to the right of Is A, set the value.

Aribute Value

Field to the right of Is A DooSeededOrchestrationRules. DOOHeader


   

3. Under the eld that contains header, add a check mark to the option that chooses the test, click Cut > Cut.

For example.

The hierarchy includes the extensible exeld variables, so its not necessary to include tests when you dene
the hierarchy.
4. Click Add Paern.
5. In the eld to the left of Is A, enter the value.

Aribute Value

Field to the left of Is A Fline


   

6. In the eld to the right of Is A, set the value.

1607
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Aribute Value

Field to the right of Is A header/ childFLines


   

7. Click Add Paern.


8. In the eld to the left of Is A, enter the value.

Aribute Value

Field to the left of Is A FlineEFF


   

9. In the eld to the right of Is A, set the value.

Aribute Value

Field to the right of Is A header/ childFLines/ exContexts


   

Select Lines According to Flexeld Context


You will add a test.

• If the exeld context is Compliance

This text will select lines only where the exeld context is Compliance.

You will create an expression.

Left Expression Operand Right Expression

FLineEFF. context. Is DooSeededOrchestrationRules.


equalsIgnoreCase("Compliance")   Boolean.TRUE
   

Select lines according to exeld context.

1. Under the paern you just added, click Add Test.

You will add the test criteria that identies fulllment lines that proceed through compliance testing. If the
aributes you reference are optional, then you include null value checks to avoid a null pointer exception at run
time.
2. Click Left Value.
3. In the Condition Browser, click Expression Builder.
4. In the Expression Builder, click Functions, expand FLineEFF > Context, click equalsIgnoreCase(String), then
click Insert Into Expression.

1608
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

For example.

To navigate the tree structure, expand the folders until you can view the functions of the context object.
FlineEFF is the paern you declared earlier.

The context you expand is a fact in the FlineEFF paern. It includes functions you can use to perform a variety
of calculations. Therefore, the expression you create includes the paern, fact, and function.
5. In the window near the top of the dialog, replace the word String with the context for your extensible exeld
condition. In this example, replace String with Compliance.

1609
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

For example.

6. Click OK > OK.


7. Click Right Value.
8. In the Condition Browser, expand DooSeededOrchestrationRules > Boolean, then click TRUE > OK.

1610
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

For example.

Select Lines According to Compliance Status


You will add a test.

• If the value of the exeld aribute named Compliance Status is Not Passed

You will create an expression.

1611
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Left Expression Operand Right Expression

ineEFF. Is "Not Passed "


getFlexAributeValue("Compliance    
Status")
 

Select lines according to Compliance Status.

1. In the test you just added, immediately to the right of the Right Value magnifying glass, click the down arrow,
then click Simple Test.
2. Click Left Value.
3. In the Condition Browser, click Expression Builder.
4. In the Expression Builder, click Functions, click FlineEFF.getFlexAributeValue(String), then click Insert Into
Expression.

1612
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

For example.

5. In the window near the top of the dialog, replace the word String with the name of the exeld aribute.

You must use an underscore to prex the aribute name in a function. The aribute name is
Compliance_Status, so you use _Compliance_Status.

1613
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

For example.

6. Click OK > OK.


7. In the eld to the right of Is, enter "Not Passed".

You must include the double quotation marks ( " ).

Make sure your rule contains tests.

Left Expression Operand Right Expression

FLineEFF. context. Is DooSeededOrchestrationRules.


equalsIgnoreCase("Compliance")   Boolean.TRUE
   

ineEFF. is "Not Passed"


getFlexAributeValue("Compliance    
Status")
 

Identify the Fulllment Line That Requires Manual Examination


You will create a statement.

where

• Result is a fact in the DooSeededOrchestrationRules dictionary.


• resultObjKey is a property of the Result fact.

1614
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

• resultObjKey stores the value that this rule uses to identify the fulllment line that requires manual
examination.
• Fline is a fact in the DooSeededOrchestrationRules dictionary that contains fulllment line aributes.
• fulllLineID is a fulllment line aribute.

Identify the fulllment line that requires manual examination.


1. In the Then area, click Add Action > Assert New.
2. Click Select a Target > DooSeededOrchestrationRules.Result.
3. Click Edit Properties.
4. In the Properties dialog, in the resultObjKey row, click Value.
5. In the Condition Browser, expand Fline, click fulllLineID, then click OK.
6. Make sure the Properties dialog looks like. . .

7. Click OK
8. In the Line-Selection Criteria dialog, click Save.
9. On the Edit Orchestration Process Denition page, click Save.

Related Topics
• Overview of Using Business Rules With Order Management

Another Example of Using Extensible Flexelds In Line-Selection Rules


Create a line selection rule that references an extensible exeld.
• If the value in the CoverageProduct extensible exeld doesn't contain a check mark, then reserve the item and
process the fulllment line.

Fulll order lines according to the value of an extensible exeld.


1. In the Navigator, click Setup and Maintenance.
2. In the Setup and Maintenance work area, go to the task.

◦ Oering: Order Management


◦ Functional Area: Orders

1615
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

◦ Task: Manage Orchestration Process Denitions


3. On the Manage Orchestration Process Denitions page, locate the orchestration process you must edit then
click Actions > Edit.
4. On the Edit Orchestration Process Denitions page, in the Process Details area, in the Step Denition list, in the
row that contains the reservation step, in the Line-Selection Criteria column, click Click for Rule.
5. In the Line-Selection Criteria dialog, add values.

Use tree mode to include an extensible exeld in the root hierarchy of an orchestration rule. The hierarchy
includes extensible exeld variables so it isn't necessary to add more tests when you dene the hierarchy.
6. Dene IF statements.

◦ header is a DOOSeededOrchestrationRules.DOOHeader

◦ fline is a header/childFlines

◦ flineEFF is a header/childFLines/flexContexts

where

◦ header is a variable that stores the order header.


◦ fline is a variable that stores the fulllment line.
◦ flineEFF is a variable that stores the extensible exeld.

1616
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

For example.

7. Create an expression that looks up the extensible exeld value in the tests.

◦ flineEFF.context.equalsIgnoreCase("ProductInfo")

1617
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

For example.

8. Create tests.

Code Description

ineEFF. context. Make sure the item isn't a coverage item.


equalsIgnoreCase("ProductInfo")  
is DooSeededOrchestration Rules.
Boolean.TRUE
 

1618
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Code Description

ineEFF. Make sure the value in the exeld isn't empty.


getFlexAributeValue("CoverageProduct") 
isn't null
 

For example.

9. Create an action.

◦ Assert new DooSeededOrchestrationRules.Result(resultObjKey:fulfillLineId)

This action creates the result to use for the fulllment line that satises the If statement.

In the Condition Browser, select the aribute. This aribute sets resultObjKey to the run-time value of the
fulllLineId.

1619
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

For example.

Related Topics
• Overview of Using Business Rules With Order Management

Use Extensible Flexelds in Change Management Rules


Create a cost of change rule to measure how much a change impacts an orchestration process. Use an extensible
exeld as input to the cost of change calculation.
You can also create a compensation paern that species the adjustments that Order Management makes when it
processes a fulllment task. It does this work to process the request it receives to change a sales order in a way that
makes sure it can fulll the sales order so that it meets your fulllment requirements.

For example.

• Assume a customer with a Platinum loyalty status receives a follow up phone call about their order, and that
you dened an extensible exeld named Loyalty that allows the Order Entry Specialist to store the loyalty
status.
• On the change order, assume you dene another extensible exeld named Customer Satisfaction that allows
the Order Entry Specialist to capture the level of customer satisfaction.

1620
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

• If Order Management already sent a request to the fulllment system that schedules a follow up phone call, but
the Order Entry Specialist hasn't made the phone call, then the compensation paern for customer satisfaction
might be Cancel, meaning don't call the customer.
• If the compensation paern for customer satisfaction isn't Cancel, then the rule can continue with the
scheduled phone call.

You use an extensible exeld in a change management rule the same way you use it in a line-selection rule. For details,
see the Use Extensible Flexelds In Line-Selection Rules topic.

For details about change management, see other topics.


• Measure the Cost of Change
• How Order Management Processes Change That Occurs During Order Fulllment
• Compensate Sales Orders That Change

Related Topics
• Compensate Sales Orders That Change

Paerns for Extensible Flexelds in Business Rules


Use paerns and hierarchies when you include an extensible exeld in a business rule.

Rule Dictionaries That Support Extensible Flexelds

Rule Type Dictionary

Pretransformation PreTransformationRules
   

Posransformation PostTransformationRules
   

Transformation OrderTransformationRules
   

Routing DOOExternalInterfaceLayer
   

Assignment AssignLaunchRules
   

Line Selection Criteria DooSeededOrchestrationRules


   

Branching Condition DooSeededOrchestrationRules


   

Lead Time Expression DooSeededOrchestrationRules


   

Compensation Paern DooSeededOrchestrationRules


   

Cost of Change DooSeededOrchestrationRules


   

1621
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Rule Paerns and Hierarchies You Can Use With Extensible Flexelds
Paerns and Hierarchies for Extensible Flexelds That Display on Order Headers

The bold text indicates a variable.

Paern Description

my_header Here's the format.

header is a dictionary.fact

For example.

header is a OrderTransformationRules.HeaderVO

where

• header. A variable you dene when you create the rule.


• OrderTransformationRules. The name of a predened dictionary.
• HeaderVO. A fact that resides in OrderTransformationRules.

my_header_extensible_exeld_category
Here's the format.

header is a dictionary.j_HeaderEDooHeadersAddInfoprivateVO

my_header Here's the format.


extensible_exeld_context

header is a dictionary.HeaderEffContextNameprivateVO

Note.

• dictionary identies the name of the dictionary that your rule references.
• DOO_HEADERS_ADD_INFO is the category for an order header.
• ContextName identies the name of the context.

Your rule must establish a hierarchy.

Parent Paern Property Child Paern

. HeaderECategories
my_header   header is my_header
_extensible_exed_category

my_header .HeaderEffB ContextNameprivateVO header contains my_header


_extensible_exed_category _extensible_exed_context

1622
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Rule Paerns and Hierarchies for Extensible Flexelds That Display on Order Lines

Use rule paerns when your extensible exeld displays on the order line or the fulllment line.

Paern Description

my_ine Here's the format.

ine is a dictionary.FulfillLineVO

For example.

fline is a AssignLaunchRules.FulfillLineVO

where

• ine. A variable you dene when you create the rule.


• AssignLaunchRules. The name of a predened dictionary.
• FulllLineVO. A fact that resides in AssignLaunchRules.

my_ine_extensible_exeld_category Here's the format.

my_category is a dictionary. j_FulllLineEDooFulllLinesAddInfoprivateVO

For example.

FlineEFFdfaip is a
AssignLaunchRules.j_FulfillLineEffDooFulfilllinesAddInfoprivateVO

where.

• FlineEFFdfaip. A variable you dene when you create the rule.


• AssignLaunchRules. The name of a predened dictionary.

my_ine_extensible_exeld_context Here's the format.

my_context is a dictionary. FulllLineEBContextNameprivateVO

For example.

• FlineEFFpsi is a AssignLaunchRules.FulllLineEBPackShipInstructionprivateVO

where

• FlineEFFpsi. A variable you dene when you create the rule.


• AssignLaunchRules. The name of a predened dictionary.
• PackShipInstruction. The name of a context.

1623
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

where

• dictionary identies the name of the dictionary that your rule references.
• DOO_FULFILL_LINES_ADD_INFO is the category for each order line or fulllment line.
• ContextName identies the name of the context.

Your rule must establish a hierarchy.

Parent Paern Property Child Paern

. FulllLineECategories
my_ine   my_ine is my_
ine_extensible_exed_category

my_ ine_extensible_exed_category .FulfillLineEffB ine contains my_ine


ContextNameprivateVO _extensible_exed_context

Rule Paerns and Hierarchies for Extensible Flexelds That Display on the General Tab of the Fulllment Line

Use paerns when your extensible exeld displays on the General tab of the fulllment line.

Paern Description

my_ine_details Here's the format.

my_ine_details is a dictionary.FulfillLineDetailVO

my_ine_details_extensible_exeld_category
Here's the format.

my_ine_details_extensible_exeld_category is a dictionary.
j_FulllLineDetailEDooFulllLineDetailsAddInfoprivateVO

my_ine_details_extensible_exeld_context
Here's the format.

my_ine_details_extensible_exeld_context is a dictionary.
FulllLineDetailEBContextNameprivateVO

where

• dictionary identies the name of the dictionary that your rule references.
• DOO_FULFILL_LINE_DTLS_ADD_INFO is the category for each fulllment line detail.
• ContextName identies the name of the context.

Your rule must establish a hierarchy.

1624
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

Parent Paern Property Child Paern

. FulllLineDetailECategories
my_ine_details   my_ine_details is my_
ine_details_extensible_exed_category

my_ .FulfillLineDetailEffB my_ine__details_extensible_exed_category


ine__details_extensible_exed_category ContextNameprivateVO contains
my_ine_details_extensible_exed_context

1625
Oracle SCM Cloud Chapter 10
Implementing Order Management Extend

1626
Oracle SCM Cloud Chapter 11
Implementing Order Management Email, Reports, Aachments, Social Media

11 Email, Reports, Aachments, Social Media

Email
Administer Email Messaging in Order Management
Set up Order Management to send an email message when a business event occurs, such as when the sales order status
changes to Shipped.
Assume you must format the email that Order Management sends when the sales order status changes to Shipped.

Do it.
1. In the Navigator, click Setup and Maintenance.
2. In the Setup and Maintenance work area, go to the task.
◦ Oering: Order Management
◦ Functional Area: Orders
◦ Task: Manage Business Event Trigger Points
3. Optional. Send an email notication when the sales order goes into hold.
◦ On the Manage Business Event Trigger Points page, click the Hold row, then make sure the Active option
in this row contains a check mark.
◦ In the Details area, add a check mark to the Send Email Notication option.

1627
Oracle SCM Cloud Chapter 11
Implementing Order Management Email, Reports, Aachments, Social Media

4. Optional. Send an email notication when the order header status updates.
◦ On the Manage Business Event Trigger Points page, click the Order Header Status Update row, then
make sure the Active option in this row contains a check mark.
◦ In the Details area, add a check mark to the Raise Event option and the Send Email Notication option
for each Status Value, as necessary.
For example, to send an email notication when the order status changes to Closed, add a check mark to
the options in the Closed row.
The Send Email Notication option depends on the event, so you must make sure you add a check mark
to each option.
◦ Repeat this step for other status values, as necessary.
Administer Email Messaging for Status Updates on Fulllment Lines
Administering Order Management to send an email notication when the status updates on a fulllment line requires
that you modify the orchestration process denition.
1. On the Manage Business Event Trigger Points page, click the Fulllment Line Status Update row, then make
sure the Active option in this row contains a check mark.
2. Click Save and Close.
3. On the Setup page, search for, then open Manage Orchestration Process Denitions.
4. On the Manage Orchestration Process Denitions page, search for ShipOrderGenericProcess.
Each orchestration process controls the status value for each fulllment line, so you must modify the
orchestration process that controls the status value. In this example, you modify the orchestration process that
controls the shipping status value.
5. In the Search Results, click the row that contains ShipOrderGenericProcess, then click Actions > Edit.
6. In the Process Details area, click Status Conditions > Fulllment Line Status Values > Edit Status Rule Set.
7. On the Edit Status Rule Set page, add a check mark to the Notify External System option and the Send Email
Notication option for each Status Value where you must send a notication.
For example, to send an email notication when the fulllment line status changes to Shipped, add a check
mark to the options in the Shipped row.
The Send Email Notication option depends on the Notify External Systems event, so you must make sure you
add a check mark to each option.
8. Repeat step 7 for other status value, as necessary.
Order Management will send an email message when each fulllment line that references this orchestration
process denition reaches the status that you specify in steps 7 and 8. Order Management sends this email to
the customer contact and to the ship-to contact that the sales order references.
9. Repeat steps 4 through 8 for each orchestration process denition in your deployment that updates status
values.

Administer Email Format in Order Management


Set up the format that Order Management uses when it sends an email message.
The Order Entry Specialist can click Actions > Create Document > Send Email from the sales order header to send
order details through an email message. Order Management sends order details in a PDF (Portable Document Format)
le that it aaches to the email.

1628
Oracle SCM Cloud Chapter 11
Implementing Order Management Email, Reports, Aachments, Social Media

Here's the predened format that Order Management uses.

Note.
• Use Oracle BI Publisher to modify format, such as add your company name and logo, or modify the template
message text.
• Use the From Address for Email Messages order management parameter to specify the value that Order
Management displays in the email From address. For details, see the Manage Order Management Parameters
topic.

In this example, modify the email template that Order Management uses for a status update.
1. In the Navigator, click Reports and Analytics.
For details, see book Oracle SCM Cloud Creating and Administering Analytics and Reports on My Oracle
Support.
2. On the Reports and Analytics page, click All Folders > Shared Folders.
3. Click Supply Chain Management > Order Management > Fulllment Alerts.
Notice that the work area displays several templates, such as Hold Notication, Sales Order Line Status Update,
and Sales Order Status Update Notication.
4. Click Sales Order Status Update Notication.
5. On the Fulllment Alerts page, click Actions > Edit Report.
6. Under SalesOrderStatusUpdateNoticationLayout, click Edit.
7. Modify the layout and save.

Related Topics
• Manage Order Management Parameters
• Oracle SCM Cloud Creating and Administering Analytics and Reports

Reports

1629
Oracle SCM Cloud Chapter 11
Implementing Order Management Email, Reports, Aachments, Social Media

Use Reports and Analytics with Order Management


Use the Reports and Analytics work area to get detailed reports for some aspects of Order Management.
Create a report that includes various types of data.

• Draft sales orders


• Order header aributes
• Order line aributes
• Fulllment line aributes
• Pricing details
• Sales credits
• Return orders
• Coverage and subscriptions

1630
Oracle SCM Cloud Chapter 11
Implementing Order Management Email, Reports, Aachments, Social Media

Examine a Predened Report


Examine a report that includes fulllment lines that are overdue.

Try it.
1. In the Navigator, click Reports and Analytics.

For details, see the Reports and Analytics Work Area and Panel Tab topic.
2. On the Reports and Analytics page, click All Folders > Shared Folders.
3. Click Supply Chain Management > Order Orchestration > Transactional Analysis Samples > Past Due
Fulllment Lines, then click the Past Due Fulllment Lines link.
4. Wait for the report to build, then examine the report output.

1631
Oracle SCM Cloud Chapter 11
Implementing Order Management Email, Reports, Aachments, Social Media

5. Modify search parameters to lter the report, then notice the results.
For example, set Bill-to Customer Name to a value and click Apply.

Create Your Own Report


Assume you need a report that displays order lines that have shipped.
1. Sign in with a role that you can use to create a report.
For details, see the How to Create Folders topic.
2. On the Reports and Analytics page, click Create > Report.
The Oracle Transactional Business Intelligence application opens and displays.
3. In the Create Report dialog, click Use Subject Area.
4. Set the Subject Area to Order Management - Order Lines Real Time.
5. Click Use Report Editor > Finish, then save the le.
You can use any name. For this example, save the le name as My Real Time Fulllment Report.
6. On the My Real Time Fulllment Report page, click Header and Footer, Portrait.
7. Drag and drop each element from the Data Source tree onto the editor.
◦ In the Data Source tree, expand Order Header Detail, drag, and then drop Creation Date from the tree
onto the editor.
◦ In the Data Source tree, expand Fulllment Line Details, drag, and then drop Actual Delivery Date from
the tree onto the editor.
Continue until the editor resembles this layout.

8. Click Save Report.


9. Navigate back to the Reports and Analytics page, then click Browse Catalog.

1632
Oracle SCM Cloud Chapter 11
Implementing Order Management Email, Reports, Aachments, Social Media

10. On the Catalog page, under My Real Time Fulllment Report, click Open, then examine the report output.
Limitations

If you use a web service to create a data model, then you can't burst the report. To burst means to separate data into
sections, create a separate document for each section, then deliver each document to one or more destinations. For
details, see the Deliver Content topic.

Related Topics
• Overview of Transactional Business Intelligence
• How to Create Folders
• Deliver Content

1633
Oracle SCM Cloud Chapter 11
Implementing Order Management Email, Reports, Aachments, Social Media

Modify Report Templates


The Reports and Analytics work area comes predened with several reports that you can use for Order Management.
You can modify a template to meet your needs.

Note.

• The reports come predened as rich text le (RTF) templates.


• Use Oracle BI Publisher Enterprise to edit them.
• Use a data model to get aribute values.

1634
Oracle SCM Cloud Chapter 11
Implementing Order Management Email, Reports, Aachments, Social Media

• Use the predened Sales Order Report template as a starting point.

Try it.

1. Install Oracle BI Publisher Desktop.

◦ Go to the Oracle BI Publisher Downloads page at hp://www.oracle.com/technetwork/middleware/bi-


publisher/downloads/index.html.
◦ Click Oracle BI Publisher Desktop 12.2.1.4.0 for 32 bit Oce on Windows, then wait for the le to nish
downloading.
◦ Follow the instructions that the installer displays to install Oracle BI Publisher Desktop.
2. Sign into Oracle Business Intelligence Enterprise Edition with a user who has privileges to edit predened
reports, such as scm_impl_consultant.

For details about.

◦ Where to sign in, see the How You Access and Modify Report Components topic.

Dierent types of publishers and browser requirements, see the Overview of Transactional Business
Intelligence topic.
3. In the Navigator, click Reports and Analytics.

Some implementations might take you directly to Oracle BI Publisher Enterprise instead of the Navigator. If that
happens, skip to the step where you click Catalog.
4. On the Reports and Analytics page, click Browse Catalog.

Oracle BI Publisher Enterprise opens in a new tab on your browser.

On the new tab, make sure the page displays Oracle BI Publisher Enterprise in the upper left corner. If it displays
Oracle Transactional Business Intelligence or Oracle Business Intelligence, then sign out, and sign into the
correct instance of Oracle Fusion Applications. Ask your reports administrator for details.
5. Click Catalog.
6. On the Catalog page, in the Folders area, expand Shared Folders > Supply Chain Management > Order
Management > Sales Orders.
7. In the list area to the right of the Folders area, in the Sales Order Report row, click More > Customize.

The publisher opens the report for editing. For details about using this action, see the How You Modify Copies
of Predened Reports topic.
8. On the Sales Order Report page, click Save Report.

The publisher creates a copy of the report in the Shared Folders/Custom/Supply Chain Management/Order
Management/Sales Orders folder. You will use this copy later.
9. Click Edit.
10. In the dialog that displays, choose the Open with Microsoft Word option, then click OK.

Microsoft Word opens.


11. In Microsoft Word, name the le with the .rtf extension, such as SalesOrderReport.rtf, then save the le to a
handy location. For this example, save it to C:\.

1635
Oracle SCM Cloud Chapter 11
Implementing Order Management Email, Reports, Aachments, Social Media

Microsoft Word displays your report template.

Note.

◦ The BI Publisher plugin displays the BI Publisher tab.


◦ The predened report template includes a meaningful layout, labels, and aributes. You can use it to
modify layout and text labels.
◦ Each label displays as bold text. For example, Customer is a label.
◦ Each aribute displays with a dark grey background. For example, SoldToPartyName is an aribute.

1636
Oracle SCM Cloud Chapter 11
Implementing Order Management Email, Reports, Aachments, Social Media


You can add labels and aributes to the predened template. For example, you can add the Order Date
label and the OrderedDate aribute.
12. Modify your report.

◦ Change the Contact label. Click the Contact label, and start typing.

Old Label New Label

Contact Sold-to Contact


   

◦ To move the SoldToContactPoint aribute down one line, place your cursor at the beginning of
SoldToContactPoint, then press the Enter key.
◦ Click Save.

Don't edit the aribute text. The aribute text reects the data model text and it helps you to see the
relationship between the model and your template.
13. Upload your changes.

◦ Go back to Oracle BI Publisher Enterprise in your browser.


◦ Click Catalog, expand Shared Folders > Custom > Supply Chain Management > Order Management,
then click Sales Orders.
◦ In the list that contains Sales Order Report, click Edit.
◦ On the Sales Order Report page, click Add New Layout.
◦ In the Upload or Generate Layout area, click Upload.
◦ In the dialog that displays, enter values, then click Upload.

Aribute Value

Layout Name My Sales Order Report


   

Template File SalesOrderReport. rtf


   
Browse to the .rtf le that you saved on your computer. For this example, its C:\
SalesOrderReport. rtf.
 

Type RTF Template


   

Locale English
   

◦ Click Save Report.

Add Aributes to Your Template


What if the template doesn't include the aributes you need? You can add them from the data model.

1637
Oracle SCM Cloud Chapter 11
Implementing Order Management Email, Reports, Aachments, Social Media

Summary of the Set Up

1. Download the data model.


2. Modify your template.
3. Upload your template.
Assume you need to add the OrderedDate aribute.

Download the Data Model

1. In Oracle BI Publisher Enterprise, navigate to Shared Folders > Supply Chain Management > Order
Management > Sales Orders > Data Model.
2. In the list area to the right of the Folders area, in the row that contains Sales Order Report Data Model, click
Edit.
3. In the Data Model area, click Properties.
4. In the Properties area, click SalesOrderReportDm.xml, then save the le to the same location where you saved
your report template.

◦ For this example, save it to C:\.


◦ Change the le name extension from .xdm to .xml name when you do the save.

Aribute Value

File Name _Supply Chain Management_ Order Management_ Sales Orders_ Data Models_
  SalesOrderReportDm. xml
 

1638
Oracle SCM Cloud Chapter 11
Implementing Order Management Email, Reports, Aachments, Social Media

Modify Your Template

Try it.

1. Go to your template in Microsoft Word.


2. Add the Ordered Date label to the template.

Examine the screen print earlier in this topic to see where to add it. Place your cursor after the Contact label,
enter a few carriage returns, then start typing in the label.
3. Position your cursor at the end of the SoldToContactPoint aribute, then enter a few carriage returns until the
cursor aligns with the label.
4. In the Word ribbon, click the BI Publisher tab, then click Sample XML.

1639
Oracle SCM Cloud Chapter 11
Implementing Order Management Email, Reports, Aachments, Social Media

5. In the dialog that displays, choose _Supply Chain Management_Order Management_Sales Orders_Data
Models_SalesOrderReportDm.xml, then click Open.
6. Click the BI Publisher tab then, in the Insert area, click Field.
The Field dialog displays the aributes from your data model.
7. In the Field dialog, click OrderedDate, then click Insert.
8. Click File > Save, then save the le as SalesOrderReport_1.rtf.
You create a new le to avoid an overwrite conict when you upload the template.
Upload Your Template
1. Go back to Oracle BI Publisher Enterprise in your browser.
2. Click Catalog.
3. On the Catalog page, in the Folders area, expand Shared Folders > Custom > Supply Chain Management >
Order Management, then click Sales Orders.
4. In the row that contains the sales order report you created earlier in this procedure, click Edit.
5. On the Sales Order Report page, click Add New Layout.
6. In the Upload or Generate Layout area, click Upload.
7. In the Upload Template File dialog, set values, then click Upload.

Aribute Value

Layout Name Enter any value.


   
For this example, enter My Layout for Sales Order Report.
 

Template File SalesOrderReport_ 1.rtf


   
Locate the SalesOrderReport. rtf le on your local computer. Its the one you edited in
Microsoft Word.
 

Type RTF Template


   

Locale English
   

8. Select the data model.


◦ On the Sales Order Report page, Next to Data Model, click Select Data Model.
◦ In the Select Data Model dialog, expand Shared Folders > Supply Chain Management > Order
Management > Sales Orders > Data Model.
◦ Click Sales Order Report Data Model, then click Open.
9. On the Sales Order Report page, click View Report, then click the My Layout for Sales Order Report tab.
The report displays with example data in the aributes.
10. Examine the report. Verify that it includes the changes you made in Microsoft Word, such as the Ordered Date.
11. Verify your changes in Order Management.
◦ Sign into Order Management as the Order Entry Specialist, then create a sales order.
◦ Add values to aributes on the order header, then add an item to an order line.

1640
Oracle SCM Cloud Chapter 11
Implementing Order Management Email, Reports, Aachments, Social Media

◦ On the Create Order page, click Actions > Create Document > View.
◦ In the Document dialog, set Template to one of the layouts you created in BI Publisher.
• My Sales Order Report
• My Layout for Sales Order Report
◦ Verify that the report includes the changes you made in Microsoft Word, such as the Ordered Date.

Related Topics
• How You Access and Modify Report Components
• Overview of Transactional Business Intelligence
• How You Modify Copies of Predened Reports

Aachments
Overview of Integrating Aachments in Order Management
Integrate Order Management Cloud so it can receive an aachment as part of a source order from a source system,
then send it to your order fulllment system.
• Your users can use the Order Management work area add an aachment to a sales order, such as a document
that includes requirements for manufacturing, a memo that includes guidelines for negotiating a price, or a
URL to a page that includes item installation instructions.
• Order Management can aachments to your fulllment system.
• Order Management can receive an aachment from a source system and include it as part of a sales order.
• Order Management can't receive an aachment from a fulllment system.
• Order Management can't send an aachment to an order capture system.

You can map aachment aributes from a source order that resides on your source system, to the enterprise business
message (EBM) in Order Management. Order Management then uses the connector to send the aachment to your order
fulllment system.

How it Works
Here's how Order Management processes an aachment it receives from your source system.
1. Uses an enterprise business object (EBO) to get each aachment from the source order.
2. Cross-references each value from the source system to a value that Oracle Fusion Applications use. This
approach provides a single representation of the aachment in the source system and in Oracle Fusion
Applications.
3. Converts the source order to a sales order, then.
◦ Adds aachments from the source order header to the sales order header

Adds aachments from source order lines to sales order lines
The sales order includes fulllment details according to order aributes and product transformation
rules. For details about how Order Management does the mapping, see the Overview of Importing Orders
into Order Management topic.
4. Sends a fulllment request to your fulllment system.

1641
Oracle SCM Cloud Chapter 11
Implementing Order Management Email, Reports, Aachments, Social Media

If the source system sends a change to an aachment or a source order, such as adding or deleting an aachment
or modifying an existing aachment, and if Order Management already imported the source order, then Order
Management updates the sales order so it reects the change. Order Management can't send an aachment to the
source system, so it isn't necessary to map aachment aributes to a format that the source system understands when
you transform the response that the web service sends to the source system.

Map Aachments in Your Source System to Aachments in Order Management


Order Management uses the Sales Order enterprise business object to communicate with your source system. The
aachment is part of the sales order. Here's the structure it uses.

1642
Oracle SCM Cloud Chapter 11
Implementing Order Management Email, Reports, Aachments, Social Media

Map Aachments in Order Management to Aachments in Your Fulllment System


Order Management uses the ProcessSalesOrderFulllmentEBM enterprise business message (EBM) to create, change,
or cancel a sales order. Here's the structure the message uses to map an aachment from the XSD (XML Schema
Denition) for the sales order in Order Management to your fulllment system.

Mapping Aachment Aributes

Here's the sections where the aachment aributes reside in processSalesOrderFullmentEBM.

Section Description

SalesOrderAachment Aachments on the order header.


   

SalesOrderLineAachment Aachments on the order line.


   

SalesOrderLineScheduleAachment Aachments on the order line schedule.


   

ProcessSalesOrderFulllmentEBM includes aachment aributes.

Aribute Path Description

TypeCode coreoom: Aachment/ coreoomTypeCode The type can be File, Text, or URL.
     

Title coreoom: Aachment/ coreoomTitle Aachment name.

1643
Oracle SCM Cloud Chapter 11
Implementing Order Management Email, Reports, Aachments, Social Media

Aribute Path Description

     

Description coreoom: Aachment/ Details about the aachment.


  coreoomDescription  
 

URI coreoom: Aachment/ coreoomURI If Type is URL, then URI contains the URL
    that locates the document that contains
the aachment content.
 

FileName coreoom: Aachment/ If Type is File, then FileName contains


  coreoomEmbeddedData/ FileName the name of the le that contains the
  aachment content.
 

EmbeddedData coreoom: Aachment/ If Type is File, then EmbeddedData


  coreoomEmbeddedData contains the le content.
   
If Type is Text, then EmbeddedData
contains the text that the user entered for
the aachment.
 
If the source order doesn't include
the aachment content, then you
must get this content before you
transform the source order into
ProcessSalesOrderFulllmentEBM.
 

Order Management maps aributes.

Aribute Description

Type The type can be File, Text, or URL.


   

Title The aachment name.


   

Description Details about the aachment.


   

Document Content
  Document Content depends on the value of the Type aribute.

• URL. Document content is the URL.


• File. Document content is the contents of the le.
• Text. Document content is the text that the user enters.

Map Aachments in the Connector to Your Order Fulllment System

1644
Oracle SCM Cloud Chapter 11
Implementing Order Management Email, Reports, Aachments, Social Media

Order Management sends a fulllment request to your fulllment system to do order fulllment tasks.

• The order fulllment system can access the aachment through the Orchestration Order Aachments Service
web service.
• The GetAachment method of this web service gets the aachments that the order header or fulllment line
references.
• The order fulllment system uses GetAachment to get aachments and map aachment aributes through
the connector to the fulllment system.

Use parameters in the input payload for the GetAachment method.

Parameter Description

SourceEntityName Name of the entity that the aachment references.


   

SourceTableName Name of the database table for the entity that the aachment references.
   

SourcePK1Value First value that identies the entity that the aachment references.
   

SourcePK2Value Second value that identies the entity that the aachment references.
   

Here are the values you use for each parameter.

• Use DOO_HEADERS_ALL for the order header.


• Use DOO_FULFILL_LINES_ALL for the fulllment lines.

Use these values for each parameter except for SourcePK2Value. You don't use either value for SourcePK2Value.

The GetAachment method returns the OrchestrationAachmentSDOs as output, which contains aachment details.

1645
Oracle SCM Cloud Chapter 11
Implementing Order Management Email, Reports, Aachments, Social Media

Here are some topics you can use to get details about the service path, abstract WSDL URL, and so on.
• Aachment Categories
• Aachment Information for Order and Order Lines
• Aachment Interface
• Aachment SDO
• Item Aachments
• Order Aachments
• Shipment Advice Aachment SDO
• Trading Partner Item Aachments

1646
Oracle SCM Cloud Chapter 11
Implementing Order Management Email, Reports, Aachments, Social Media

These topics are in the Service Data Objects section of book SOAP Web Services for Oracle Supply Chain Management
Cloud on Oracle Help Center.

For background details about aachments, see the Manage Aachments for Order Lines topic.

Related Topics
• Manage Aachments on Order Lines
• Manage Aachments on Order Lines

Integrate Aachments in Order Management


Use transformation and web services to integrate aachments in Order Management Cloud.
1. Allow Order Management to receive sales order aachments from an order capture system. Collect the
aachment category during orchestration data collection.
2. Transform the sales order, including aachment aributes, into ProcessSalesOrderFulllmentEBM.

This step transforms the order management message, including aachment aributes, into a format that the
order fulllment system can process. Note that Order Management doesn't accept aachments from the order
fulllment system, so it isn't necessary to map aachments from the order fulllment system message into a
format that Order Management can use in the response from the order fulllment system.
3. Allow Order Management to send sales order aachments to your fulllment system. Call the AachmentsAM
web service and use it to select and send aachments according to the type of fulllment request and the
aachment category.
4. Call the SalesOrderOrchestrationService web service.

Specify the mapping in the request body to SalesOrderOrchestrationService. For example, here's a request that
get the aachments that one fulllment line references.

<soap:Body>
<ns1:getAttachment xmlns:ns1="http://xmlns.oracle.com/apps/scm/doo/common/attachments/model/types/">
<ns1:dooGetParameters xmlns:ns2="http://xmlns.oracle.com/apps/scm/doo/common/attachments/model/">
<ns2:sourceEntityName>DOO_FULFILL_LINES_ALL</ns2:sourceEntityName>
<ns2:sourcePK1Value>100000045762 </ns2:sourcePK1Value>
<ns2:sourceTableName>DOO_FULFILL_LINES_ALL</ns2:sourceTableName>
</ns1:dooGetParameters>
</ns1:getAttachment>
</soap:Body>

5. Make a call in the connector to the order fulllment system to get the aachments that each fulllment line
references and the corresponding order header.

Social
Administer Social Conversations in Order Management
Enable Oracle Social Network in Order Management Cloud to allow your user community to engage in social
conversations about sales orders.
1. Sign in with a privilege you can use to manage social objects.

1647
Oracle SCM Cloud Chapter 11
Implementing Order Management Email, Reports, Aachments, Social Media

2. In the Navigator, click Setup and Maintenance.


3. On the Setup page, click Tasks > Search.
4. On the Search page, search for, then open Manage Oracle Social Network Objects.
5. On the Manage Oracle Social Network Objects page, in the Name column, expand Order Management, then
click Sales Order.
6. Click Enable Object.
7. In the Enable Object dialog, choose an option, then click OK.

Option Description

Manual Create social conversations only for conversations that the Order Entry Specialist manually
  starts for each sales order. To improve performance, choose Manual for most deployments.
 

Automatic Create a social conversation for every sales order.


   

8. In the Aributes area, click Actions, and then click New.


9. In the Select Aributes dialog, add a check mark to the Enabled option for each aribute that Order
Management must include in the conversation.

Order Management will stamp each aribute and the value for each aribute that you enable into the social
conversation thread. It will also stamp the current aribute value every time the conversation updates.

The term stamp means to impress a snapshot of data onto an object. For example, a sales order might contain
a set of aribute values that exist on a specic date, such as quantity equals four and color equals blue on
October 9, 2019. These values might change at some point, such as during order fulllment. A stamp impresses
the values of this sales order from a specic point in time onto an object, such as a social conversation, so it
provides an audit trail that you can use to communicate the values of aributes that existed in an historical
context.

1648
Oracle SCM Cloud Chapter 12
Implementing Order Management Troubleshoot

12 Troubleshoot

Tools and Techniques


Use SQL to Query Order Management Data
Use SQL to get data from the Order Management database, then analyze it.
Get details from the Order Management database to do a variety of administration tasks.

• Verify the data format and values you must use during order import or with a web service.
• Troubleshoot problems that occur during upgrades or other administrative set up.
• Save data into a data management tool of your choice so you can analyze it.

You create a data model in Oracle Business Intelligence and use it to query the Order Management database.

Assume you must query the database to get a list of users so you can identify the users who are active and the ones
who aren't.

Summary of the Steps

1. Create and run query.


2. Create report.
This topic includes example values. You might use dierent values, depending on your business requirements.

Create and Run Query


1. Sign in with a user that includes job role BI Publisher Data Model Developer.

Use this role to create a data model in Oracle Business Intelligence.


2. In the Navigator, click Reports and Analytics.

For details about how to use this work area, see the Use Reports and Analytics with Order Management topic.
3. On the Reports and Analytics page, click Browse Catalog.

Your browser opens a new tab for Oracle Business Intelligence.


4. In Oracle Business Intelligence, click Home.

1649
Oracle SCM Cloud Chapter 12
Implementing Order Management Troubleshoot

5. Create the data model.

◦ In the Create area, under Published Reporting, click More > Data Model.

You use a data model to set up the SQL you use to query the Oracle database. You can reuse the data
model for dierent SQL queries. It isn't necessary to create and save a separate data model for each SQL
query.
◦ On the Diagram tab, click New Data Set > SQL Query.
◦ In the New Data Set - SQL Query dialog, set values.

Aribute Value

Name My SQL
   

Data Source ApplicationDB_ FSCM (Default)


   
FSCM means Oracle Fusion Supply Chain Management.

1650
Oracle SCM Cloud Chapter 12
Implementing Order Management Troubleshoot

Aribute Value

Type of SQL Standard SQL


   

SQL Query You can enter some other query. For example, to get all order headers, enter. . .
   
To get all order lines, enter. . .
 

For example.

1651
Oracle SCM Cloud Chapter 12
Implementing Order Management Troubleshoot

◦ Click OK.

The Diagram tab displays the aributes that your SQL dened.

1652
Oracle SCM Cloud Chapter 12
Implementing Order Management Troubleshoot

◦ Click View Data, set Rows to 200, click View, click Table View, then examine the output.

6. In the upper-right corner, click Save, then save the output in My Folders.

Create Report
1. On the Data tab, click Save as Sample Data > OK.
2. In the upper-right corner, click Create Report.

1653
Oracle SCM Cloud Chapter 12
Implementing Order Management Troubleshoot

The Create Report wizard displays for your data model.

3. Click Next.
4. On the Select Layout step, enable the Landscape option, enable the Table option, then click Next.
5. On the Create Table step, adjust the layout to t your needs, then click Next.

1654
Oracle SCM Cloud Chapter 12
Implementing Order Management Troubleshoot

For example, drag and drop columns from the data source to the table.

6. On the Save Report step, enable the View Report option, then click Finish.

1655
Oracle SCM Cloud Chapter 12
Implementing Order Management Troubleshoot

7. Save the report, name it, such as SQLReport, then examine the results on the report output that displays.

As an option, save the result to a le type of your choice.

Add a Field
You can't extend the predened data model for Order Management. Instead, you can replace a eld in the report output
with the one you need.

Order Management uses the term item to describe the product your customer buys. The AS54888 Computer is
an example of an item. The predened data model uses the INVENTORY_ITEM_ID column to store the value that

1656
Oracle SCM Cloud Chapter 12
Implementing Order Management Troubleshoot

identies the item. In this example, you replace INVENTORY_ITEM_ID with ITEM_NUMBER so your report output is
more consistent with this usage.

1. Do steps 1 through 5 from earlier in this topic, except use these values in the New Data Set - SQL Query dialog.

Aribute Value

Name Add a Column


   

Data Source ApplicationDB_ FSCM (Default)


   
FSCM means Oracle Fusion Supply Chain Management.

1657
Oracle SCM Cloud Chapter 12
Implementing Order Management Troubleshoot

Aribute Value

Type of SQL Standard SQL


   

SQL Query
  SELECT * FROM fusion.DOO_LINES_ALL

2. Click Structure > Table View.


3. Locate the row that contains INVENTORY_ITEM_ID in the XML Tag Name column.
4. Modify values in the row you located.

Aribute Old Value New Value

XML Tag Name INVENTORY_ ITEM_ID ITEM_NUMBER


     

Display Name INVENTORY_ ITEM_ID Item Number


     

5. Click View Data, set Rows to 200, click View, click Table View, then examine the output.

Example SQL Queries


Sales Orders in Not Started Status or Processing Status and There Are No Exceptions

This problem typically occurs when the SOA server becomes unstable or overloaded and the SOA transactions time
out. Use a query to identify sales orders that remain in Not Started Status or Processing Status but that don't have any
exceptions.
SELECT f.last_update_date,
h.source_order_number,
l.display_line_number,
f.fulfill_line_number,
f.status_code,
f.fulfill_line_id
FROM doo_headers_all h,
doo_fulfill_lines_all f,
doo_lines_all l
WHERE h.header_id =l.header_id
AND h.submitted_flag='Y'
AND l.line_id =f.line_id
AND f.open_flag ='Y'
AND f.creation_date>= sysdate -- Use the date range to meet your needs
AND f.status_code IN ('NOT_STARTED') -- Get orders only in NOT_STARTED status
AND NOT EXISTS
(SELECT OrchestrationGroupEO.TRANSACTION_ENTITY_ID
FROM DOO_WAIT_TASK_DETAILS WaitTaskDetailsEO,
DOO_ORCHESTRATION_GROUPS OrchestrationGroupEO
WHERE WaitTaskDetailsEO.GROUP_ID = OrchestrationGroupEO.GROUP_ID
AND WaitTaskDetailsEO.STATUS_CODE='Active'
AND OrchestrationGroupEO.STATUS ='ACTIVE'
AND TRANSACTION_ENTITY_NAME ='DOO_ORDER_FLINES_V'
AND transaction_entity_id =f.fulfill_line_id
)

1658
Oracle SCM Cloud Chapter 12
Implementing Order Management Troubleshoot

ORDER BY f.source_order_number;

Use the Force Unlock action to recover these sales orders. For details, see the Unlock Draft Sales Orders topic.

Related Topics
• Use Reports and Analytics with Order Management
• Unlock Draft Sales Orders

1659
Oracle SCM Cloud Chapter 12
Implementing Order Management Troubleshoot

Get Error Messages and Status Updates


Get error messages and status updates for each sales order you import or integrate.
Assume you imported source order PMC-071816-007 from your source system on 1/01/2019 at 2:30 PM, but can't nd
it when you search on the Overview page in the Order Management work area. You can search messages to get a status
update or view error messages that occur during import.

1. Go to the Order Management work area, then click Tasks > Manage Order Orchestration Messages.
2. On the Manage Order Orchestration Messages page, set values, then click Search.

1660
Oracle SCM Cloud Chapter 12
Implementing Order Management Troubleshoot

Aribute Value

Reported Time After 1/01/2019 2:30 PM


   

Source Order Equals PMC-071816-007


   

3. Examine the message in the search results.

Related Topics
• Overview of Importing Orders into Order Management
• How Order-to-Cash Works with Order Capture Systems
• Overview of Importing Orders into Order Management

1661
Oracle SCM Cloud Chapter 12
Implementing Order Management Troubleshoot

Use Diagnostics to Troubleshoot Sales Orders


Use a diagnostic tool to troubleshoot problems you have with a sales order.

Note.

• Run the tool directly from the Navigator in real time.


• Get the current status of the sales order.

1662
Oracle SCM Cloud Chapter 12
Implementing Order Management Troubleshoot

• Get results from a range of diagnostic tests. For example, run the Order Orchestration test to determine
whether.

◦ A shipment set in the sales order includes a line that can't ship, such as a warranty.
◦ Order fulllment is locked because of a force cancel action.
◦ A hold failure occurred.

• Get processing details about the sales order, such as which fulllment tasks have run and their statuses.

Assume you must troubleshoot sales order 385081 that you created in the Order Management work area.

Try it.

1. Sign in with the Application Diagnostics Administrator job role.

For details, see the Application Diagnostics Administrator chapter in Security Reference for Common Features
at hps://docs.oracle.com/en/cloud/saas/applications-common/19d/oacsm/application-diagnostics-
administrator-job-role.html#application-diagnostics-administrator-job-role.
2. In the upper-right corner, click down arrow > Run Diagnostics Tests.
3. On the Diagnostic Dashboard page, in the Search for Tests area, enter the value, then click Search.

Aribute Value

Test Name Order Orchestration


   

4. In the search results, in the row that contains Order Orchestration Details in the Test Name aribute, add a
check mark to the box that's left of the test name, then click Add to Run.

In the Choose Tests to Run and Supply Inputs area, notice that the page added a row.

Test Name Prerequisites Details Input Status Test Identier

Order Orchestration No Icon you can click Required Input Values Order Orchestration
Details     Are Missing Details
     

5. In the Input Status column, click the caution icon.


6. In the Input Parameters dialog, in the New Value column, click the magnifying glass.
7. In the Search and Select dialog, enter the value.

Aribute Value

Source Order Number 385081


   

8. In the search results, click that row that contains your sales order, then click OK > OK.

In the Choose Tests to Run and Supply Inputs area, notice the value.

1663
Oracle SCM Cloud Chapter 12
Implementing Order Management Troubleshoot

Aribute Value

Input Status Inputs Edited: Required Input Values Validated


   

9. In the Test Run Submied dialog, notice the text, then click OK.

Tests Run "TestRun_958693F85A9E4A19E0535EBFF20A3CA7" has been submitted

Examine the results.

1. In the Diagnostic Test Run Status area, click View > Refresh, then examine the values.

Aribute Value

Run / Test / Step Name TestRun_ 958693F85A9E4A19E0535EBFF20A3CA7


   

Execution Status Completed


   

Diagnostic Status No Issues


   

Report An icon you can click to get details.


   

Run By Displays the user you used to sign in, such as DIAG_ADMIN.
   

The refresh displays all tests that diagnostics has run in the last 24 hours.
2. In the Run / Test / Step Name column, expand the folder, expand the child Order Orchestration Details
folder, then notice the hierarchy that displays.

TestRun_958693F85A9E4A19E0535EBFF20A3CA7
Order Orchestration Details
Diagnostics_Engine_Log
Order Orchestration Data

3. Verify the status for each row of the hierarchy.

Aribute Value

Execution Status Completed


   

4. In the row that contains TestRun_958693F85A9E4A19E0535EBFF20A3CA7, in the Report column, click the
icon.

The tool displays an HTML page that includes a report summary.


5. Close the report.

1664
Oracle SCM Cloud Chapter 12
Implementing Order Management Troubleshoot

6. In the Diagnostic Test Run Status area, in the row that contains Order Orchestration Details, in the Report
column, click the icon.

The tool displays an HTML page that includes a report summary.


7. Use the report.

Use the Report


Analysis Area

Use the analysis area of the report to get details about the current state of the sales order.

Analysis Details That the Report Displays

Recovery action is pending for the Source Order Number


order.  
  Display Line Number
 
Suggested Recovery
 

Changes to order not successfully Source Order Number


processed.  
  Display Line Number
 
Suggested Recovery
 

Order lines that haven't reached a Task Step Name


stable state.  
  Source Order Number
 
Display Line Number
 
Actual Start Date
 
Suggested Recovery
 

Order lines that haven't reached a Task Step Name


stable state for tasks with an explicit  
wait. Source Order Number
   
Display Line Number
 
Actual Start Date
 
Suggested Recovery
 

Order lines that a fulllment task has Source Order Number


locked.  
  Display Line Number
 
Suggested Recovery
 

Order lines that a shipping task has Source Order Number


locked.  
  Display Line Number

1665
Oracle SCM Cloud Chapter 12
Implementing Order Management Troubleshoot

Analysis Details That the Report Displays

 
Suggested Recovery
 

Order lines with problems that occur Source Order Number


during error recovery.  
  Display Line Number
 
Group Id
 
Suggested Recovery
 

Diagnosis Area

Use the Order Diagnosis area of the report to identify problems that occurred.

Analysis Example Results That the Report Displays

Locked draft headers. Sales order doesn't have a locked draft.


   

Fulllment lines with null delta types. Sales order doesn't have a null delta type.
   

Shipment set in this order contains Shipment set doesn't have a mix of shippable lines and nonshippable lines.
shippable and nonshippable lines.  
 

Order fulllment is locked because of There are no problems related to a forced cancellation.
force cancel.  
 

Double orchestration exists for There are no problems related to a double orchestration.
fulllment lines in the sales order.  
 

This order has pending action All user request are done and no more changes are allowed.
requests.  
 

No active wait record exists for this There are no problems related to waits.
order.  
 

Previous change is pending for this Order lines are healthy.


order.  
 

This order has hold failures. There are no apply hold failures.
   

Active hold on previous change. There are no active holds.


   

1666
Oracle SCM Cloud Chapter 12
Implementing Order Management Troubleshoot

Processing Details Area

Use the Processing Details area to get details about the processing that Order Management has done for the sales
order, such as order line details, orchestration process details, orchestration process steps that have run and their
statuses, fulllment task details, pending actions, holds applied, error messages, and so on.

Here are a few of the categories that the area contains.


• Processing Order Header
• Order Header Extensible Flexelds
• Order Lines
• Order Lines Extensible Flexelds
• Processing Fulllment Lines
• Fulllment Lines Details
• Order Orchestration Groups
• Process BPEL Instances
• Process Instances
• Step Instances
• Step Instance Details
• Task Instances
• Order State
• Process Hold
• Action Requests
• Inventory Reservations
• Order Warehouse Details
• Order Interface To Invoice
• Order Invoice
• Order Charges
• Order Charge Components
• Order Totals
• Error Message Icon
• Order Header Error Messages
• Document References

Details are extensive. Here's some example data from part of the Step Instances section.

DOO_PROCESS_STEP_ID STEP_NUMBER_NAME
TASK_NAME STEP_INSTANCE_ID
TASK_INSTANCE_ID
GROUP_ID STEP_ACTIVE STEP_STATUS
INSTANCE_ID

300100087585425
213 [1300] Invoice 300100087585434
300100087585430
300100087585407
ACTIVE NOT_STARTED
    Create            
Invoice
 

300100087585425
214 [1400] Invoice 300100087585435
300100087585430
300100087585407
ACTIVE NOT_STARTED
    Wait for            
Invoice

1667
Oracle SCM Cloud Chapter 12
Implementing Order Management Troubleshoot

DOO_PROCESS_STEP_ID STEP_NUMBER_NAME
TASK_NAME STEP_INSTANCE_ID
TASK_INSTANCE_ID
GROUP_ID STEP_ACTIVE STEP_STATUS
INSTANCE_ID

300100087585425
208 [800] Procure 300100087585436
300100087585431
300100087585407
ACTIVE NOT_STARTED
    Wait for            
Procurement
 

300100087585425
209 [900] Reserve 300100087585437
300100087585428
300100087585407
INACTIVE NOT_STARTED
    Create            
Reservation
 

300100087585425
210 [1000] Ship 300100087585438
300100087585429
300100087585407
INACTIVE NOT_STARTED
    Create            
Shipment
Request
 

300100087585425
211 [1100] Ship 300100087585439
300100087585429
300100087585407
INACTIVE NOT_STARTED
    Wait for            
Shipment
Advice
 

300100087585425
204 [400] Pause 300100087585440
300100087585426
300100087585407
INACTIVE NOT_STARTED
    Pause            
 

300100087585425
205 [500] Ship Back- 300100087585441
300100087585433
300100087585407
INACTIVE NOT_STARTED
    Create to-Back          
Back Goods
to Back  
Shipment
Request
 

300100087585425
206 [600] Wait Ship Back- 300100087585442
300100087585433
300100087585407
INACTIVE NOT_STARTED
    for Back to-Back          
to Back Goods
Shipment  
Advice
 

300100087585425
201 [100] Schedule 300100087585444
300100087585427
300100087585407
ACTIVE COMPLETED
    Schedule            
 

300100087585425
203 [300] Supply 300100087585445
300100087585432
300100087585407
INACTIVE NOT_STARTED
    Request Orchestration          
Supply  
 

300100087585446
213 [1300] Invoice 300100087585455
300100087585451
300100087585413
ACTIVE NOT_STARTED
    Create            
Invoice
 

1668
Oracle SCM Cloud Chapter 12
Implementing Order Management Troubleshoot

DOO_PROCESS_STEP_ID STEP_NUMBER_NAME
TASK_NAME STEP_INSTANCE_ID
TASK_INSTANCE_ID
GROUP_ID STEP_ACTIVE STEP_STATUS
INSTANCE_ID

300100087585446
214 [1400] Invoice 300100087585456
300100087585451
300100087585413
ACTIVE NOT_STARTED
    Wait for            
Invoice
 

300100087585446
208 [800] Procure 300100087585457
300100087585452
300100087585413
ACTIVE NOT_STARTED
    Wait for            
Procurement
 

300100087585446
209 [900] Reserve 300100087585458
300100087585449
300100087585413
INACTIVE NOT_STARTED
    Create            
Reservation
 

300100087585446
210 [1000] Ship 300100087585459
300100087585450
300100087585413
INACTIVE NOT_STARTED
    Create            
Shipment
Request
 

300100087585446
211 [1100] Ship 300100087585460
300100087585450
300100087585413
INACTIVE NOT_STARTED
    Wait for            
Shipment
Advice
 

300100087585446
204 [400] Pause 300100087585461
300100087585447
300100087585413
INACTIVE NOT_STARTED
    Pause            
 

300100087585446
205 [500] Ship Back- 300100087585462
300100087585454
300100087585413
INACTIVE NOT_STARTED
    Create to-Back          
Back Goods
to Back  
Shipment
Request
 

300100087585446
206 [600] Wait Ship Back- 300100087585463
300100087585454
300100087585413
INACTIVE NOT_STARTED
    for Back to-Back          
to Back Goods
Shipment  
Advice
 

300100087585446
201 [100] Schedule 300100087585465
300100087585448
300100087585413
ACTIVE COMPLETED
    Schedule            
 

300100087585446
203 [300] Supply 300100087585466
300100087585453
300100087585413
INACTIVE NOT_STARTED
    Request Orchestration          
Supply  
 

300100087585467
213 [1300] Invoice 300100087585476
300100087585472
300100087585419
ACTIVE NOT_STARTED
    Create            
Invoice

1669
Oracle SCM Cloud Chapter 12
Implementing Order Management Troubleshoot

DOO_PROCESS_STEP_ID STEP_NUMBER_NAME
TASK_NAME STEP_INSTANCE_ID
TASK_INSTANCE_ID
GROUP_ID STEP_ACTIVE STEP_STATUS
INSTANCE_ID

300100087585467
214 [1400] Invoice 300100087585477
300100087585472
300100087585419
ACTIVE NOT_STARTED
    Wait for            
Invoice
 

300100087585467
208 [800] Procure 300100087585478
300100087585473
300100087585419
ACTIVE NOT_STARTED
    Wait for            
Procurement
 

300100087585467
209 [900] Reserve 300100087585479
300100087585470
300100087585419
INACTIVE NOT_STARTED
    Create            
Reservation
 

300100087585467
210 [1000] Ship 300100087585480
300100087585471
300100087585419
INACTIVE NOT_STARTED
    Create            
Shipment
Request
 

300100087585467
211 [1100] Ship 300100087585481
300100087585471
300100087585419
INACTIVE NOT_STARTED
    Wait for            
Shipment
Advice
 

300100087585467
204 [400] Pause 300100087585482
300100087585468
300100087585419
INACTIVE NOT_STARTED
    Pause            
 

300100087585467
205 [500] Ship Back- 300100087585483
300100087585475
300100087585419
INACTIVE NOT_STARTED
    Create to-Back          
Back Goods
to Back  
Shipment
Request
 

300100087585467
206 [600] Wait Ship Back- 300100087585484
300100087585475
300100087585419
INACTIVE NOT_STARTED
    for Back to-Back          
to Back Goods
Shipment  
Advice
 

300100087585467
201 [100] Schedule 300100087585486
300100087585469
300100087585419
ACTIVE COMPLETED
    Schedule            
 

300100087585467
203 [300] Supply 300100087585487
300100087585474
300100087585419
INACTIVE NOT_STARTED
    Request Orchestration          
Supply  
 

1670
Oracle SCM Cloud Chapter 12
Implementing Order Management Troubleshoot

Get a Health Check


Run a test to scan through your database and identify problems across sales orders, then display a a list of sales order
that are in error.
1. On the Diagnostic Dashboard page, in the Search for Tests area, enter the value, then click Search.

Aribute Value

Test Name Order Management Health Check


   

2. In the Select column, add a check mark mark, then click Add to Run.
3. In the Choose Tests to Run and Supply Inputs area, in the Input Status column, click the icon.
4. In the Input Parameters dialog, set the date range, then click OK.
5. Click Run.
6. In the Diagnostic Test Run Status area, click View > Refresh, then examine the values.
7. Refresh the view until Execution Status displays Completed.
8. In the Order Management Health Check row, click the icon in the Report column.
Your browser displays the report in a separate tab.
9. Examine the results. For example.
◦ Pending recovery for the order
◦ Changes to sales order not successfully processed
◦ Order lines locked by fulllment tasks
◦ Order lines locked by shipping tasks
◦ Order lines that encountered problems while waiting for error recovery
◦ Order lines that are at the Await Billing status even after being billed
◦ Order lines that are missing references
◦ Recover actions not available in Order Management work area but line has an error
◦ Unstable sales orders
◦ Performance of Order Management

Details
Troubleshoot Order Management Setup
Fix problems that occur in your Order Management set ups.
Some solutions use SQL to query the Order Management database. For details about how to query, see the Use SQL to
Query Order Management Data topic.

Setup

1671
Oracle SCM Cloud Chapter 12
Implementing Order Management Troubleshoot

Trouble Shoot

I use the Manage Hold Codes page Use the Manage Task Types page to specify the tasks and services that you can choose for the
in the Setup and Maintenance work hold. You must set the Hold Enabled option to make the service display on the Services tab.
area. When aempting to add a For details, see the Set Up Task Types for Holds topic.
service on the Services tab, the  
Select and Add: Services dialog
doesn't display the service I need.
For example, it displays the Create
Shipping service but not the Update
Shipping service.
 

I go to the Manage Order Lookups The purpose of the Lookup Code aribute is to provide a quick way to scan all the codes. Use
page in the Setup and Maintenance the Meaning or Description aributes to provide more detail.
work area, but I can't add a lookup  
code that's longer than 30 characters. The same situation applies for other objects, such as the validation rule set in a processing
  constraint. Most of these objects include a code or short name, but also a description that you
I need more characters to accurately can use to elaborate.
describe the code.  
 

I use the ImportSalesOrder web If you use Global Order Promising to schedule your sales order, then create a business rule that
service to import values for the sets the Override Schedule aribute to Yes. This aribute instructs Global Order Promising not
Scheduled Ship Date and Scheduled to schedule the dates but instead to use whatever dates you already have.
Arrival Date aributes of each sales  
order. For an example rule, see the Set the Default Value for Scheduled Ship Date topic.
   
However, Order Management
replaces the imported values with
the value of the Requested Ship Date
aribute. It replaces the values when
it updates the sales order status.
 

Order Entry

Trouble Shoot

I create a sales order in the Order • Make sure enough stock is available in inventory to reserve and nish the transaction.
Management work area. I search See the Oracle SCM Cloud Using Inventory Management book on My Oracle Support.
for, then add an item on the catalog • Make sure you correctly set up your sourcing rules and ATP rules. Here's some
line, but the line displays an error resources.
message.
  ◦ Congure Global Order Promising section in the Quick Start for Implementing
Order-to-Cash topic.
No data was retrieved
  ◦ Dening a Basic Item Sourcing Rule and ATP Rule (Document 2207137.1) on My
Oracle Support.
• Make sure you collected on-hand availability. See article Collecting On Hand Inventory
Levels for Scheduling purposes (Document 2207161.1) on My Oracle Support.

I click Additional Information on Remove the space from the Code aribute, deploy, then publish the extensible exeld. For
the order header or order line details, see the Guidelines for Seing Up Extensible Flexelds in Order Management topic.
when creating a sales order in the  
Order Management work area, then
encounter an error that's similar to. . .
 

1672
Oracle SCM Cloud Chapter 12
Implementing Order Management Troubleshoot

Trouble Shoot

ADF_ FACES-60097: For more


information, please see the server's
error log for an entry beginning
with: ADF_ FACES-60096: Server
exception during PPR
 
This problem occurs when you
include a space in the Code aribute
of the extensible exeld segment.
 

One of my users encounters an error Wait for the server to come back online. If the problem persists after the server is available,
while creating a sales order. then deploy the orchestration process. For details, see the Deploy Orchestration Process topic.
   
Orchestration process
300000001288069 for order was not
started because it is not deployed or
the server is unavailable.
 
This problem occurs when you create
or modify an orchestration process
but don't deploy it or when the server
is down.
 

Order Management creates a new Use the Order Fulllment Response Service instead of OrderImportService or REST API. Order
sales order revision every time we Fulllment Response Service doesn't create a revision.
update an aribute.  
  For details about Order Fulllment Response Service, see the Web Services You Can Use to
We use OrderImportService or the Integrate Order Management topic.
Sales Order for Order Hub REST API  
to import source orders into Order
Management.
 
We have a scheduling application
in our fulllment system that
periodically calculates the scheduled
ship date, and we use an extensible
exeld on the order line to store the
date.
 
Our integration creates a new sales
order revision every time we change
the date. We don't want it to create a
revision.
 

I add my business unit to the If you add your business unit to the Coverage Start Date order management parameter, then
Coverage Start Date order order management uses it to calculate coverage dates.
management parameter.  
  If you prefer to manually enter the date on the order line, then remove your business unit from
Next, I create a sales order, add a the Coverage Start Date order management parameter.
coverage item, set the Contract Start  
Date for the item, then click Submit,
but Order Management changes the
Contract Start Date in the fulllment
view.
 

1673
Oracle SCM Cloud Chapter 12
Implementing Order Management Troubleshoot

Downstream Fulllment

Trouble Shoot

I encounter an error. Set the payment term when you set up the account.
   
Data validation failed for the task Order Management typically sets the payment term from the customer account setup when
layer service Create Billing Lines the user creates a sales order, by default. For details about how to specify the payment term,
because required data values were see the Guidelines for Controlling Customer Details in Order Management topic.
not provided. The payment term  
in the fulllment line is null. Source As an alternative, instruct your users to create an order revision, then set the payment term on
Order Information: xxxxxx the order header or order line.
   
This error occurs when the user
doesn't set the payment term on the
order header or order line, and the
customer account setup doesn't set
the payment term.
 

I encounter an error when I run 1. Sign in with a role you can use to access the Project Financial Management oering.
the Import AutoInvoice scheduled 2. In the Setup and Maintenance work area, open the task.
process.
  ◦ Oering: Project Financial Management
You must enter a value in either the
Original System Bill-to Customer ◦ Functional Area: Project Billing Base

Reference column or the Bill-to


Customer Account Number column.
◦ Task: Manage Transaction Sources

  3. On the Manage Transaction Sources page, in the Name aribute, search for, then open
This error occurs when you set the Distributed Order Orchestration.
value instead of the Id during set up. 4. On the Edit Transaction Source page, in the Customer area, set the option to Id for these
  aributes.

◦ Bill-to Customer

◦ Bill-to Address

1674
Oracle SCM Cloud Chapter 12
Implementing Order Management Troubleshoot

Trouble Shoot

◦ Bill-to Contact

5. Run the Import AutoInvoice scheduled process again.

For details about the scheduled process, see the Guidelines for Implementing Order-to-Cash
topic.

Order Status Doesn't Update to Shipped

1675
Oracle SCM Cloud Chapter 12
Implementing Order Management Troubleshoot

Your fulllment system conrmed shipment, but the order status remains at Awaiting Shipping instead of updating to
Shipped.

Its possible that the Send Shipment Advice scheduled process didn't successfully nish. Here's how you can x the
problem.

1. Resubmit the scheduled process for the shipment that shipped the order.
2. Wait for the process to nish.
3. Examine the sales order and conrm the order status is Shipped.
4. If resubmiing the scheduled processes doesn't x the problem, then modify your shipment setup.
Modify Your Shipment Setup

To make sure Order Management updates the order status, you must make sure you interface the shipment to
inventory, and that the shipment is closed.

For this example, assume Vision Operations (V1) is your inventory organization that fullls the shipment.

1. In the Navigator, click Setup and Maintenance.


2. Identify the ship conrm rule that your inventory organization uses.

◦ In the Setup and Maintenance work area, open the task.

• Oering: Manufacturing and Supply Chain Materials Management


• Functional Area: Shipping
• Task: Manage Shipping Parameters
◦ Set organization to Vision Operations.
◦ On the Manage Shipping Parameters page, notice the value in the Ship Conrm Rule aribute.

1676
Oracle SCM Cloud Chapter 12
Implementing Order Management Troubleshoot

For this example, assume the value is Auto Ship.

3. Modify the ship conrm rule.

◦ In the Setup and Maintenance work area, go to the task.

• Oering: Manufacturing and Supply Chain Materials Management


• Functional Area: Shipping
• Task: Manage Ship Conrm Rules
◦ On the Manage Ship Conrm Rules page, search for Auto Ship, then open it for editing.
◦ In the Edit Ship Conrm Rule dialog, set values, then click Save and Close.

Option Value

Close Shipment Enabled


   

Defer Sending Inventory Updates Disabled


to Integrated Applications  
 

1677
Oracle SCM Cloud Chapter 12
Implementing Order Management Troubleshoot

As an alternative, you can modify the options on the shipment.

1. In the Navigator, click Inventory Management.


2. On the Inventory Management page, click Tasks > Show Tasks Shipments > Manage Shipments.
3. On the Manage Shipments page, search for your shipment, such as 1982596.
4. In the search results, click the row that contains your shipment, then click Actions > Edit.
5. On the Edit Shipment page, near the upper right corner, click Actions > Change Ship Conrm Options.
6. In the dialog that displays, enable and disable the same options you set for the ship conrm rule.

Returns

1678
Oracle SCM Cloud Chapter 12
Implementing Order Management Troubleshoot

Trouble Shoot

I encounter an error when I aempt to


create a return for a closed order line. Assume you must return item AS54888.
 
This error might occur because 1. Sign in with a privilege you can use to access Product Information Management.
the setup in Product Information 2. In the Navigator, click Product Management > Product Information Management.
Management doesn't allow you to 3. On the Overview page, click Tasks > Manage Items.
return the item. 4. On the Manage Items page, search for item AS54888, then open it for editing.
 
5. On the Edit Item page, click Specications > Sales and Order Management.
6. Set the Returnable aribute to Yes, then click Save and Close.

As an option, run SQL on the Oracle database to conrm the value of the Returnable aribute
on the item and the fulllment line.

SELECT dfla.source_order_number ,
dfla.inventory_item_id ,
dfla.status_code ,
dfla.returnable_flag "Fline Return Flag",
esib.Item_number ,
esib.Returnable_flag "Item Return Flag"
FROM doo_fulfill_lines_all dfla,
egp_system_items_b esib
WHERE source_order_number = '&SOURCE_ORDER_NUMBER'
AND esib.inventory_organization_id = dfla.inventory_organization_id
AND esib.inventory_item_id = dfla.inventory_item_idWord' to retain
layout.]

Features
Transportation Management

Trouble Shoot

Order Management sends a request Use error recovery to retry the task.
to Transportation Management, but  
the web service between Integration Don't retry the call through Integration Cloud Service because Order Management can't accept
Cloud Service and Transportation an update from Transportation Management while the task is in error.
Management isn't up and running,  
so the Order Management work
area displays an error icon on the
fulllment line.
 

Transportation Management sends Manually resend the request from Transportation Management.
an update to Order Management,  
but Order Management rejects
the update because the fulllment
line isn't on a wait step in the
orchestration process, or the
orchestration process is already
processing another request.
 

Sales Agreements

1679
Oracle SCM Cloud Chapter 12
Implementing Order Management Troubleshoot

Trouble Shoot

I set the Customer aribute on Make sure you set up a sales agreement for the customer and that its active.
the order header, but no sales  
agreements are available in the Sales
Agreement aribute on the order
header when you create a sales order.
 

The sales agreements that are


available on the order header are Examine your sales agreement set up. Order Management includes sales agreements on the.
dierent from the ones that are
available on the order line. • Order header that you set up for the customer and are active.
  • Order line that you set up for the customer, are active, and that you specied for the
item on the order line.

Error Messages

Message Solution

Pricing did not apply a sales Make sure you correctly set up the adjustment basis on the pricing term for the sales
agreement adjustment for charge agreement.
Sale Price because it cannot nd  
adjustment basis 100010.
 

Pricing did not apply a tier Make sure you correctly set up the adjustment basis on the pricing term that adjusts price
adjustment on the sales agreement according to tiers for the sales agreement.
for charge Sale Price because it  
cannot nd adjustment basis 100010.
 

Pricing did not apply a tier Make sure you correctly set up the tier basis on the pricing term that adjusts price according
adjustment for the sales agreement to tiers for the sales agreement. Make sure you correctly set up the price element on the tier
to charge Sale Price because it cannot basis.
nd tier basis 100010.  
  For example, you can't use the QP_NET_PRICE price element as the tier basis for a pricing term
that references a sales agreement.
 

Get Details

Here's the SQL you can use to get details about sales agreements that you can set on the order header.
SELECT h.CONTRACT_ID, h.ID, h.MAJOR_VERSION, h.VERSION_TYPE,h.CONTRACT_NUMBER, h.CONTRACT_NUMBER_MODIFIER,
h.COGNOMEN CONTRACT_NAME, h.SHORT_DESCRIPTION, h.DESCRIPTION,h.STS_CODE, h.ORG_ID, h.INV_ORGANIZATION_ID,
h.CURRENCY_CODE,h.START_DATE, h.END_DATE,
p.OBJECT1_ID1 PRIMARY_PARTY_ID, p.RLE_CODE FROM OKC_K_HEADERS_VL h, OKC_CONTRACT_TYPES_VL t,
OKC_K_PARTY_ROLES_VL p
where h.CONTRACT_TYPE_ID=t.CONTRACT_TYPE_ID and h.BUY_OR_SELL='S' and t.CONTRACT_CLASS='AGREEMENT'
AND t.INTENT='S' and t.LINE_CLASS='SALES_AGREEMENT' AND h.ID=p.DNZ_CHR_ID(+) AND
h.MAJOR_VERSION=p.MAJOR_VERSION(+) AND p.PRIMARY_YN(+)='Y'
and h.STS_CODE='ACTIVE' and h.VERSION_TYPE in ('C','A') and h.TEMPLATE_YN='N' and h.ORG_ID=<BuId> and
h.CURRENCY_CODE=<CurrencyCode>
and p.OBJECT1_ID1=<PartyId> and <PricingDate> BETWEEN h.START_DATE AND Nvl(h.END_DATE,<PricingDate>)

Here's the SQL you can use to gets details about sales agreements that you can set on the order line.

1680
Oracle SCM Cloud Chapter 12
Implementing Order Management Troubleshoot

SELECT h.CONTRACT_ID, h.ID CHR_ID, l.MAJOR_VERSION, l.VERSION_TYPE, h.CONTRACT_NUMBER,


h.CONTRACT_NUMBER_MODIFIER, h.COGNOMEN CONTRACT_NAME, h.SHORT_DESCRIPTION CONTRACT_SHORT_DESCRIPTION,
h.DESCRIPTION CONTRACT_DESCRIPTION,l.STS_CODE, h.ORG_ID, h.INV_ORGANIZATION_ID,
l.CURRENCY_CODE,l.START_DATE, l.END_DATE, l.UOM_CODE,l.ID LINE_ID, l.LINE_NUMBER, l.ITEM_NAME,
l.ITEM_DESCRIPTION,
l.OBJECT1_ID1 ITEM_ID, l.OBJECT1_ID2 ITEM_INV_ORG_ID, p.OBJECT1_ID1 PRIMARY_PARTY_ID, p.RLE_CODE
FROM OKC_K_HEADERS_VL h, OKC_CONTRACT_TYPES_VL t, OKC_K_PARTY_ROLES_VL p, OKC_K_LINES_VL l
where h.CONTRACT_TYPE_ID=t.CONTRACT_TYPE_ID and h.BUY_OR_SELL='S' and t.CONTRACT_CLASS='AGREEMENT' AND
t.INTENT='S' and t.LINE_CLASS='SALES_AGREEMENT' AND h.ID=l.DNZ_CHR_ID AND h.MAJOR_VERSION=l.MAJOR_VERSION
and l.SOURCE_CODE_CLASS='SALES_AGREEMENT' and l.STS_CODE='ACTIVE' AND h.ID=p.DNZ_CHR_ID(+) AND
h.MAJOR_VERSION=p.MAJOR_VERSION(+) AND p.PRIMARY_YN(+)='Y'
-- and h.STS_CODE='ACTIVE' and h.VERSION_TYPE in ('C','A') and h.TEMPLATE_YN='N' and h.ORG_ID=<BuId>
and h.CURRENCY_CODE=<CurrencyCode> and l.OBJECT1_ID1=<ItemId> and l.OBJECT1_ID2=<InvOrgId> and
l.UOM_CODE=<UomCode>
and <PricingDate> BETWEEN l.START_DATE AND Nvl(l.END_DATE,<PricingDate>)

Order Management Extensions


XmlSlurper

I receive a response payload in XML format when I use a web service.


<ORACLE_INTEGRATION_MESSAGE xmlns="http://xmlns.oracle.com/oih/oracle_integration_message">
<DOCUMENT_NAME>STORE_PAYMENT_TRANSACTION</DOCUMENT_NAME>
<DOCUMENT_NUMBER>99999</DOCUMENT_NUMBER>
<DOCUMENT_TYPE>NEW_PAYMENT</DOCUMENT_TYPE>
<FROM_SYSTEM>AR</FROM_SYSTEM>
<TO_SYSTEM>STORE</TO_SYSTEM>
<PAYLOAD>
<PARAMETERLIST>
<!-- core mandatory attributes -->
<PARAMETER>
<NAME>GEC_SET_ID</NAME>
<VALUE>46777</VALUE>
</PARAMETER>
<PARAMETER>
<NAME>TRANSACTION_ID</NAME>
<VALUE>36787503</VALUE>
</PARAMETER>
</PARAMETERLIST>
</PAYLOAD>
</ORACLE_INTEGRATION_MESSAGE>

I have to parse this response in an order management extension. I aempt to import the XmlSlurper library to do the
parse but the order management extension displays an error.

The use of this class or type is not allowed: groovy.util.XmlSlurper

To x this problem, see the Extract Details section in the Troubleshoot Problems with Web Services topic.

Extension Errors Out When Not Using English

We deploy Order Management in a language that isn't English, such as Japanese. I set the SetName aribute to
Common Set in an extension.
vcrow.setAttribute("SetName", "Common Set");

I get an error when I submit the sales order.


Error executing Extended Order Type-AR Trns Type in event On Start of Submission Request:
oracle.jbo.JboException: JBO-29000: Unexpected exception caught: java.lang.NullPointerException, message =
Cannot invoke method getAttribute () on null object. (DOO-2685874) '

1681
Oracle SCM Cloud Chapter 12
Implementing Order Management Troubleshoot

This problem occurs because Common Set might not be available for your language. Instead, you can set the SetCode
aribute to COMMON.
vcrow.setAttribute("SetCode", "COMMON");

For an example of this usage, see the //Function to get Billing Transaction Type code in subtopic Set the Billing
Transaction Type According to Order Type, in topic Code Examples and Snippets for Order Management Extensions.

Performance

Trouble Shoot

Make sure the aribute value that you transform in a pretransformation rule is empty before
Performance decreases each time you set the value. For details, see the Manage Pretransformation Rules topic.
I add an order line to a sales order  
that I create or edit in the Order
Management work area. For example,
I add 25 order lines.

• The rst 15 requires about 1


second to add each line.
• The 21st line requires 10
seconds.
• The 22nd line requires 12
seconds.
• The 25th line requires 22
seconds.

I save the order, requery it, then


add the 26th line, which requires 2
seconds. To avoid the problem, I save
and requery the order each time I add
15 more lines. However, I have over
100 lines to add.

This problem typically occurs because


you dened a pretransformation
rule but didn't test to make sure the
aribute value was empty before
doing the transformation. So the
rule examines every row in the
sales order, including rows that the
rule already evaluated, instead of
evaluating only the rows that don't
contain a value.

Related Topics
• Overview of Importing Orders into Order Management
• Set Up User Roles and Privileges in Order Management
• Troubleshoot Problems with Congure-to-Order

1682
Oracle SCM Cloud Chapter 12
Implementing Order Management Troubleshoot

Fix Connection Problems with Source Systems


Troubleshoot an error message that indicates Order Management Cloud can't connect to a source system, such as
Oracle Congure, Price, and Quote Cloud.
1. In the Navigator, click Order Management.
2. On the Overview page, click Tasks > Manage Order Orchestration Messages.
3. On the Manage Order Orchestration Messages page, set the Order Orchestration Function aribute to Send
Event Notication, then click Search.
4. Examine the results.

◦ Make sure the search results displays an entry that includes the same URL you specied in the Connector
URL aribute of page Manage Connector Details. For details about this aribute, see the Integrate Order
Management with Source Systems topic.
◦ Make sure the URL correctly identies the connector that resides on the source system. To do this, sign
into your source system, then examine the connector services that are running.
◦ Wait a minute for the log to refresh, requery the Order Orchestration Messages page, then examine the
search results again to determine whether the connection successfully restarted. A network error or some
other problem might cause the connection to momentarily fail. If the connection restarted successfully,
then the list will include details about the events that are associated with the connector URL.

Troubleshoot Problems with Web Services


Fix problems that occur in your Order Management implementation that involve web services.
No Matching Row

Assume you use a web service to import a sales order. The payload includes. . .
<ns2:ProductNumber>BIGSTORE1111</ns2:ProductNumber>
<ns2:InventoryOrganizationIdentifier>300000001384059</ns2:InventoryOrganizationIdentifier>

. . .and you encounter error. . .


An order was not created because no matching row for attribute ProductNumber with the value BIGSTORE1111 was
found for the source order with the following details: source order BIGSTORE0007, source order line 2, source
order schedule 2. Check the attribute value, and resubmit the order.

The No Matching Row error typically occurs because the Oracle database doesn't contain the same value that your
import contains. In this example, your import inventory item isn't dened in the Oracle database or isn't associated with
the Inventory Organization that the web service payload species.

Use SQL to query the Oracle database.


SELECT HOU.ORGANIZATION_ID,
HOUTL.NAME,
HOUCL.CLASSIFICATION_CODE
FROM HR_ALL_ORGANIZATION_UNITS_F HOU,
HR_ORGANIZATION_UNITS_F_TL HOUTL,
HR_ORG_UNIT_CLASSIFICATIONS_F HOUCL
WHERE
HOU.ORGANIZATION_ID=HOUTL.ORGANIZATION_ID AND
HOU.ORGANIZATION_ID =HOUCL.ORGANIZATION_ID AND
HOUCL.CLASSIFICATION_CODE = 'INV'
ORDER BY

1683
Oracle SCM Cloud Chapter 12
Implementing Order Management Troubleshoot

HOUTL.NAME;

The query returns. . .

ORGANIZATION_ID NAME CLASSIFICATION_CODE

300000001286109 BIGSTORE Item Org INV


     

300000001286592 BIGSTORE_ CN_DC1 INV


     

300000001286615 BIGSTORE_ SG_DC1 INV


     

300000001286262 BIGSTORE_ US_MFG1 INV


     

300000001286412 BS Master Inventory Org INV


     

300000001286439 BS Retail Inventory Org INV


     

Run another query to get the inventory item that's associated with the inventory organization.
SELECT
ItemPEO.INVENTORY_ITEM_ID,
ItemPEO.ORGANIZATION_ID,
HOUTL.NAME,
ItemPEO.ITEM_NUMBER,
ItemPEO.INVENTORY_ITEM_STATUS_CODE
FROM EGP_SYSTEM_ITEMS_B ItemPEO,
HR_ORGANIZATION_UNITS_F_TL HOUTL
where
HOUTL.ORGANIZATION_ID = ItemPEO.ORGANIZATION_ID and
ItemPEO.ITEM_NUMBER = 'BIGSTORE1111';

The query returns. . .

INVENTORY_ITEM_ID ORGANIZATION_ID NAME ITEM_NUMBER INVENTORY_ITEM_STATUS_CODE

300000001292032 300000001286109 BIGSTORE Item Org BIGSTORE1111 Active


         

The payload sent InventoryOrganizationIdentifier>300000001384059<, but the Oracle database contains


300000001286109 for ORGANIZATION_ID.

Here's the correct value to send.


<ns2:ProductNumber>BIGSTORE1111</ns2:ProductNumber>
<ns2:InventoryOrganizationIdentifier>300000001286109</ns2:InventoryOrganizationIdentifier>

No Matching Row for Inventory Organization

I aempt to import a source order. The import payload includes. . .

1684
Oracle SCM Cloud Chapter 12
Implementing Order Management Troubleshoot

<ns2:ProductNumber>BIGSTORE1111</ns2:ProductNumber> <ns2:InventoryOrganizationIdentifier>300000001384059</
ns2:InventoryOrganizationIdentifier>

. . .but I encounter an error during import. . .


An order was not created because no matching row for attribute ProductNumber with the value BIGSTORE1111 was
found for the source order with the following details: source order BIGSTORE0007, source order line 2, source
order schedule 2. Check the attribute value, and resubmit the order.

This problem occurs because the inventory organization in your import payload isn't dened in the Oracle database.

To x this problem, rst get the list of inventory organizations that the Oracle database currently contains. Run this SQL.
SELECT HOU.ORGANIZATION_ID,
HOUTL.NAME,
HOUCL.CLASSIFICATION_CODE
FROM HR_ALL_ORGANIZATION_UNITS_F HOU,
HR_ORGANIZATION_UNITS_F_TL HOUTL,
HR_ORG_UNIT_CLASSIFICATIONS_F HOUCL
WHERE
HOU.ORGANIZATION_ID=HOUTL.ORGANIZATION_ID AND
HOU.ORGANIZATION_ID =HOUCL.ORGANIZATION_ID AND
HOUCL.CLASSIFICATION_CODE = 'INV'
ORDER BY
HOUTL.NAME;

Assume the query returns. . .

ORGANIZATION_ID NAME CLASSIFICATION_CODE

300000001286109 BIGSTORE Item Org INV


     

300000001286592 BIGSTORE_ CN_DC1 INV


     

300000001286615 BIGSTORE_ SG_DC1 INV


     

300000001286262 BIGSTORE_ US_MFG1 INV


     

300000001286412 BS Master Inventory Org INV


     

300000001286439 BS Retail Inventory Org INV


     

Next, get details for BIGSTORE1111, which is the inventory organization that your import payload species.
SELECT
ItemPEO.INVENTORY_ITEM_ID,
ItemPEO.ORGANIZATION_ID,
HOUTL.NAME,
ItemPEO.ITEM_NUMBER,
ItemPEO.INVENTORY_ITEM_STATUS_CODE
FROM EGP_SYSTEM_ITEMS_B ItemPEO,
HR_ORGANIZATION_UNITS_F_TL HOUTL
where
HOUTL.ORGANIZATION_ID = ItemPEO.ORGANIZATION_ID and

1685
Oracle SCM Cloud Chapter 12
Implementing Order Management Troubleshoot

ItemPEO.ITEM_NUMBER = 'BIGSTORE1111';

Assume the query returns. . .

INVENTORY_ITEM_ID ORGANIZATION_ID NAME ITEM_NUMBER INVENTORY_ITEM_STATUS_CODE

300000001292032 300000001286109 BIGSTORE Item Org BIGSTORE1111 Active


         

Next, x your import payload. Change the current value. . .


<ns2:ProductNumber>BIGSTORE1111</ns2:ProductNumber> <ns2:InventoryOrganizationIdentifier>300000001384059</
ns2:InventoryOrganizationIdentifier>

. . .to the value that the query returned in column ORGANIZATION_ID. . .


<ns2:ProductNumber>BIGSTORE1111</ns2:ProductNumber> <ns2:InventoryOrganizationIdentifier>300000001286109</
ns2:InventoryOrganizationIdentifier>

Aribute ORG_ID Isn't Valid

Assume you use enterprise business message ProcessSalesOrderFulllmentEBM to create a sales order and encounter
this error.
Error Message: {http://xmlns.oracle.com/apps/scm/doo/decomposition/receiveTransform/transformSalesOrder/
DooDecompTransformSalesOrderComposite}ProcessSalesOrderFulfillmentResponseEBM
Fault ID default/DooDecompTransformSalesOrderComposite!11.1.5.0.0*soa_7289e448-8b78-408f-af5c-116da7e1d9d2/
DecompositionProcess/70017-BpThw8-BpSeq55.49-2
Fault Time Sep 16, 2013 11:24:34 AM
Non Recoverable Business Fault :1 env:Server Attribute ORG_ID has invalid value 300000000562209 for service
ProcessOrderValidation.

This error occurs because the payload species value 300000000562209 for aribute ORG_ID, but the
Order Management database doesn't contain this value. The payload also doesn't correctly specify aribute
BusinessUnitReference and aribute BusinessUnitIdentication.

To x this problem, query the database.


SELECT
FABUV.BU_ID,
FABUV.BU_NAME,
FABUV.DEFAULT_SET_ID,
IOP.ORGANIZATION_ID,
IOP.ORGANIZATION_CODE,
HAOU.NAME
FROM
INV_ORG_PARAMETERS IOP,
HR_ALL_ORGANIZATION_UNITS HAOU,
FUSION.FUN_ALL_BUSINESS_UNITS_V FABUV
WHERE
HAOU.ORGANIZATION_ID = IOP.ORGANIZATION_ID AND
IOP.BUSINESS_unit_id = FABUV.BU_ID
ORDER BY
IOP.ORGANIZATION_CODE,
FABUV.BU_ID;

Assume the query returns. . .

1686
Oracle SCM Cloud Chapter 12
Implementing Order Management Troubleshoot

BU_ID BU_NAME DEFAULT_SET_ID ORGANIZATION_ID ORGANIZATION_CODENAME

300000001110916 USA1 Business 300000001111782 300000001201056 001 Seale Warehouse


  Unit        
 

300000001110916 USA1 Business 300000001111782 300000003887955 999 External Item


  Unit       Organization
   

300000001130053 USA2 Business 300000001111783 300000001201066 002 Atlanta


  Unit       Warehouse
   

300000001111783 300000001130184 003


300000001130053 USA2 Business       Chicago
Unit Distribution
Center

300000001341196 China Business 300000001341955 300000004396135 050 Shanghai


  Unit       Distribution Center
   

300000001341196 China Business 300000001341955 300000004396139 051 Shenzhen


  Unit       Warehouse
   

Assume you're aempting to create a sales order for Chicago Distribution Center, which is in USA2 Business Unit, and
aribute BU_ID for this business unit contains 300000001130053. To x the problem, you must dene these aributes.
Add this code to you payload.
<corecom:BusinessUnitReference>
<corecom:BusinessUnitIdentification>
<!-- BUSINESS UNIT ID-->
<corecom:AlternateObjectKey>
<corecom:ID>300000001130053</corecom:ID>
</corecom:AlternateObjectKey>
</corecom:BusinessUnitIdentification>
</corecom:BusinessUnitReference>

No Order Created, but No Error Reported

I send a payload to web service ReceiveOrderRequest to request to create a sales order.


<ns1:OrchestrationOrderRequest xmlns:ns2="http://xmlns.oracle.com/apps/scm/doo/decomposition/receiveTransform/
receiveSalesOrder/model/">
<ns2:SourceTransactionIdentifier>PMC-070716-013</ns2:SourceTransactionIdentifier>
<ns2:SourceTransactionNumber>PMC-070716-013</ns2:SourceTransactionNumber>
<ns2:BuyingPartyName>JAH CUSTOMER SHARED</ns2:BuyingPartyName>
<ns2:BuyingPartyContactName>Peter Pan</ns2:BuyingPartyContactName>
<ns2:TransactionalCurrencyCode>USD</ns2:TransactionalCurrencyCode>
<ns2:TransactionOn>2016-07-06T02:12:01</ns2:TransactionOn>
<ns2:RequestingBusinessUnitIdentifier>US_W_888_BU</ns2:RequestingBusinessUnitIdentifier>
<ns2:PartialShipAllowedFlag>false</ns2:PartialShipAllowedFlag>
<ns2:OrchestrationOrderRequestLine>

The request seems to run successfully but the Order Management work area doesn't display the sales order. You run a
ow trace in Oracle Enterprise Manager, which displays. . . .
<bpelFault><faultType>0</faultType><selectionFailure xmlns="http://docs.xyz.org/wsbpel/2.0/process/
executable"></selectionFailure></bpelFault>

1687
Oracle SCM Cloud Chapter 12
Implementing Order Management Troubleshoot

. . .and. . .
Exception is thrown because the from-spec at line 1,616 is evaluated to be empty

. . .and. . .
AssignEILAMServiceInput (faulted)

<details>
<from-spec>
<from>$inputVariable.payload/client:OrchestrationOrderRequest/ns4:SourceTransactionSystem</from>
</from-spec>
<variable>
<message>inputVariable</message>
</variable>
<fault>
<bpelFault>
<faultType>0</faultType>
<selectionFailure/>
</bpelFault>
</fault>
</details>

1688
Oracle SCM Cloud Chapter 12
Implementing Order Management Troubleshoot

For example.

The problem occurs because your request payload doesn't specify the source system. To x it, add aribute
SourceTransactionSystem to your payload.
<ns2:SourceTransactionSystem>ORA_BM_CPQ</ns2:SourceTransactionSystem>

For example.

<ns1:OrchestrationOrderRequest xmlns:ns2="http://xmlns.oracle.com/apps/scm/doo/decomposition/receiveTransform/
receiveSalesOrder/model/">
<ns2:SourceTransactionIdentifier>PMC-070716-013</ns2:SourceTransactionIdentifier>
<ns2:SourceTransactionNumber>PMC-070716-013</ns2:SourceTransactionNumber>

1689
Oracle SCM Cloud Chapter 12
Implementing Order Management Troubleshoot

<ns2:SourceTransactionSystem>ORA_BM_CPQ</ns2:SourceTransactionSystem>

<ns2:BuyingPartyName>GED CUSTOMER SHARED</ns2:BuyingPartyName>


<ns2:BuyingPartyContactName>Peter Pan</ns2:BuyingPartyContactName>
<ns2:TransactionalCurrencyCode>USD</ns2:TransactionalCurrencyCode>
<ns2:TransactionOn>2016-07-06T02:12:01</ns2:TransactionOn>
<ns2:RequestingBusinessUnitIdentifier>US_WT_DG09_BU</ns2:RequestingBusinessUnitIdentifier>
<ns2:PartialShipAllowedFlag>false</ns2:PartialShipAllowedFlag>
<ns2:OrchestrationOrderRequestLine>

For an example that uses ow trace, see the Route Requests from Order Management to Fulllment Systems topic.

For details about Oracle Enterprise Manager, see hps://www.oracle.com/technetwork/oem/enterprise-manager/


overview/index.html.

Access Denied

I send a request payload that uses the GetOrderDetails operation of web service OrderInformationService to get order
details. . .
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:typ="http://xmlns.oracle.com/
apps/scm/doo/decomposition/orderDetailServices/orderInformationService/types/" xmlns:ord="http://
xmlns.oracle.com/apps/scm/doo/decomposition/orderDetailServices/orderInformationService/">
<soapenv:Header/>
<soapenv:Body>
<typ:GetOrderDetails>
<!--Zero or more repetitions:-->
<typ:Order>
<!--Optional:-->
<ord:SourceTransactionIdentifier></ord:SourceTransactionIdentifier>
<!--Optional:-->
<ord:SourceTransactionSystem>OPS</ord:SourceTransactionSystem>
<!--Optional:-->
<ord:SourceTransactionNumber>21018</ord:SourceTransactionNumber>
<!--Optional:-->
<ord:SourceTransactionRevision></ord:SourceTransactionRevision>
<!--Optional:-->
<ord:IncludeHeaderAndLineAttributesOnly></ord:IncludeHeaderAndLineAttributesOnly>
</typ:Order>
</typ:GetOrderDetails>
</soapenv:Body>
</soapenv:Envelope>

You use the same user role and password that you use to successfully query and create sales orders in the Order
Management work area, but you receive an error response. . .
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
<env:Header/>
<env:Body>
<env:Fault>
<faultcode>env:Server</faultcode>
<faultstring>access denied (oracle.wsm.security.WSFunctionPermission http://server:port/apps/scm/doo/
decomposition/orderDetailServices/orderInformationService/OrderInformationService#GetOrderDetails invoke)</
faultstring>
</env:Fault>
</env:Body>
</env:Envelope>

This problem occurs because you must use privilege Manage Order Details Web Service to access
OrderInformationService, but the user role you used doesn't include this privilege.

1690
Oracle SCM Cloud Chapter 12
Implementing Order Management Troubleshoot

To x the problem, assign privilege Manage Order Details Web Service


(DOO_MANAGE_ORDER_DETAILS_WEB_SERVICE_PRIV) to your user role. For details, see the Manage User Roles and
Privileges in Order Management topic.

Release Hold Web Service Doesn't Release Hold

I try to release a credit check hold through a web service, but the service returns a failed status. For example, the
payload fails even when I use dierent reason codes.
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:dood="http://xmlns.oracle.com/apps/scm/doo/decomposition/orderDetailServ
ices/DooDecompOrderDetailSvcComposite">
<soapenv:Header/>
<soapenv:Body>
<dood:ReleaseHoldProcessRequest>
<!--1 or more repetitions:-->
<dood:ReleaseHoldRequestParams>
<dood:SourceOrderSystem>OPS</dood:SourceOrderSystem>
<dood:SourceOrderId>300000005191106</dood:SourceOrderId>
<dood:SourceLineId>300000005191107</dood:SourceLineId>
<dood:SourceHoldCode>SR_TEST</dood:SourceHoldCode>

<dood:HoldReleaseReasonCode>ORA_CREDIT_CHK_FAIL_RESOLVED</dood:HoldReleaseReasonCode>
<dood:HoldReleaseComments>NewTest</dood:HoldReleaseComments>
</dood:ReleaseHoldRequestParams>
</dood:ReleaseHoldProcessRequest>
</soapenv:Body>
</soapenv:Envelope>

You can't release a credit check hold through a web service. You can release it only in the Order Management work area.
Sign into Order Management with a privilege you can use to release the hold, then release it. For details, see the Allow
Users to Close Case Folders topic.

Hold Details Not Available

We use the Order Import web service and Receive Order service to import source orders. I need the header details and
order line details for holds that Order Management applies as a result of the import. I need to know whether Order
Management applies the hold and, if not, why not.

The response from Order Import provides details in the callback for each asynchronous operation. Examine the
elements in the response.
ord:ReturnStatus?</ord:ReturnStatus>
<!--Optional:-->
ord:MessageName?</ord:MessageName>
<!--Optional:-->
ord:MessageText?</ord:MessageText>

These elements indicate whether the service successfully processed the sales order or, if not, the errors it encountered
and error text.

The RequestHold operation and Release Pause Tasks operation are asynchronous. You must implement the callback to
receive a response from them.

Related Topics
• Overview of Importing Orders into Order Management
• Set Up User Roles and Privileges in Order Management

1691
Oracle SCM Cloud Chapter 12
Implementing Order Management Troubleshoot

Troubleshoot Problems With Order Import


Fix problems that occur in your Order Management implementation during order import.

Problem Solution

I encounter an error message. If your order import includes a coverage item, and if your import data already denes pricing
  for the item before you do the import, then make sure the extended amount for the charge
Order management did not import components on the coverage line contains a value.
source order TEST_NOV21_02  
because of the following error: An Make sure the Duration Header Total aribute on the DOO_ ORDER_ CHARGE_ COMPS_INT
order was not created due to an tab of the order import template contains a value for each coverage line.
unknown error. Check the run time  
user interface for processing status.
Number of orders that did not pass
validation: 1. Some of these orders
may be available in the order entry
user interface.
 
This problem might occur when the
extended amount for the charge
components on the coverage line
doesn't contain a value.
 

I use OrderImportService to import Manage Customers doesn't support managing contact and contact email for each account.
customer data, including the Contact  
aribute and the ContactEmail
aribute. I use the Customer Data
Management page and verify that
the import successfully imported
contact and contact email. I prefer
to manage the contact and contact
email for each account on the
Manage Customers page, but can't
view these aributes on this page.
 

I encounter an error message. Set the RollupFlag aribute to N on the DOO_ ORDER_ CHARGES_ INT tab of the order import
  template.
 

It takes a long time to create the CSV


le when I do le-based data import. Try this on the computer you're using when you create the CSV le.
 
For example, every day I import over • Install the latest version of Microsoft Visual C++ Redistributable Packages.
300 sales orders from my source • Disable hardware acceleration in Excel.
system into Order Management. I • Disable Excel add-ins that you don't need.
can load the header details in the
rst worksheet with no problems,
but after I after import about 1,900
lines from the second worksheet,
DOO_ ORDER_ LINES_ALL_INT the
server performance declines to 15 to
20 seconds delay for each line.
 
I wait for over an hour but its still
processing the lines.

1692
Oracle SCM Cloud Chapter 12
Implementing Order Management Troubleshoot

Problem Solution

I import a sales order, but then Disable the DOO_ IMPORTED_ DRAFT_ HEADER_UPDATE processing constraint.
encounter an error when I use the  
Order Management work area to Note that, if you disable the constraint, and if you import a sales order that you already priced,
change an aribute on the order, and if you then use the Order Management work area to change the quantity or any other
such as price, date, quantity, and so aribute that aects price, then Order Management doesn't reprice the order.
on.  
 
You cannot save the draft Order
because of following error: You
cannot edit this Sales Order because
you can not modify the Price, Tax Or
the Shipping Charge. You cannot edit
this Sale Order because it was created
in a dierent Source System.
 

Problems with Scheduled Processes


Assume you run the Import Sales Orders scheduled process, it nishes running and reports status Error.

1693
Oracle SCM Cloud Chapter 12
Implementing Order Management Troubleshoot

For example.

Note.

1. On the Scheduled Processes page, in Search Results, click the row that's in error.
2. In the Log and Output area, next to Aachment, click the link.
3. Open the aachment and examine the error message.
For example.
Request Id: 65735
Batch Name: 10810
Source System: null
Order Number: null
Allow Auto Purge: Y
Order PMC_IMP_161208_002 will not be imported due to the following error: An order was not created because
no matching row for attribute ProductNumber with the value AS54888777 was found for the source order with

1694
Oracle SCM Cloud Chapter 12
Implementing Order Management Troubleshoot

the following details: source order PMC_IMP_161208_002, source order line 1, source order schedule 11.
Check the attribute value, and resubmit the order..
Number of orders that were imported: 0. Check the run time user interface for processing status.
Number of orders that did not pass validation: 1. Some of these orders may be available in the order entry
user interface.
Overall Result : ERROR

This error occur because data in your order import template isn't correct. For example, ProductNumber contains
AS54888777 but the Oracle database contains AS54888. Use SQL to query the Oracle database and identify the correct
data to import.

For another example.


Request Id: 65699
Batch Name: 10810
Source System: null
Order Number: null
Allow Auto Purge: Y
Order PMC_IMP_161208_001 will not be imported due to the following error: An order was not created because
the value 300,000,001,469,001,777 provided for the attribute SOLD_TO_PARTY_ID is invalid for the source
order with the following details: source order PMC_IMP_161208_001. Check the attribute value, and resubmit
the order..
Number of orders that were imported: 0. Check the run time user interface for processing status.
Number of orders that did not pass validation: 1. Some of these orders may be available in the order entry
user interface.
Overall Result : ERROR

This error occur because the SOLD_TO_PARTY_ID aribute contains 300,000,001,469,001,777 but the Oracle database
contains 300000001469001. Use SQL to query the Oracle database and identify the correct data to import.

Problems with Congured Items


You might encounter an error where your import can't nd part of a congured item, such as a conguration node. For
example, you encounter an error.
Cannot find a matching configuration node for item 12345

A conguration node is part of a congured item. A congure option is an example of a conguration node. This error
might occur even if the node exists in the structure of a congured item that includes an instance type of Optional
Single Instance. The order import process does a search that validates and creates the structure that it includes in the
sales order even if a node, such as Option Classes, is missing in the order import data that denes the structure.

However, if the root of the congured item contains a reference model that you set up as Optional Single Instance, or
if its part of an option class, and if the order import data doesn't include the absolute path to the node, then the search
won't nd the node.

To avoid this problem, use the Product Information Management work area to modify the instance type of the structure
from Optional Single Instance to Required Single Instance. Your modication won't aect functional behavior. You must
also set order management parameter Use Congurator for Order Import Validation to Yes.

For example, assume the order import data includes M1, M1.M2, M1.M2.SI2, and the Product Information Management
includes this structure for a congured item.
M1
|_M2 (Optional Single Instance)
|_OC1
|_SI2

The order import search won't nd the complete structure, it will create an error during order import, and it will add an
entry in the Order Import log that's similar to this entry.

1695
Oracle SCM Cloud Chapter 12
Implementing Order Management Troubleshoot

The order import process failed for source order source_order_identifier for the following reason: Cannot
find a matching configuration node for item item_number on order line number order_line_number.

where

• source_order_identier identies the source order


• item_number identies the item
• order_line_number identies the order line

This entry indicates that the search couldn't nd a matching congure option in the Optional Single Instance node.

For another example, assume the order import data includes M1, M1.M2, M1.M2.SI1, and the Product Information
Management contains this structure.
M1
|_OC1
|_M2 (Optional Single Instance)
|_SI1

The order import search will fail in the same way it failed in the rst example.

Problems with Cross-References


Can't Find a Cross-Reference Value for an Aribute

I encounter an error on the Manage Order Orchestration Messages page.


A cross-referenced value was not found for attribute CURRENCY_CODE in source system XXXXXXX

You might also encounter this error in the response to your import payload.
<bpelFault>
<faultType>1</faultType>
<processResponse xmlns="http://xmlns.oracle.com/apps/scm/doo/decomposition/receiveTransform/
receiveSalesOrder/DooDecompReceiveOrderComposite">
<part name="payload">
<processResponse xmlns:client="http://xmlns.oracle.com/apps/scm/doo/decomposition/receiveTransform/
receiveSalesOrder/DooDecompReceiveOrderComposite" xmlns="http://xmlns.oracle.com/apps/scm/doo/decomposition/
receiveTransform/receiveSalesOrder/DooDecompReceiveOrderComposite">
<client:OrchestrationOrderResponse>
<ns4:SourceTransactionNumber xmlns:ns4="http://xmlns.oracle.com/apps/scm/doo/decomposition/receiveTransform/
receiveSalesOrder/model/">HITECH0001</ns4:SourceTransactionNumber>
<ns4:SourceTransactionIdentifier xmlns:ns4="http://xmlns.oracle.com/apps/scm/doo/decomposition/
receiveTransform/receiveSalesOrder/model/">36466323</ns4:SourceTransactionIdentifier>
<ns4:SourceTransactionSystem xmlns:ns4="http://xmlns.oracle.com/apps/scm/doo/decomposition/receiveTransform/
receiveSalesOrder/model/">ORA_BM_CPQ</ns4:SourceTransactionSystem>
<ns4:ReturnStatus xmlns:ns4="http://xmlns.oracle.com/apps/scm/doo/decomposition/receiveTransform/
receiveSalesOrder/model/">ERROR</ns4:ReturnStatus>
<ns4:MessageName xmlns:ns4="http://xmlns.oracle.com/apps/scm/doo/decomposition/receiveTransform/
receiveSalesOrder/model/">env:Server</ns4:MessageName>
<ns4:MessageDescription xmlns:ns4="http://xmlns.oracle.com/apps/scm/doo/decomposition/receiveTransform/
receiveSalesOrder/model/">A cross-referenced value was not found for attribute CURRENCY_CODE in source
system ORA_BM_CPQ.</ns4:MessageDescription>
</client:OrchestrationOrderResponse>
</processResponse>
</part>
</processResponse>
</bpelFault>

1696
Oracle SCM Cloud Chapter 12
Implementing Order Management Troubleshoot

This problem occurs because the source system, such as CPQ, doesn't require cross references but the Enable Data
Cross-Reference option is enabled on the Manage Planning Source Systems page in the Setup and Maintenance work
area.

To x the problem, disable the Enable Data Cross-Reference option.

Orchestration Message Error

I encounter an error on the Manage Order Orchestration Messages page.


Cross-Referenced Value Not Found for UOM_CODE

My import payload includes. . .


<ns2:OrderedQuantity>1</ns2:OrderedQuantity>
<ns2:OrderedUOMCode>EA</ns2:OrderedUOMCode>

Two reasons might cause this problem.

• You didn't collect data from the source system for Global Order Promising.
• Your import payload doesn't include the correct UOM code.

1697
Oracle SCM Cloud Chapter 12
Implementing Order Management Troubleshoot

First, in the Setup and Maintenance work area, open the Review Collected Order Reference Data page, click Units of
Measure, then search for the unit of measure that your import payload references. If you can't nd it, then you must
collect data. For details, see the Quick Start to Implement Order-to-Cash topic.

Next, run SQL against the Order Management database.


select
mai.instance_id,
mai.instance_code,
muom.unit_of_measure,
muom.uom_code
from
msc_units_of_measure MUOM,
msc_apps_instances MAI
where
MAI.instance_id = MUOM.SR_Instance_id;

This SQL determines whether the inventory and data collection tables contain the UOM you're importing.

Assume the query returns. . .

INSTANCE_ID INSTANCE_CODE UNIT_OF_MEASURE UOM_CODE

300000000120910 OPS EA AbC


       

Next, run SQL to get the unit of measure that the UOM code references.
SELECT uom_code,
uom_class,
base_uom_flag,
unit_of_Measure,
description
FROM inv_units_of_measure_B iuomb,
inv_units_of_measure_tl iuomtl
WHERE iuomb.unit_of_measure_id = iuomtl.unit_of_measure_id
and iuomtl.language = 'US'
ORDER BY UOM_code;

Assume the query returns. . .

UOM_CODE UOM_CLASS BASE_UOM_FLAG UNIT_OF_MEASURE DESCRIPTION

AbC 1 Y EA EACH
         

Modify your input payload so it uses the UOM_CODE that the query returns. For example, replace. . .
<ns2:OrderedQuantity>1</ns2:OrderedQuantity>
<ns2:OrderedUOMCode>EA</ns2:OrderedUOMCode>

. . . with. . .
<ns2:OrderedQuantity>1</ns2:OrderedQuantity>
<ns2:OrderedUOMCode>AbC</ns2:OrderedUOMCode>

1698
Oracle SCM Cloud Chapter 12
Implementing Order Management Troubleshoot

As an alternative, modify your input payload or so it uses the OrderedUOM aribute instead of OrderedUOMCode, and
references the value from UNIT_OF_MEASURE instead UOM_CODE.
<ns2:OrderedQuantity>1</ns2:OrderedQuantity>
<ns2:OrderedUOM>EA</ns2:OrderedUOM>

Related Topics
• Overview of Importing Orders into Order Management
• Set Up User Roles and Privileges in Order Management

Compare Import Data to Oracle Database Data


Query the Oracle database to determine whether your import data meets database requirements.

Assume you run the ProcessOrderRequest operation on the ReceiveOrderRequestService web service at hps://
server:port/soa-infra/services/default/DooDecompReceiveOrderExternalComposite/ReceiveOrderRequestService.

Assume the header section of the payload includes this code.


<ns1:OrchestrationOrderRequest>
<ns2:BuyingPartyName>XXXXXXXXXX</ns2:BuyingPartyName>
<ns2:BuyingPartyId>7777777777</ns2:BuyingPartyId>

And the order line section of the payload includes this code.
<ns2:OrchestrationOrderRequestLine>
<ns2:BillToCustomerName>ZZZZZZZZZZ</ns2:BillToCustomerName>
<ns2:BillToCustomerIdentifier>8888888888</ns2:BillToCustomerIdentifier>
<ns2:BillToAccountSiteUseIdentifier>9999999999</ns2:BillToAccountSiteUseIdentifier>

Run an SQL query to determine whether these values are correct. For details, see the Use SQL to Query Order
Management Data topic.

Here's how you can map.

Aribute in Payload SQL

BuyingPartyName PARTY_NAME
   

BuyingPartyId PARTY_ID
   

BillToCustomerName PARTY_NAME
   

BillToCustomerIdentier CUST_ ACCOUNT_ID


   

BillToAccountSiteUseIdentier ORIG_ SYSTEM_ REFERENCE


   

1699
Oracle SCM Cloud Chapter 12
Implementing Order Management Troubleshoot

Error with SOLD_TO_PARTY_ID


Assume you encounter an error.
An order was not created because a value was not provided for the required attribute SOLD_TO_PARTY_ID in
the source order with the following details: source order 12345. Provide a value for SOLD_TO_PARTY_ID, and
resubmit the order.

Run SQL to identify the correct data you should use.


SELECT HZ.PARTY_ID ,
CUSTOMERACCOUNTSITEPEO.CUST_ACCOUNT_ID ,
HZ.PARTY_NAME ,
lOCATIONPEO.ADDRESS_STYLE ,
lOCATIONPEO.COUNTRY ||','|| LOCATIONPEO.ADDRESS1 ||','|| LOCATIONPEO.CITY ||','|| LOCATIONPEO.POSTAL_CODE
LOCATION ,
CUSTOMERACCOUNTSITEPEO.STATUS "Account Site Status" ,
CUSTOMERACCOUNTSITEPEO.BILL_TO_FLAG ,
CUSTOMERACCOUNTSITEPEO.SHIP_TO_FLAG ,
CUSTOMERACCOUNTSITEUSEPEO.SITE_USE_CODE ,
CUSTOMERACCOUNTSITEUSEPEO.PRIMARY_FLAG ,
CUSTOMERACCOUNTSITEUSEPEO.STATUS "Cust_Site_Use Status" ,
CUSTOMERACCOUNTSITEUSEPEO.ORIG_SYSTEM_REFERENCE ,
CUSTOMERACCOUNTSITEUSEPEO.CUST_ACCT_SITE_ID ,
CUSTOMERACCOUNTSITEPEO.SET_ID
FROM fusion.HZ_PARTIES HZ ,
fusion.HZ_PARTY_SITES PartySitePEO ,
fusion.HZ_LOCATIONS LocationPEO ,
fusion.HZ_CUST_ACCT_SITES_ALL CustomerAccountSitePEO ,
fusion.HZ_CUST_SITE_USES_ALL CustomerAccountSiteUsePEO
WHERE HZ.PARTY_ID = PARTYSITEPEO.PARTY_ID
AND
(PARTYSITEPEO.LOCATION_ID = LOCATIONPEO.LOCATION_ID)
AND
(PARTYSITEPEO.PARTY_SITE_ID = CUSTOMERACCOUNTSITEPEO.PARTY_SITE_ID)
AND
(CUSTOMERACCOUNTSITEPEO.CUST_ACCT_SITE_ID = CUSTOMERACCOUNTSITEUSEPEO.CUST_ACCT_SITE_ID)
and upper(HZ.PARTY_NAME) like upper('&CUSTOMER_NAME%')

Error with BILL_TO


Assume you encounter an error.
An order was not created because a value was not provided for the required attribute BILL_TO_CUSTOMER_ID
in the source order with the following details: source order XXXXXXXXX, source order line 1, source order
schedule 1. Provide a value for BILL_TO_CUSTOMER_ID, and resubmit the order.

Or this error.
An order was not created because a value was not provided for the required attribute BILL_TO_SITE_USE_ID
in the source order with the following details: source order XXXXXXXXX, source order line 1, source order
schedule 1. Provide a value for BILL_TO_SITE_USE_ID, and resubmit the order.

Then run SQL to identify the correct data you should use.
SELECT accounts.party_id ,
accounts.account_name ,
accounts.account_number ,
party_sites.party_site_name ,
sites.cust_acct_site_id ,
sites.cust_account_id ,
site_uses.site_use_code ,
site_uses.primary_flag ,
site_uses.site_use_id ,
site_uses.location ,

1700
Oracle SCM Cloud Chapter 12
Implementing Order Management Troubleshoot

locations.ADDRESS1 || ' ' || locations.ADDRESS2 || ' ' || locations.ADDRESS3 || ' ' || locations.ADDRESS4
|| ' ' || locations.CITY || ' ' || locations.POSTAL_CODE || ' ' || locations.STATE ||
' ' || locations.country ,
territory.territory_short_name
FROM fusion.hz_cust_accounts accounts ,
fusion.hz_cust_acct_sites_all sites ,
fusion.hz_party_sites party_sites ,
fusion.hz_cust_site_uses_all site_uses ,
fusion.hz_locations locations ,
fusion.fnd_territories_vl territory
WHERE sites.cust_account_id = accounts.cust_account_id
AND party_sites.party_site_id = sites.party_site_id
AND site_uses.cust_acct_site_id = sites.cust_acct_site_id
AND locations.location_id = party_sites.location_id
-- AND site_uses.site_use_code = 'BILL_TO'
-- AND site_uses.primary_flag = 'Y'
AND site_uses.STATUS = 'A'
AND accounts.STATUS = 'A'
AND sites.STATUS = 'A'
AND locations.COUNTRY = territory.territory_code
AND EXISTS
(
SELECT 1
FROM fusion.fnd_setid_assignments
WHERE set_id = sites.set_id
AND reference_group_name = 'HZ_CUSTOMER_ACCOUNT_SITE'
AND determinant_type = 'BU'
)
and upper(accounts.account_name ) like upper('&CUSTOMER_NAME%')

Example SQL Output


Assume SQL returns results.

PARTY_ID ACCOUNT_ID PARTY_NAME SITE_USE_CODE ORIG_SYSTEM_REFERENCE

300000001469001 300000001469002 Computer Service and SHIP_TO 300000001469006


    Rentals    
 

300000001469001 300000001469002 Computer Service and BILL_TO 300000001469016


    Rentals    
 

300000001469001 300000001469002 Computer Service and BILL_TO 300000002494053


    Rentals    
 

300000001469001 300000001469002 Computer Service and BILL_TO 300000002494059


    Rentals    
 

300000001469001 300000001469002 Computer Service and SHIP_TO 300000002494060


    Rentals    
 

Correct the Problem


Here's the mapping you can use to correct the problem.

1701
Oracle SCM Cloud Chapter 12
Implementing Order Management Troubleshoot

Aribute in Payload Value from SQL

BuyingPartyName Computer Service and Rentals


   

BuyingPartyId 300000001469001
   

BillToCustomerName Computer Service and Rentals


   

BillToCustomerIdentier 300000001469002
   

BillToAccountSiteUseIdentier 300000001469016
   

Here's the corrected payload for the order header . . .


<ns1:OrchestrationOrderRequest>
<ns2:BuyingPartyName>Computer Service and Rentals</ns2:BuyingPartyName>
<ns2:BuyingPartyId>300000001469001</ns2:BuyingPartyId>

. . . and the order line. . .


<ns2:OrchestrationOrderRequestLine>
<ns2:BillToCustomerName>Computer Service and Rentals</ns2:BillToCustomerName>
<ns2:BillToCustomerIdentifier>300000001469002</ns2:BillToCustomerIdentifier>
<ns2:BillToAccountSiteUseIdentifier>300000001469016</ns2:BillToAccountSiteUseIdentifier>

Related Topics
• Overview of Importing Orders into Order Management
• How Order-to-Cash Works with Order Capture Systems
• Overview of Importing Orders into Order Management

Update or Close Fulllment Lines That Remain Open


Close a fulllment line that remains open when it should be closed.
Order Management Cloud closes a fulllment line when it nishes all steps of the orchestration process. In some
situations, an orchestration process step might indicate that fulllment is done, such as shipping is done for a shipping
step. The indicator might mean your organization considers fulllment done when the orchestration process reaches
this step, but the fulllment line is still open.

If the Update or Close Sales Orders scheduled process hasn't run since Order Management closed the fulllment line,
then Order Management might display sales orders and order lines as open even if it closed all the fulllment lines that
these orders and lines reference. You can run the scheduled process to x the problem.

Assume you administer a call center that's open 9AM to 5PM, and you must process all order headers that Order
Management creates during the open hours. You also must run the process every day for the 2018 scal year, and run
the process after the call center closes.

Update or close fulllment lines that remain open.


1. In the Navigator, under the Tools section, click Scheduled Processes.
2. On the Scheduled Process page, click Actions > Schedule New Process.

1702
Oracle SCM Cloud Chapter 12
Implementing Order Management Troubleshoot

3. In the Schedule New Process dialog, click the down arrow, click Search, then search for the value.

Aribute Value

Name Update or Close Sales Orders


   

4. Click OK > OK.

5. Make sure at least one sales order is open that meets the values you set in the next step. If no sales order meets
the criteria you set, then the process might return an error.
6. In the Process Details dialog, set values.

Aribute Value

Entity Name
  Required. Enter one.

◦ Header. For sales order.

◦ Line. For order line.

For this example, enter Header.

Entity ID
  To process one.

◦ Order header, enter the ID for the order header.

◦ Order line, enter the ID for the order line.

If you don't enter a start date, end date, or interval hours, then you must enter an entity ID.
You can run a query to get the entity ID.

For this example, leave Entity ID empty.

Start Date and End Date


  Use Start Date and End Date to specify the time period to consider when updating or closing
the entity.

◦ Start Date. Specify the earliest time and date when Order Management created the
entity.
◦ End Date. Specify the latest time and date when Order Management created the
entity.

For example, if you set Header as the entity, and if you set.

◦ Noon yesterday as the Start Date, and 4PM yesterday as the End Date, then the
scheduled process updates all order headers that Order Management created
yesterday on or after Noon and on or before 4PM.
◦ Noon yesterday as the Start Date but don't specify the End Date, then the scheduled
process updates all order headers that Order Management created on or after Noon
yesterday up to the current time.
◦ Noon yesterday as the End Date but don't specify the Start Date, then the scheduled
process updates all order headers that Order Management created on or before Noon
yesterday.

1703
Oracle SCM Cloud Chapter 12
Implementing Order Management Troubleshoot

Aribute Value

If you enter interval hours, then don't enter a start date or end date.

For this example, leave these aributes empty.

Interval Hours Period of time in hours to count backward from the time when the process starts. The
  scheduled processes uses this interval to identify the entities it processes.
 
For example, if you enter 8 for interval hours, and if you enter Header, and if you leave
all other aributes empty, then the scheduled process processes all entities that Order
Management created in the eight hours immediately before you click Submit.
 
For this example, enter 10 in the Interval. The call center is open 9 to 5, which is 8 hours.
You will set the scheduled process to start at 5:30 so the Order Entry Specialists can nish
creating any sales orders that they're currently adding. Using 10 as the interval will pick up
these sales orders, and also any sales orders created after 7:30 AM.
 

7. Click Advanced > Using a Schedule, then set values.

Aribute Value

Frequency Daily
   

Every 1 Day
   

Start Date 1/1/18 5:30 PM


   

End Date 12/31/18 5:30 PM


   

8. Click Submit.

Filter Lines In Your Extensions, Rules, and Constraints


Make sure you lter out lines that you don't want to revise when you create an order management extension or
business rule, and that you constrain the changes you allow on the fulllment line.
For example.

• Filter out order lines that are canceled, closed, on backorder, or that Order Management has sent to billing
when you create a business rule that modies a value on a fulllment line that's still in progress.
• Filter out order lines you already fullled. For example, lter out lines you already shipped for outbound lines or
lines you already received and delivered for return lines.
• Filter so you only process changes that you make to billing aributes, for example, on the Billing tab of the
order line, and only if you haven't sent the order line to billing. For example, only modify Accounting Rule,
Payment Terms, Receivable Transaction Type, and so on. Don't modify any other aributes.

1704
Oracle SCM Cloud Chapter 12
Implementing Order Management Troubleshoot

• Avoid the NullPointerException error. If your logic depends on using an aribute value as part of a calculation,
then lter out lines that include an aribute that doesn't contain a value.
• Filter according to line category code. For example, to process only order lines, not return lines, lter the
categoryCode aribute on the fulllment line according to ORDER. To process only returns, lter it according to
the value RETURN.
• If you use an order management extension, pretransformation rule, or posransformation rule to set the
default values for aributes, then lter out fulllment lines that reference the original return when you populate
the value for the Accounting Rule aribute and Invoicing Rule aribute.

Here are some more topics you might nd useful.


• Filter out lines that aren't shippable. Don't aempt to ship an item that isn't shippable, such as a warranty.
For an example that lters out lines that aren't shippable, see topic Select Fulllment Lines for Orchestration
Process Steps.
• Filter out lines that reference a coverage item, such as a service agreement. To reserve means you reserve an
item in inventory. You don't store a service agreement in inventory because its not a physical item, so don't
reserve it. For details, see topic Another Example of Using Extensible Flexelds In Line-Selection Rules.
• Filter out return lines that you don't want to ship on an outbound sales order. See topic Prevent Orchestration
Process from Shipping Return Lines.
• Filter out lines that already passed trade compliance. If the line passed, then don't send a request to screen the
line for trade compliance. For details, see topic Use Extensible Flexelds in Line-Selection Rules.

Create Filters In an Order Management Extension


Assume you're revising a line that Order Management is currently fullling, so you don't want to revise lines that are
closed, canceled, shipped, or that Order Management has sent to accounts receivable. Write an extension that lters the
lines.
//
//===========================================================
import oracle.apps.scm.doo.common.extensions.ValidationException;

def lines = header.getAttribute("Lines");

while( lines.hasNext() ) {
def line = lines.next();
Long referenceFlineId = line.getAttribute("ReferenceFulfillmentLineIdentifier");

// If the reference line is null then this isn't a revision.


if(referenceFlineId != null) {
// Get running line if this is a revision.
def runningLine = getLinesFromRunningOrder(referenceFlineId);

if( runningLine == null ) {


// We have an error condition. No fline found with referenceFlineId.
throw new ValidationException("Something's not right. Couldn't find line using reference fline id.");
}

if (runningLine.getAttribute("FulfillLineStatusCode") == "CLOSED" ||
runningLine.getAttribute("FulfillLineCanceledFlag") == "Y" || //Line is cancelled.
runningLine.getAttribute("FulfillLineShippedQty") != null || //Line is shipped.
runningLine.getAttribute("FulfillLineInvoiceInterfacedFlag") == "Y" ){ //Line is interfaced to invoicing.
// This line isn't valid for setting default values.
continue;
}
}
else {
// This sales order doesn't have a revision.
//Its ok to set the default value for attributes.

1705
Oracle SCM Cloud Chapter 12
Implementing Order Management Troubleshoot

}
//Put your defaulting logic here.
//line.setAttribute(<attribute name>, <value>);
}

Object getLinesFromRunningOrder(Long runningLineId) {

// Create an instance of the FulfillLinePVO public view object (PVO).


def flinePVO = context.getViewObject("oracle.apps.scm.doo.publicView.analytics.FulfillLinePVO");

// Create a view criteria object.


def vc = flinePVO.createViewCriteria();

// Create a view criteria row.


def vcrow = vc.createViewCriteriaRow();

// Set query conditions on the view criteria row.


vcrow.setAttribute("FulfillLineId", runningLineId);
vc.add(vcrow);

def rowset = flinePVO.findByViewCriteriaWithBindVars(vc, -1, new String [0], new String [0]);

if (rowset.hasNext()) {
def fline = rowset.first();
return fline;
}
}

Create Filters in Business Rules


Write a business rule that lters fulllment lines, such as in a pretransformation rule, posransformation rule, line-
selection criteria, or assignment rule.

1706
Oracle SCM Cloud Chapter 12
Implementing Order Management Troubleshoot

Here's an example line-selection criteria.

The line-selection criteria lters out lines that can't ship so Order Management only sends shippable lines to the
fulllment system that processes shippable lines, such as the shipping system or Global Order Promising.

Note.
• Use the Manage Orchestration Process Denitions task in the Setup and Maintenance work area.
• Use the line-selection criteria to add the rule.
• Add the rule to each orchestration process step that shippable aects, as necessary. For example, if the item is
a warranty, then it isn't shippable. To lter out the line that isn't shippable, you probably want to add the rule to
each step that references a schedule, reserve, or ship task, such as the Schedule step, the Create Reservation
step, Create Shipment Request step, and so on.

1707
Oracle SCM Cloud Chapter 12
Implementing Order Management Troubleshoot

• The entire If statement isn't visible in the screen capture. Here are the entire statements.

◦ DooSeededOrchestrationRules.DOOFLine.categoryCode is "ORDER"
◦ DooSeededOrchestrationRules.DOOFLine.shippableFlag is "Y"

• You can't use Visual Information Builder to select fulllment lines. You must edit the orchestration process and
use Oracle Business Rules.

Example of a Pretransformation Rule

Write a pretransformation rule where you set the value for an aribute, but only after you lter lines. For example.

• If the order line isn't closed, canceled, shipped, or already sent to billing, then set the default value for the
requested ship date aribute.

For details about how to create a posransformation rule, see the Transformation Rules topic.

1708
Oracle SCM Cloud Chapter 12
Implementing Order Management Troubleshoot

Constrain Changes You Allow on Fulllment Lines

Note.

• Use the Manage Processing Constraints task in the Setup and Maintenance work area.
• Set the Entity aribute to Order Fulllment Line.
• Use the Details area to add your lters.

Assume you don't want your users to modify a fulllment line value, such as Ship-to Site, if the line is closed or
canceled, or if it already shipped or already invoiced.

1709
Oracle SCM Cloud Chapter 12
Implementing Order Management Troubleshoot

Aribute Name Validation Operation Value String

Canceled Equal To Yes


     

Invoiced Equal To Yes


     

Shipped Quantity Is Not Null -


     

Status Equal To Closed


     

You can also create a constraint that prevents the user from submiing a sales order that doesn't include payment
terms for lines that meet a specic criteria. For example, the line isn't a return line, or the line is for an internal transfer.
For details, see the Control Payment Terms section in topic Guidelines for Controlling Customer Details in Order
Management.

Related Topics
• Overview of Creating Order Management Extensions
• Processing Constraints
• Orchestration Processes
• Select Fulllment Lines for Orchestration Process Steps
• Another Example of Using Extensible Flexelds In Line-Selection Rules

1710
Oracle SCM Cloud Glossary
Implementing Order Management

Glossary
action
The kind of access, such as view or edit, named in a security policy.

activity
An event that occurs outside of Order Management Cloud. For example, an orchestration process might include an
activity task type to configure a network router. An activity contains the details needed to finish the task. A user can do
an activity as part of finishingorder fulfillment. Order Management can assign an activity to a user.

advance shipment notice


A notification that a delivery is pending.

approval rule
A statement that specifies an IF THEN condition. The condition determines how and when to route a sales order
through sales order approval. For example, if the order total is greater than $10,000, then get approval from an order
manager.

assemble-to-order (ATO)
An item that warehouse personnel assemble to meet the requirements of a configured item. Warehouse personnel pick
configure options from inventory then assemble them. For example, the Sentinel Laptop Computer is a configured item
that includes configure options, such as hard drive, memory, and processor. Warehouse personnel pick the hard drive,
memory, and processor from inventory shelves, then assemble them into a finished, functioning laptop.

assignment rule
A rule that assigns an orchestration process to fulfillment lines.

attribute
The property of a sales order, order line, fulfillment line, or orchestration process. Customer and Ship-To Address
are each an example of an attribute of a sales order. Quantity is an example of an attribute of an order line. Actual
Start Date is an example of an attribute of an orchestration process. Jeopardy Score is an example of an attribute of a
fulfillment line.

back-to-back fulfillment
A business flow where supply is reserved against a particular sales order until shipping. You create supply for a back-to-
back order using one or more of the following: make, buy, transfer, and reservation of on-hand supply.

blanket purchase agreement


A long term agreement for the purchase of goods and services from a supplier. It includes terms and conditions, details
of the goods or services to be purchased from the supplier, and negotiated amounts. The blanket agreement does not
contain delivery dates, individual delivery quantities, or amounts. Complete details necessary to supplier fulfillment are
specified subsequently in purchase orders issued against the agreement.

1711
Oracle SCM Cloud Glossary
Implementing Order Management

bucket set
A container that holds the overall range of values that a group of buckets defines.

business event
An occurrence in an application or system that might be significant to objects in some other application or system.
Applying a hold on a sales order is an example of a business event.

business event trigger point


A condition that causes a business event to occur.

business object
A resource in an enterprise database, such as an invoice or purchase order.

business rule
A statement that describes how to implement a business policy or make a business decision. For example, a business
rule can enforce a spending policy, constrain a process so it meets a regulatory requirement, calculate a discount or
premium, provide an offer according to customer value, and so on.

business unit
A unit of an enterprise that performs one or many business functions that can be rolled up in a management hierarchy.

business unit set


A group of business units that include similar characteristics. For example, assume you add business unit 1 and business
unit 2 to business unit set x, then attach Payment Term NET30 to set x. You can then use this term for business unit 1 and
business unit 2.

catalog line
Area in the Order Lines tab on the Create Order page in order management that you can use to search for an item
before adding it as an order line.

client business unit


A business unit that can requisition and process invoices for a supplier site. One or more procurement business units
can service a client business unit.

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 Management receives a change order that includes a new warehouse for the step, then it runs the
Cancel service and the Create service again.

1712
Oracle SCM Cloud Glossary
Implementing Order Management

configuration model
A hierarchical structure that specifies how to represent a configured item. A desktop computer that includes a monitor,
keyboard, mouse, and external speakers is an example of a configuration model. In this example, the desktop computer
is the parent item, and the peripherals are the child configure options.

Configurator
A feature you can use to configure a configured item. Use the Configurator to choose configure options for an item
from a list of available options. It uses constraints to make sure the items you choose fit together correctly. It reduces
configuration errors, which in turn reduces change order processing and rework that's required during order fulfillment.

configure option
A child component of a configured item. A desktop computer is an example of a configured item. The hard drive,
monitor, and mouse are each an example of a configure option. You can choose the value for a configure option from a
list of available options.

configured item
An item that includes one or more configure options that you can configure. A desktop computer where you choose the
hard drive, monitor, and mouse is an example of a configured item. The hard drive, monitor, and mouse are each an
example of a configure option.

connector
A web service that receives a message from order management, transforms the message into a format that your
fulfillment system can understand, then calls the fulfillment system. The connector can also transform the web service
response into an order management message.

cost of change
A numeric value that measures how much a change impacts an orchestration process. For example, the monetary cost
to a company, or the difficulty that's associated with incorporating the change.

coverage
An agreement that adds value to an item by providing support, service, repair, replacement, and so on. Extended
warranty, service level agreement, and software maintenance are each an example of a coverage.

coverage item
An item that adds value by providing coverage for another item. For example, a six month warranty is a coverage item
for a laptop computer, and the laptop computer is the covered item. Extended Warranty, Service Level Agreement, and
Software Maintenance are each an example of a coverage.

covered item
An item that a coverage item covers. For example, a six month warranty is a coverage item for a laptop computer, and
the laptop computer is the covered item.

1713
Oracle SCM Cloud Glossary
Implementing Order Management

credit check
Calculation that determines whether credit that's currently available for the customer account is equal to or greater than
the transaction amount.

cross-reference
A reference that relates business data between an order capture system, order fulfillment system, and order
management. For example, an item cross-reference can create a relationship between an item, such as Widget A, that
resides in a source system, and a representation of the same item in order management. The cross-reference helps to
manage the representation of data across systems.

customer
A customer is someone with whom you have a selling relationship. The selling relationship can result from the purchase
of products and services, or from the negotiation of terms and conditions that provide the basis for future purchases.

data model
The metadata that determines where data for a report comes from and how that data is retrieved.

decision table
A set of IF statements displayed as a table. You can use a decision table when you set up a rule that includes more than
one IF statement.

descriptive flexfield
Expandable fields used for capturing additional descriptive information or attributes about an entity, such as a customer
case. You may configure information collection and storage based on the context.

drop ship
To take the title of a product, but not actually handle, stock, or deliver it, such as when one supplier ships directly to
another or to the buyer's customer.

drop shipment
A type of shipment where the supplier ships directly to your customer. The shipper for a drop shipment that occurs
outside of your organization is usually a 3rd party supplier. The shipper for a drop shipment that occurs inside of your
organization is another business unit.

duty role
A group of function and data privileges representing one duty of a job. Duty roles are specific to applications, stored in
the policy store, and shared within an application instance.

explicit wait
Wait that orchestration applies on an order line for a long-running task. An explicit wait is a planned and expected part
of processing, such as waiting for your fulfillment system to reply with the expected delivery date.

1714
Oracle SCM Cloud Glossary
Implementing Order Management

extensible flexfield
Expandable fields that you can use to capture multiple sets of information in a context or in multiple contexts. Some
extensible flexfields let you group contexts into categories.

extension point
An event that you specify to determine when to run an order management extension.

external interface routing rule


Business rule that specifies how to route a fulfillment request to a fulfillment system. You can specify each rule so it
selects the fulfillment system connector according to order, fulfillment line, or orchestration process attribute.

external system or external application


A system or application that's external to and not part of order management. An order capture system that resides
upstream of order management is an example of an external system. A fulfillment application that resides downstream
of order management is also an example of an external application.

flexfield
A flexible data field that you can configure such that it contains one or more segments or stores additional information.
Each segment has a value and a meaning.

flexfield segment
An extensible data field that represents an attribute and captures a value corresponding to a predefined, single
extension column in the database. A segment appears globally or based on a context of other captured information.

fulfillment line
A request to fulfill an item. A fulfillment line contains details about the request, such as customer, sales order number,
item, quantity, scheduled ship date, actual ship date, shipping method, and so on. To improve fulfillment, you can
schedule a fulfillment line, reserve product for it, substitute an item for it, change the warehouse, change the shipping
method, change the demand class, and so on.

fulfillment system
A system that resides downstream of order management that's responsible for fulfilling a sales order. For example, a
fulfillment system is responsible for shipping physical goods to your customer, such as shipping a laptop computer
from a warehouse to a customer location.

fulfillment task
A type of task that order management does to fulfill a sales order. Schedule and Ship are each an example of a
fulfillment task. Order management might use more than one orchestration process step to finish a single fulfillment
task.

hold code
An object in Order Management that you can use to control what services the hold can stop from running, and who can
apply the hold. Order Management comes predefined with a set of hold codes that you can use, but you can also add
your own.

1715
Oracle SCM Cloud Glossary
Implementing Order Management

hybrid configuration model


A type of configuration model that includes an assemble-to-order model as the child and a purchase-to-order model
as the parent. Order management uses one blanket purchase agreement to source the assemble-to-order configure
options, and a different blanket purchase agreement to source the purchase-to-order configure options.

implicit wait
Wait that orchestration applies on an order line when a functional or technical problem occurs during order processing.
An implicit wait allows the user to use a recover action to attempt to recover the order.

import file
Flat file you use as an interface between your source system and order management. You copy source orders into the
file, then use a scheduled process to import orders from the import file into order management.

integration algorithm
Set of rules that uses conditional logic, variables, functions, and code to manipulate data in a service data object (SDO).
An integration algorithm manages an integration between order management and some other application.

interface table
Database table that stores data during data transfer between applications or between databases that reside inside and
outside of an Oracle Fusion application.

internal identifier
Value that order management uses to create a reference between a lookup that you specify for an item, customer, or
reference data, to details from the Product Information Management work area, Trading Community Architecture, or
data collection. The data resides in the Order Orchestration and Planning Repository. For example, if your sales order
uses payment terms, then you must set up the value in Oracle, and then set up collections processing.

internal material transfer


Goods or services moving between internal organizations. Internal material transfers are executed through transfer
orders or interorganization transactions.

internal order
Sales order you use transfer an item from one part of your organization to another part of the same organization. For
example, to transfer an item from Computer Service and Rentals - Warehouse A, to Computer Service and Rentals -
Warehouse B. For another example, to transfer an item from Computer Service and Rentals - Korea Manufacturing, to
Computer Service and Rentals - USA Distribution Center.

inventory organization
A logical or physical entity in the enterprise that tracks inventory transactions and balances, stores definitions of items,
and manufactures or distributes products.

1716
Oracle SCM Cloud Glossary
Implementing Order Management

inventory transaction
A transaction that moves an item into, within, or out of Oracle Fusion Inventory Management.

item
A product you add to a sales order. Order management displays items in the Item column when you add an order line
to a sales order. For example, items for a company that sells hardware might include nuts, bolts, and screws. Items for
a company that sells computers might include hard drives, computer monitors, and desktop computers. Items for a
wireless service provider might include service plans, international calling services, and instant messaging services.
Items for an insurance company might include fire insurance.

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.

item validation organization


An inventory organization whose primary or secondary unit of measure is used as the costing unit of measure for the
item in the cost organization to which that inventory organization belongs. The item master organization can also be
designated as the item validation organization.

jeopardy
Level of risk that the delay of an orchestration process task causes. For example, Low, Medium, or High.

jeopardy priority
Value that describes the level of risk that's associated with delaying a fulfillment task. For example, Low, Medium, or
High.

jeopardy score
Numeric ranking that indicates the severity of a delay in finishing a fulfillment task.

jeopardy threshold
Range of time that a task is delayed.

job role
Sign in that allows each user to access the application features that the user needs to do a job in the application, and to
access the data that these features reference. Order Entry Specialist, Order Manager, Order Administrator, and Supply
Chain Application Administrator are each an example of a job role in order management.

kit
A configured item that includes one or more configure options. The Order Entry Specialist can use the Order
Management work area to modify configure options for a configured item, but not for a kit.

1717
Oracle SCM Cloud Glossary
Implementing Order Management

lead-time
Amount of time that order management needs to finish an orchestration process step, including wait steps and pause
steps.

lead-time expression
Business rule that determines the amount of time you expect an orchestration process step needs to finish. Use it to
calculate planning for an orchestration process. For example, an item that requires complex packing might need a
longer lead-time for shipping.

line selection rule


Type of rule that determines whether an orchestration process step fulfills 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.

long-running task
Type of task that includes a wait step, such as a shipping step, receiving step, and so on.

lookup
Value that an Oracle application displays in a list of values. This list typically allows the user to choose a single value,
such as in a drop-down list. The application uses various logic to search for the lookup values that it displays.

offering
Grouping of setup tasks that support specific business functions, such as Sales, Service, and Product Management.

Oracle BI Publisher
An Oracle application that performs the following formatting tasks for Oracle Fusion Payments: 1) formats extracted
data into a message, such as a settlement batch or payment file, that can be understood by the payment system, 2)
supports remittance advice formatting and delivery.

orchestration planning
The process of orchestrating and planning the fulfillment of a sales order. For example, planning dates, planning
shipments, and so on. Replanning is the process of updating an orchestration plan for a sales order to accommodate
a change that occurs to this sales order or in the fulfillment environment. For example, when a customer changes the
quantity of an existing sales order.

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.

1718
Oracle SCM Cloud Glossary
Implementing Order Management

orchestration process branch


A path in an orchestration process that Order Management runs when a condition is met.

orchestration process class


A set of statuses that you can assign to an orchestration process.

orchestration process instance


An instance of an orchestration process definition. An orchestration process definition specifies the steps, behavior,
processing, and so on that automates order orchestration across fulfillment systems. An orchestration process instance
is the run time representation of this definition. It includes temporary data and transactional data that orchestration
requires to process a specific sales order or fulfillment line.

orchestration process step


Step of an orchestration process that specifies the fulfillment task service that order management calls or the
subprocess to start. Each step references a task type, task, and service. A step might also specify branching.

orchestration subprocess
Set of sequential steps. Its an orchestration process that another orchestration process references.

order compensation
The process of modifying a sales order so it accurately reflects changes that have occurred to the order. For example,
assume order management receives a change order that requests to ship an item from a different warehouse. Order
management adjusts the order so it uses the different warehouse, updates delivery dates so the dates accurately reflect
the time needed to ship the item from the different warehouse, and so on.

Order Entry Specialist


Job role that allows an end-user to create and manage sales orders in the Order Management work area.

order fulfillment
Part of the order management lifecycle that fulfills a sales order. Order fulfillment typically begins right after the
user clicks Submit in order management. Order management then schedules, ships, and bills the sales order. Order
management communicates with downstream fulfillment systems to finish fulfillment.

order header
Attributes of a sales order that apply to the entire order, such as Customer, Contact, Purchase Order, Business Unit, and
Sales Credits. The attributes that display above the Order Lines area and above the catalog line on the Create Order
page constitute the order header.

1719
Oracle SCM Cloud Glossary
Implementing Order Management

order import template


A template you can use to structure your source data so you can import it into order management.

order line
Line on a sales order that specifies details about an item, such as item number, quantity, shipping details, billing details,
and so on. Order management transforms an order line into a fulfillment line when the Order Entry Specialist clicks
Submit.

order management extension


A Groovy script you write to help meet your specific order fulfillment requirements.

order orchestration
Order management feature that uses an automated sequence of fulfillment steps to process a sales order through one
or more order fulfillment systems.

order validation
Process that order management does to make sure a sales order meets a set of criteria. For example, to make sure the
sales order includes details for each required attribute.

order-to-cash
Front-to-back flow of details that order management uses to process a sales order through various systems and
applications, from order entry to order fulfillment.

pause task
A task that temporarily stops an orchestration process from running so it can wait for a condition to be met.

pick-to-order (PTO)
An item where warehouse personnel pick configure options from inventory to meet the requirements of a configured
item, but don't assemble them. For example, the Long Life Tea Set is a configured item that includes configure options,
such as steeping pot, pouring vessel, and set of tea cups. Your customer can choose from a variety of choices for each
option when they place their order, but no assembly is required to fulfill the configured item.

planning data repository


The set of data collected from source systems and stored for use by order management, order promising, and supply
chain planning processes.

predefined
An object, integration, or configuration that comes already defined with an Oracle application and is ready to use with
little or no modification.

1720
Oracle SCM Cloud Glossary
Implementing Order Management

privilege
A grant of access to functions and data; a single, real world action on a single business object.

processing constraint
Rule that controls who can change a sales order, what can change in the sales order, and when the change can occur.

report
An output of select data in a predefined format that's optimized for printing.

requisition
Document generated for a department or an individual to notify the purchasing department of goods or services it is
ordering, their quantity, and the expected delivery time frame.

requisitioning business unit (BU)


The business unit that manages and owns the requisitioning transaction.

role
Controls access to application functions and data.

root parent
The item that resides at the top of the hierarchy of an object. For example, if a configured item includes a top level for
computer, a mid level for chassis, and a bottom level for graphics card, then the computer is the root parent of the
configuration, and the chassis is the parent of the graphics card.

routing rule
A rule that determines how to route data through a system or application. It typically uses an IF-THEN structure that
specifies a condition and an action to take depending on the result of the condition. For example, an external interface
routing rule can specify how to route a fulfillment request to a fulfillment system depending on the current state of the
fulfillment environment, such as available inventory, transit time, and so on.

sales order
A contractual document between a sales organization and your customer. You create a sales order in the Order
Management work area. Order management also transforms a source order it receives from a source system into a
sales order that it can submit to order fulfillment.

sales order approval


A process that includes one or more approvers who must approve a sales order before order management sends it to
order fulfillment. An approval rule determines whether or not approval is required.

1721
Oracle SCM Cloud Glossary
Implementing Order Management

sales order hold


Temporarily stopping an orchestration process from processing an order line or fulfillment line.

scheduled process
A program that you run to process data and, in some cases, generate output as a report.

selling business unit


A business unit that's a profit center that resides in the selling legal entity. If you specify All Business Units as the selling
business unit, then the application applies the buy and sell terms to all the profit center business units that the selling
legal entity contains.

service data object


A data structure that doesn't conform to a single programming language. It facilitates communication between
applications. It allows a service to call another service without having to conform to the requirements of a single
language. A service data object typically includes elements arranged in a tree structure that includes a root and
branches, and it allows the calling service to access the data that these elements reference.

service mapping
A pricing entity that specifies a group of entities and attributes that a service can retrieve and update. You can use it to
model entities and attributes in a declarative environment without having to write software code. The service mapping
allows an application, such as order management, to price an item without having to get the pricing schema that pricing
uses.

set
Classified and grouped reference data that organizational entities share.

shipment set
A set of order lines that order management ships together as one group. All of these lines ship and arrive on the same
date, although they might be spread across more than one package, depending on packing requirements.

shipment tolerance
The percent of variation between the quantity your customer orders and the quantity you ship. It includes over
shipment and under shipment. Over shipment means you ship more quantity than the customer orders. Under
shipment means you ship less.

shippable item
An item that order management can physically ship to the customer. Order management typically fulfills a shippable
item from a warehouse, and uses a carrier to physically move the item through the supply chain. A parcel service that
uses a truck to transport the item from one location to another location, such as from a warehouse to a residence, is
an example of a carrier. A laptop computer is an example of a shippable item. A warranty for a laptop computer is an
example of a nonshippable item. Other examples of nonshippable items include a subscription to an online magazine,
or a video that your customer can only stream from the cloud.

1722
Oracle SCM Cloud Glossary
Implementing Order Management

source data
Data that you import from an external system into order management.

source order
An order that you import into order management from a source system. Order management transforms a source order
to a sales order when you import it.

source system
System where the sales order was created. Order Management Cloud and an order capture system are each an example
of a source system. A source system provides business application information to an Oracle application. Oracle can use
this information to extract fulfillment data and planning data into data files.

sourcing rule
A specification of the means by which organizations can replenish items.

stamp
To impress a snapshot of data onto an object. For example, a sales order might contain a set of attribute values that
exist on a specific date, such as quantity equals four and color equals blue on October 9, 2019. These values might
change at some point, such as during order fulfillment. A stamp impresses the values of the sales order from a specific
point in time onto an object, such as a social conversation, so it provides an audit trail that you can use to communicate
attribute values that exist in an historical context.

standard item
An item that isn't configured, and that isn't a kit or model.

start-after condition
A condition on a pause task in an orchestration process step that specifies when to pause processing before calling the
next step, or when to resume processing.

status condition
A rule that determines when a sales order reaches a status. Here's an example of a status condition: If the Schedule task
status equals Scheduled, then set the orchestration process status to Scheduled.

subscriber
A system or application that subscribes to a web service or business event. For example, a source system can subscribe
to a business event that sends notifications about changes to sales orders. If a change occurs, then the web service
sends details about the event to the source system in the web service payload. This configuration is similar to a
subscription service that regularly sends details to subscribers, or that sends details when an event occurs.

subscription
An item that provides a product or service that recurs. For example, a one year subscription to a magazine, a 90
day subscription for cell phone service, and a six month subscription for software usage are each an example of
a subscription. A subscription might or might not bill the customer on a recurring basis. Fulfillment does recur
periodically. For example, a weekly magazine fulfills one time each week.

1723
Oracle SCM Cloud Glossary
Implementing Order Management

Subtemplate
An .rtf or .xsl format that is defined once and used multiple times within a single report layout template or across
multiple layout template files.

task type
A group of services that order management uses to do a fulfillment task. It represents a common business function that
order management uses so it can process a sales order from the time a user creates it to the time order management
sends the sales order to an order fulfillment system. Shipment is an example of a task type. Its a set of services that
communicates with a shipping fulfillment system to ship the items that the fulfillment line references.

trade compliance
A set of rules that makes sure trade between countries or regions occurs according to the approved laws and guidelines
that the countries or regions use.

trade compliance policy


A statement that controls trade. For example, "Don't ship weapons to a country that's on the sanction list."

trade compliance screening


The act of examining a sales order to determine whether it meets trade compliance requirements.

trade compliance status


Current status of the trade compliance review for a sales order. For example, Passed, Failed, or Under Review.

trade control type


Type of trade control that order management references when it verifies a sales order, such as antiterrorism or firearms
convention.

transformation rule
A rule that transforms a source order that resides in your source system to a sales order that resides in order
management.

user credential key


A user and password combination that authenticates communication between order management and an external
fulfillment system.

workflow
An automated process that passes a task from one user (or group of users) to another to view or act on. The task is
routed in a logical sequence to achieve an end result.

1724

You might also like