Thursday, 29 January 2015

Order To Cash Cycle Explanation (Order To Cash Cycle Useful Information)

          *******************************ORDER MANAGEMENT(USEFUL INFORMATION************************************


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


Read more: http://prasanthapps.blogspot.com/2011/04/order-to-cash-o2c-cycle.html#ixzz1RPQIaTS0

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
ORDER MANAGEMENT(USEFUL INFORMATION)

-- ORDER MANAGEMENT

 Order Management is all about entering, booking,fulfilling the customer orders.
 It is the customer orders. Typically an order consists of a Order header and
 order lines,with each line corresponding to an inventory item.
 To create the order lines, we need an inventory item. let us choose a
 standard item, ie. item with BOM type Standard. Now we should also
 choose item corresponding to the org_id that we are in. Hence to find
 such an item, go to the Oracle inventory and choose the menu item
 Organization Item , choose your organization and a pick a particular item.
 (Your organization is decided by what you mention in the warehouse field
 at the order header level. If you do not mention any value for the
 warehouse field, then all the items corresponding to all the org's, can
 be chosen in the line items).
 Once you choose a particular item, navigate to the order management tab,
 and make sure it is customer orderable, shippable i.e these check boxes
 are enabled.
 Also make sure this particular inventory item, is part of the price list
 that you mentioned at the ordered header. If it is not, then you can always
 include this item in that price list.*/

--  ORDER ENTRY
*****************

 Make sure these profiles are set to null

      TAX: Allow Override Of Of Customer Exemptions
      OM: Invoice Transaction Type
      OM: Credit Memo Transaction Type

This will allow us to enter the tax handling flag to 'Standard'

 Also Make sure that the profile option 'Sequential Numbering' is set to
 Always Used. Otherwise you may not be able to create an order online. Use
 the following query for that.
 In Oracle Applications we can create a sequence corresponding to a
 specific application (like AP,AR, ONT etc) in the "document sequences"
 screen (using system administrator responsibility)
                        (setup= > documents => define)
 and assign that sequence to a specific order type in the
 "Sequence Assignments" form.
                        (setup= > documents => assign).
 Once this is done, Oracle OM, will be able to create sequential order
 numbers for the order we create.
/*

 While creating the order we mention the order type as "Standard - US" .
 If we look at the setup, transaction types form we find that this order type
 is associated with a particular workflow that you have created using the
 Oracle workflow builder. When we create a transaction type in the setup,
 the data in the backend goes to

 select * from oe_transaction_types_all

 /* For any particular order that we are creating, we can see the workflow
   nodes by looking at the
           Tools=>Workflow status
  and see what is the path for this particular order.

  As an ex, we can have workflows defined such as OMShiponly, OMInvoiceOnly etc.
  In the case of OMShipOonly, if you look at the workflow, we will find
  that there will not be any steps beyond shipping. That is, there is no
  invoice interface step in that flow.
  In the case of OMInvoiceOnly, if you look at the workflow, we will find
  that there will not be any steps corresponding to pick release,ship confirm
  etc. Once the order is booked, the next step would be the the invoice
  interface step.

  We have chosen a simplest item. That is this is a standard BOM item type.
  At the technical level the ato_line_id is null or it does not have any
  parent line id. This item is also called a spare.

  If we have put all the other fields properly, like the payment terms,
  bill to ,ship to, currency we should be able to book the order successfully.
  Once the order is booked, the status of the order header and order line
  will change to Booked.
  */

 select profile_option_name,user_profile_option_name, description, language
 from fnd_profile_options_tl
 where user_profile_option_name like 'Sequential Numbering'

 /* Now we need to progress the order(lines). Click on the Actions button
  and choose the "progress order"
  Starting now, the order will go thru different phases and every time we
  need to keep doing the same thing
             i.e Actions =>Progress Order.
  The different statuses that show up are
 "Wait for OM Close"
 "Dispatch Line".
  (when we do the progress order it goes thru the different nodes of the
  workflow tree, until it hits either a end or a notification is waiting.)*/

 --Once an order is created, we can use the following query to find that in the table,

  select order_number,header_id,org_id, flow_status_code,ordered_date
  from oe_order_headers_all
  where order_number = 1100026593

  select org_id,header_id, line_id, shipment_number,ship_set_id ,flow_status_code
  from oe_order_lines_all
  where header_id = 77469

  /* An order can have many lines with each line being shipped to a different
  location. A ship set is a group of order lines which are shipped to a same location */

  /* Run the following query to get to know what are all the statuses
  each order line has gone thru. The key thing here is that item_key in the
  workflow tables records the statuses of each line in the order.
  Given a line item, we can get its statuses from the query given below.
  The wf(workflow) tables store for each kind of item, flow statuses. In
  this case, we have the item type as 'OEOL'. Both the order header and
  order line will have separate workflow statuses,we can check both of them with
  the item types as OEOH,OEOL.

 */

SELECT   item_type, item_key, activity_status, begin_date, end_date,
         process_activity, activity_name -- * --item_key
    FROM wf_item_activity_statuses, wf_process_activities
   WHERE item_key = '77469'   -- takes the id's not numbers
     AND item_type = 'OEOH'    
     AND process_activity = instance_id
ORDER BY begin_date, end_date

--The following query gives the statuses of all the lines of a particular order given an order number.

SELECT
  a.header_id,
  b.line_id,
  e.segment1,
  d.activity_name,
  c.activity_status,
  a.flow_status_code,
  b.item_type_code,
  b.inventory_item_id ,
  DECODE (b.ato_line_id, NULL, 'Spare '),
  c.begin_date,
  c.end_date ,
  a.ordered_date     ,
  b.ship_from_org_id
FROM
  oe_order_headers_all a,
  oe_order_lines_all b,
  wf_item_activity_statuses c,
  wf_process_activities d,
  mtl_system_items  e   ,
  oe_transaction_types_tl f    -- oe_order_lines_all g
WHERE
  a.header_id = b.header_id       AND
  c.item_key = to_char (b.line_id)       AND
  d.instance_id = c.process_activity       AND
  a.order_number = 1100026591 AND
  b.ato_line_id IS NULL   AND -- for a spare
  b.inventory_item_id = e.inventory_item_id    AND
  b.ship_from_org_id = e.organization_id    AND
  a.order_type_id = f.transaction_type_id    AND
  b.ship_from_org_id = 16  ORDER BY begin_date, end_date

--TAX DEFAULTING IN OM :
  /*In AR(look at the AR scripts), typically there is an hierarchy of tax code
  defaulting based on the settings at the customer, site, item,system options
  etc at the system options level. However in the OM,when you enter an order
  line, then the tax code is defaulted by the api "oe_default_pvt.get_tax_code".
  Typically this API also behaves identical to the above logic. When there was
  no tax code at the site level, it was defaulting to location at the order line
  level, however when I provided the tax code at the site, then it is defaulting
  that tax code(this is similar the AR tax code hierarchy).
  */

/*ORDER SCHEDULING :
********************

 To schedule an order(from the sales order form) means that to find out the
 available date of a particular inventory item. Usually when an item is scheduled
 it would call the MRP API ,behind the scenes, and come up with an availability for
 that particular quantity and populates the scheduled ship date in the sales
 order form.

 The different types of scheduling actions are
 Schedule (& unschedule)
 reserve (& unreserve)
 Availability Inquires(ATP Inquiries)

Scheduling Issues : BOM Calendar Building :
 Occassionaly we might run into the BOM calendar issue when we are trying to
 schedule an order line. This could be because the corresponding BOM calendar
 is not built.

 As mentioned before, a sales order can consist of multiple items with each item
 possibly sourcing from different inventory organization.Now let us say for a particular
 item, we have specified inventory organization as M1.

 A calendar is associated with every inventory organization. And we need to make
 sure that,that particular calendar is built properly. First do this ,to find out
 what is the calendar associated with your inventory organization.

 Pull up the organization from the inventory application,and get the calendar name specified there.
   Setup => Organizations => Parameters

 Now go to the calendars form and pull up the above calendar.
   Setup => Organizations => Calendars

 Here specify the correct calendar range, and rebuild it by
             Tools => Build
   
Now even after the BOM calendar is built, if scheduling still fails in OM, then run the Data collections with a
 Complete Refresh.
To run the data collection, do the following Steps,

First go to the Order Management Responsibility, and define (or reuse) an instance,
   Order Management > Scheduling > Instances
   (Make sure you select only the required inventory organizations and not all)
 
Then, using the responsibility, "Advanced Supply Chain Planner" go to the menu
   Collections => Oracle Systems => Data Collection.
   (And in the parameter for the collection Method give the value "Complete Refresh")
     
  1) From Advanced Supply Chain Planner, run Planning Data Pull - Purge Staging Tables with Validation = NO
  2) From System Administrator, run Refresh Collection Snapshots with Refresh Mode=Complete.
  3) Refresh Collection Snapshots again with Refresh Mode=Fast
  4) Run Data collections.
 

/* ORDER BOOKING :
******************
However when an order is booked, it is automatically scheduled.
  That is; if the scheduling fails that order cannot be booked.
*/

  /* Once the order has been booked, that is the flow_status_code of the order header,
  line changes to BOOKED, then that particular order can be PICK RELEASED.
  Pick Release is a process where we choose that particular inventory item that we want to  ship. As
  an ex, let us say we have an item of which we have the quantity on hand as 100.
  That is we have 100 units of that item.
         # of Items on Hand     : 100
    # of Items to Reserve  : 100
         # of Items to Transact : 100

  Now let us say we placed an order which has a line item and the we ordered 2 units of that item, then
  once the Pick release process has completed, the following will be the scenario.

         # of Items on Hand     : 100
    # of Items to Reserve  :  98
         # of Items to Transact :  98
 
  We can see all this information in Inventory using the menu option
    On-hand,Availability => On-hand,Availability
*/

  select * from mtl_onhand_quantities
  where   inventory_item_id = 21967
  and     organization_id = 45

  select * from mtl_onhand_quantities_detail
  where   inventory_item_id = 21967
  and     organization_id = 45

  /*Reservations :
  If a reservation quantity is entered,let us ,say 14, then when the order is booked, immediately the quantity
  is reduced,i.e the this is how it will be, (Even before the Pick release process happens.

         # of Items on Hand     : 100
    # of Items to Reserve  :  86
         # of Items to Transact :  86
  */

  select inventory_item_id,organization_id,demand_source_header_id,
    demand_source_line_id,supply_source_header_id
   from  mtl_reservations
  where   inventory_item_id = 21967
  and     organization_id = 45


/* PICK RELEASE :
******************
 The pick release is done from the menu
             Shipping=> Release Sales Orders.

 /*Usually Pick Release is the process thru which the item will be subinventory
 transferred from a source subinventory to the staging subinventory. (usually staging
 subinventory is the location from where the items are shipped). This is usually
 done by a pick wave move order. What this means is that during the pick release,
 a move order will be created and transacted. The staging subinventory is
 specified here (for each inventory Organization)
     setup => shipping => shipping Parameters =>pick release(tab)

 /*When you do the pick release,if the picking rule is not mentioned then it would
 go by the order in which the picking rules are defined. Picking Rules are
 defined in the Inventory(not Order Management) here
   Setup => Rules =>Picking
 
 Picking Rules are defined at the inventory item level and basically the pikcing
 rule defines the order in which the items are picked for sales orders i.e.
   revisions,lots, subinventories and locators.
 Hence Oracle Shipping will submit the request to the Inventory (by passing the
 inventory item as parameter), then Inventory will look what is the picking
 rule for that item, and then subsequently what are the rules like revisions,lotsetc.

 So if a picking rule is specified at the time of Pick release ,then Order Management
 will use that picking rule.
 So if a picking rule is not specified, & let us say we are doing a pick release
 and we have not mentioned any picking rule in the pick release form,then it would go look for the picking
 rules defined and choose the first picking rule available (the inventory tracks
 the order in which the picking rules are defined).

 Now it has found the picking rule, having found the Pickign Rule,
 Let us say the picking rule says the ubinventory order as "subinventory",
 then the system goes to all the subinventories one by one specified by the
 picking order and then picks the item from that subinventory accordingly.
 Let us say the picking rule says the subinventory order as "receipt date",
 then the system will pick the items which ahve the earlies subinventory receipt date.

 While defining a subinventory we provide the picking order for each subinventory.

 */

 Now in the Shipping Parameters setting, if the Autoallocate is set to YES
 (i.e if it is checked),then during the pick release, a move order is created,
 allocated and transacted.
 If the Autoallocate is set to NO(i.e if it is unchecked), then during the pick
 release, a move order is created ,but not allocted or transacted.
 (Look in the inventory scripts for more details on the move orders.)

 The different steps that a Move order will go thru are given below.

 Move Order Creation.
 Move Order Approval.
 Move Order Allocation => At this stage, the Inventory will use picking rules
   defined to allocate the Material to this particular Move order.At this point
   the material reservation is made.
   that is we can check the information in the table mtl_reservations.
   In this step, it will fill all the details like the from and to subinventory,
   but does not actually execute those steps.
 Print Pick Slip (optional) => This is an optional step to print the pick slip.
 Move Order Transaction. => Typically each Move order will consist of a header and
   lines. Each line will correspond to an item. We can transact one line at a
   time or all together. Now at this point the actual subinventory transfer will
   happen. That is we can see the records in the material transaction
   mtl_material_transactions. Transacting a Move Order is called Pick Confirmation.
   So pick confirmation is moving the items to the staging subinventory.

 As a result of which subinventory transfer will happen.
 What I noticed is that let us say if an item inv1 is stored in the subinventory S1,
 then after pick release, a record is created with the to_subinventory being S1
 (while it is already in S1) and from_subinventory being NULL.

 Actually when the item is defined we can specify the default shipping organization
 (say SO1) in the OM tab.This is the shipping organization and not the subinventory.
 */

 select *  from mtl_txn_request_lines_v where header_id >= 9343

 -- or the material trx
 select *  from inv.mtl_material_transactions where inventory_item_id = 81
 order by creation_date desc

 /*Hence,once the Pick Release process completes, the item quantity be reserved for
 this particular order ,hence the reservable quantity will go down and also the
 material transactions are created.*/

 /* Pick Release Errors :
 1. Typically while doing a pick release we might end up with
 an error APP-WSH-231033,saying that pick release is errored and check the log,which
 does not exist at all. Usually this can happen if a hold exists on that particular
 order. A hold is usually created at the time of Sales order creation. There are many
 reasons why a hold can be created for ex, if the customer credit rating is not good and
 if you are using the credit management , then it would automatically apply a credit hold.
  Once the hold is removed we should be able to pick release it succesfully.

 2. Another error which we might encounter is (which is more of a warning)
  Latest dates are lesser than the earlier dates.

    3. If you are not able to pull up the order in the pick release form, then
 make sure that the item in that sales order is shippable at the inventory item level.
 
   Additionally, if the AutoCreate Deliveries check box is checked in the shipping
 parameters window, then once the pick release process is succesfully completed,
 a new delivery will be created.
 */
 
 /*So once the order is booked, the delivery details (& assigment records) are
 created. The released_status value will be R which will change to Y once pick released */
   
 select a.released_status,a.mvt_stat_status,a.pickable_flag,a.*
 from wsh_delivery_details  a
 where source_line_id in (select line_id from oe_order_lines_all a, oe_order_headers_all b
   where a.header_id = b.header_id and b.order_number=56704)

 select * from wsh_delivery_assignments where delivery_detail_id in
 (select delivery_detail_id from wsh_delivery_details
 where source_line_id in (select line_id from oe_order_lines_all a, oe_order_headers_all b
   where a.header_id = b.header_id and b.order_number=56704)
 )

 /*However when we pick release the order, then the actual deliveries are created and
 then they are assigned to the delivery detail. So the delivery assignments table will
 get updated with the delivery id once the pick release is completed(if the Shipping
 Parameters option specifies Autocreate Deliveries).
 The way deliveries are created is based on the grouping criteria that is specified
 again in the Shippping Parameters.For ex, if there are two lines which two different
 shipping terms, then the sytem will create two deliveries and not one delivery.*/

 select * from wsh_new_deliveries
 where source_header_id in (select header_id from  oe_order_headers_all b
       where b.order_number=56704)
 
 /*If in the Shipping Parameters "Autocreate Deliveries" has not been checked, we will
 have to go to the shipping transactions form and manually create the deliveries. */



/*SHIP CONFIRM :
****************
 Having pick released the order line, it is now ready to be ship confirmed.
    Again in the Shipping parameters Form,if the AutoCreate Deliveries is checked, once
 the order is pick released, automatically the delivery lines are created. And for those
 delivery lines a delivery is also created based on the Delivery Grouping attributes.
 The delivery grouping attributes are set in the shippping parameters window in the
 Delivery tab.(usually the ship from and ship to locations are always checked and hence
 if the ship to location is same, then a single delivery will be created for multiple
 delivery lines). Hence typically here first delivery lines are created and then the
 deliveries are created.

    Otherwise if the AutoCreate Deliveries is not checked, then we have two options.
     either comes to the delivery lines and do a AutoCreate Delivery Or
     Create a delivery and assign the delivery lines to that delivery.

   Either way,once the deliveries are created,they  are ready to be ship confirmed.
   You do the ship confirm on the Delivery tab.
   Generally when we do the Ship confirm we specify the Ship confirm rule.
 
   A Ship confirm Rule basically specifies the shipping method, and shipping documents
   set etc. We can define any number of ship confirm rules as we want. However we can
   specify which one we want to use in the Shipping parameters.  So once we come to
   the ship confirm Page, we can see that the ship confirm rule (that is mentioned in the
   parameters).
 
   Think about Ship confirm  in this way. When we do the ship confirm of a delivery,
   the system will perform the following steps
      -- Create a trip (with two stops ,pickup and drop off)
   -- Assign the delivery to that trip. This is probably done by the program
        "Interface Trip Stop".
      -- Sets the delivery status to In-Transit/Closed and initiates the OM and
      Inventory interfaces.(this is when the on-hand qty redcues in inv)
   -- Prints all the shipping documents specified in the document set.
   -- Change the status of the Order Line to Shipped.
   -- To change the status of the Order line to closed, please run the
    Workflow Background Process from Inventory for "OM Order Line".
     */



  /*Order Lines And Autoinvoice : Actually in the SALES order workbench in the lines, we can
  give the scheduled dates different for each of the lines. This way we can close
  the lines independent of one another. That is if there are 2 lines in an order we
  can progress one line and close it,while the other is still 'Awaiting Shipping'.
  Now we can try to push this order to AR as long as the grouping rule that is
  associated have the order line also as on the attribute in the grouping criteria.
  If order line is not a grouping criteria, then we cannot even select this order
  in the Autoinvoice request and hence we cannot push this order to AR. So in
  essence, we can progress even one line (of a multi-line order) independently and
  create an invoice for that.*/


  /*IF UNABLE TO DO SHIP CONFIRM (or SHIP CONFIRM BUTTON DISABLED) : DEFINE GRANTS AND ROLES :

  Now in order to ship confirm(or do any major operation in order management), the
  user logged in should have sufficient privileges to do so. In Oracle Apps in
           Setup=> Shipping=> Grant roles,
  We can create a ROLE (which has the ability to pick release, ship confirm etc).
  Once that role is created, then GRANT that role to this particular user. Having
  done that, the user can ship confirm that order.
  Once ship confirmed, it can be seen from the following table.
  */
   select * from wsh_new_deliveries
 where source_header_id in (select header_id from  oe_order_headers_all b
             where b.order_number=1100029996)  -- 57516219
 
 select * from wsh_delivery_details
 where source_line_id in (select line_id
         from oe_order_lines_all a, oe_order_headers_all b
         where a.header_id = b.header_id
      and b.order_number=1100029996) -- 57516219

 /* However once the order is pick released, then as mentioned above the
 move order will be generated and a record is also created with move order id
 in the wsh delivery tables with the status being OP,and also consists of the
 initial pick location and the ultimate drop off location,based on the customer's
 ship to location.*/

    select * from wsh_delivery_assignments where delivery_detail_id = 35157

 /*However once the ship confirm process is completed, the status_code, column
 in the wsh_new_deliveries table is updated to 'CL' from 'OP'. And released_status
 in the delivery details table is also updated.*/


 /*WORKFLOW BACKGROUND PROCESS: Now after the ship confirm process is completed,
 the line status will be Shipped. After this,the line status should go to 'Closed',
 and then the Header status will be closed(if that header only one line). Usually the
 "Workflow Background Process" be automatically running. However if it is not scheduled
 to run, we can go to the System Administrator responsibility and run explicilty
 for both header and line. For Header,we have to give the item type parameter as
 "OM: Order Header" and For Line, we have to give the item type parameter as
 "OM: Order Line"

 This will automatically close the line and header and the interface the order
 to AR. And we should see an order in */

 select * from ra_interface_lines_all
 where interface_line_attribute1 = '1100031634'

 select * from wsh_picking_batches  where order_header_id = 77462


  -- PREPAYMENT SALES ORDERS :
  /******************************
  For more information about the prepayment receipts, look at the AR Receipts
  script. By definition, a prepayment is one where the receipt is first created
  even before the invoice. When the invoice is created,this particular receipt
  is applied to that invoice.
  The first pre-requisite for the Prepayments to work is to enable the payment
  functionality. This can be done from the System Parameters window.
          Setup => System Parameters => Define.
   
   Here for the parameter name is "Allow Multiple Payments" (parameter code is
   MULTIPLE_PAYMENTS), the enabled  flag should be checked.
   Once this is done, we should be able to see the Payments menu option in the
   Actions window of the Sales order pad.


-- DROP SHIP ORDER :
/******************************************************************
     In the case of the drop ship order, it starts from the order management
 for the item being ordered,we do not have enough stock and ultimately it ends
 up in generating a purchase order and gets gets shipped directly from the
 supplier to the customer.
 
 To create a drop ship order, change the source type of the line item on the
 shipping tab to External.
 
 Once a drop ship order is entered, and booked, we cannot pull that order like
 any other order type using the release sales order form etc. The Purchase Release
 concurrent program (which can be run manually or mostly it is workflow enabled
 and automatically runs) will pull these kind of orders and creates records
 in the PO requisition interface tables. Usually what the Purchase release program
 does is, it picks up all the lines of all the eligible orders which have the
 line type as External. (For regular orders, this source type on the shipping
 tab will be Internal). We can check these records using the following query.
 Just ensure that the items that are drop shipped do have a unit price mentioned
 in the Inventory in the purchasing tab.*/

 select * -- look for the interface _source_code which will be ORDER ENTRY.
 from   po_requisitions_interface_all where interface_source_code like '%ORDER%'

 /* the only reference that is found in the above table is the item_id, but
 could not find the sales order#).*/

 /* At this point we can switch to the Purchasing responsibility and run the
 requisition import which will import the interface records and creates the
 purchase requisitions. */
 select *
 from  po_requisition_headers_all
 where segment1 ='1100029999'

    /*Usually for our testing purposes, the purchase order we can create one,
 and for approval we can use the following query to make it work.Once the
 po is approved, we will be able to receive against that po.*/
 SELECT   ph.segment1, ph.po_header_id, ph.type_lookup_code,
          ph.displayed_field TYPE, ph.vendor_name, ph.vendor_id, ph.full_name,
          'Vendor'
     FROM po_pos_val_v ph
    WHERE (segment1 LIKE '1100028785')
      AND (    EXISTS (
                  SELECT 'Valid PO Shipments'
                    FROM po_line_locations poll
                   WHERE ph.po_header_id = poll.po_header_id
                     AND NVL (poll.approved_flag, 'N') = 'Y'
                     AND NVL (poll.cancel_flag, 'N') = 'N'
                     AND poll.shipment_type IN
                                          ('STANDARD', 'BLANKET', 'SCHEDULED')
                   --  AND poll.ship_to_organization_id = :2
      )
           AND ROWNUM >= 1
          )
 
    /* Now we can run the AutoCreate process to create the PO from this requisitions,
 which will go thru the standard approval process. Once the PO is approved,
 then we can create a receiving transaction from this PO. It is very important
 to understand that the physically the item is not shipped to us, but as mentioned
 before, the item is shipped directly to the customer. However in Oracle we
 do a receiving transaction and ship it to the customer,so that the quantity
 of the item remains intact.

 The important thing to note here is that, once a PO is created from the
 requisition,we can see that the shipment lines for that particular PO will
 have the customer address. This make sense, and it means that this particular
 PO will be directly shipped to the customer.(ship-to address on the PO header
 level might be different,but why??).

 Another important thing to note here is that from the Oracle standpoint, this
 particular item will be received and immediately shipped. That is the on-hand
 quantity for this item will be the same as before.Now for this to reflect,
 just ensure that the interface managers are up and running in Inventory.
         Setup => Transactions => Interface Managers.
 otherwise the items sometimes might be stuck in the interface tables as in*/
       
 select * from mtl_transactions_interface

 /*So In any case, once a receiving transaction happens, the Oracle Order
 management will immediately close this order and it will go thru the invoice
 Interface (if it is enabled). There is no further step involved to be done
 from our side. */

  /* Just a quick info regarding mentioning the price. In case of purchase
  requisitions, if we have the sourcing rule setup, the requisition will always be
  imported based on the price against the blanket document or quotation.
  Only in cases where in the corresponding item was not found on quotation/BPO -
  the requisition import program will look for the list price defined at item level.
   */

   /* I understand that the organization is a logical org. But how will receiving
    process know that it has to create 2 MTL transactions (1 PO Receipt and the
 other Sales Order Issue) for a Drop Ship PO and only 1 MTL Transaction
 (PO Receipt) for a Standard PO? */

    select * from mtl_material_transactions where inventory_item_id in
 (select inventory_item_id from mtl_system_items_b where segment1='Myitem' )
 and creation_date >= trunc(sysdate)
 
 Important Point : We can change the sales order quantity as many times as
 we want,and the purchase requisition will automatically show the changed
 quantity(or other attributes like ship to etc) as long as the associated
 purchase order is not approved,if there are NO processing constraints.

 We can change data elements after a purchase order is approved,but they wont
 be reflected in the requisition if there are processing constraints.
 
-- BACK TO BACK ORDER :
/**********************/
 A Back to back order is basically very much similar to a drop ship order
 with the exception that in this case, we receive the item from the supplier
 and then we ship it to the customer.


-- INTERNAL SALES ORDER  :
/******************************************************************
      In the case of Internal Sales Order, it all starts with the PO requisition
 and once the requisition is approved, then these are the steps that are
 involved in generating an Internal Sales Order.
 
   There are only two types of requisitions that you are created.
   One is Purchase Requisition thru which a purchase order is created.
   Another is Internal Requisition, thru which an Internal Sales Order is created.
 
   To create an Internal Requisition, navigate thru the from
          Requisitions => Requisitions
   and ensure that the type has a value of "Internal Requisition".
   
   Here we need to set the profile optoin 'PO: Legal Requisition Type' to Both, so
   that we can see both the kinds of requisitions.
  */

   select profile_option_name,user_profile_option_name, description, language
 from fnd_profile_options_tl
 where user_profile_option_name like 'PO: Legal Requisition Type'  --119033700
 
 /* Oracle Purchasing uses Order Import to transfer requisitions for
 internally sourced products to Order Management. Once imported, the internal
 sales orders are processed similar to regular sales orders.*/

 /*These are steps that are required to create an Internal Sales Order.

 The most important thing here is that, a customer needs to be created and
 set that customer as Internal,associate an internal inventory location to his
 ship to address. This is the location that we choose while we create an
 internal requisition.This is very important even before we start creating
 an internal requisition.

 /*To ensure that you are able to select the source type as Inventory ,while
 creating the internal requisition,do the following.

 0.  Identify an item and identify the two inventory organizations between which
 you want to transfer and ensure that enough quantity is stocked in them i.e

  Org A  => Sub Inv B => Item I quantity = 250
  Org X  => Sub Inv Y => Item I  quantity = 350
 
 Now we are trying to transfer a quantity of 100 from Org X to A. This is the
 Problem Statement.

 1. Internal ordered and internal order enabled attributes are flagged to yes,
    for the item that you are trying to do the transfer.
        Items => order Management tab

 2. Inventory shipping networks are setup from and to for destination org and
 source org(As an ex,if a intransit inventory is needed or not. Its very simple to do this)
     Setup => Organizations => Shipping Networks
   
 3. In the Internal Requisition form you are going to specify the source and
   the destination organization and location.
 
   On the Left hand side (Destination), remember only when you specify a location
   which has been associated with an internal customer, then only you can see
   in the source LOV (on right hand side) both the values of Inventory and Supplier
   Otherwise ,you will only see a defaulted value of Supplier.

 /*The way the customer is mapped in the sales order is that,the system is looking
 the location that was chosen when the requisition was created and from there
 it is mapping as to who is the ship to address and who is the actual customer.
 So what this effectively means is that you can only associate one location
 to one ship to customer. i.e
    if a customer C1 => C1 ship to addresss =>  I1 location; means
    we cannot do this
        customer C2 => C2 ship to addresss =>  I1 location;
    This makes sense because for a particular inventory location we need not
    have more one internal customer  associated. It is not required.
 */
    Ensure in the above setup, the Customer is also set to Internal.
 
 4. Ensure that the item on the requisition line is assigned to both source and
    destination organization and the attributes are correctly set in both organizations.

 5) Now create an internal requisition
       Purchasing resp--->Requisitions.
    And approve it.Now we should see a record in the requisitions table.
    (Please refer to the PO queries document to approve the requisition.*/  
    Ensure that the item is PUrchasing enabled and internal order enabled ,then
    you will se the default value of Inventory in the source field.
 
       select *
       from  po_requisition_headers_all poha
       where segment1 ='119035046'
 
 6) Secondly run "Create Internal Orders" concurrent request.
    Navigation: Purchasing resp=>Reports=>Run=>Create Internal Orders=>OK=>Submit.
    See that the request is completed successfully, if not review the log file for errors.*/
 
 /*After the above step is completed, we should be able to see a record in
 the order management interface tables. The orig_sys_reference should give
 the requisition header id.Interestingly we do not see the customer information
 here,but the ship to ,sold to information is populated.*/

       select sold_to_org_id, ship_to_org_id,order_source_id,orig_sys_document_ref,
           order_type_id ,order_category,customer_id, customer_name,creation_date
       from   oe_headers_iface_all

 7) Thirdly run "Order Import Request"

 Navigation: OM => Orders,returns=>Import orders=>Order Import request.
   Pass the parameters Order Source as "Internal" and Order Ref as your Int. Req. No.
 Submit it.*/

 /*After successful completion of the Order Import, we should see an order in
 the Sales order OM table given below. The orig_sys_document_reference refers
 to requisition# */
 select rowid,a.*
 from   oe_order_headers_all a
 where  orig_sys_document_ref = '119035046'

 The Internal Sales Order will result in an inter-org Transfer.

 So once the order is created in OM,it will be automatically booked (if everything
 is fine). Also Internal SALES orders are never invoiced. The status of booked
 is the final status for the Internal SALES Orders.To finally to complete the
 loop,once the order is booked, what we need to do is that for that particular
 internal requisition,we need to go to the purchasing and do receive against
 that particular requisition in the source inventory organization. So to repeat,
 an internal requisition is basically an transfer between two inventory
 organizations.

    -- So kinda, Internal sales order and drop ship order are opposite in functionality. */

-- ALL ABOUT ORDER IMPORT PROCESS.
/**************************************************************************/

The main functions of the Order Import are
 Validation
 Defaulting ,

 Inserting,Updating or Deleting of Orders.
 Processing Constraint Checks
 Scheduling of Shipments
 Applying and Releasing Holds

   /*
   For the order import process, the files can come either as flat files
   (.csv files, .xls files).
   Using the sql loader we import this data into the temporary staging tables.
   These staging tables are an identical copy of the order import interface tables.
   (The order import interface tables are,namely oe_headers_iface_all, oe_lines_iface_all,
   oe_order_actions_all, oe_price_list_attributes, oe_sales_credits_iface_all etc).
             Hence the staging tables also look identical
   to the above mentioned tables in terms of column names etc. Having imported the
   data into the staging tables we need to write the custom pl/sql apis to pull the
   order information from the staging tables into the actual interface tables.
   Now these pl/sql api will have logic to validate different order information
   like the order transaction types, order line types ,customer info, currency
   info etc ,before populating the orders into the iface tables.
 
   At this point, we run the Order Import concurrent program from the oracle
   applications, by providing the order source parameter. The order import
   concurrent program will in turn call the process order api to do some
   process and populate the orders into the order management tables like
   oe_order_headers_all, oe_order_lines_all etc.
 
   Another interesting point is that, when we run the order import process, we can
   run it in the Validate-only mode as well, in which case the orders are validated
   and they are present in the interface tables only , but not moved into the base
   OM tables. Order Import imports the order in as Entered and attempts to book it.
   If any of the required fields for a booked order are not supplied, Order
   Management retains the order in the Entered status and notifies you of the error
   Changes. You can import changes to orders that have been imported by passing all
   changed data through Order Import. You can update or delete orders, order lines,
   price adjustments, and SALES credits. You can use change sequence numbers  to
   control the sequence of changes you want to make to orders.
 
   Process Order Interface (API)
   The Process Order Interface is the central application process interface (API)
   provided by Order Management to perform all common operations such as
   inserting, updating, deleting, and validating an order or order line. The API also
   performs the scheduling and returns a promise date.
 
   Process order API is OE_ORDER_PUB : this is the public interface which is
   typically used from the backend.
   However the Order Import which we kick off from the Oracle Apps uses private
   API oe_order_pvt.process_order. We can provide different parameters for the same
   procedure and call different procedures of the same package
   like (process line etc).
*/
This API is called by Order Import.

If an Order is successfully imported, it also gets deleted from the interface
tables. If you attempt to re-query the window, you will not be able to view that
order in the Order Import Corrections window.

 select unit_list_price,unit_selling_price,
     order_quantity_uom,pricing_quantity
  ,pricing_quantity_uom,calculate_price_flag
 from oe_lines_iface_all


*/

The following are the Order Import Interface tables:

OE_HEADERS_IFACE_ALL   -- stores the header information
OE_LINES_IFACE_ALL     -- stores the line information.
OE_ACTIONS_IFACE_ALL  -- This is a multi-org table for sales order actions (holds, booking etc.) open interface
OE_CREDITS_IFACE_ALL  -- This tables stores the sales credits information for the orders.
OE_CUSTOMER_INFO_IFACE_ALL
OE_LOTSERIALS_IFACE_ALL --(A lot/serial number is a batch number associated with an item)
OE_PRICE_ADJS_IFACE_ALL -- This table stores the pricing attributes.
OE_PRICE_ATTS_IFACE_ALL -- This table stores the pricing attributes.
OE_RESERVTNS_IFACE_ALL  -- This once stores the reservations on the items.
OE_UPGRADE_WSH_IFACE

-- Order Management Tables.
OE_ORDER_HEADERS_ALL
OE_ORDER_LINES_ALL
OE_SETS (contains sets could be either of the ship/line/attribute set)
OE_ORDER_HOLDS_ALL (contains the holds that the order may have)
OE_SALES_CREDITS, OE_SALES_CREDITS_TYPE, OE_SALES_CREDITS_HISTORY
   (these tables correspond to the SALES credits associated with the correpsonding order)
OE_DROP_SHIP_SOURCES
 This table stores relationship between order lines in oe_order_lines_all table and
 associated oracle purchasing requisitions in PO_REQUISITIONS_ALL and Oracle
 purchasing purchase orders in PO_LINES_ALL.
OE_HOLD_AUTHORIZATIONS Stores information about who has the authority to apply and release holds
OE_HOLD_DEFINITIONS -- This table stores information about hold name and its validity period.
OE_HOLD_RELEASES This tables stores information about all the holds that has been released
OE_HOLD_SOURCES_ALL This table stores information of the hold source criteria.

--  
PROCESSING CONSTRAINTS :
Processing Constraints are basically some security rules that you want the Order
Management system to apply or execute whenever a new record is created or any
fields are updated for an order header or line. They can be accessed by
    Setup => Rules => Security => Processing Constraints.

Processing constraints are applied for the orders entered online or for
 the orders coming thru a batch.
 
Each Processing constraint corresponds to a
 * Specific Operation (Create, Update, Delete)
 * For each operation ,there are conditions with each condition corresponding
   to a Validation template.
   
So as an example of Processing constraint is this.
   Whenever an update of a credit card has been done by a user at the headerlevel,
   execute a procedure and print a user-defined message. So in the entity
   Order Header do the following steps.
 
   1. Then choose the operation as Update and attribute as Credit Card Number
   2. In the conditions provide the validation entity and a validate template
      which in turn maps to a procedure.
   3. Provide the user-defined message, that needs to be shown to the user when
      he updates the credit card.  
 
VALIDATION TEMPLATE : A validation template basically corresponds to
 a validation entity (like Order Header, Order line, etc) &
 a validation type (like a API, Table, or Workflow activity)

If the Validation type is Table, then you can provide some conditions on the
   table columns like etc "Customer like 'XYZ%'" and this check is validated
   for each record.  
If the Validation type is API, then you can provide a package.procedure, and
   that procedure will be executed for each record.
 
 And finally once you define a Validation template, we need to generate the
 Constraints Validation Package. This can be done using the menu
     Tools => Create Validation Packages

RECORD SET : A record set is what you are telling the system on how many records
you are asking the system to act on.

If you change the record set or the validation template you need to generate
the Validation package again.

--------

VALIDATION PROCESS :

Let us see the sequence of steps that the Order Import validation process does :

 
   
---- ORDER IMPORT PROCESS FLOW.

The Process flow of the Order Import is classfied into
 Pre Process Order API part
 Process Order API part
 Post Process Order API Part.

Pre-Process Order API Part : (VALIDATION AND DEFAULTING)
----------------------------
 -- Insert a request Id in the interface tables
 -- Check the closed_flag in the oe_headers_iface_all table.
      if oe_headers_iface_all.closed_flag = 'Y' then,
           OE_CNCL_ORDER_IMPORT_PVT.Import_Order is called
      if oe_headers_iface_all.closed_flag = 'N' then,it is open order,
          OE_ORDER_IMPORT_PVT.Import_Order is called.
 --  Check the Operation Code
 --  Validate Order source and the Orig_sys_document_ref
      Check for the Order sold-to-org column,if it is null, then create new Customer.
      Header Level Record Validation (check for required attributes ,conditionally
       required attributes and cross-attribute validation)
      Line Level Record Validation (check for required attributes ,conditionally
       required attributes and cross-attribute validation)
 
  So basically the VALIDATION AND DEFAULTING will happen in the Pre-process API.
       
Process Order API Part :  (PROCESSING CONSTRAINTS)
------------------------
 
   Process Header
       Check Processing Constraints
     Validate Attributes for the record
     Validate Entity
     check the operation codes or insert,update,delete and do accordingly.
   Process Header Adjustment
   Process Price Attribute
   Process Header Adjustment Attribute
   Process Header Sales Credit
 
   Process Lines
       Check Processing Constraints
     Validate Attributes for the record
     Validate Entity
     Check Schedule Status
     check the operation codes or insert,update,delete and do accordingly.
   Process Line Adjustment
   Process Line Sales Credit
   Process Line Aattribute
   Process Line Adjustment Attribute
   Process Line Lot and Serial

Post-Process Order API Part :  (SCHEDULE SHIPMENT, APPLY HOLDS)
----------------------------
Once the orders are imported ,the Post process will try to do the following.
   Price Comparison
   Payment Term Comparison (check if the terms on the line is diff from the
       customer profile terms)
   Reservations
   Check Return Status (either delete interdace records or update
     the interface records status)

/*PRICE COMPARISON :

 If oe_lines_iface_all.calculate_price_flag = 'N' Then
   we should provide unit_list_price and unit_selling_price on the oe_line_iface_all
 (And Order Import does not do any price calculations).

 If oe_lines_iface_all.calculate_price_flag ='P' Then
   We should provide 'pricing_quantity' and 'pricing_quantity_uom' columns ,since
 the OI will calculate the unit_list_price and unit_selling_price.

 If the oe_lines_iface_all.calculate_price_flag 'Y' and selling price is also
    populated, then OI will compare and prompt the user for any discrepancies in
 the price. However for this, the customer_item_net_price needs to be populated.  

  PAYMENT TERMS COMPARISON :
 If the payment term mentioned in the oe_lines_iface_all.payment_term_id does
 not match with the system provided value(i.e OI will determine from the profile
 classes what is the payment term id), then the OI will raise a warning,but still
 would import the row and would put the customer payment term id in the
 column customer payment term id in the oe_order_lines_all table.

 
 RMA FUNCTIONALITY IN ORDER MANAGEMENT :
/***************************************************************************/

 Order management supports a variety of methods for returning the products.
 The different RMA types are
  RMA with Credit Only
  RMA with Repair
  RMA with Replacement
  RMA with Receipt and No Credit
  RMA with Receipt and Credit
  Returned Item with Failed Inspection(its a mixture of above).

Setup Required for performing RMA's.
   -- For each of the above RMA types, that you want, you need to create a
   return order workflow and assign it at the order or line level.
   -- Further if a credit memo in AR needs to be generated ,then we need to
   include an invoicing activity within the workflow mentioned above.
   -- The item that customer is returned should be returnable, i.e
      Returnable, Shippable, Transactable, Stockable, Invoicable.
   --


/******************************************************************/

  /* RESERVATION :
   A Reservation is a guaranteed allotment of an item to a specific sales order.
   A hold is placed on a certain quantity of an item , which is made available
   by a specific date. Once reserved the product cannot be allocated to
   another sales order.
   */

   /* Little bit on the Inventory Item.
   An item can be defined for multiple organizations. if we defined the
   same item for multiple organizations, then we would find multiple records
   in the mtl_system_items table one for each organization id. In general when
   we want to look at the item master, then it would ask for the organization,
   however for the item master, the org is not significant and hence it would
   show the org in the form as GLO (Global organization). However when we look
   at the organization items, then it would show only the items corresonding
   to that specific org.
   The actual item code is stored in segment1 column,which is searchable from
   the master or org items form. */

   SELECT inventory_item_id inv_id, organization_id org,segment1,
       default_shipping_org,description
   FROM   mtl_system_items_b
   WHERE  segment1 = 'LD-FO='
 
   -- We can also get the organization name from the following query.
   select organization_id,name from
   hr_organization_units
   where organization_id in (1,2,16,483)
 
   /* You can only create items in Global Organization and then assign those
    items  to different organization by pressing the organization assignment
 button. Having completed the important step of creating a master item in
 Global Organization, now we need to assign this item to different
    organizations as you want them to be. Each inventory item also has something
 called "ship from org id" ,i.e that specific item can only be shipped from
 that org. Mere assignment of this item to different org's does not change
 the ship_from_orgid's.
 
    Hence even though the same inventory ITEM which is built in different
 organizations, it can only be shipped from one org. */
 
   --  Make sure the ship set id is given for every order line item.

  /* For this specific inventory item id, we can see what is the on_hand quantity
     available and it can be seen from mtl_onhand_quantities_detail.However this
  info is striped by the date_received. Hence if we have a total quantity available,
  we need to sum up on primary_transaction_quantity.*/
 
  select inventory_item_id,organization_id,primary_transaction_quantity
    ,organization_id org_id,
    subinventory_code,transaction_quantity,onhand_quantities_id, date_received
  from mtl_onhand_quantities_detail
  where  inventory_item_id = 21967852949
  and  organization_id =16
  and cost_group_id =1206
  and owning_organization_id =16
  and subinventory_code = 'JABIL2-OCC'
  and organization_type =2

-- Try to understand the difference between these two org ids' important.
select * from mtl_parameters where organization_id =16 and organization_code ='JAB'


   /* The concept of Sub-Inventory :
   We have seen from the various modules that for ex, the purchasing dept will
   acquire the goods from the supplier which are moved to the inventory.
   The order management picks the inventory items from the inventory(which is
   called pick release process) and then ship confirms that item for the customer.
   Similary the manufacturing  department gets the inventory from a inventory
   org(sub inventory) and gives the finished manufactured item back to the inventory.
   Now we can see that we can have different sub-inventories each for a
   particular department like Inventory,Manufacturing and order management.

   When defining an item, you can use the item attribute Item Status to
   control status attribute values. You determine the list of values for the
   Item Status attribute by defining Item Status Codes.
   An Item Status Code has a user defined set of Yes/No values for the status
   attributes. The values are applied to the status attributes when you choose
   an Item Status Code when defining an item. For example, assume you define an
   Item Status named Prototype with all status attributes set to Yes except
   for Customer Orders Enabled.
   Next, you define another Item Status, Active, with all status attributes
   set to Yes. In the beginning of a product development cycle, assign the
   status code Prototype to an item so that you cannot place the item on a sales order.
   Later, assign the status code Active to allow all functions for the item.

   A key board is customer ordered item, but we may choose to have to be non
   "customer orderable" a service item is not "customer ordered" item and hence
   there is no meaning about "customer orderable".
   */

   SELECT   c.item_key, d.activity_name, c.activity_status, c.begin_date,
            c.end_date
   FROM wf_item_activity_statuses c, wf_process_activities d
   WHERE d.instance_id = c.process_activity AND c.item_key = '343436'
   ORDER BY 1, 3, 4

  select * --line_id, ato_line_id ,inventory_item_id, ordered_item,tax_exempt_flag, rowid
  from oe_order_lines_all
  where line_id = 57739178 --header_id = 4314689--57725237

    select * from oe_order_headers_all where order_number = 53008567

 select * from wsh_delivery_details where source_header_number = 53008567
 
   /*For getting an item for drop ship order, first run this query and take that
    item for org, because there are the kinds of items which are eligible for
 drop ship orders. A drop shipment order is one where we dont have sufficient
   stock of that item or we do not manufacture that item at all. In that case
   we raise a drop ship order (meaning the order source is external). This sales
   order will in turn raise a requisition , and a purchase order is created
   for that requisition. Once that purchase order is fulfilled and the goods
   arrive we have 3 options to either send them directly to the customer, stock
   them in the inventory or stock it and send to the customer. Look at the .html
   file giving complete description about the drop ship order.

oe_drop_ship_sources :
    This table stores the relationship betweent the order lines in oe_order_lines_all
and the associated oracle purchasing requisitions in po_requisitions_all and po_lines_all.
*/

    SELECT
      inventory_item_id,
      segment1
    FROM
      mtl_system_items_b
    WHERE
   purchasing_enabled_flag    ='Y'  and
      purchasing_item_flag    ='Y'  and
      mtl_transactions_enabled_flag  ='Y'  and
      stock_enabled_flag    ='Y'  and
      reservable_type     ='Y'  and
      customer_order_flag    ='Y'  and
      customer_order_enabled_flag  ='Y'  and
      shippable_item_flag    ='Y'  and
      rownum < 2

   -- Creating internal orders
   -- order import tables
 
   /*Move Order 8308380 (Transact Move Orders Form)
   Its is possible to release an order line independently of other order
   lines and order header. */
 
   /*TAX calcuation scenario for orders picked up from shipping DC
    We are using vertex and calculating tax based on the ship to location of
 customers. At times customer wants to pick up the goods from shipping DC
 instead of items being shipped to his 'Ship-to' location. Sales tax in this
    scenario is calculated based his ship-to location, and not based on the
 location of shipping DC.
 
    Possible Solutions :
    We have two workarounds to handle this scenario,
    First, one to setup tax codes with specific tax rates and use defaulting
    rules to default tax code based on shipping method = PICKUP and shipping DC.
    Second create internal customer and define all shipping DC's as locations
 and then use them as ship to locations to calculate correct location based tax.
   */

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

/*  ABOUT ORDER HOLDS

In the new order management functionality, for any particular order (which has a
 specific order or transaction type, and which is associated with a specific
 work flow), we can view the work flow processes when we go to the
    tools => workflow statuses
 using a java applet. From that diagram we can know what are the different nodes that particular order
is going thru. We can correlate the same stages from the query which hits the order and workflow tables.

Any hold that you create will go into the table OE_HOLD_DEFINITIONS. Generally
once we create a hold, we also tell that which responsibility can place this hold
and which responsibility can release this hold. So this information will
go into the OE_HOLD_AUTHORIZATIONS. Also we mention when this hold is for which
work flow activity and for order header or line level.

Similarly we can define the release (and codes) and when we release a hold we
can provide this release code as the reason for releasing.

select * from oe_hold_definitions where name like 'Internet Delivery' -- 1012

select * from oe_hold_authorizations where hold_id = 1012

Now from the order organizer window, we can choose a set of orders (and hence lines)
to be retrieved and for all these set of lines, we can apply a hold source. Now
while creating a hold source, we provide the above created hold and choose whether
the hold source should be applied at the customer,order or product level. Here
we can also mention upto what time this hold is valid.

Having done that this information goes into the table, OE_HOLD_SOURCES_ALL with
the hold_id and the corresponding hold_entity_id (i.e if the hold criteria is
Order, then the hold entity_id is order header_id and if the hold criteria
is customer, then the hold_entity_id is customer_id etc), with the corresponding
hold_entity_code being C or O or I.

Hence a sample query would look like

   select *
   from oe_hold_sources_all
   where hold_source_id = :p_order_header_id

To place any particular item in a order succesfully, do the following check list,
check to see if the item is part of the price list that you mentioned at the haeder
level and that the end date of that item in that price list is greater than sysdate ,
and it is customer ordered and orderable, and last criteria is to run the concurrent program
"Item attribute Mapping " conc program which is typically run from the order
pricing manager responsibility.
*/

select header_id from oe_order_headers_all where order_number = 44131973

select * -- order_hold_id, hold_source_id , hold_release_id , header_id, line_id
from oe_order_holds_all where header_id = 5132128 -- 1081522
____________________________________________________________________

select * from oe_hold_sources_all
order by creation_date desc
--where hold_source_id = 1081522


--  Bill-To, Ship-To, Sold-To : Sold-To is the top most company or the main parent company.

 
/* When importing internal sales orders that contain order line items that require serial numbers, Order Import
 requires the associated items serial control attribute be set to: Dynamic at Sales Order Issue.

 You can create requisitions (with same number) in two different operating units.

 The Invoice Interface Workflow activity will not interface internal sales order lines, even if the activity
 is present within a workflow process. Internal order lines are never interfaced to Oracle Receivables.

*/

If the item is invoicable, then once the order is shipped/ship confirmed, the data is populated
into autoinvoice interface tables.

    select * from mtl_material_transactions --where transaction_type_id = 64
    where  inventory_item_id = 22934
 
    select * from mtl_transaction_accounts --where transaction_id = 6953873
    where inventory_item_id = 22934
    --where   transaction_id = 6806418
     
    select organization_id, inventory_item_id,segment1
    from   mtl_system_items_b
    where  segment1 like 'MyAstItm' and organization_id=45
   -- and  inventory_item_id = 22917
 
select sysdate from dual

  select * from gl_code_combinations where code_combination_id = 1024

  select max(creation_date) from mtl_transaction_accounts


/*************************************************************************************/

reservation time fence
APS : Oracle Advanced Planning and Scheduling
GOP : Global Order Promising


different kinds of dates request date, available date.

OM: Autoschedule

 
   /****************************************************************************
   But my requirement is I have a manual PO, and this PO needs to be displayed
   in the the Drop ship tab for one of the SO line for reference purpose.
   I created one entry in the oe_drop_ship_sources table with all the required
   information but still I am unable to link the PO to SO line.

Here is the query :
INSERT INTO OE_DROP_SHIP_SOURCES
(
DROP_SHIP_SOURCE_ID,
HEADER_ID, --Sales Order Header Identifier
LINE_ID, --Sales Order Line Identifier
CREATION_DATE,
CREATED_BY,
LAST_UPDATE_DATE,
LAST_UPDATED_BY,
--LAST_UPDATE_LOGIN
ORG_ID,
DESTINATION_ORGANIZATION_ID,
-- REQUISITION_HEADER_ID
-- REQUISITION_LINE_ID
PO_HEADER_ID, --Purchase Order Identifier
PO_LINE_ID) --Purchase Order Line identifier
-- LINE_LOCATION_ID
-- PO_RELEASE_ID)
VALUES (OE_DROP_SHIP_SOURCE_S.NEXTVAL,189896,251254,'23-Feb-07',5989,'23-Feb-07',5989,84,168,43167,287300);
****************************************************************************/


-- QUESTIONNAIRE :
/*****************

1) It is possible to release an order line independently of other order lines
    and order header.
   Yes you can using the shipping transaction form.(From pick release you can release
 complete order and not independently the lines).
 Immediately after the order is booked, we can come to the shipping
 transaction form, pull up that order, and for a specific line, we can
 "Launch Pick Release". We can also subsequently create a delivery for this
 order line and then ship the order as well. Hence we can ship an order line
 independently of the other order lines.
 Pick release can also be used to release lines independently, by providing
 conditional scheduled ship dates ,request dates,in which case, it will release
 those specific lines.

2) Once The order is booked ,are the delivery details/lines created ??
  Yes. immediately after the order is booked, the delivery lines are created (not deliveries)
  (which can be seen from the wsh_delivery_details which reference the sales
  order). However once the deliveries are created (either automatically after
  the pick release or manually based on the system options), these deliveries
  lines are asssigned to the delivery created. Only after
  the deliveries are created we can ship (or ship confirm) them.

3) What is Defer Interface?
   There is a flag in global parameters setting which is Defer Interface.
   Typically once the order is ship confirmed, then the
 trip stop report is printed and the order is ready for interfacing to AR.
 However if the defer interface flag is set, then even after the ship confirmation,
    the trip stop process does not pick this up and is subsequently not invoiced.
 Defer Interface flag can also be set at the ship confirm window level.

4)How do we apply credit holds to Orders :
 One way of applying a credit hold for an order (based on the customer credit)
 is to use the credit management. Another way is to specify within the OM,
 the credit limit at the customer or site level as follows,
  Customer => Profile : Amounts

   We can specify both order credit limit (which is specific to an order)or credit
   limit(which is entire credit limit).

5).What are Deliveries and Delivery Lines, and which one is created first?
  Lets take an example. Let us say there is a sales order which consists of
   two lines. Once the order is booked, two delivery lines are created automatically.
   If there are two order lines, there will be two delivery lines,so for each
   order line, there is a delivery line.  Then as a next step, we assign these
   delivery lines to a delivery. And if the autocreate is checked, then automatically
   a delivery is created after pick relase  and the two delivery lines are assigned
   to the newly created delivery.
   
6) What are Container Items :
    Container Items are also inventory items,which are flagged as "Container"
 in the Physical Attributes tab. Usually they are not Customer orderable,
 customer ordered ,invoicable etc. ;
    Items => Physical  Attributes => Container Area.

    We can also set the item as a Vehicle as the case may be.

7) What is packing the Items :  
   Usually we  Pack the Items, that is when we need to define the Container Item
   Relationship,which is defined here,
      Setup => Shipping => Container Load Details.

 Here you specify the relationship between the regular items (like say Printer)
 and the container items (like Box, Carton)and the maximum quantity that can
 be filled in that container etc.

 Once that is done, we should be able to do the packing.
 
   8) What is partial cancelling of the order line.
   If you change the order quantity say from an original value of 50 to ,say, 45,
   then the orderline is said to be partially cancelled.
   write more about this
 
   9) What is splitting the order lines and how does pick release help in the case
   of split lines ?
   Let us say we have an order which requires multiple shipments over time, then
   you would split the order line, rather than creating multiple order lines.
   So in each split line, we specify the quantity and the request data,warehouse
   from where it should be shipped. Based on this, the scheduled ship dates are
   also populated accordingly for each split line.
   Once this is done, during the pick release process, we can specify up to which
   schedule date /request date we want the lines to be released and then accordingly
   the lines will be released.
 
10. What are line sets,ship sets, arrival set, fulfillment sets?
      Line set is a generic term,which you specify at the order header level,
    which can be a ship set, arrival set or fulfillment set.
    If you specify a ship set,say 1, for a group of lines, then during pick
    release we can release the lines based on that ship set number.
    Also a line can belong to a ship set or arrival set,but not both.
     

13). What are backflush transactions ?
 Backflush transactions are those WIP (workin process) transactions which pull
 the inventory for the manufacturing operation. It is an issue (outgoing from
 inventory) operation and not a receipt operation.
 
14) What are the examples of ShipOnly and InvoiceOnly orders.
    Ship only orders are those where we just ship the item to the customer and do
   not invoice them. Example of shiponly orders are demo items, and sample
   items,which the customer uses and probably returns them after.
 Invoice Only Orders are those where we just invoice the customer,but we do not
   ship any item.Example of Invoiceonly order could be a subscription item
   where we just invoice the customer for that month,but we donot ship
   any item.
   
15) What are trips and stops and how they are related to deliveries.
   A trip consists of atleast two stops, one the pick-up point and one a drop-off
   point. When we ship confirm a delivery,a program called "Interface Trip Stop"
   is automatically run which creates a trip stop and the delivery is assigned
   to that trip.

16)What are the different kinds of Orders
       Regular sales order, RMA, Drop ship, Internal Sales order.  
 
17) What are the possible reasons the inventory quantity can be driven negative
   for reservable items.
   Usually when we pick release, a quantity is reserved and if there is not enough
   quantity then the reservation does not happen, and the pick release will fail.
   However after a successful reservation , when we come to the delivery lines,
   we can change the shipped quantity on the delivery lines as well. If that shipped
   qauntity is more than the requested quantity and if that quantity is more than
   the available quantity, (and if negative quantities are  allowed) then the
   inventory quantity can be made negative. if negative quantities are  allowed for
   that inventory organization, then those records might be stuck in the inventory
   interface.
 
18) Can we change an order after we book it ???
    Yes, as long you dont violate any processing constraints.

19) What is the difference between Pick Release and Pick confirmation.
 Pick release is the process that you do in Order Management which will create a
 move order and it goes thru approval, allocation and transaction.
 Pick Confirmation is an inventory operation which is basically transacting a
 move order which results in a subinventory transfer of the material from the source
 subinventory to staging subinventory.
    Hence Pick Release will internally call pick confirmation process.
 
20) What is retroactive billing ??
 
21) what is shipping document set??
   A shipping document set is a set of shipping documents,which you specify at the time
   of ship confirm,so that Oracle shipping wil print all those documents. And they are
      Bill of Lading => A receipt given by the carrier to the customer,acknowledging
         the goods being shipped and specifying terms of delivery.
      Waybill =>it is identical to Bill of Lading, but it is not a document of title.
      Commercial Invoice=> prints all confirmed shipped item in a delivery along with value.
      Mailing Label => address label showing where we are shipping.
      Pack Slip  => slip which shows the contents of the package.
      Vehicle Load Sheet Summary =>specifies the loading sequence of items in a delivery.
 
 Please note that the document set need not consist of all of the documents.

22) Is it possible to book an order with out any line items ? What would be the
 business scenario for this kind of order ??
  Yes.

23) What is packing slip ?
   Let us say we have an order consisting of 10 items. A pack slip mentions all the
   items. Basically it is just a confirmation from our side ,what we are shipping.
   A bill of lading is a document from the carrier what we are shipping.

24) What is pick slip?
   A pick slip is a document printed by the move order process in Inventory,which
   tells what has been picked.

25) Does the order header close immediately after all the order lines are closed??
       
26)What is the backordered status in the delivery lines mean ?
   The term "backorder" or "backordered" is a status,which means that during
 pick release, that item is not having enough stock and hence the status of
 the order line or shipping line changes to backorder. Please remember that
 backordered is just a status, it does not initiate any kind of drop ship
 process,to purchase that item from a supplier etc. To resolve this issue ,you
 will have to manually do a receipt for that item and have enough quantity onhand.

27) What are the different modules which Order Management will interact with ?

 Order Management interaacts with different modules based on different kinds
 of items, pricing, type of shipping etc
     Inventory (for pick release, shipconfirm)
  Pricing,Advanced Pricing  (for formula, attributes, qualifiers, modifiers)
  Shipping Execution (shipping transactions ex delivery,trips,stops)
  Manufacturing (for BOM Items, assemblies etc before/after booking process)
  Purchasing (for drop ship, internal sales order, RMA receipts)
 
28) If aline is stuck at Shipped status, and is not closed, then what is the
 difference between running Workflow Background Process in Inventory versus
 Order management,coz running from Inventory is pushing to AR ?
 

29) Does Order Header close immediately once all the order lines statuses are closed?

 No. The standard functionality of the Order header closed an order header at
 the month end even if all the lines are closed in the middle of the month. So
 even if we run the  Workflow Background Process for Order Header, the status
 will not change to Closed for the Order Header. However this does not stop
 interfacing the lines to AR.

30) Can you explain the difference between the Subinventory Transfer,Move Order,
 Inter-org Transfer And Internal Sales Order?


31) Explain the process of backorder during the ship confirm process.
 
   We know that during the pick release process ,if there is not enough quantity
   the delivery line status will automatically change to backordered. Now even
   during the ship confirm, we can do a back order. During pick release the quantity
   has moved from source to staging subinventory.
   Sometimes we may not ship the entire quantity that is pick released. The business
   reason for this could be that we need that material for some urgent or important
   customers and hence we might partially ship the quantity. And this is done in
   the following steps as follows.

 -- In the delivery line, the requested qty(say 100) and shipped qty is null. Let
 us say we want to ship only 60 and not the remaining 40. So in the shipped qty
 you enter 60, so the backordered quatity will be 40

 -- In the ship confirm window, in the unspecified quantities list box change it
 to "Backorder". Then the 60 will be shipped and the remaning 40 will need to be
 pick released.

 -- Now come to the sales order and look at the lines, the original line will be
 split into two lines one with 60 ,having status of shipped and one with 40 having
 a status of "Awaiting shipping".

 -- Do an explict subinventory transfer back from staging to source subinventory as
 this will not happen automatically.
 
 Hence understand the status "backordered" ,the quantity needs to be pick released
 again.

32).  what is the difference between bookings and revenue ?
 typically revenue is referred to as current sales while booking is referred to
 as the projected future revenue.

33)   what is the difference between billing and invoicing ?
 Billing is a generic term used for AR invoices, credit memos,debit memos etc,
 while invoicing information specifically refers to AR invoices.

34)   what is item conversion and customer conversion ?
 Lets say we have Oracle ERP A and ERP B and we are trying to convert items
 from A to B. Then, when you bring an item X from A to B system, then that
 id/code will be preserved.
 The other option is to create corresponding new items in system B for each
 item in system A and then try to reference the items from system A.

35)   What is customer conversion and how does it affect order management ?
 Basically when we are integrating two systems, then we need to bring in the
 customers of one system to another,so we can transact in the new system
 i.e we can create orders.
 Hence if we are bringing open orders from system A to B, then we need to
 do the item/customer conversion, because the open orders in the new system
 will be referring to the old item numbers or customer numbers. For new
 orders, that means the orders themselves are created in the new system.

36)  what is business alignment ?
 Business alignment is basically business aligning with IT. For ex, IT might
 implement a new version of oracle ERP with new features ,then the business
 should agree to the change and be able to adapt to the changes.

37).  What is a Managed Service Point :
 Means some company XYZ takes care of a particular functionality (like billing
 invoice,check printing) in some other company ,say like Cisco. And for this
 service, cisco pays them a flat usually monthly payment. Usually the managed
 services provider works remotely from the company i.e managed services offerer.

38). What are the checklist of items that happen while booking the order ?
 Scheduling,
 Credit check,
 Checking Hold if they exists,
 Repricing,
 Process Price adjustments (apply modifiers),
 Payments (Authorization of credit cards)
 Sales credit verified,
 Constraints are validated,
 System parameters are validated,
 tax calculation,
 Configuration Validation,
 Workflow progress based on the type of order,
 Shipping data are populated,
 IB(Install Base), CZ(Configurator) are populated.

39). How do you fulfill the software Orders versus tangible item orders ?

For tangible items orders, fulfilment is shipping the order; and the IB instances are
created once the item is shipped. For software orders;  the two ways of fulfillment are
Ship the cd box or fulfill it online (by downloading etc);
        If it is fulfilled online, the IB instance is immediately created with out the serial number;
        And once the product is shipped, that is when the IB instance can be updated
 with the right serial#.(you cant put a serial# on the box).

40). How do you ship the orders which you frequently ship the items together ?

For ex, let us say you very frequently ship the order consisiting of one cd, one hardware
token and one user manual. Then it makes sense to group them into a BOM(bill of material)
Kit. That is a BOM of the type of Kit. A kit is a group of components,but a kit itself is not
shippable although the component items are shippable. Also ensure that the on hand exists
for all the component items so the pick release/ship confirm will not fail.

41). what is defer interface (at ship confirm) in order management ?
 Basically at the time of ship confirmation, if the Defer interface is checked/enabled
 then the Interface Trip Stop program is not run. If the Defer interface is not
 checked/enabled then the Interface Trip Stop program is run. The interface trip stop
 program basically updates the inventory,reduces the on hand quantity and also updates
 the order lines status to closed from shipped.

42). At what point of time the onhand quantity gets decremented ?
So once the ship confirm completes and if the defer interface is not set, that is when the
 inventory interface happens and the onhand quantity is decremented to reflect the
 correct status in inventory.

43). Once the order is shipped, how can we see the delivery lines ?
Once the order is shipped, we can pull up that order in the shipping transactions find form,
 by selecting null from the line status field.
 We can also run the report like "Shipped Delivery Lines report" and provide the order number to
 see the delivery# details etc.

        Shipping => Interfaces => Run => Shipped Delivery Lines report  

44)  Profile option for seeing the output file ?
The profile option to see the output file and the log file is starting with "Viewer%"

45). you can have an item which is not inventory item, but it could be a customer orderable item?
Yes. for ex, service item, which are not inventory items (because they are not stockable/shippable) however a customer can order the service item.

46). What are the different scenarios of ordering service from OM ?
Consider these situations :
You can order service from OM for an item
    which the customer has on the same order
            This is a simple case.
    the customer already owns the item,
            Then you should know that order number,line#,shipment#,date of service start. Done on the service tab.
    or the item should be there in Oracle installed base.
            Then you should know the item instance# or item serial number,called reference number in the form. And if the item does
             not exist in the Installedbase,then you should create it manually.

47). where do you define a fulfillment flow. ??
 Each order type will have a workflow for header/line attached to it and the order lines
 will flow those steps.

48). Does defer interface defer OM/AR interface ?
 No the defer Interface is basically defers the shipping module writing the status
 back to the OM/inventory interface. However only after this writeback(interface trip stop
 program completion), the line status at the order level changes from shipped to closed and
 at the shipping line status changes from closed to Interfaced.
  And only after the Orderline status is closed, it can be interfaced to AR(if it is an invoicable
 item).

49). How do you fulfill a service item order  ???
 Lets us say there is a consulting service order. Usually these kinds of orders
 are fulfilled after the serviced is delivered. the regular orders as fulfilled
 once the item is shipped.while these orders are fulfilled once the service is
 performed and the timesheet is filled,approved the appropriate authority and sent over.

50).  Why is that in OM, once a sales order is created for a customer, a credit hold is
 automatically applied?
 It may or may not be. It is decided by the workflow process.

51).   I understand that BOM's should be defined if the warranty has to be automatically
  created upon purchase of a product. What if the customer does not implement BOM?
 When you purchase OM, the basic functionality of BOM is provided by default.

52). Does the workflow background process need to be run with deferred processes yes?
 Yes to clear the waiting processes,if any.

53).  Can the delivery lines in Shipping module be sourced from Other modules than OM?
 The sources for the delivery lines are Order Management,Project Contracts and Shipping.

54). What is credit managment module and what is its functionality ?
 Credit Management is a separate module which basically checks whether the customer
 credit is in good holding and if not,it will put the customer order on hold.
 Credit management can be hooked up to the OM/AR/Collections as different touch points.
 (just like ipayments module).


55). Is a move order created for a non-reservable items ?
 No, when you created a non-reservable item and pick release a sales order for that item,
 then there will not be a move order and hence there will not be a reservation or
 the item movement from the current subinventory to the staging inventory.So the item
 stays in the place where it is currently. This is said to be looser inventory control.

55 a).What is the difference between pick releasing a Reservable Item versus
      Non-reservable Item?
   Usually the inventory items are by default reservable and when an order with
   a reservable item is pick released , then during the allocation and transaction
   process, the material reservation is made and move order is transacted.
 
   However when a order with a non-reservable item is pick released, then during
   during the pick release process,then there is no allocation required.
 
56) What are the conditions under which the inventory quantity can be driven
   negative(for non-reservable items)?
   Usually when the items are non-reservable, then the pick release process will
   not check for the item quantity and there is no reservation involved. Hence
   when you shipconfirm ,there is a chance that sufficient quantity might not be
   there to ship.
   So if there is insufficient quantity in an inventory organization ,&
     if negative quantities are allowed in that organization , &
   if the item and subinventory both are reservable (if an item is reservable
   but a subinventory is not, the item quantity in that subinventory is not
   reservable),
 Then if the above conditions are satisifed, the inventory quantity can be
 driven negative.


57). What are the consequences of allowing /disallowing negative balances in inventory?
 If you do not allow negative balances in your inventory it will block any shipment
 (delivery) where a line is shipping more than the quantity available in inventory.
 The error is generally human. You accidentally enter a larger Ship Quantity than you picked.
 The whole delivery will be stuck in the Inventory Open Interface.
 To solve the problem either go through the entire delivery and find out which line
 was overshipped. Then move the required quantity to the staging area and resubmit
 all the lines in the Inventory Open Interface. Now run the Interface Trip Stop - SRS
 in Order Management. This should do the trick.

 Otherwise, allow negative balances in your inventory. And resubmit etc. When the
 delivery has been processed there will be a negative balance in the staging area.

Research onthis. if the shipped quantity is more than the requested quantity for the reservable vs non reservable items
do a copmlete flow on this. ??


58). How to create a Manual Delivery in OM ?
 Navigate to Shipping Transaction Form
 Ensure that radio button is on deliveries in the top right corner (ie in "Search For" region)
 Click On find button (You can enter a few criteria to make the search faster)
 Once the results screen opens, click on the general create button green "+" icon at
  the top left menu.
 It will create a new record. Enter all required details and save.
 Now you can come to the shipping trx form ,find delivery lines for a sales order and
  assign the manually created delivery above to these delivery lines.

 This can be understood in the way that when we create a customer, the first thing
 that comes up is the customer search screen,so that we can find existing customers,so
 that there are no duplicate customer entries.

59). what is the difference betweeen manual delivery vs automatic delivery ?

 Actually the difference is when you are creating Automatically, the system will
 create one delivery for the lines involved but if you want to do it your way i.e.
 either club deliveries or may be have a delivery for each line seperately then it's of use.

 To my knowledge if you don't have a seperate Trip Planning or Delivery Planning department
 it should be left to create aumoatically as you won't be getting benefited much by that.


59).  How do you fulfil an RMA order?
  Standard tangible orders(with tangible items) are fulfilled by physically shipping those
items. However return orders(like return only, rma only, rma with credit etc) are fulfilled
after we receive that item into the inventory. So the steps would be
 - First book the rma order and note that order #.
 - then go to purchasing/receipts and in the customer tab, receive that item
  into inventory. check to see if the onhand has increased,ensure that the
  receving transaction processor is running.


60). What are the steps involved in shipping of an ATO Item  ?

  For ATO model you cannot ship the item immediately after booking. Please
  find the following steps.

 Click the actions button and select progress order. This will run a concurrent
   program called autocreate final assembly. If you see the output of the
   request you will get the job no.

 Query the job in discrete job window and check whether it is released.
   If not release it.

 Transact the job in move transaction form.
 Complete the job

 Now query your sale order and check the line status. It will be Awaiting
   Shipping.

 Now you can ship the order.

61). What is lead time ?
 The generic lead time definition suggests it is the amount of time between the
 placing of an order and the receipt of the goods ordered.
 Usually we can see it as the time difference. So we can have different kinds of
 lead times like Transit lead time & Delivery Lead Time etc.

62).  What is the difference between Operating Unit Id and Inventory Org id?

 As mentioned before, usually whenever we are dealing with org id's in the
 Purchasing,OM, we are referring to the operating unit id, while in the
 inventory we are referring to the inventory org id.Now when we enter lines
 in OM, we choose an inventory item id. Now this inventory item is corresponding
 to the inventory organization id that is specified in the Warehouse id.
 Actually the warehouse id corresponds to the Inventory Organization Id.
 Incidentally the warehouse id is present both at the header level as well
 as the line level.  Also we can even mention what is the subinventory from
 which this item should come at the order line level.
 So what this effectively means is that we can place sales orders having
 two lines corresponding to the two different inventory organization ids as the
 warehouse id is present also at the line level.

63). What are defaulting rules in Order Management ?

  Generally while we are creating an order online/offline, certain information
  defaults based on the defaulting rules. these defaulting rules can be defined from the
   setup => rules => defaulting.
  One important point to note here is that when we create a default rule for each
  attribute, we mention what is called the default sourcing rules. Here we specify
  the sequence in which this attribute will be sourcing. An an ex, consider
  a bill to attribute, we specify the sequence as
           shipto. billto
        customer.billto
        blanketheader.billto
        agreement.billto.
 which means if the shipto entity does not have the billto info,then it goes
 to the customer and gets the billto, and if it does not find there to
 it goes to blanketheader and gets it etc.    

64). Explain the terms, Manufacturer, distributor,reseller, retailer?
    A Manufacturer manufactures or produces the goods etc.
    A Distributor buys the goods from the Manufacturer, stocks them and sells them
 to the resellers or retailers(although he may not stock them sometimes).
    Reseller(also called Value Added Resellers,VAR's) will get the goods from a distributor
 and sells it to the consumers. Remember they add value,rather than just selling like
 that. For ex; they buy a computer and they can add a one year ext warranty for that
 for a price and then sell it.
    Retailer is also a reseller,however they usually dont add value,they just sell like that.

64a). What is the difference in buy-stock-sell vs sell-source-ship model?
    The traditional model of buy-stock-sell is distributors will buy goods, stock and sell
 them; in this model the lead time for the order fulfilment is very less.
    The new model is sell-source-ship ,where we take the order and source those orders
 from an external supplier (at that point of time) and then ship, here the lead time
 is more,however it results in cost savings. This is typically the drop ship model.

65). How does the receiving system recognize the difference between receipt of a regular PO
 versus drop ship PO???? i.e what is that specific flag that recognizes the difference ?
   I believe when an order line is marked as with source type "External", then it make
   an entry into a drop ship sources store(i.e oe_drop ship sources which stores the
   order header and line id info).
   And when the receiving system looks for a PO, it looks in this table if it is a drop
   ship PO, and if it is then it does a logical receipt of the goods.

66). What is the logical receipt of goods in the system?
  The logical receipt means the onhand quantity does not go up in the inventory. Basically
  the system increments and decrement in one transaction and onhand remains same. This happens
  in the case of drop ship PO receipt of goods.

67).How do you do a drop ship order across operating units i.e you create an drop ship
   order in US to ship a product from an australia supplier to your australia customer?

  Basically cross OU/ledger functionality is available only in R12 and not in 11i.
  The only difference is a couple of steps
 First, set the receiving or in the sales order line as cross OU,receiving org.
 second, receive the PO in the desitination OU/ledger and follow the same stepsfrom thereon.
 Third, intercompany transactions for this transfer.

Query to Find Receipt Class and its GL Combinition Query

SELECT ARC.NAME ReceiptClass,        ARC.CREATION_METHOD_CODE Creation_Mehthod,        DECODE (ARC.REMIT_METHOD_CODE,             ...