Friday, 8 June 2012

Order to Cash (O2C) Cycle

          Order to Cash (O2C) Cycle

Order to Cash (O2C) Cycle
Order to Cash means Customer’s Order Placing to Vendor’s Cash Receiving. When your final product is ready to be sold, you market it. The customer gets fascinated with the marketing campaign and decides to buy your product and from here starts the O2C cycle.
Step 1] Order Entry:
Customer sends details of order or sales dept brings order from customers. After that the order is entered in Order Management (OM)
Navigation: Order Management Super User> Orders Returns >Sales Orders
Here we need to enter the Customer Details (Customer Name , Number, Contact Ship to and Bill to address etc.), Order type. In the Lines tab we need to enter the Item to be ordered and the quantity required. Here we can also check the availability of the order. Here we can save the order. Once saved the Order Status is changed to ‘Entered’.
Key Tables:

    * OE_ORDER_HEADERS_ALL – All header information is stored here.
    * OE_ORDER_LINES_ALL – All the line information is stored here.

Step 2] Order Book :
When we book the order, we are just confirming and freezing our order.
The final step in the Sales Order Entry process is to Book the order. This signifies that the Order Entry process is complete and that the order is eligible for the next stage in the line flow for this order, as defined by its Transaction Type. Select the Book Order button. The Entry Status of the Order will change to Booked.
After Order Booking:
Order Header: Booked
Order Line : Awaiting Shipping
Shipping Transaction form: Ready to release
Table Level :

    * OE_ORDER_HEADERS_ALL : Flow_Status_code –Booked
    * OE_ORDER_LINES_ALL : Flow_Status_code – Awaiting Shipping
    * WSH_DELIVERY_DETAILS : Released_Status – R ( means – Ready to release)

Step 3] Launch Pick Release :
Pick Release is the process in which the items on the sales order are taken out from inventory.
Navigation: Order Management Super User> Shipping > Release sales Orders > Release sales order
Based On rule: Select the Grouping rule the reaming details will default in Order, Shipping and Inventory tab
Order Tab:

    * Order Number: Select the Order Number. Values for the Order Type and Customer fields of this form default to those for the order number you enter here.
    * Ship Set: Select the Ship Set to be released. The Order Number must be selected first.

Shipping Tab:

    * Auto creates Deliveries : Select Yes in this box to automatically create deliveries for  delivery lines once they are released
    * Release Sequence Rule: Select Rule to specify the order in which the picking lines are released.
    * Auto Pick Confirm –Yes/No

Inventory tab:

    * Warehouse: Select the Warehouse
    * Sub inventory: Select the Sub inventory
    * Pick Slip Grouping Rule: To determine how released picking lines are grouped onto pick slips.
    * Default Stage Sub inventory: Select the Default Stage Sub inventory

Click on Execute Now Button to complete the pick release of the order. Normally pick release SRS program runs in background . Once the program get completed these are the table get affected:

    * OE_ORDER_LINES_ALL (flow_status_code ‘PICKED’ )
    * WSH_DELIVERY_DETAILS (released_status ‘S’ ‘submitted for release’ )
    * mtl_txn_request_headers
    * mtl_txn_request_lines
    * Mtl_material_transactions_temp (link to above tables through move_order_header_id/line_id

Step 4] Pick Confirm the Order:
If Auto Pick Confirm in the above step is set to NO, then the following should be done.                             
Navigation: Inventory Super User > Move Order> Transact Move Order
In the HEADER tab, enter the BATCH NUMBER (from the above step) of the order. Click FIND. Click on VIEW/UPDATE Allocation, then Click TRANSACT button. Then Transact button will be deactivated then just close it and go to next step.

    * Items are transferred from salable to staging Sub inventory.
    * mtl_material_transactions
    * mtl_transaction_accounts
    * wsh_delivery_details (released_status ‘Y’ ‘Released’ )
    * wsh_delivery_assignments

Step 5] Ship Confirm the Order:
The Shipping Transaction window provides a centralized workbench that consolidates three major shipping functions: planning, pick releasing, and ship confirming.
Navigation: Order Management Super User>Shipping >Transactions.
Here ship confirm interface program runs in background . Data are removed from wsh_new_deliveries.

    * oe_order_lines_all (flow_status_code ‘shipped’)
    * wsh_delivery_details (released_status ‘C’ ‘Shipped’)
    * mtl_transaction_interface
    * mtl_material_transactions(linked through Transaction source header id)
    * mtl_transaction_accounts

Data are deleted from mtl_demand, mtl_reservations and Item is deducted from mtl_onhand_quantities.
Step 6] Enter Invoices in Receivables:
Run workflow background Process. Workflow Background Process inserts the records in RA_INTERFACE_LINES_ALL with

    * INTERFACE_LINE_CONTEXT     =  ’ORDER ENTRY’
    * INTERFACE_LINE_ATTRIBUTE1 =   Order_number
    * INTERFACE_LINE_ATTRIBUTE3 =    Delivery_id

Then it spawns Auto invoice Master Program and Auto invoice import program which creates Invoice for that particular Order.
Navigation: Order Management >view >Requests
Underlying tables:

    * RA_CUSTOMER_TRX_ALL will have the Invoice header information. The column INTERFACE_HEADER_ATTRIBUTE1 will have the Order Number.
    * RA_CUSTOMER_TRX_LINES_ALL will have the Invoice lines information. The column INTERFACE_LINE_ATTRIBUTE1 will have the Order Number.

Step 7] 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”)

Step 8] CLOSE ORDER:
This is last step of Order Processing . In this stage only oe_order_lines_all table get updated .

    * oe_order_lines_all (flow_status_code ‘closed’, open_flag “N”)


""""""""""CODING"""""""""""""

select ooha.order_number,
       ooha.ordered_date,
       ooha.flow_status_code,
       oola.ordered_item,
       oola.ordered_quantity,
       oola.unit_selling_price,
       wdd.item_description,
       wdd.subinventory,
       wdd.released_status,
       wda.delivery_assignment_id,
       wnd.status_code,
       rcta.trx_number,
       rcta.trx_date,
       sum(rctla.extended_amount) amount,
       sum(rctla.tax_rate) tax_rate,
       araa.amount_applied,
       araa.gl_date,
       araa.application_type,
       araa.line_applied,
       araa.tax_applied,
       acra.currency_code,
       acra.receipt_number,
       acra.receipt_date,
       acrha.status
       --ooha.org_id
from oe_order_headers_all ooha,
     oe_order_lines_all oola,
     wsh_delivery_details wdd,
     wsh_delivery_assignments wda,
     wsh_new_deliveries wnd,
     ra_customer_trx_all rcta,
     ra_customer_trx_lines_all rctla,
     ar_receivable_applications_all araa,
     ar_cash_receipts_all acra,
     ar_cash_receipt_history_all acrha
where order_number='67284' and
      ooha.org_id=&organization_id
and ooha.header_id=oola.header_id
and ooha.header_id=wdd.source_header_id
and wdd.delivery_detail_id= wda.delivery_detail_id
and wda.delivery_id=wnd.delivery_id
and rcta.interface_header_attribute1=to_char(ooha.order_number)
and rcta.customer_trx_id=rctla.customer_trx_id
and rcta.customer_trx_id=araa.applied_customer_trx_id
and araa.cash_receipt_id=acra.cash_receipt_id
and acra.cash_receipt_id=acrha.cash_receipt_id
group by ooha.order_number,
       ooha.ordered_date,
       ooha.flow_status_code,
       oola.ordered_item,
       oola.ordered_quantity,
       oola.unit_selling_price,
       wdd.item_description,
       wdd.subinventory,
       wdd.released_status,
       wda.delivery_assignment_id,
       wnd.status_code,
       rcta.trx_number,
       rcta.trx_date,
      araa.amount_applied,
       araa.gl_date,
       araa.application_type,
       araa.line_applied,
       araa.tax_applied,
       acra.currency_code,
       acra.receipt_number,
       acra.receipt_date,
       acrha.status

No comments:

Post a Comment