Search This Blog

Monday, March 25, 2013

Order to Cash Cycle Techno Functional



Order to cash cycle is the business process which is concerned with the process of selling of goods to the customer and receiving the corresponding payment for the sold goods.It is the basic cycle which is the backbone of operation in any supply chain business.
A simple and generic order to Cash Cycle will have will have the below mentioned steps
    1.      Enter Order
    2.      Book Order
    3.      Pick Release the Order
    4.      Ship Confirm
    5.      Invoice Creation
    6.      Payment Receipt

  In order to process with the cycle the user must be aware of the standard sale order screen

ENTER ORDER

Navigation: Order Management Super User à Orders, Returns à Sales Orders

This is the first stage of the Order to Cash cycle. Order entry is concerned with the process of entering the order related information in the system, no processing is done on the entered information the data is only saved in Oracle. Order entry is performed only when a purchase requisition is received from the customer.

Order entry can be performed manually or automated through EDI or programatically via API's.

When entering an order the user needs to provide certain basic information, the remaining information is automatically fetched by Oracle as per the defaulting rules specified in the Setup (Order Management Super User à Setup à Rulesà Defaulting).

Enter the information in the screen and press Ctrl + S or click the save button on the top of the screen.

When the order information is entered and saved the data is entered in the oe_order_headers and oe_order_linestable.
The order header status: Entered
Order Line status: Entered
When the order information is entered and saved, an order number is generated by Oracle.
Order Header Snapshot:
Order header provides us information about
·         The customer, to whom goods will be sold.
·         The type of Order
·         Shipping and Billing Location Information
·         The total order amount etc.
Order Line Snapshot:
 Order line provides us details of the order.
·         The item to be sold
·         Pricing information ( the items cost and  charges/discount applied)
·         The warehouse from which we plan to ship the data etc.
Freight and Discount Calculation:
If discounts or any charges are applied on the order then an entry is made in the table oe_price_adjustments to reflect that adjustment. To check if any discount has been applied to an order this can be checked by querying the table on the basis of the header_id of the Order.

    Tables Affected on ORDER ENTRY:
    1.oe_order_headers: Containing order header information
    2.oe_order_lines:  Containing order line information
   3.oe_price_adjustments : stores information of any discounts or charges applied to the order

    In case any charges are applied to the Order the user can check the same following the below navigation
    Order Line --> Actions Button --> Charges
    The user will be able to see the applied charges. 
     Details on the applied modifier to calculate the charges can be checked by viewing the charge modifier.
Navigate to: OM Super User à Pricing à Modifiers and
                    OM Super User àPricingàPricing Formulas àFormula Setup

BOOK ORDER

Order booking is the process of validating the information entered by the user and if the data is valid book theorder for further processing.
This is done by clicking on the Book Order button present on the Order screen.
Order can be created in booked state if the user is creating the order programatically

Clicking on the Book Order Button will book the order, subject to that all the processing constraints and checks performed by Oracle are successful.

The Order Header Status changes to: Booked
The line Status Changes to : Awaiting Shipping

When Oracle tries to book the order, checks are performed to check if the order is eligible for booking or not.
  • Credit check validation is performed against the customer for whom the order is booked to check if the credit limit for the customer exceeds on booking the order, If so then the order is put on hold with the entries being made inoe_order_holds table, the entry can be tracked using the header_id of the order.
  • Oracle checks if a Customer item cross reference exists for the item being booked for the customer. If not the Order will be booked and will be put on hold.
  • If the Customer  is enabled only for EDI order creation then the order is put on hold, since manual booking is not permissible for this customer.
  • Oracle checks if the requested item is active, eligible for Sale.
  • All these validations are defined in the Order Management setup, processing constraints based on which specific checks are performed whenever the user tries to perform any action.

In case the order is put on hold the user needs to check which hold has been applied on the order and then take corrective actions and release the holds.
 To check the holds applied at Order Header level Go to Order Header and click on the Actions Button, select Additional Order Information
Line level holds can be checked by navigating to order lines --> Actions --> Additional Line Information ,holds tab of the form
In case the user is eligible to release the holds the user can release the header/line level holds by navigating to Order Header/Line --> Actions --> Release holds

Order Line Delivery Information

When the order is booked Delivery lines are created for the order and entries are made in the table’swsh_delivery_details and wsh_delivery_assignments
In wsh_delivery_details   table entry is made with released_status =’R’(Ready to Release).

The delivery line in the wsh_delivery_details table can be tracked by using any of the columns of the wsh_delivery_details table.
Source_header_id = Order Header id
Source_line_id = Order line id
Source_header_number = order number.

Entry in the table wsh_delivery_assignments can be tracked by using the delivery detail id from the tablewsh_delivery_details.

Tables Affected:
  • oe_order_headers : storing order header information
  • oe_order_lines : order line details
  • oe_order_holds : Order hold details in case hold is applied on the order
  • wsh_delivery_details : Order line delivery details
  • wsh_delivery_assignements
ORDER SCHEDULING

Order Scheduling is mechanism in which the system is informed about a possible demand of the item and the reservations that need to be done for the same.

A new row is inserted in mtl_demand table with column demand_source_line = Order line_id

Order Reservation : refers to the activity in which the items are blocked in the inventory for this partivular order . The items are reserved to fulfill the requirements for this order and is thus not available for the fulfilment of other order requirements . Post Order reservation A new row is inserted in mtl_reservations table with column demand_source_line_id = Order line_id


PICK-RELEASE
Pick release is the stage of the order cycle when the ordered items are transferred to the staging area of the sub-inventory to be shipped.
When the pick release request is run we are informing the inventory about the requirement of the item, the requested quantity is transferred from the source sub-inventory to the staging sub-inventory signifying the reservation of items. The quantity available in the staging sub-inventory is not available for reservation for any other order.

Navigation:
Order Management Super User àShipping àRelease Sales Order à Release Sales Order

When pick release is done in oracle system, 
  • move order is created for the specified items
  • the items from the inventory are allocated to the move order
  • move order is transacted which leads to the transfer of items from the source sub inventory to the STAGE area of the warehouse
  • Generally a pick release document set is defined , these documents are also generated when pick release is performed
The documents generated on pick release are the basis on which the pick release action / movement of goods is performed in the warehouse

System Changes after Pick Release Completes

The status of header: Booked.
Line Status: Picked
Move Order Creation and Transactions
Move orders get created in the system and the same is transacted to keep a track of the item transfer from source sub-inventory to stage area of the warehouse.
Details of the move orders are stores in the tables : mtl_txn_request_headers and mtl_txn_request_lines
Inventory transfer :
In pick release since items are transferred between sub-inventories from source sub-inventory to STAGE

Entries are made in the table mtl_material_transactions table showing the movement of goods between different sub-inventories. The transactions for each order line can be traced using Column:
TRX_SOURCE_LINE_ID = Order Line_Id.
Entry is made in the table mtl_txn_request_lines for the picked orders. Reference is TRX_SOURCE_LINE_ID = Order line_id  

Entry is also made into the mtl_onhand_quantities table regarding the transfer of material from the corresponding sub-inventory to the Staging sub inventory. A new row is inserted for the movement of requested item to the Staging Sub-inventory. Records can be traced through the column create_transaction_id which corresponds to thetransaction id of the mtl_material_transactions table which has the entry of the transfer of good into the staging sub-inventory. 

Delivery line creation:
When a pick release of order line is done a delivery is created and on or more order lines are associated to the same delivery. 
The concept of delivery required detailed discussion which will be taken up in the upcoming posts.
An entry is made in the wsh_new_deliveries table for the delivery created.
Delivery_id field is updated in wsh_delivery_assignments table.
The Delivery Id is the shipment number assigned to that particular order.

Updation of table wsh_delivery_details table takes place.
The transaction_id field value in wsh_delivery_details table is same as the transaction_id ofmtl_material_transactions table which is created for the transfer of goods from the source sub-inventory to the staging sub-inventory.
If Pick Release process is successful then the released_status field of wsh_delivery_details table is updated to ‘Y’, In case enough quantity is not available when the order is picked the order will be back-ordered due to unavailability of the quantity and the released status is set to ‘B’.

Major Tables Affected

  • oe_order_lines: order line status is updated
  • wsh_delivery_details : released status chages to 'Y' if pick release is successful, to 'B' in case the line is backordered
  • wsh_new_deliveries: details of the delivery created for the lines pick released
  • wsh_delivery_assignments: association of delivery with order lines
  • mtl_txn_request_headers: move order header information
  • mtl_txn_request_lines: move order line details
  • mtl_onhand_quantities: entries made for the increase of onhand in STAGE and updates for the goods moving out of the source sub-inventory
  • mtl_material_transactions: entries tracking the movement of goods in the warehouse

SHIP CONFIRM

After the Order has been picked next comes the stage of shipping of the Order.
Ship confirmation is the step in which the goods are shipped to the customer site. This is the step where the inventory leaves the suppliers warehouse to be sent to the customer.

Navigation: OM super Userà Shipping à Transactions.
The user needs to search the orders to  be shipped and then perform the shipping transaction.
When the shipping is done some supporting documents like Bill of Lading is generated. These documents help in identification of the goods to be shipped in the staging area and are used by the truckers when performing the actual delivery of goods.

System Changes After Ship Confirmation
Order Header Status: Booked

Order Line Status: Shipped
The delivery which was associated to the order lines is closed.
Inventory reduces by the amount of units which are shipped
The releases_status for the lines in wsh_delivery_details changes to 'C', signifying shipment of the order line

Table Updates:
An entry is made into mtl_material_transactions table signifying the shipping of goods from the system; the transaction quantity is negative which means that goods are moving out of the system.
The corresponding entry is deleted from mtl_ohand_quantities since the goods have been shipped.
If the user queries for the item from the front end now the total available qty in the staging sub-inventory is reduced by the quantity shipped. 


INTERFACING FOR INVOICING

After the shipment of the goods are complete, next comes the stage of invoicing where  invoices are created the sold goods.

For this to be achieved data needs to be interfaced to the AR related tables.
Run the workflow Background Process which picks up all the shipped order lines, changes their status to ‘CLOSED’ and inserts corresponding records in the ra_iterface_lines_all table.

To run the request Navigate:
System Administrator Responsibility and request submission screen.
Lines in the RA_INTERFACE_LINES_ALL can be referenced using column INTRFACE_LINE_ATTRIBUTE1 = Order Number, 
INTERFACE_LINE_ATTRIBUTE3 = shipment number/delivery_id
INTERFACE_LINE_ATTRIBUTE6 = Order Line Id
INVOICING

Workflow background engine picks the shipped records and posts them to RA_INTERFACE_LINES_ALL. This is also called Receivables interface, that means 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.

To generate invoice navigate to AR Super User à Interface à Auto Invoice
Run the “autoinvoice master program” with the appropriate parameters. Once the program is completed eligible data from the ra_interface_lines_all table is fetched, validations to be performed by oracle are carried out and new records are inserted in the table’s ra_customer_trx_all and ra_customer_trx_lines_all.
To track the invoices created in ra_customer_trx_all
Interface_header_attribute1 = order_number
Interface_header_attribute6= line_number
Interface_header_attribute3 = shipment number 
Data in the ra_customer_trx_lines_all table can be tracked either by the cutomer_trx_id of the ra_customer_trx_alltable or by interface_header_attribute1 = order_number. 
After the invoice is created user can see the invoices in front end by navigating to
AR Super User à Transactions à Transactions and query the screen by giving the order number in the reference field on the form.


RECEIPTS
When payment is received from a customer the corresponding needs to be entered in Oracle. This is done from the Receipts screen.
AR Super User à Receipts à Receipts
Here the user needs to enter the amount received from the customer and apply it to the corresponding invoices to which he desires.
The receipt amount can either be applied to a single invoice or multiple invoices.
In each of the case the outstanding amount for the invoice to which the receipt is applied reduces by the amount applied. The details of the receipt applied to the invoices can be searched in the viewar_receivable_applications_v. Data in the view can be searched by referencing any of these columns:
receipt_number = receipt number entered in the receipt screen        
trx_number = Invoice number/Transaction number generated when the invoice was created.
After performing the receipts for the Invoices , the whole cycle gets completed since all the activities ie Receipt of Order --> Fulfilment of Order --> Raising Invoice to Customer --> Receiving payments for the goods shipped is completed.

I hope the post will provide readers information on the process to be followed when executing Order to Cash Cycle and the tables getting affected at different stages of the cycle.
Comments,Feedback and Questions will be appreciated, Will try to solve your doubts if any. 

No comments:

Post a Comment