Monday, 7 November 2016

O2C Cycle Technical Flow

Generic Order to Cash Cycle

Standard Order to Cash Cycle
Entered: - When the Order is Created in the system EBS below tables are affected
select * from oe_order_headers_all
(FLOW_STATUS_CODE = ENTERED, BOOKED_FLAG = N)
select * from oe_order_lines_all 
( FLOW_STATUS_CODE = ENTERED, BOOKED_FLAG = N, OPEN_FLAG = Y)
select * from oe_transaction_types_tl

After the Order is Booked 
select * from oe_order_headers_all
(FLOW_STATUS_CODE = Booked, BOOKED_FLAG = Y)
select * from oe_order_lines_all 
(Flow_status_code = Awaiting_Shipping, BOOKED_FLAG = Y)
select * from wsh_delivery_details 
(Release_status= R - ready to release, SOURCE_LINE_ID = order Lines’s LINE_ID)
select * from wsh_delivery_assignments
(DELIVERY_ASSIGNMENT_ID  = wsh_delivery_details.DELIVERY_DETAIL_ID, 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.
select * from mtl_demand
(DEMAND_SOURCE_LINE = order Lines’s LINE_ID)

Reservation:
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
select * from mtl_demand
(DEMAND_SOURCE_LINE = order Lines’s LINE_ID)
select * from mtl_reservations

Pick Released

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 
(N) Shipping >Release Sales Order > Release Sales Order or ‘Pick release SRS’ program can be scheduled in background.
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.
select * from oe_order_headers_all
(Flow_status_code = Booked)
select * from oe_order_lines_all 
(Flow_status_code = Picked)
select * from wsh_delivery_details 
(Release_status= S)
select * from wsh_delivery_assignments
((DELIVERY_ASSIGNMENT_ID  = wsh_delivery_details.DELIVERY_DETAIL_ID, DELIVERY_ID which comes from WSH_NEW_DELIVERIES)
select * from mtl_demand 
(records populated)
select * from mtl_reservations 
(records populated)
After the Pick Release for the Order is done WSH_NEW_DELIVERIES a new record gets inserted 
select * from wsh_new_deliveries
( SOURCE_HEADER_ID= order header ID, STATUS_CODE=OP (Open))
select * from MTL_MATERIAL_TRANSACTIONS 
(Two records: 1.issue item (-ve) 2.Revieced item in Sub Inv (+ve))

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

Ship Confirmed
(N) Shipping >Transaction
Interface Trip Stop Program (Update OE_INTERFACE_FLAG = Y and INV_INTERFACED_FLAG = Y in the WSH_DELIVERY_DETAILS table)
select * from oe_order_headers_all
(Flow_status_code = Booked)
select * from oe_order_lines_all (Flow_status_code = Shipped)
select * from wsh_delivery_details (Release_status= D  and OE_INTERFACE_FLAG = Y and INV_INTERFACED_FLAG = Y )
select * from wsh_delivery_assignments
select * from mtl_demand (records deleted)
select * from mtl_reservations (records deleted)
select * from wsh_new_deliveries
select * from MTL_MATERIAL_TRANSACTIONS (One more record populated: 1.sale order issue (-ve))
  Shipping Module : 
select * from WSH_DELIVERY_LEGS
select * from WSH_TRIP_STOP
select * from WSH_TRIP

Interface 
select * from RA_INTERFACE_LINES_ALL
select * from RA_INTERFACE_SALESCREDITS_ALL 
Run Workflow Background Process
(N)(M) View>request>(B)Submit New Request >(RB)Single Request >(B)OK
for Item Type: OM Order Line
This request submit Internally “ADS, (Autoinvoice Master Program)” Which will import the invoice to Receivables Module
select * from RA_CUSTOMER_TRX_ALL (INTERFACE_HEADER_ATTRIBUTE1 = Sales Order Number)
select * from RA_CUSTOMER_TRX_LINES_ALL 
select * from AR_PAYMENT_SCHEDULES_ALL
Create Receipts
(N)Responsibility > Receivables
AR_RECEIVABLE_APPLICATIONS_ALL
select * from oe_order_headers_all
(Flow_status_code = Closed)
STATUS on AR_CASH_RECEIPTS_ALL is changed to APP
AMOUNT_DUE_REMAINING is became 0

Standard Order to Cash Cycle with backOrder
Entered
Booked
Pick Released
Ship Confirmed
(N) Shipping >Transaction
During the ship confirm activity we can do backorder the unshipped quantity.
a. Enter the sales order number in the query manager form (B) Find
b. Go to (T) Lines/LPN’s tab
c. Enter the Shipped quantity and backordered quantity
d. Go to (T) Delivery
e. Select Ship confirm action
f. Select the radio button Ship enterd Quantitied
g. Select Backorder in unspecified quantity field
Two records created in OE_ORDER_HEADERS_ALL 
RELEASE_STATUS = B for backorder in WSH_DELIVERY_DETAILS
-- Find the Line_nummber 
SELECT    TO_CHAR (l.line_number)
       || DECODE (l.shipment_number,
                  NULL, NULL,
                  '.' || TO_CHAR (l.shipment_number))
       || DECODE (l.option_number,
                  NULL, NULL,
                  '.' || TO_CHAR (l.option_number))
       || DECODE (
             l.component_number,
             NULL, NULL,
                DECODE (l.option_number, NULL, '.', NULL)
             || '.'
             || TO_CHAR (l.component_number))
       || DECODE (
             l.service_number,
             NULL, NULL,
                DECODE (l.component_number, NULL, '.', NULL)
             || DECODE (l.option_number, NULL, '.', NULL)
             || '.'
             || TO_CHAR (l.service_number)) LINE_NUMBER
      ,h.order_number, l.ORDERED_ITEM, l.*
  FROM oe_order_headers_all h, oe_order_lines_all l
 WHERE h.header_id = l.header_id AND l.open_flag = 'Y'
 AND h.header_id =  2525423

--=============================================================
-- Find Onhand Item Quanitity for perticular Sales Order 
  SELECT ola.line_id,
         mo.inventory_item_id,
         OLA.ORDERED_ITEM,
         wdd.SUBINVENTORY,
         mmt.organization_id,
         OLA.ORDERED_QUANTITY,
         SUM (mo.TRANSACTION_QUANTITY)
    FROM wsh_delivery_details wdd,
         oe_order_lines_all ola,
        -- wsh_delivery_assignments wda,
         MTL_MATERIAL_TRANSACTIONS mmt,
         mtl_onhand_quantities mo
   WHERE     wdd.source_line_id = ola.line_id
         AND ola.header_id = 2502719
        -- AND wdd.DELIVERY_DETAIL_ID = wda.DELIVERY_DETAIL_ID
         AND mmt.source_line_id = ola.line_id
         AND wdd.subinventory = mmt.SUBINVENTORY_CODE
         AND mo.inventory_item_id = ola.inventory_item_id
         AND mmt.organization_id = mo.organization_id
         AND mo.SUBINVENTORY_CODE = mmt.SUBINVENTORY_CODE
         AND wdd.released_status = 'B'
GROUP BY ola.line_id,
         mo.inventory_item_id,
         OLA.ORDERED_ITEM,
         wdd.SUBINVENTORY,
         mmt.organization_id,
         OLA.ORDERED_QUANTITY
--having SUM(mo.TRANSACTION_QUANTITY) < OLA.ORDERED_QUANTITY
ORDER BY 1, 2 

--===========================================================
To generate a debug for Pick Release:

1. Following Profile Options need to be set before each test case, then reset after completion:
     OM: Debug Level - set to 5
     WSH: Debug Enabled - set to Yes
     INV: Debug Trace - set to Yes
2. The following Profile Option once set do not need to be changed.
     WSH: Debug Level - set to Statement


     INV: Debug Level - set to 11 > 

No comments:

Post a Comment