Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 15

Steps of Order to Cash Cycle

 Enter Sales Order: Enter the sales related information such as lines (with product
details) and create a Sales Order
 Book Sales Order: Finalize the Sales Order by booking it
 Pick Release: Find the items or products and release the order
 Pick Confirm: Confirmation of items being picked / released from the inventory
 Ship Confirm: Confirmation of items or products being shipped
 Invoice Creation: Create invoice using Auto Invoice Import program or manually
 Close Sales Order: The Sales Order is closed and the order is complete

Tables in Order to Cash Cycle


Enter Sales Order
OE_ORDER_HEADERS_ALL

OE_ORDER_LINES_ALL

Book Sales Order


OE_ORDER_HEADERS_ALL: Flow_Status_Code – Booked

OE_ORDER_LINES_ALL: Flow_Status_Code – Awaiting Shipping

WSH_DELIVERY_DETAILS: Released_Status – R (Ready to release)

WSH_DELIVERY_ASSIGNMENTS

Pick Release
OE_ORDER_LINES_ALL: Flow_Status_Code – Picked

WSH_DELIVERY_DETAILS: Released_Status – S (Submitted for release)

WSH_DELIVERY_ASSIGNMENTS

WSH_NEW_DELIVERIES

MTL_TXN_REQUEST_HEADERS
MTL_TXN_REQUEST_LINES

MTL_MATERIAL_TRANSACTIONS_TEMP

Pick Confirm
MTL_MATERIAL_TRANSACTIONS

MTL_TRANSACTION_ACCOUNTS

WSH_DELIVERY_DETAILS: Released_Status – Y (Released)

WSH_DELIVERY_ASSIGNMENTS

MTL_SERIAL_NUMBERS

Ship Confirm
OE_ORDER_LINES_ALL: Flow_Status_Code – Shipped

WSH_DELIVERY_DETAILS: Released_Status – C (Shipped)

WSH_SERIAL_NUMBERS

MTL_TRANSACTION_INTERFACE

MTL_MATERIAL_TRANSACTIONS

MTL_TRANSACTION_ACCOUNTS

MTL_SERIAL_NUMBERS

Invoice Creation
RA_CUSTOMER_TRX_ALL

RA_CUSTOMER_TRX_LINES_ALL
Close Sales Order
OE_ORDER_LINES_ALL: Flow_Status_Code – Closed

tables on the right


RA_CUSTOMERS => HZ_CUST_ACCOUNTS
RA_ADDRESSES_ALL => HZ_LOCATIONS
RA_SITE_USES => HZ_CUST_ACCOUNT_SITE_USES

Order to Cash Cycle.


Order Entry
Sales Order entry consists of two parts, Order header and Order lines.
Order Header
As order header information is entered and saved a record is created in
OE_ORDER_HEADERS_ALL only and this record will be linked to many
other tables and we shall discuss about those dependent tables now.
Transaction Type:
Transaction type is used to select the workflow path/process and it also
defaults many other fields on the sales order. This transaction type is
associated with a sequence which is responsible for providing the sales order
number for the sales order.
--Transaction Type
SELECT oha.order_number ,
oha.order_type_id ,
ott.name ,
ott.description
FROM oe_order_headers_all oha,
oe_transaction_types_tl ott
WHERE 1 = 1
AND oha.order_number = '&ur_order#'
AND oha.order_type_id=ott.transaction_type_id
AND ott.language = 'US';

Actually order transaction type details are stored in


OE_TRANSACTION_TYPES_ALL but in the above query we have used _TL
table (multilingual table) as we want to display transaction name.
Price List:
Price list information is stored in QP_LIST_HEADERS_B table but we need to
refer to its multilingual table QP_LIST_HEADERS_TL
--Price List
SELECT oha.order_number ,
oha.price_list_id ,
qlht.name ,
qlht.description
FROM oe_order_headers_all oha,
qp_list_headers_tl qlht
WHERE 1 = 1
AND oha.order_number = '&ur_order#'
AND oha.price_list_id=qlht.list_header_id
AND qlht.language = 'US';

Sales Person:
--Sales Person
SELECT oha.order_number ,
jrre.source_name ,
jrre.source_email
FROM oe_order_headers_all oha,
jtf_rs_salesreps jrs ,
jtf_rs_resource_extns jrre
WHERE 1 = 1
AND oha.order_number = '&ur_order#'
AND oha.salesrep_id =jrs.salesrep_id
AND jrs.resource_id = jrre.resource_id;

Order Header Status:


--Header Status
SELECT oha.order_number,
flv.lookup_type ,
flv.lookup_code ,
flv.meaning ,
flv.description
FROM fnd_lookup_values flv,
oe_order_headers_all oha
WHERE 1 = 1
AND oha.order_number = '&ur_order#'
AND oha.flow_status_code = flv.lookup_code
AND lookup_type = 'FLOW_STATUS'
AND LANGUAGE = 'US';

Payment Terms:
--Payment terms
SELECT oha.order_number,
name ,
description
FROM oe_order_headers_all oha,
ra_terms rt
WHERE 1 = 1
AND oha.order_number = '&ur_order#'
AND rt.term_id = oha.payment_term_id ;

Shipping Method:
--Shipping Method
SELECT oha.order_number,
wcsm.service_level
FROM oe_order_headers_all oha,
wsh_carrier_ship_methods wcsm
WHERE 1 = 1
AND oha.order_number = '&ur_order#'
AND oha.shipping_method_code= wcsm.ship_method_code
AND wcsm.organization_id = oha.ship_from_org_id;

 
Order Lines
Order lines consists of item ordered as part of the sales order.
On Hand Quantity of Item:
--On Hand Quantity
SELECT oha.order_number,
ool.line_number ,
ool.ordered_item ,
SUM(moq.transaction_quantity)
FROM oe_order_headers_all oha,
oe_order_lines_all ool ,
mtl_onhand_quantities moq
WHERE 1 = 1
AND oha.order_number = '&ur_order#'
AND oha.header_id = ool.header_id
AND ool.ship_from_org_id = moq.organization_id
GROUP BY oha.order_number,
ool.line_number ,
ool.ordered_item;

Though this is not an exact procedure to find out the on hand quantity, this is
just for example.
Things to notice after entering the order
You can notice that the values of the following column in line and headers
table as follows
flow_status_code = ENTERED, booked_flag = N, open_flag = Y

Order Booking
Once the order is booked from the application, following are the changes
occurred in the backed
 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)
 Since the order is now booked, delivery details of the order are created
in WSH_DELIVERY_DETAILS table. WSH_DELIVERY_DETAILS has
delivery lines and LPNs.

OE_ORDER_LINES_ALL.line_id = WSH_DELIVERY_DETAILS.source_line_id

 These delivery details information can been viewed form ‘Shipping


Transactions Form’ and the delivery status in the application will be as
‘Ready to Release’
 WSH_DELIVERY_DETAILS.released_status =’R’
 WSH_DELIVERY_DETAILS.Release_Status can have any of the below
valid values
 Execute the below query to see lookup values
SELECT lookup_type,
lookup_code,
meaning,
description
FROM fnd_lookup_values
WHERE lookup_type = 'PICK_STATUS'
AND LANGUAGE = 'US';

 WSH_DELIVERY_ASSIGNMENTS assigns delivery details to a delivery


and/or a parent delivery detail (LPN).

WSH_DELIVERY_ASSIGNMENTS.delivery_detail_id =
WSH_DELIVERY_DETAILS.delivery_detail_id

 WSH_DELIVERY_ASSIGNMENTS.delivery_id will be NULL as still pick


release operation is not performed as final delivery is not yet created.
 At the same time when order is booked ‘Demand interface program‘ is
triggered in the background and demand of the item with specified
quantity is created and these demand information is stored in
MTL_DEMAND

MTL_DEMAND.demand_source_line = OE_ORDER_LINES_ALL.line_id

Reservations
This step is required for doing reservations SCHEDULE ORDER PROGRAM
runs in the background(if scheduled) and quantities are reserved. Once this
program get successfully get completed, the MTL_DEMAND and
MTL_RESERVATIONS tables are updated.  OE_ORDER_LINES_ALL.line_id
= MTL_RESERVATIONS.demand_source_line_id
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 Selection
List Generation – 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 material resveration is not done then MTL_RESERVATIONS gets
updated now.
 Since Pick Release is done, a new record is created in
WSH_NEW_DELIVERIES with status_code = ‘OP’ (Open).
WSH_NEW_DELIVERIES has the delivery records.

WSH_DELIVERY_ASSIGNMENTS.delivery_id = WSH_NEW_DELIVERIES.delivery_id

 WSH_DELIVERY_DETAILS.released_status changes to ‘S’ (‘submitted


for release’)
 A move order is created in Pick Release process which is used to pick
and move the goods to staging area (here move order is just created
but not transacted). MTL_TXN_REQUEST_HEADERS,
MTL_TXN_REQUEST_LINES  are move order tables
 MTL_MATERIAL_TRANSACTIONS_TEMP (link to above tables
through move_order_header_id/line_id, this table holds the record
temporally)
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
Pick Confirm
Pick Confirm is to transact the move order created in Pick Release process. In
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 is updated with Sales Order Pick
Transaciton

MTL_MATERIAL_TRANSACTIONS.trx_source_line_id  =
OE_ORDER_LINES_ALL.line_id

 MTL_TRANSACTION_ACCOUNTS is updated with accounting


information
 WSH_DELIVERY_DETAILS. released_status=‘Y’ (‘Released’)
 WSH_DELIVERY_ASSIGNMENTS, MTL_ONHAND_QUANTITIES are
updated accordingly
Note: Pick Confirm step can be eliminated if ‘Auto Pick Confirm’ is selected as
‘YES’ while performed manual pick release. If Pick release is done through
shipping transactions form and if you want to perform auto pick confirm then
picking rules setup has to be done.
Ship Confirm
Shipping execution of the order starts here. The goods are picked from
staging area and given to shipping. “Interface Trip Stop” program runs in the
backend.
 OE_ORDER_LINES_ALL .flow_status_code =‘SHIPPED’
 WSH_DELIVERY_DETAILS. released_status=‘C’ (‘Shipped’)
 Data from MTL_TRANSACTIONS_INTERFACE is moved to
MTL_MATERIAL_TRANACTIONS and
MTL_MATERIAL_TRANSACTIONS is updated with Sales Order Issue
transaction.
 Data is deleted from MTL_DEMAND, MTL_RESERVATIONS and
WSH_NEW_DELIVERIES
 Item deducted from MTL_ONHAND_QUANTITIES
 MTL_TRANSACTION_ACCOUNTS is updated with accounting
information.
Generating 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.
OE_ORDER_LINES_ALL.invoice_interface_status_code = ‘YES’
ra_interface_lines_all (interface table into which the data is transferred from
order management) Then Auto invoice program imports data from this table
which get affected into this stage are receivables base table (especially
ra_customer_trx_all and ra_customer_trx_lines_all).
RA_CUSTOMER_TRX_LINES_ALL.line_attribute_1 =
OE_ORDER_HEADERS_ALL.order_number
RA_CUSTOMER_TRX_LINES_ALL.line_attribute_6 = OE_ORDER_LINES_ALL.line_id

Close Order
Last step of the process is to close the order which happens automatically
once the goods are shipped
OE_ORDER_LINES_ALL.flow_status_code =’CLOSED’
OE_ORDER_LINES_ALL.open_flag = ‘N’
Header is closed in the month end which is a general 
Sales Orders Interface is an open interface for entering, changing or canceling
orders and returns. It can be used to bring in orders from external systems,
legacy systems, EDI, or from internal systems such as internal orders created
by Oracle Purchasing to fulfill internal requisitions.
Pre-requisites of Sales Order Interface:
To load sales orders data, below pre-requisite setups has to be done prior to
execution of conversion.
1. Order Type
2. Line Type
3. Items
4. Customers
5. Ship Method/ Freight Carrier
6. Sales Person
7. Sales Territories
8. Customer Order Holds
9. Sub Inventory/ Locations
10. On hand Quantity
Interface Table Releated Base Table

OE_HEADERS_IFACE_ALL OE_ORDER_HEADERS_ALL

OE_LINES_IFACE_ALL OE_ORDER_LINES_ALL

OE_ACTIONS_IFACE_ALL OE_ORDER_HOLDS_ALL

OE_PRICE_ADJS_IFACE_ALL

OE_PRICE_ATTS_IFACE_ALL

OE_ORDER_CUST_IFACE_ALL HZ_PARTIES
Interface Table Releated Base Table

HZ_LOCATIONS

Note: To load both Customers and Orders, data should be populated into
OE_ORDER_CUST_IFACE_ALL interface table.
OE_ORDER_PUB.PROCESS_ORDER
Calling the API to to Book an Existing Order
wsh_delivery_details_pub.autocreate_deliveries
WSH_DELIVERIES_PUB.Delivery_Action
ship confirm from backend
AP_HOLDS_PKG.INSERT_SINGLE_HOLD
ap_vendor_pub_pkg.create_vendor
GME_API_PUB.CREATE_MATERIAL_TXn

GL_BUDGET_INTERFACE 
GL_DAILY_RATES_INTERFACE 
GL_IEA_INTERFACE 
GL_INTERFACE 
GL_INTERFACE_CONTROL 
GL_INTERFACE_HISTORY 

AP INTERFACE TABLES
AP_INTERFACE_CONTROLS
AP_INTERFACE_REJECTIONS
AP_INVOICES_INTERFACE
AP_INVOICE_LINES_INTERFACE

AR INTERFACE TABLES
AR_PAYMENTS_INTERFACE_ALL
AR_TAX_INTERFACE
HZ_DQM_SYNC_INTERFACE
HZ_PARTY_INTERFACE
HZ_PARTY_INTERFACE_ERRORS
RA_CUSTOMERS_INTERFACE_ALL
RA_INTERFACE_DISTRIBUTIONS_ALL
RA_INTERFACE_ERRORS_ALL
RA_INTERFACE_LINES_ALL
RA_INTERFACE_SALESCREDITS_ALL

FA INTERFACE TABLES
FA_BUDGET_INTERFACE 
FA_INV_INTERFACE 
FA_PRODUCTION_INTERFACE 
FA_TAX_INTERFACE 

INVENTORY INTERFACE TABLES


MTL_CC_ENTRIES_INTERFACE
MTL_CC_INTERFACE_ERRORS
MTL_CI_INTERFACE
MTL_CI_XREFS_INTERFACE
MTL_COPY_ORG_INTERFACE
MTL_CROSS_REFERENCES_INTERFACE
MTL_DEMAND_INTERFACE
MTL_DESC_ELEM_VAL_INTERFACE
MTL_EAM_ASSET_NUM_INTERFACE
MTL_EAM_ATTR_VAL_INTERFACE
MTL_INTERFACE_ERRORS
MTL_INTERFACE_PROC_CONTROLS
MTL_ITEM_CATEGORIES_INTERFACE
MTL_ITEM_CHILD_INFO_INTERFACE
MTL_ITEM_REVISIONS_INTERFACE
MTL_ITEM_SUB_INVS_INTERFACE
MTL_OBJECT_GENEALOGY_INTERFACE
MTL_RELATED_ITEMS_INTERFACE
MTL_RESERVATIONS_INTERFACE
MTL_RTG_ITEM_REVS_INTERFACE
MTL_SECONDARY_LOCS_INTERFACE
MTL_SERIAL_NUMBERS_INTERFACE
MTL_SO_RMA_INTERFACE
MTL_SYSTEM_ITEMS_INTERFACE
MTL_TRANSACTIONS_INTERFACE
MTL_TRANSACTION_LOTS_INTERFACE
MTL_TXN_COST_DET_INTERFACE

PO INTERFACE TABLES
PO_DISTRIBUTIONS_INTERFACE
PO_HEADERS_INTERFACE
PO_INTERFACE_ERRORS
PO_LINES_INTERFACE
PO_REQUISITIONS_INTERFACE_ALL
PO_REQ_DIST_INTERFACE_ALL
PO_RESCHEDULE_INTERFACE
RCV_HEADERS_INTERFACE
RCV_LOTS_INTERFACE
RCV_SERIALS_INTERFACE
RCV_TRANSACTIONS_INTERFACE
Important Validations for Sales Order Conversion:
1. Customer Name
2. Site BILL/SHIP Location
3. Customer PO number
4. Operating unit
5. Price List
6. Order Type
7. Payment type
8. Organization Code
9. Currency on Order
10. Freight Terms
11. Sales Person Name
12. Conversion Type
13. Item Number
14. UOM code
Steps for Sales Order Conversion
1. STEP 1: Load data into Interface tables either with SQL Loader or any
other utility once all the pre-requisite setups are done
2. STEP 2: Run ‘Order Import’ program to validate/load sales orders
3. STEP 3: Corrections to Imported Data from Order Import Corrections
Window
Sales Order with API approach:
Order Import
APIs OE_ORDER_PUB.GET_ORDER and OE_ORDER_PUB.PROCE
SS_ORDER can be used to import orders.

CE_BANK_ACCOUNTS
CE_BANK_BRANCHES_V
CE_STATEMENT_HEADERS
CE_STATEMENT_LINES
CE_STML_BALANCES

You might also like