Order to Cash Cycle

Generic Order to Cash Cycle

  • The Order to Cash flow is the complete process of entering an order into the system (Sales Order), delivery the good(s) (Shipping), and then producing the Invoice for the good(s) which are Ordered by the Customer.
  • The Post below provides guidance on steps to complete the Order to Cash Business Flow.
    It is intended to be generic and does not relate to a specific organization or industry.
  • The Order to Cash process is a critical process that can cause confusion regarding data dependencies between products, workflow status and the steps that need to be performed. This information gives you one place to find best practices and troubleshooting information to help reduce Order to Cash issues.
  • The purpose of this document is to provide an overall understanding and assistance with Setup, Process, Troubleshooting and Debugging the Order to Cash Business Process.
  • The end result will be a working Order to Cash Business Process.  The ability to take a Sales Order through the following phases: Entry, Booking, Shipping, and Invoice.


Showing the working steps through each phase and the areas of focus are:

  • Required Setups
  1. Create Customer
  2. Create Item
  3. Organization Overview
  4. Available Inventory
  5. Price List
  6. Defaulting Rules 
  • Create Order
  • Shipments
  1. Pick Release
  2. Ship Confirm
  3. Interface Trip Stop (ITS)
  • Invoice

NOTE:  This flow is for a shippable item.

Click on Below  Links for Details

Create a new customer

Create a new Item

Organization Overview

Create stock for item using Miscellaneous Receipt

Assign item to Price List

Defaulting Rules:

Defaulting rules determine the values that you want to get defaulted into a sales order to reduce the amount of information you need to enter manually. We can create and modify defaulting rules, in which case the Defaulting Generator concurrent program needs to be run.
In this testflow, however, we will only look at an existing seeded defaulting rule for the field Order Type. Based on that, we will set up a default value for the Order Type at the customer’s Invoice To location level.

Change the Responsibility to Order Management Super user (Vision Operations) Responsibility and Navigate to Setup > Rules > Defaulting.
Click on the Flashlight icon, and select the entity Order Header.
In the Attributes section, place the cursor on the line with Attribute = Order Type, and click on the Defaulting Rules button.

As per the Screen Shot below when entering a sales order, the Order Type will default to the value set up at the Invoice To, Ship To, and finally the Customer, wherever it is found first in that sequence.

Set up a default value for Order Type at the customer’s Invoice To level.

Navigate to Customers > Standard.

  • In the Find/Enter Customer screen, enter your customer name and click on Find.
  • In the next Match Results screen, make sure you place the cursor on the row with a value in the Customer Number field, and click on OK.
  • In the Addresses tab, place the cursor on the row for your address and click on Open.
  • In the Business Purpose tab, place the cursor on the row for the usage ‘Bill To’ and click on Open. This is the ‘Invoice To’ level we saw in the previous step.
  • Go to the Order Management tab, and enter the Order Type ‘Mixed’. Save.



Click on Below  Link for Details

Create Sales Order

When the Order is Created in the system EBS inserts data into Order headers and Order Lines. Once you enter the details and save the Order, Data is inserted into OE_ORDER_HEADERS_ALL with FLOW_STATUS_CODE = ENTERED, BOOKED_FLAG = N.

The line details goes and sits in OE_ORDER_LINES_ALL with FLOW_STATUS_CODE = ENTERED, BOOKED_FLAG = N, OPEN_FLAG = Y. One Order header can Have multiple lines with header_id as the reference column with headers.

After the Order is Booked the FLOW_STATUS_CODE on OE_ORDER_HEADERS_ALL changes to Booked from Entered and BOOKED_FLAG to Y.

  • The WSH_DELIVERY_DETAILS gets populated with DELIVERY_DETAIL_ID and RELEASED_STATUS ‘R’ ready to release, order Lines’s LINE_ID comes as SOURCE_LINE_ID.
  • The WSH_DELIVERY_ASSIGNMENTS gets populated as 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.

This step is required for doing reservations. SCHEDULE ORDER PROGRAM runs in the background and quantities are reserved. Once this program get successfully completed, the MTL_DEMAND and MTL_RESERVATIONS tables get updated. LINE_ID gets updated in DEMAND_SOURCE_LINE_ID in both the tables.

Click on Below  Link for Details

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 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.

After the Pick Release for the Order is done WSH_NEW_DELIVERIES a new record gets inserted with SOURCE_HEADER_ID= order header ID, STATUS_CODE=OP (Open).

  • WSH_DELIVERY_DETAILS gets updated with RELEASED_STATUS ‘S’ ‘submitted for release’.
  • MTL_TXN_REQUEST_HEADERS, MTL_TXN_REQUEST_LINES gets populated with Order Lines’s LINE_ID as TXN_SOURCE_LINE_ID Move order tables. Here request is generated to move item from Source (Stores) sub-inventory to staging sub-inventory.
  • MTL_MATERIAL_TRANSACTIONS_TEMP links to MTL_TXN_REQUEST_HEADERS and OE_ORDER_LINES_ALL tables through MOVE_ORDER_HEADER_ID and LINE_ID respectively. This table holds the record temporally.
  • MTL_SERIAL_NUMBERS_TEMP gets populated 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.

Note: If Reservation is not done then MTL_RESERVATIONS gets populated at this Step.

Pick Confirm/ Move Order Transaction:

Items are transferred from source sub-inventory to staging Sub-inventory. Here material transaction occurs.
Sales Order lines status is changed to ‘Picked’ and in the Shipping Transaction Form the status is shown as ‘Staged/Pick Confirmed’.

After the Transact Move Order is done MTL_MATERIAL_TRANSACTIONS_TEMP the Record gets deleted from here and gets posted to MTL_MATERIAL_TRANSACTIONS.
OE_ORDER_LINES_ALL gets updated with FLOW_STATUS_CODE updated to ‘PICKED’ from ‘Awaiting Shipping’.

  • MTL_MATERIAL_TRANSACTIONS gets populated with Order Lines LINE_ID as TXN_SOURCE_LINE_ID.
  • MTL_TRANSACTION_ACCOUNTS gets populated with Cogs Account which is setup at the Transaction type.
  • WSH_DELIVERY_DETAILS gets updated with RELEASED_STATUS as ‘Y’ (Released).
  • MTL_SERIAL_NUMBERS_TEMP a new record gets inserted after putting details for the item which are serial controlled at ‘Sales order issue’.
  • MTL_SERIAL_NUMBERS a new 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 (Which is Done in the Flow).

Click on Below  Link for Details

Ship Confirm

After Ship Confirm the items on the delivery gets shipped to customer at this stage.

  • OE_ORDER_LINES_ALL gets updated with FLOW_STATUS_CODE as ‘Shipped’ from Picked.
    WSH_DELIVERY_DETAILS gets updated with RELEASED_STATUS to ‘C’ (Shipped), SERIAL_NUMBER if quantity is ONE.
  • WSH_SERIAL_NUMBERS a new 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 are linked through Transaction source header id.
  • Data will be deleted from MTL_DEMAND, MTL_RESERVATIONS and Item deducted from MTL_ONHAND_QUANTITIES.
  • MTL_SERIAL_NUMBERS_TEMP the records gets deleted from this table.
  • MTL_SERIAL_NUMBERS records are updated with Serial number stauts to CURRENT_STATUS as 4 which is ‘Issued out of store’.

Click on Below  Link for Details

Create Invoice

When the work flow Background Process is run it 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.

After the Workflow background Process is run 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 gets inserted into RA_CUSTOMER_TRX_ALL gets inserted with TRX_NUMBER ia the invoice number with INTERFACE_HEADER_ATTRIBUTE1 as Sales Order Number.
RA_CUSTOMER_TRX_LINES_ALL gets populated with LINE_ATTRIBUTE_1 and LINE_ATTRIBUTE_6 are populated with Sales order number and order lines LINE_ID respectively.

After this the OE_ORDER_LINES_ALL gets updated with FLOW_STATUS_CODE to ‘Closed’ and OPEN_FLAG to ‘N’.

Please let us know if you have any Questions.

Leave a Reply