Professional Documents
Culture Documents
Table of Contents
INTRODUCTION..................................................................................................... 2
PRICING ATTRIBUTES....................................................................................... 24
EXECUTIVE OVERVIEW
This document intends to give you a very high level overview of the Order
Management data model, key modules and its integration points. Additionally it
discusses at a high level how Order Management differs from Order Entry.
The following diagram represents the Sales Order Object in Order Management.
Order Header
Header Adjustment
Attributes
Header Adjustment
Associations
Order Lines
Line Adjustment
Line Price Adjustments Associations
ORDER HEADER
The Order Header serves as the primary parent entity for the Sales Order. With
Order Management many of the Header attributes are available at the Line level so
the Header now primarily serves to hold all the child entities together and as a
defaulting source. Currency and Sold-to customer are still maintained only at the
Header.
Functional notes
In Order Entry you could not combine Order and Return Lines on the same
Order. The Order and all its lines followed the same cycle.
Order Management lets you combine outbound/order lines and inbound/return
lines on the same Order. The Order Category on the Header controls whether it
can have only outbound lines (‘Order’), only inbound lines (‘Return’) or lines of
both kinds (‘Mixed’). The Order Category on the Header defaults from the
Order Type. Order Headers are processed using Header flows and Order Lines
follow Line flows. This means that different lines on an Order can follow
different flows and thus be processed differently - supporting order and return
lines on the same Order.
Technical notes
Order Headers are stored in OE_ORDER_HEADERS_ALL.
Order Entry used S columns to store Order Cycle Status. Order Management
uses workflow to track status. Some core statuses are de-normalized onto the
Header entity - OPEN_FLAG, BOOKED_FLAG. The FLOW_STATUS
columns stores the Header Flow Summary Status, and its value changes as the
ORDER LINE
The new Order Line is functionally and technically very different from its R11
Order Entry counterpart. It has attributes from so_headers, so_order_lines,
so_line_details and more.
Functional Notes
Order Management offers Line level independence; a lot of the Order attributes
are now available on the Line and each Line follows its own flow that allows it to
be processed independently.
• In Order Entry a shipment was different from the (shipment parent) line,
now every Order Line is a Shipment. The Line quintuplet (Line Number,
Shipment Number, Option Number, Component Number, Service Number)
is displayed as 1.1.1.1.1 on the Sales Order Form.
• In Order Entry the line followed the same cycle as the Order Header it
belonged to. Now a line follows a flow that is different from that of the
Header. Each Line on an Order can follow a different flow, depending on
the Workflow assignment tied to its Line Type.
• Ordered Quantity on the Line indicates Open quantity as opposed to the
original ordered quantity. Cancellation is modeled as a decrement in the
ordered quantity along with an increment in the canceled quantity. User and
System defined processing constraints define the point in the Order flow,
where Cancellations functionality becomes effective. That is you can define
the point, where onwards you are required to provide a reason to reduce
Technical Notes
• Shipments, Options, Included Items Lines and Configuration Item Lines are
all stored in OE_ORDER_LINES_ALL.
• Every line is a shipment and is identified via a line number and a shipment
number. The user visible line number ties together all shipments belonging
The Order Management Sales Credit entity is identical to its Order Entry
counterpart. Order and Line Sales Credits are stored in oe_sales_credits
The following table describes OE_SALES_CREDITS in alphabetical order. The
table also has the regular Descriptive Flex and the Standard Who Columns.
Column Description
DW_UPDATE_ADVICE_FLAG Not Used
HEADER_ID Foreign Key to
OE_ORDER_HEADERS_ALL
LINE_ID Foreign Key to
OE_ORDER_LINES_ALL
LOCK_CONTROL Internally used
ORIG_SYS_CREDIT_REF Used by Order Import
PERCENT Used to distribute revenue Sales
Credits across Sales Reps
SALES_CREDIT_ID System Generated ID
SALES_CREDIT_TYPE_ID Foreign Key to
OE_SALES_CREDIT_TYPES.
Determines whether this is a revenue
(quota) sales credit.
SALESREP_ID Foreign Key to RA_SALESREPS_V
PRICE ADJUSTMENTS
This entity stores Order and Line price adjustments information. It stores the
benefits offered at header, line or group of lines. Benefits can be discounts on
other items, item upgrade, terms substitution, coupons, discounts, surcharges etc.
This table has a lot more columns than SO_PRICE_ADJUSTMENTS to support
the capabilities offered by Advanced Pricing. The entity also stores information
for tax, freight and special charges.
PRICING ATTRIBUTES
With Order Management, Order and Line pricing attributes are stored in a
different entity. The Order and Line Pricing Attributes Descriptive Flex
Definitions are based off this table. You now have 100 pricing attribute columns.
With Advanced Pricing you can use multiple descriptive flex contexts for a given
Order Line. With Basic pricing, when entering an Order you can select only one
Context (excluding the Item and Volume Contexts which have special meaning).
Column Description
HEADER_ID Foreign key to
OE_ORDER_HEADERS_ALL
LINE_ID Foreign key to
OE_ORDER_LINES_ALL
PRICING_CONTEXT Context Column for Pricing
Descriptive Flex
PRICING_ATTRIBUTE1 … Pricing Related Descriptive Flexfield
segment
PRICING_ATTRIBUTE100 Pricing Related Descriptive Flexfield
segment
FLEX_TITLE Flex_name of the flex Structure
to which the pricing_context
belongs
ORDER_PRICE_ATTRIB_ID Primary Key
OVERRIDE_FLAG Override the search engine selection
for “Asked for promotion/deals”
LOCK_CONTROL Used Internally
Column Description
COMPARISON_OPERATOR Operators such as ’=’ , ’>’ ’<
used for comparison
FLEX_TITLE Flex_name to which the
pricing_context belongs.
LOCK_CONTROL Internal Use
PRICE_ADJ_ATTRIB_ID Primary Key
PRICE_ADJUSTMENT_ID Foreign Key to
OE_PRICE_ADJUSTMENTS
PRICING_ATTR_VALUE_FROM Value of the qualifier or pricing
Attribute
PRICING_ATTR_VALUE_TO Value of the qualifier or pricing
Attribute
PRICING_ATTRIBUTE Pricing Related descriptive flex–field
segment
PRICING_CONTEXT Context for Descriptive Flexfield
segment
ADJUSTMENT ASSOCIATIONS
This is a new entity in Order Management. It stores lot and serial number
information for return lines. Order Management lets you create returns using the
original serial number as a reference. If you create a return using the original
Order or Invoice as a reference and the item being returned was under serial
number control, the application automatically pulls up serial number information
from Oracle Inventory.
The following table describes OE_LOT_SERIAL_NUMBERS in alphabetical
order. The table also has the regular Descriptive Flex and the Standard Who
Columns.
Column Description
FROM_SERIAL_NUMBER The start point in a range of serial
numbers.
LINE_ID Foreign key to oe_order_lines_all
LINE_SET_ID Foreign key to oe_sets
LOT_NUMBER Lot number
LOT_SERIAL_ID Primary key
QUANTITY Number of serial numbers in the
range.
TO_SERIAL_NUMBER The end point in a range of serial
numbers.
Cancellations
In Order Entry you could perform cancellations on the line via the Cancel Orders
Form. The point in the order processing flow when Orders or lines could not be
deleted but had to be canceled was fixed (at Booking). You could not perform
cancellations on a standard item Line once it was pick-released. The ordered
quantity on the line was not reduced to reflect a cancellation, only the canceled
quantity was incremented. Order Entry tracked the cancellation action via an S
column.
Cancellations with Order Management are a lot more flexible. You can partially
cancel a line by directly changing the ordered quantity on the line. The system
seeded constraints preventing cancellations for standard item line are moved
further down in the order processing flow to ship-confirmation or invoice
interface (for no-ship flows). You can define more restrictive constraints if you
need to.
In Order Management, Cancellations are not tracked via workflow. The canceled
quantity on the line indicates, whether any cancellations have been performed on
the Line. The canceled flag on the Order and Line indicate whether they have
been fully canceled. On a full cancellation, the Header or Line flow is forced to
the respective close activity.
The application also lets you set-up rules that determine when a decrement in the
ordered quantity is viewed as a cancellation. You are required to provide a
cancellation reason only when you are canceling and the canceled quantity on the
line is incremented by the appropriate amount. A picture of the old record is
captured whenever a reason code is provided with a quantity change. This is
stored in OE_ORDER_LINES_HISTORY.
Defaulting Framework
In Order Entry the C based Standard Value Rule Sets feature provided the means
to default order attributes with values from various sources. You could define
defaulting rule sets and tie them to Order Types. Not only were these rules used
to provide default values for a record the first time around, but they were also used
to clear and re-default values on existing child records when a parent record was
updated. E.g.: Changing the warehouse on the Line could change the warehouse
on the line details, if the user had set-up the rule as such.
Fulfillment
In Order Entry the Invoice Interface function determined whether a line had been
‘fulfilled’ before interfacing it to invoicing. Thus non-shippable lines in a
configuration would not invoice interface until their shippable components had
shipped.
With Order Management this functionality is managed and further enhanced by
the Fulfillment feature. Fulfillment is workflow enabled and driven off
fulfillment events and sets that are system or user defined. Configurations are
implicitly treated as fulfillment sets by the application. The following fulfillment
events are seeded:
Ship-Confirmation
Purchase Release Receipt
Return Receipt
You can define your own fulfillment event activities and configure the seeded
Fulfillment activity to recognize them. You can also put an Order line in one or
more fulfillment sets. Such a line will progress past the fulfillment activity only
when the all the members of the fulfillment set(s) it is a member of have been
fulfilled.
Columns on the Order Line (fulfilled flag, fulfilled quantity) indicate whether a
Line has been fulfilled and the quantity that has been fulfilled. Over & Under
shipment can result in a fulfillment quantity that is different from the Ordered
quantity. The Over & Under Shipment tolerances control whether a line is
considered fulfilled in cases of over or under shipment.
This is a new feature with Order Management. Mass Change lets you to update
attribute values against selected record sets. In R11, changes to attributes could
cascade across object boundaries based on Defaulting Rule controls. This was
confusing and often perceived as inconsistent. Mass Change lets you explicitly
select the record set that you want to update and apply a change to it.
You can also perform certain actions such as copying, re-pricing, scheduling, and
applying holds with record sets using this feature.
In Order Entry the C based Security Rules feature controlled what actions were
allowed on the order object at various points in its cycle. You could define
security rules that were universally applicable, based on seeded conditions.
With the PL/SQL based Processing Constraints Framework, Order Management
provides enhanced and more flexible security functionality. You can define
constraint conditions based on various sources including Workflow Activity
Statuses and custom APIs. Additionally constraints can be defined against
responsibilities using both inclusion and exclusion rules.
The Framework depends on AK dictionary for object and attribute definitions.
Order Management checks constraints for every update, insert and delete
operation on the Sales Order object.
Order Management comes with fewer seeded and less stringent system constraints,
thus giving you more flexibility. You can define additional or more stringent
constraints to better suit your business needs. Some constraints are seeded for
backward compatibility but can be deleted.
For e.g.
The application can handle deletion of a line until it is shipped, fulfilled, invoice
interfaced or closed. However, the following constraint -
Line cannot be deleted, once the Order is booked
is seeded to support upgrading customers; it can be deleted to better suit your
business requirements.
If a constraint prevents you from performing a certain action, you have the option
of sending a notification to somebody who does have the authority to perform that
action.
In Order Entry you could put lines in Ship Sets, indicating that they need to be
shipped together. Pick Release honored ship sets.
Order Management lets you define Ship or Arrival sets. The latter lets you
determine which lines should arrive together. Pick Release does not look at
Ship or Arrival sets to determine what can be released. At Ship-Confirmation
you are informed if your are breaking a ship set (and allowed to do so). If you
partially ship lines from a Ship Set, they are automatically dropped from the Ship
Set. When any of the lines from a Ship or Arrival Set is ship-confirmed the set is
automatically closed.
In Order Entry when you broke a Line into shipments, the original line was
marked as a Shipment Parent Line (line_type_code = “PARENT”) and ignored
from that point on. The shipment lines (line_type_code = “DETAIL”) were
processed by the application.
In Order Management there is no “Shipment Parent” entity. Every Line that is
created is a shipment, and has both a Line and a Shipment Number. To break an
existing Shipment Line further into multiple shipments you need to split it.
Splitting a Line creates a Line Set, with all the line records that were “split” from
the original line pointing to the Line Set (via the line_set_id). The attributes that
need to be common across such lines are stored on the Line Set (Item, Ordered
Quantity UOM, Shipping tolerances). Line Sets are only created for outbound
top-level lines (standard item line, Kit Line, Top Model Lines).
Order Entry maintained partial cycle statuses on a line when it was processed
partially. In Order Management when a Line is partially processed the application
splits it. All the child entities split as well, including the line flow. The fully
processed part progresses along its flow and the partially processed part awaits
processing in its flow.
Partial processing at the following points triggers a Line Split:
Ship-Confirmation
Drop- Ship Receipt
Return Receipt
Partial processing of configurations can result in proportional or non-proportional
splits. In the latter case the application also creates a remnant set that has both
processed and unprocessed lines.
Order Management also lets you create Fulfillment Sets. A line in a Fulfillment
Set will progress and be marked Fulfilled only when the all the members of the
fulfillment set(s) it is a member of have been fulfilled.
Set definitions are stored in OE_SETS. Membership in a Line Set, Ship Set and
Arrival Set is de-normalized onto the Order Line. Since a given Order Line can
System Parameters
Transaction Types
Order Types in Order Entry served as a pool for defaulting sources and
transactional controls. With Order Management a lot of the Header attributes are
available on the Line and are controllable at that level. It follows that the
application has an entity similar to the Order Type for the Line; i.e. the Line Type.
Transaction Types stores both Order Types and Line types. Most of the
Transaction Type attributes are common to the two types. However there are
some controls that are available only at the Header level (e.g.: Order Numbering
controls) and some only at the Line level (e.g.: A control that dictates whether a
Line is sourced internally or externally). The category code on the Order
Transaction type (ORDER, RETURN, MIXED) lets you control whether you
want to mix outbound and inbound lines on a given Order.
Transaction Types also let you control the workflow that the Order Header or
Line follows. You assign a Header workflow to an Order type and a Line
workflow to an Order Type, Line Type and Item type combination. This means,
that on the same Order you can have lines with different Line types following
Belong to
have Belongs to
Orders Order Types
have Workflow
Asignments
Transaction Types
Belong to
Workflow
Processes
INTEGRATION POINTS
Advanced Pricing
Advanced Pricing gives you immense flexibility with respect to pricing orders.
You use either the basic or advanced pricing capabilities.
AK - Common Modules
AK serves as a common runtime dictionary for both the Defaulting and Processing
Constraints Frameworks. These modules use AK for object and attribute
information. AK replaces the functionality provided by SO_OBJECTS and
SO_ATTRIBUTES in R11 Order Entry.
AOL
Attachments - In Order Entry you could define Notes and addition rules
regarding when they were attached to an Order or Line. You had to
manually choose to add the eligible Notes to the Order or Line. You could
also define how the Notes were printed on various Reports. Database
triggers were used to duplicate Note definition data in AOL.
Order Management drives off the AOL Attachment functionality enabling you
to attach images and web pages (in addition to short or long text). It also
offers multi-lingual Document capability. Attachment definition and usage
data is stored only in AOL.
Automatic Addition rule definitions are stored in Order Management
(OE_ATTACHMENT_RULES,
OE_ATTACHMENT_RULE_ELEMENTS). In addition to the attributes
(Customer, Ship-to, Invoice-to, Order Type, Item, PO #) that were
previously available, you can now define rules based on the Order Category,
Line Category and Line Type.
Configurator
Order Management integrates with Oracle Configurator to support ordering and
validation of configurations. The Configurator window is a Java Applet that can
be launched from the Sales Order Form. Order Management communicates with
Oracle Configurator via XML messaging.
CRM
Order Entry had a separate entity: SO_LINE_SERVICE_DETAILS to store
install base information associated with product sales order lines. You had to run
the Service Interface concurrent program to then communicate the install base
information to Oracle Service. This program is now obsolete.
Order Management integrates with the various CRM products (IStore, TeleSales,
Quotes etc) via Order Capture. Any changes to the Order Object are
communicated online to Order Capture via the
ASO_ORDER_FEEDBACK_PUB.UPDATE_NOTICE API. Order Capture in
turn publishes the information to a queue that all the interested CRM products
poll.
CTO
IPayment
Order Entry had attributes on the Order to store Credit Card information but that
information was neither encrypted validated or interfaced to Receivables. Order
Management encrypts Credit Card information. It integrates with Oracle IPayment
to validate this information and get Credit Card authorizations. This information
is then interfaced to Receivables.
Purchasing
Receivables
Order Management integrates with Oracle Receivables in the following function
areas:
Invoice Interface - In Order Entry, you had to run the AR Interface concurrent
program to interface invoicing information to Oracle Receivables. In Order
Management this is workflow enabled. The seeded ‘Invoice Interface - Line’
workflow sub-process populates the Receivables interface table. You run
AutoInvoice to create invoices. The Receivables Interface concurrent
program is now obsolete.
Order Management also supports Header level invoicing via the seeded
‘Invoice Interface - Order’.
Tax - Order Entry did not store the estimated tax on the Order, rather it was
calculated runtime when you viewed an Order on the Sales Order Form.
Order Management calls the Global Tax Engine APIs to default the Tax
Code (ARP_TAX.GET_DEFAULT_TAX_CODE) and to calculate
Shipping Execution
In release 11, Oracle Shipping looked at Order Entry tables to select order lines
eligible for pick release. It then based ship confirmation eligibility on picking
detail information.
Now, Order Management provides APIs to Shipping to view lines that are eligible
for delivery planning, picking and shipping.
The view OE_DELIVERY_LINES_V returns all open, booked, shippable lines
that are not interfaced to Shipping. When an Order Line reaches the ‘Ship Line’
workflow activity, Order Management calls Shipping APIs to indicate that a line is
pick eligible and communicate changes to the line once it is interfaced to Shipping.
When a delivery is ship-confirmed, Shipping calls OM APIs to communicate the
event, triggering the line flow to move forward.
Order Management uses Advanced Supply Chain Planning to check the availability
of ordered items and schedule order lines. Scheduled Order Lines are viewed as
demand by the Advanced Planning System.
To check availability or schedule an order line (scheduling checks availability and
consumes supply if there is any available), Order Management calls an MRP API
(MRP_ATP_PUB.CALL_ATP). MRP checks for item availability (or group
availability if a group of lines is passed) and returns back the results. The API also
sources the line (find a ship from location) when a ship from location is not
specified. A source will only be returned if there are sourcing rules set up in MRP.
To ascertain open demand Planning looks at the view
MTL_DEMAND_OM_VIEW, based off OE_ORDER_LINES. This returns
Workflow
Order Entry used Cycles functionality to process Orders. The product came
seeded with certain cycle actions. You could define approval actions easily and
define cycles using these along with the seeded cycle actions. Adding custom
actions was harder since that involved calling the C based cycle functions. You
were limited with respect to the number of approvals or custom actions you could
define and use.
Order Management uses Workflow to manage Order and Line processing.
PL/SQL based Workflow is a natural replacement for Order Cycles functionality.
It provides a Graphical User Interface for defining activities, notifications, flows
and viewing flow status. There are no limits on the number of custom functions
or notifications you can define.
Additionally it provides the following features:
Built-in flexibility - You can easily define new custom functions or flows using
the Workflow Builder.
Support for notifications - Approval functionality is supported via Notification
activities. You can easily define notifications via the Workflow builder and
use them in flows. Notifications can be accessed via any electronic mail
application or the Notifications web page.
Coordination between parent-child flows - This aids in synchronizing Header
and Line flows. Thus you can have lines wait for the Order header to
complete a certain header activity or have the Header wait for all lines to
complete a certain line activity.
A built-in online/background mode with a user-definable threshold - This lets
you run certain activities (e.g.: Credit Checking) off-line.
CONCLUSION
Order Management has been architected to be very flexible, highly performant and
easy to use. The product and all of its integration points are PL/SQL based,
which makes it easily customizable. You can use features such as Workflow, the
Processing Constraints and Defaulting Framework to tweak the product to suit
your specific Order processing requirements without heavy customizations.
Oracle Corporation
World Headquarters
500 Oracle Parkway
Redwood Shores, CA 94065
U.S.A.
Worldwide Inquiries:
Phone: +1.650.506.7000
Fax: +1.650.506.7200
Web: www.oracle.com