Sales Order process

22
Sales Order process: The order process has 5 main steps. In these steps, you will enter an order, book the order, pick the order, ship the order, and then close the order. Since Order Management relies heavily on the workflow technology, I will show you the workflow status for each step along with the order and line status. Below is a summary of the status for each step: Step Order Header Status Order Line Status Order Flow Workflow Status (Order Header) Line Flow Workflow Status (Order Line) 1. Enter an Order Entered Entered Book Order Manual Enter – Line 2. Book the Order Booked Awaiting Shipping Close Order Schedule ->Create Supply ->Ship – Line 3. Pick the Order Booked Picked Close Order Ship – Line 4. Ship the Order Booked Shipped Close Order Fulfill – Deferred Booked Closed Close Order Fulfill ->Invoice Interface ->Close Line -> End 5. Close the Order Closed Closed End End Prerequisites: Defining the Items Defining the Customer Defining the Price Lists Define Order Types

Transcript of Sales Order process

Sales Order process:

The order process has 5 main steps.  In these steps, youwill enter an order, book the order, pick the order, shipthe order, and then close the order.   Since OrderManagement relies heavily on the workflow technology, I willshow you the workflow status for each step along with theorder and line status.  Below is a summary of the status foreach step:

StepOrderHeaderStatus

Order LineStatus

Order FlowWorkflow Status(Order Header)

Line Flow Workflow Status (OrderLine)

1. Enter an Order

Entered Entered Book Order Manual

Enter – Line

2. Book the Order

Booked Awaiting Shipping

Close Order Schedule ->Create Supply ->Ship – Line

3. Pick the Order

Booked Picked Close Order Ship – Line

4. Ship the Order

Booked Shipped Close Order Fulfill – DeferredBooked Closed Close Order Fulfill ->Invoice Interface ->Close

Line -> End5. Close the Order

Closed Closed End End

Prerequisites: Defining the Items Defining the Customer Defining the Price Lists Define Order Types

Defining the Items:

InventoryItemsMaster Items.

Check the attributes of tabs –Inventory, Purchasing and Order Management.

SELECT * FROM mtl_system_items_b

Defining the Customer:ReceivablesCustomersStandardEnter the Customer Name and click on ‘Find’ button.

Click on ‘New’ Button.

Enter the Customer Name and click on ‘Open’ Button to create the new address.

Enter the address and usage of the address (Bill-To and Ship-To etc)

Customer Tables:select * from hz_partiesselect * from hz_cust_accounts_all select * from hz_party_sites select * from hz_locations select * from hz_cust_acct_sites_all select * from hz_cust_site_uses_all

Defining the Price Lists:

In price lists we can define prices for the items. We can attach different price lists which contains different prices for same itemsto different customers.

PricingPrice ListsPrice List Setup

Enter the Price List name, Multi-Currency Conversion as ‘Generated Currency Conversion For USD 30’, Product

Context as ‘Item’, Product Attribute as ‘Item Number’, Product value (Item Name) and value (Price for this item)

Price List Tables :select * from qp_list_headers select * from qp_list_headers_b select * from qp_list_lines select * from qp_pricing_attributes

02C:Entered: Enter the expected details of items and quantity and save the changes. Then status will be ‘Entered’. (The items and quantities may vary when we are booking the order)You can notice that the values of the following column in line and headers table as follows

Tables:

Oe_order_headers_allOe_order_lines_all

Columns affected in both levels: flow_status_code = ENTEREDbooked_flag = Nopen_flag = Y

Booked: When we got the clarification from customer regarding the items and quantity then we will book the order. After booking linesstatus will be ‘Awaiting Shipping’ .After an order has been booked,it becomes eligible for the next step.Orders, ReturnsSales Orders

Enter the Customer details, Order Type as ‘Mixed’ and ‘Price List’ name Go to ‘Line Items’ tab. Enter the item, UOM and Quantity details.After saving the changes header and line items status will be ‘Entered’

Click on the ‘Book Order’ to book the order. It will show the message ‘Order has been booked’

Click on ‘Ok’ button then the lines status will be ‘Awaiting Shipping’ and header status will be ‘booked’

Once the order is booked from the application, following are the changesoccurred in the backed

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)

Since the order is now booked, delivery details of the order are createdin WSH_DELIVERY_DETAILS table. WSH_DELIVERY_DETAILS has delivery lines and LPNs.

oe_order_lines_all.line_id = wsh_delivery_details.source_line_id

These delivery details information can been viewed form ‘Shipping Transactions Form’ and the delivery status in the application will be as‘Ready to Release’

WSH_DELIVERY_DETAILS.released_status =’R’ WSH_DELIVERY_DETAILS.Release_Status can have any of the

below valid values

Execute the below query to see lookup values

SELECT lookup_type ,lookup_code ,meaning ,description FROM fnd_lookup_values WHERE lookup_type = 'PICK_STATUS' AND LANGUAGE = 'US';

WSH_DELIVERY_ASSIGNMENTS assigns delivery details to a delivery and/or a parent delivery detail (LPN).

WSH_DELIVERY_ASSIGNMENTS.delivery_detail_id = WSH_DELIVERY_DETAILS.delivery_detail_id

WSH_DELIVERY_ASSIGNMENTS.delivery_id will be NULL as still pick release operation is not performed as final delivery is not yet created.

At the same time when order is booked ‘Demand interface program‘ is triggered in the background and demand of the item with specified quantity is created and these demand information is stored in MTL_DEMAND

MTL_DEMAND.demand_source_line = OE_ORDER_LINES_ALL.line_id

Reservations:

This step is required for doing reservations SCHEDULE ORDER PROGRAM runsin the background(if scheduled) and quantities are reserved. Once thisprogram get successfully get completed, the MTL_DEMAND andMTL_RESERVATIONS tables are updated. OE_ORDER_LINES_ALL.line_id =MTL_RESERVATIONS.demand_source_line_id

Picked: Reserving the quantity in sub inventory,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 Selection List Generation – 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 SalesOrder’ form with Pick Confirm=NO.

ShippingRelease Sales Orders.

Enter the Order Number

Go to ‘Shipping’ Tab. Select ‘Autocreate Delivery’ as yes to create the deliveries automatically.(If you wont select as ‘Yes’ the you need to create the deliveries manually—select Actions as ‘AutoCreate Deliveries’ in ‘Lines/LPNs tab’ and click on ‘Go’(ShippingTransactions))

Go to ‘Inventory’ tab.Enter the ‘Warehouse’ and ‘Subinventory’.

Click on ‘Execute Now’. It will show the message ’Pick Release Online hascompleted successfully’

(‘Pick Slip Report’ and ‘Shipping Exceptions Report’ will be ran)

The status of the lines in the Sales Order (Orders, ReturnsSales Orders) screen is ‘Picked’

Check the onhand quantity (InventoryOn-hand, AvailabilityOn-hand Quantity). ‘Available to Reserve’ and ‘Available to Transact’ will be reduced(On hand wont change—it will be changed after shipping)

Once pick release is done these are the tables get affected:

If material resveration is not done then MTL_RESERVATIONS gets updated now.

A new record is created in WSH_NEW_DELIVERIES with status_code = ‘OP’ (Open).

WSH_NEW_DELIVERIES has the delivery records.

WSH_DELIVERY_ASSIGNMENTS.delivery_id = WSH_NEW_DELIVERIES.delivery_id

WSH_DELIVERY_DETAILS.released_status changes to ‘S’ (‘submitted for release’)

A move order is created in Pick Release process which is used to pick and move the goods to staging area (here move order is just created but not transacted). MTL_TXN_REQUEST_HEADERS, MTL_TXN_REQUEST_LINES are move order tables

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

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.

Pick Confirm

Pick Confirm is to transact the move order created in Pick Release process. In 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 is updated with Sales Order Pick

Transaciton MTL_MATERIAL_TRANSACTIONS.trx_source_line_id =

OE_ORDER_LINES_ALL.line_id MTL_TRANSACTION_ACCOUNTS is updated with accounting information WSH_DELIVERY_DETAILS. released_status=‘Y’ (‘Released’) WSH_DELIVERY_ASSIGNMENTS, MTL_ONHAND_QUANTITIES are updated

accordingly

Note: Pick Confirm step can be eliminated if ‘Auto Pick Confirm’ is selected as ‘YES’ while performed manual pick release. If Pick release is done through shipping transactions form and if you want to perform auto pick confirm then picking rules setup has to be done.

Shipped: Shipping the goods to customer place

Shipping execution of the order starts here. The goods are picked from staging area and given to shipping. “Interface Trip Stop” program runs in the backend.

OE_ORDER_LINES_ALL .flow_status_code =‘SHIPPED’ WSH_DELIVERY_DETAILS. released_status=‘C’ (‘Shipped’)

Data from MTL_TRANSACTIONS_INTERFACE is moved to MTL_MATERIAL_TRANACTIONS and MTL_MATERIAL_TRANSACTIONS is updated with Sales Order Issue transaction.

Data is deleted from MTL_DEMAND, MTL_RESERVATIONS and WSH_NEW_DELIVERIES

Item deducted from MTL_ONHAND_QUANTITIES MTL_TRANSACTION_ACCOUNTS is updated with accounting information.

Generating Invoice:

After shipping the order the order lines gets eligible to get transferedto RA_INTERFACE_LINES_ALL. Workflow background engine picks thoserecords and post it to RA_INTERFACE_LINES_ALL. This is also calledReceivables interface, that mean information moved to accounting areafor invoicing details. Invoicing workflow activity transfers shippeditem information to Oracle Receivables. At the same time records alsogoes in the table RA_INTERFACE_SALESCREDITS_ALL which hold details ofsales credit for the particular order.

OE_ORDER_LINES_ALL.invoice_interface_status_code = ‘YES’ra_interface_lines_all (interface table into which the data is transferred from order management) Then Auto invoice programimports datafrom this table which get affected into this stage are receivables base table (especially ra_customer_trx_all and ra_customer_trx_lines_all).RA_CUSTOMER_TRX_LINES_ALL.line_attribute_1 = OE_ORDER_HEADERS_ALL.order_numberRA_CUSTOMER_TRX_LINES_ALL.line_attribute_6 = OE_ORDER_LINES_ALL.line_id

Closed: Closing the order,Last step of the process is to close the order which happens automatically once the goods are shipped

OE_ORDER_LINES_ALL.flow_status_code =’CLOSED’ OE_ORDER_LINES_ALL.open_flag = ‘N’

O2C Technical:Order EntrySales Order entry consists of two parts, Order header and Order lines.

Order HeaderAs order header information is entered and saved a record is created in OE_ORDER_HEADERS_ALL only and this record will be linked to many other tables and we shall discuss about those dependent tables now.

Transaction Type:

Transaction type is used to select the workflow path/process and it alsodefaults many other fields on the sales order. This transaction type is associated with a sequence which is responsible for providing the sales order number for the sales order.

--Transaction Type SELECT oha.order_number , oha.order_type_id , ott.name , ott.description FROM oe_order_headers_all oha, oe_transaction_types_tl ott WHERE 1 = 1AND oha.order_number = '&ur_order#'AND oha.order_type_id=ott.transaction_type_idAND ott.LANGUAGE = 'US';Actually order transaction type details are stored in OE_TRANSACTION_TYPES_ALL but in the above query we have used _TL table (multilingual table) as we want to display transaction name.

Price List:Price list information is stored in QP_LIST_HEADERS_B table but we need to refer to its multilingual table QP_LIST_HEADERS_TL

SELECT oha.order_number , oha.price_list_id , qlht.name , qlht.description FROM oe_order_headers_all oha, qp_list_headers_tl qlht WHERE 1 = 1AND oha.order_number = '&ur_order#'AND oha.price_list_id=qlht.list_header_idAND qlht.LANGUAGE = 'US';Sales Person:

SELECT oha.order_number , jrre.source_name , jrre.source_email FROM oe_order_headers_all oha, jtf_rs_salesreps jrs , jtf_rs_resource_extns jrre WHERE 1 = 1AND oha.order_number = '&ur_order#'AND oha.salesrep_id =jrs.salesrep_idAND jrs.resource_id = jrre.resource_id;

Order Header Status:SELECT oha.order_number, flv.lookup_type , flv.lookup_code , flv.meaning , flv.description FROM fnd_lookup_values flv, oe_order_headers_all oha WHERE 1 = 1AND oha.order_number = '&ur_order#'AND oha.flow_status_code = flv.lookup_codeAND lookup_type = 'FLOW_STATUS'AND LANGUAGE = 'US';Payment Terms:SELECT oha.order_number, name , description FROM oe_order_headers_all oha, ra_terms rt WHERE 1 = 1AND oha.order_number = '&ur_order#'AND rt.term_id = oha.payment_term_id ;Shipping Method:--Shipping Method SELECT oha.order_number, wcsm.service_level FROM oe_order_headers_all oha, wsh_carrier_ship_methods wcsm WHERE 1 = 1AND oha.order_number = '&ur_order#'AND oha.shipping_method_code= wcsm.ship_method_codeAND wcsm.organization_id = oha.ship_from_org_id; 

Order Lines

Order lines consists of item ordered as part of the sales order.On Hand Quantity of Item:--On Hand Quantity SELECT oha.order_number, ool.line_number , ool.ordered_item , SUM(moq.transaction_quantity) FROM oe_order_headers_all oha,

oe_order_lines_all ool , mtl_onhand_quantities moq WHERE 1 = 1AND oha.order_number = '&ur_order#'AND oha.header_id = ool.header_idAND ool.ship_from_org_id = moq.organization_idGROUP BY oha.order_number, ool.line_number , ool.ordered_item;Though this is not an exact procedure to find out the on hand quantity, this is just for example.