Thursday 21 November 2013

O2C Table With Detail Flow


1.       Enter the Sales Order

2.       Book the Sales Order

3.       Launch Pick Release

4.       Ship Confirm

5.       Create Invoice

6.      Create the Receipts either manually or using Auto Lockbox ( In this article we will     concentrate     on Manual creation)

7.      Transfer to General Ledger

8.      Journal Import

9.      Posting



Entered status in order management
===================================
order_number = 66462
header_id = 191399

select * from oe_order_headers_all where FLOW_STATUS_CODE = 'ENTERED'

select * from oe_order_lines_all where header_id = 191399

select FLOW_STATUS_CODE from oe_order_lines_all where header_id = 191399

Book the sales order:
=====================
ORDER_NUMBER = 66464
HEADER_ID  = 191419

select * from oe_order_headers_all where FLOW_STATUS_CODE = 'BOOKED'

select * from oe_order_lines_all where header_id = 191399

select FLOW_STATUS_CODE from oe_order_lines_all where header_id = 191399

After book the sales order
===================
HEADER_ID  = 191399
LINK BETWEEN ORDER TO DELIVERY : HEADER_ID = SOURCE_HEADER_ID
SOURCE_HEADER_ID =191399
RELEASED_STATUS = R


After book
===========

select * from wsh_delivery_details where SOURCE_HEADER_ID =191399

select * from wsh_delivery_assignments where DELIVERY_DETAIL_ID = 3963497

select * from wsh_new_deliveries where delivery_id = 3772376

Concurrent Running
==================

Pick Selection list generation.

Pick slip report.

Shipping exceptions Report.

Auto pack Report


RELEASED_STATUS
================
Release the sales Order
=========================

select * from wsh_delivery_details where released_status = 'Y'-- Release

Ship Confirm
=============

select * from wsh_delivery_details where released_status = 'C'  -- shipped


After Ship Confirm Data tranfor to AR invoice and Receipt
==========================================
Order Number = '66462'  
CUSTOMER_TRX_ID =760220
TRX_NUMBER = 10037554

select * from ra_customer_trx_all where INTERFACE_HEADER_ATTRIBUTE1 is not null

select interface_header_attribute1,creation_date from ra_customer_trx_all where INTERFACE_HEADER_ATTRIBUTE1 is not null


select * from ra_customer_trx_all where INTERFACE_HEADER_ATTRIBUTE1 = '66462'

select * from ra_customer_trx_lines_all where CUSTOMER_TRX_ID = 760220

select * from ra_cust_trx_line_gl_dist_all where CUSTOMER_TRX_LINE_ID = 1275141

select * from ar_payment_schedules_all where CUSTOMER_TRX_ID =760220

select * from AR_RECEIVABLE_APPLICATIONS_ALL where APPLIED_CUSTOMER_TRX_ID = 760220

select * from AR_CASH_RECEIPT_HISTORY_ALL where CASH_RECEIPT_ID  = 1002

select * from AR_CASH_RECEIPTS_ALL where CASH_RECEIPT_ID = 78282
-- order_number =10037554


==================================================================

1. Order Entry
~~~~~~~~~~~~~~~~~~
This is first stage, When the order is entered in the system, it creates a record in order headers and Order Lines table.

    Enter header details: Once you enter details on the order header and save it or move it to lines,
record goes to one table OE_ORDER_HEADERS_ALL flow_status_code = ENTERED, booked_flag = N ),        Primary key = HEADER_ID

   
        No record exist in any other table for this order till now.

    Enter Line details for this order: Enter different item numbers, quantity and other details in line tab.
    When the record gets saved, it goes to one table. Order header details will be linked with line details by order HEADER_ID.
    oe_order_lines_all (flow_status_code = ENTERED, booked_flag = N, open_flag = Y) 
 Primary key = LINE_ID

 oe_order_headers_all     -  1 record created in header table
 oe_order_lines_all       -  Lines for particular records
 oe_price_adjustments     -  When discount gets applied
 oe_order_price_attribs -  If line has price attributes then populated
 oe_order_holds_all     -  If any hold applied for order like credit check etc.

2.Order Booking

~~~~~~~~~~~~~~~~~~
This is next stage, when Order is booked then the Flow status changed from Entered to Booked. At this stage, these below table get affected.

    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)

    wsh_delivery_details (DELIVERY_DETAIL_ID is assigned here, released_status ‘R’ ready to release, LINE_ID comes as SOURCE_LINE_ID)

 RELEASED_STATUS  Possible Values:
B: Backordered         - Line failed to be allocated in Inventory
C: Shipped             - Line has been shipped
D: Cancelled           - Line is Cancelled
N: Not Ready for Release- Line is not ready to be released
R: Ready to Release     : Line is ready to be released
S: Released to Warehouse: Line has been released to Inventory for processing
X: Not Applicable       - Line is not applicable for Pick Release
Y: Staged               - Line has been picked and staged by Inventory

    wsh_delivery_assignments
    (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


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


4. 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/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 step 3 is not done then MTL_RESERVATIONS gets updated now.

    wsh_new_deliveries (one record gets inserted with SOURCE_HEADER_ID= order header ID, status_code=OP =>open)

    wsh_delivery_assignments (DELIVERY_ID gets assigned which comes from wsh_new_deliveries)

    wsh_delivery_details (released_status ‘S’ ‘submitted for release’)

    MTL_TXN_REQUEST_HEADERS

    MTL_TXN_REQUEST_LINES (LINE_ID goes as TXN_SOURCE_LINE_ID)

    (move order tables. Here request is generated to move item from Source (RM or FG) sub-inventory to staging sub-inventory)

    Mtl_material_transactions_temp (link to above tables through move_order_header_id/line_id, this table holds the record temporally)

    MTL_SERIAL_NUMBERS_TEMP (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



5.Pick Confirm/ 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 (LINE_ID goes as TRX_SOURCE_LINE_ID)

    mtl_transaction_accounts

    wsh_delivery_details (released_status becomes ‘Y’ => ‘Released’ )

    wsh_delivery_assignments

    MTL_ONHAND_QUANTITIES

    MTL_SERIAL_NUMBERS_TEMP (record gets inserted after putting details for the item which are serial controlled at 'Sales order issue')

    MTL_SERIAL_NUMBERS (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



6.Ship Confirm
~~~~~~~~~~~~~~~~~~
Here ship confirm interface program runs in background. Data removed from wsh_new_deliveries.

The items on the delivery gets shipped to customer at this stage.

    oe_order_lines_all (flow_status_code ‘shipped’)

    wsh_delivery_details (released_status ‘C’ ‘Shipped’, SERIAL_NUMBER if quantity is ONE)

    WSH_SERIAL_NUMBERS (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 (linked through Transaction source header id)

    mtl_transaction_accounts

    Data deleted from mtl_demand, MTL_reservations

    Item deducted from MTL_ONHAND_QUANTITIES

    MTL_SERIAL_NUMBERS_TEMP (records gets deleted from this table)

    MTL_SERIAL_NUMBERS (Serial number stauts gets updated CURRENT_STATUS=4 , 'Issued out of store')



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

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 goes in

ra_customer_trx_all (cust_trx_id is primary key to link it to trx_lines table and trx_number is the invoice number)

ra_customer_trx_lines_all (line_attribute_1 and line_attribute_6 are linked to order number and line_id of the orders)

Price Details
 qp_list_headers_b      --------     To Get Item Price Details.
 qp_list_lines              ---------     Price list details

Items On Hand Qty
 mtl_onhand_quantities    --------     TO check On Hand Qty Items.


Payment Terms
 ra_terms                  --------      Payment terms


AutoMatic Numbering System
 ar_system_parametes_all  -->     you can check Automatic Numbering is enabled/disabled.

Customer Information
 hz_parties -->  Get Customer information include name,contacts,Address and Phone
 hz_party_sites
 hz_locations
 hz_cust_accounts
 hz_cust_account_sites_all
 hz_cust_site_uses_all
 ra_customers

8.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”)


9.Close Order
~~~~~~~~~~~~~~~~~~
This is last step of Order Processing. In this stage only oe_order_lines_all table get updated. These are the table get affected in this step.

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

oe_order_HEADERS_all

No comments:

Post a Comment