You are on page 1of 9

Data flow for Order-to-Cash cycle

1. Order Entry
This is first stage, When the order is entered in the system, it creates a record in order
headers and Order Lines table.

Enter header details: Once you enter details on the order header and
save it or move it to lines, record goes to one table
OE_ORDER_HEADERS_ALL FLOW_STATUS_CODE = ENTERED,
BOOKED_FLAG = N), Primary key=HEADER_ID
o

No record exist in any other table for this order till now.

Enter Line details for this order: Enter different item numbers, quantity
and other details in line tab. When the record gets saved, it goes to one
table. Order header details will be linked with line details by order
HEADER_ID. OE_ORDER_LINES_ALL (FLOW_STATUS_CODE = ENTERED,
BOOKED_FLAG = N, OPEN_FLAG = Y) Primary key= LINE_ID

2.Order Booking
This is next stage, when Order is booked then the Flow status changed from Entered to
Booked. At this stage, these below table get affected.

OE_ORDER_HEADERS_ALL (FLOW_STATUS_CODE as BOOKED,


BOOKED_FLAG updated to Y)
OE_ORDER_LINES_ALL (FLOW_STATUS_CODE as AWAITING_SHIPPING,
BOOKED_FLAG updated Y)
WSH_DELIVERY_DETAILS (DELIVERY_DETAIL_ID is assigned here,
RELEASED_STATUS R ready to release, LINE_ID comes as
SOURCE_LINE_ID)
WSH_DELIVERY_ASSIGNMENTS (DELIVERY_ASSIGNMENT_ID is assigned for
DELIVERY_DETAIL_ID present in WSH_DELIVERY_DETAILS, DELIVERY_ID
remains blank till this stage)

*In shipping transaction form order status remains "Ready to Release".


At the same time, Demand interface program runs in background And insert into
inventory tables MTL_DEMAND, here LINE_ID come as a reference in
DEMAND_SOURCE_LINE
3. Reservation
This step is required for doing reservations SCHEDULE ORDER PROGRAM runs in the
background and quantities are reserved. Once this program get successfully get
completed, the MTL_DEMAND and MTL_RESERVATIONS table get updated.
LINE_ID gets updated in DEMAND_SOURCE_LINE_ID in both the tables.

4. Pick Release
Pick Release is the process of putting reservation on on-hand quantity available in the
inventory and pick them for particular sales order.
Pick release can be done from 'Release Sales Order' form or 'Pick release SRS' program
can be scheduled in background. In both of these cases all lines of the order gets pick
released depending on the Picking rule used. If specific line/s needs to be pick release it
can be done from 'Shipping Transaction form. For this case Pick Release is done from
'Release Sales Order' form with Pick Confirm=NO.
Once pick release is done these are the tables get affected:

If step 3 is not done then MTL_RESERVATIONS gets updated now.


WSH_NEW_DELIVERIES (one record gets inserted with
SOURCE_HEADER_ID= order header ID, STATUS_CODE=OP =>open)
WSH_DELIVERY_ASSIGNMENTS (DELIVERY_ID gets assigned which comes
from WSH_NEW_DELIVERIES)
WSH_DELIVERY_DETAILS (RELEASED_STATUS S submitted for release)
MTL_TXN_REQUEST_HEADERS
MTL_TXN_REQUEST_LINES (LINE_ID goes as TXN_SOURCE_LINE_ID)
(move order tables. Here request is generated to move item from Source
(RM or FG) sub-inventory to staging sub-inventory)
MTL_MATERIAL_TRANSACTIONS_TEMP (link to above tables through
MOVE_ORDER_HEADER_ID/LINE_ID, this table holds the record
temporally)
MTL_SERIAL_NUMBERS_TEMP (if item is serial controlled at receipt then
record goes in this table)
MTL_SERIAL_NUMBERS (enter value in GROUP_MARK_ID )

*In shipping transaction form order status remains "Released to Warehouse" and all the
material still remains in source sub-inventory. We need to do Move Order Transaction for
this order. Till this no material transaction has been posted to
MTL_MATERIAL_TRANSACTIONS
5.Pick Confirm/ Move Order Transaction
Items are transferred from source sub-inventory to staging Sub-inventory. Here material
transaction occurs.
Order line status becomes 'Picked' on Sales Order and 'Staged/Pick Confirmed' on
Shipping Transaction Form.

MTL_MATERIAL_TRANSACTIONS_TEMP (Record gets deleted from here


and gets posted to MTL_MATERIAL_TRANSACTIONS)
OE_ORDER_LINES_ALL (FLOW_STATUS_CODE PICKED )
MTL_MATERIAL_TRANSACTIONS (LINE_ID goes as TRX_SOURCE_LINE_ID)
MTL_TRANSACTION_ACCOUNTS

WSH_DELIVERY_DETAILS (RELEASED_STATUS becomes Y => Released )


WSH_DELIVERY_ASSIGNMENTS
MTL_ONHAND_QUANTITIES
MTL_SERIAL_NUMBERS_TEMP (record gets inserted after putting details
for the item which are serial controlled at 'Sales order issue')
MTL_SERIAL_NUMBERS (record gets inserted after putting details for the
item which are serial controlled at 'Sales order issue')

* This step can be eliminated if we set Pick Confirm=YES at the time of Pick Release

6.Ship Confirm
Here ship confirm interface program runs in background. Data removed from
WSH_NEW_DELIVERIES.
The items on the delivery gets shipped to customer at this stage.

OE_ORDER_LINES_ALL (FLOW_STATUS_CODE shipped)


WSH_DELIVERY_DETAILS (RELEASED_STATUS C Shipped,
SERIAL_NUMBER if quantity is ONE)
WSH_SERIAL_NUMBERS (records gets inserted with the
DELIVERY_DETAIL_ID reference, only in case of shipped quantity is two or
more)
MTL_TRANSACTION_INTERFACE
MTL_MATERIAL_TRANSACTIONS (linked through Transaction source
header id)
MTL_TRANSACTION_ACCOUNTS
Data deleted from MTL_DEMAND, MTL_RESERVATIONS
Item deducted from MTL_ONHAND_QUANTITIES
MTL_SERIAL_NUMBERS_TEMP (records gets deleted from this table)
MTL_SERIAL_NUMBERS (Serial number stauts gets updated
CURRENT_STATUS=4 , 'Issued out of store')

7.Enter Invoice
After shipping the order the order lines gets eligible to get transfered to
RA_INTERFACE_LINES_ALL. Workflow background engine picks those records and
post it to RA_INTERFACE_LINES_ALL. This is also called Receivables interface, that
mean information moved to accounting area for invoicing details. Invoicing workflow
activity transfers shipped item information to Oracle Receivables. At the same time
records also goes in the table RA_INTERFACE_SALESCREDITS_ALL which hold
details of sales credit for the particular order.

RA_INTERFACE_LINES_ALL (interface table into which the data is transferred from


order management) Then Autoinvoice program imports data from this table which get
affected into this stage are receivables base table. At the same time records goes in
RA_CUSTOMER_TRX_ALL (CUST_TRX_ID is primary key to link it to TRX_LINES
table and TRX_NUMBER is the invoice number)
RA_CUSTOMER_TRX_LINES_ALL (LINE_ATTRIBUTE_1 and
LINE_ATTRIBUTE_6 are linked to order number and LINE_ID of the orders)
8.Complete Line
In this stage order line level table get updated with Flow status and open flag.
OE_ORDER_LINES_ALL (FLOW_STATUS_CODE shipped, OPEN_FLAG N)
9.Close Order
This is last step of Order Processing. In this stage only OE_ORDER_LINES_ALL table
get updated. These are the table get affected in this step.
OE_ORDER_LINES_ALL (FLOW_STATUS_CODE closed, OPEN_FLAG N)
OE_ORDER_HEADERS_ALL
Posted by DEVendra Gulve
Labels: Order Management (OM)

21 comments:

KOUSHIK said...
excellent... they way you delivered helped both a functional as
well as Technical guys to understand the basic flow. Can you please
update more on different business cases and setups.
Thanks
Kaushik
August 18, 2008 9:59 AM

Siao said...

hey there,
just want to say that this is an excellent blog.. thanks!
August 27, 2008 6:36 AM

Siao said...

hey i just want to say that this is an excellent blog~


August 27, 2008 6:36 AM

Venky said...

Wonderful job, very nice. exactly i am looking for this.


October 14, 2008 11:03 PM

khaled said...

How About if backordered, please update.


Thanks DEVendra Gulve for the wonderful blog.
November 25, 2008 3:44 AM

DEVendra Gulve said...

Hi Khaled,
Following are the changes which will happen if you backorder the
line/s
1. In WSH_DELIVERY_DETAILS table:
MOVE_ORDER_LINE_ID becomes NULL as mover order gets canceled
RELEASED_STATUS becomes 'B' from 'Y'
2. In WSH_DELIVERY_ASSIGNMENTS table:
DELIVERY_ID becomes NULL
3. In WSH_NEW_DELIVERIES table:
STATUS_CODE becomes 'CL' from 'OP'
4. Record/s from MTL_RESERVATIONS table gets deleted
This is not all... there would be other changes also in table
MTL_ONHAND_QUANTITIES, also if the item is serial controlled then
there would be changes in those tables also.
Keep searching...
Thanks
Devendra
November 28, 2008 7:11 PM

Prashanth Kiran said...

Hi,
Can you please explain
Since inventory handles shipping updates, these flags get
populated by the
Shipping Transactions function, and are also usually a part of the
WSH_DELIVERY_DETAILS status as well. In any case, these are the
normal
definitions applied to those single letter abbreviations:
'Y','Y=Staged',
'R','R=Ready to Release',
'S','S=Rel to Warehouse',
'B','B=Backorder',
'P','P=Pending Inv',
'C','C=Shipped',
'N','N=Not Ready',
'D','D=Cancelled',
'X','X=Not Applicable
NULL indicates either the record is still in some early state and not
ready
to commit a record or is not a shippable or transactable item. (It
can also
mean a missing record, if it has appropriate attributes and has
progressed
to where a workflow activity should have provided a status).
For details check out doc ID 207780.1 on metalink

My Postings..

Advantages and Disadvantages of Kanban


Back-to-Back Order Cycle
Data flow for Order-to-Cash cycle
Datafix to Close Sales Order Header in Oracle
Drop - ship Order Demo
File import in Customer Data Hub (CDH)
How to create configurable BOM..
Inventory Management
KANBAN introduction
Manufacturing Management
Min-Max Inventory Planning

Miscellaneous Transactions - Overview


Oracle Configurator Demo
Oracle Configurator...
Oracle Inventory Terminology
Oracle Pricing.... (Qualifier and Modifier)
Out-Side Processing Demo (WIP)
PDH Fundamentals
Purchasing Overview
Relationships in Customer Online
Requisition to Pay Cycle in Oracle
Serial Number Generation in Oracle Apps
Setup for Oracle Configurator
Use of different Purchase order types
What is Customer Data Hub (CDH)
Why upgrade to R12.1 ???
Workflow diagram for manufactured ATO item

Indian standard Time Clock


Related links

.Know Oracle
All Oracle Tech. Training
Anil Passi's Q&As
Apps Learn blog (Functional)
As-Oracle Blog
Ask Tom Oracle.com
E-Biz OCP Blog
ERP Schools
ERP Stuff
Finance (David Haimes)
Fresher's Oracle
Oracle Applications Library
Oracle Apps 11i - Free Training
Oracle Apps Blog
Oracle Apps Training-Online
Oracle Apps-Hub
Oracle AppsSter
Oracle Blog
Oracle FAQ wiki
Oracle Ind. Presentations
Oracle Integration Repository
Oracle White-papers
Oracle-Fusion (Queries & Solutions)
Relationships in Customer Online
Training sessions from Oracle on R12

Labels

Bill of Material (BOM) (1)


Configurator (5)
Customer Data Hub ( CDH ) (3)
General Management (5)
Oracle Inventory (INV) (5)
Oracle Pricing (1)
Oracle Purchasing (PO) (3)
Order Management (OM) (7)
Product Data Hub (PDH) (1)
Work in Process (WIP) (1)

A to Z of this Blog

2009 (9)
o August (3)
File import in Customer Data Hub (CDH)
Relationships in Customer Online
What is Customer Data Hub (CDH) ?
June (1)
Datafix to Close Sales Order Header in Oracle
May (2)
Product Data Hub (PDH) Fundamentals
Why upgrade to R12.1 ???
February (3)
Use of different Purchase order types
Back-to-Back Order Cycle
Requisition to Pay Cycle (Procure to Pay) in Oracl...

o
o

2008 (16)
o December (1)
o

o
o
o

Min-Max Planning
November (2)
Some good blogs on Oracle Apps
Miscellaneous Transactions - Overview
October (3)
Out-Side Processing Demo (WIP)
Drop - ship Order Demo
Workflow diagram for manufactured ATO item.
September (1)
Oracle Inventory Terminology
August (1)
Purchasing Overview
May (4)
Serial Number Generation in Oracle Apps
Oracle Pricing.... (Qualifier and Modifier)
How to create configurable BOM..
Data flow for Order-to-Cash cycle

April (1)
Setup for Oracle Configurator
o March (1)
Configurator Demo
o February (1)
Oracle configurator Setups
o January (1)
Manufacturing Management
2007 (4)
o December (1)
Inventory Management
o September (1)
Oracle Configurator...
o April (2)
Advantages and Disadvantages of Kanban
KANBAN introduction
o

Oracle Apps Functional Guy