Steps of Order To Cash Cycle
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
OE_ORDER_LINES_ALL
WSH_DELIVERY_ASSIGNMENTS
Pick Release
OE_ORDER_LINES_ALL: Flow_Status_Code – Picked
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_ASSIGNMENTS
MTL_SERIAL_NUMBERS
Ship Confirm
OE_ORDER_LINES_ALL: Flow_Status_Code – 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
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;
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
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
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
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