Wednesday, October 10, 2012

Inventory Transactions

/*In oracle Applications, the hierarchy of org's is given below.

   Set of Books => Legal Entities => Operating Units => Inventory Organization.

   The Set of Books is defined in the General Ledger application setups, Legal Entity
   is defined in the HR while the Operating Units and Inventory Organization
   (organization) are defined in the Inventory App.

   In Inventory, the items are stored in different subinventories, locations etc.
   We can find what are all the subinventories that are available in the systems.
   Generally we define subinventories corresponding to an inventory organization
   and one inventory organization will have several subinventories associated
   with it.(setup=>subinventories)
*/

SELECT secondary_inventory_name,description, organization_id,location_id ,a.*
FROM   mtl_secondary_inventories a
WHERE  secondary_inventory_name LIKE 'MY%'

--select * from mtl_physical_inventories , mtl_physical_subinventories

/*  We can define the locations that these subinventories will be physically located
using  the setup And associate these locations to a particular sub inventory,it
can be seen from above query. */

   SELECT location_code, location_use, description descr,ship_to_Location_id,
          ship_to_site_flag,inventory_organization_id
   FROM   hr_locations
   WHERE  location_code LIKE 'MY%'

   /* The different types of transactions that are available in Inventory are given
   below.They are like
            Subinventory Transfer,
        Move Order,
     Container Pack etc.
    A transaction type is a combination of transaction
   source type and transaction action. We can have a user-defined transaction
   source types, but there are a predefined set of transaction actions(a user cannot
   define anymore tranasction actions). So based on a pre-defined transaction actions
   and source types, we have some predefined transaction types. However if we need to
   have a new transaction type(apart from already provided ones), we have to create a
   new transaction source type, and create a new transaction type based on the new
   transaction source type and associating it with a any of the existing transaction
   actions.
     
   Ex's of transaction action is "Issue from Stores", "Receipt into Stores" etc.
   Ex of a predefined txn source type is "Sales Order ".
   So based on these two, the predefined transaction type is "Sales Order Issue".
   Another ex is we can have a predefined source type as "Goodwill" and transaction
   action is "Issue from Stores" and Transaction type is "Goodwill Donation".
     
   One more ex is transaction type "Subinventory Transfer" which corresponds to the
   transaction action "Subinventory Transfer".
   */
     
   SELECT transaction_type_name, transaction_source_type_id, status_control_flag
   FROM mtl_transaction_types
   ORDER BY 1
     
   SELECT transaction_source_type_id, transaction_source_type_name, description
   FROM mtl_txn_source_types
   ORDER BY 1

   /* So we can see that items can participate in different kinds of transactions like
   "Issue from stores" in which case they go out to the sales order, "Receipt into Stores"
   coming into the inventory, moving across the subinventory which is called subinventory
   transfer etc. So all these transactions are stored in the table mtl_material_transactions.
   So given a item name, we can always find out in all the transactions that this item
   has participated in, by using the following query. So all these transactions are called
   Item Transactions or Material Transactions. It is interesting to see that the item's
   transaction quantity having a negative balance as well as positive balance.*/
   */
     
   SELECT transaction_quantity, inventory_item_id,subinventory_code,source_code,
   transaction_type_id, transaction_action_id, transaction_source_type_id
   FROM mtl_material_transactions
   WHERE inventory_item_id =(SELECT inventory_item_id FROM mtl_system_items_b
   WHERE organization_id= 1 AND segment1='CISCO TEST ITEM1'
   )
  
   /* Move Orders :- Move Orders are requests for the movement of material within
   a single inventory organization. This will allow planners and facility managers
   to request the movement of material within the warehouse/facility for purposes
   like Replenishment, Material storage relocations and Quality Handling.
   Move Orders are restricted to only with in inventory organizations, and if you
   want to move out of an organization, then we have to use the internal requisition process.

   Oracle provides for 3 types of Move Orders

   Move Order Requisitions :: Manually generated request for Move Order.

   Replenishment Move Order:: ex Preapproved automatic move order which can happen when a minimum quantity is
                reached in inventory.
   Pick Wave Move Order    ::  Preapproved requests for subinventory transfers to bring material from a source
                   location to a staging subinventory.
   The Move Order type refers to the entity that created the Move Order. For all Move orders the final result is
   either Subinventory Transfer or Account Process. Move Orders use Inventory picking rules to suggest
   source location, lot number, revisions for the material to be picked.

   So out of the 3 different move order types, two of them are typically pre-approved move orders while the
   Move order requisition is a manual move order,which we can allocate and transact it manually.
   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.
   */


   /* Generally quantities of items are stored in subinventories corresponding to
   an organization. An org can get a material qty from a transaction which can either
   be a purchase , movement from another subinventory, manufactured etc. If we have
   any material transaction like subinventory transfer of any particular item also
   we can see that from this query.  */
  
   SELECT b.inventory_item_id item_id, b.organization_id org, b.segment1 item_code, 
   a.transaction_quantity, subinventory_code subinvt,  cost_group_id
   FROM mtl_onhand_quantities_detail a, mtl_system_items_b b
   WHERE a.organization_id = b.organization_id
   AND  a.inventory_item_id = b.inventory_item_id
   AND  b.segment1 = 'CISCO TEST ITEM1'


  -- Givena a item code, query will give the organization name.
   SELECT inventory_item_id, a.organization_id , b.name
   FROM mtl_system_items a, hr_organization_units b
   WHERE segment1='MARUTI 4000'
   AND a.organization_id = b.organization_id --707983616

   -- Given a item , we can find all the orders which have placed an order on these items
   SELECT header_id, line_id
   FROM oe_order_lines_all
   WHERE ordered_item='MARUTI 4000'

   /* An Item onhand quantity is the total quantity of that item. We can see that
   quantity in the mtl_onhand_quantities_detail table. Out of this amount, we can
   place reservations for that item either on the order line itself or we can even
   go to the Inventory and do this. In the latter case, we choose the "Reservations"
   form to place a reservation on this item. Incidentally we need to provide the
   order number and the line number which has this item, which creates a reservation
   on that item.   In that case, the data goes into the mtl_reservations table. Hence
   the available quantity of any item is  onhand minus the reserved quantity. So the
   formula is
        onfiltered= Reserved + Available (to transact, reserve or sell).
  
   The below query will also give you the order line id (demand source line id) of an order which has placed
   the reservation. */

   SELECT demand_source_header_id, demand_source_line_id,reservation_quantity
   ,supply_source_type_id,subinventory_code
   FROM mtl_reservations
   WHERE inventory_item_id =
   (SELECT inventory_item_id FROM mtl_system_items WHERE segment1='TESTSTD1'
   AND organization_id =1)
   AND organization_id = 1
  
   /* To get all those order lines which have place a reservation on a particular
   item, use this query.*/
   SELECT *
   FROM oe_order_lines_all
   WHERE line_id IN
       (SELECT demand_source_line_id
       FROM mtl_reservations
       WHERE inventory_item_id =
    (SELECT inventory_item_id FROM mtl_system_items WHERE segment1='TESTSTD1'
       AND organization_id =1)
       AND organization_id = 1)

 /* Generally any item when it is first created will be assigned a default
  category set, which can be defined as part of setup data.
 */
      SELECT a.inventory_item_id,a.organization_id, b.category_set_name, c.segment1
      FROM mtl_item_categories a, mtl_category_sets b, mtl_categories c
      WHERE a.category_set_id = b.category_set_id
      AND a.category_id = c.category_id
      AND inventory_item_id =
      (SELECT inventory_item_id FROM mtl_system_items_b WHERE segment1='LUCKYITEM'
      AND organization_id =1)
      AND organization_id = 1

      SELECT category_set_id,category_set_name,description,structure_id,validate_flag
      FROM mtl_category_sets
      WHERE description LIKE '%Item%'
      
      SELECT * --category_id,structure_id,segment1, description
      FROM mtl_categories
  
      SELECT a.inventory_item_id,a.organization_id, a.category_set_id,
      a.category_id--,a.cms_replication_date
         ,b.segment1,b.description, c.category_set_name, c.description
      FROM mtl_item_categories a, mtl_categories b, mtl_category_sets c
      WHERE inventory_item_id =
     (SELECT inventory_item_id FROM mtl_system_items
       WHERE segment1='CISCO TEST ITEM1'
      AND organization_id = 1)
      AND a.category_id = b.category_id
      AND a.category_set_id = c.category_set_id

   /* Item attributes and status codes : Item attributes are information
   about an item for ex, lead time, revision control, order cost etc. We can have
   2 kinds of control levels for these item attributes, which we set at the
   time of defining the item. They are master level (which is centralized i.e
   attributes defined at master level will have same values at all the org
   levels. And in org level the values defined will have different values at
   different orgs. ex UOM.

   There are two kinds of item attributes,
      --- Item Defining attributes
   --- Item Status attributes
  
   /* You cannot enable the status attribute, until you set the corresponding
   item defining attribute to Yes */
  
   The Item Defining attributes are
            Inventory Item
      Internal Ordered
      Purchased
      MRP Planning Method
      Costing Enabled
      Engineering Item
      Customer Ordered
      Support Service
      Invoiceable Item
  
   All the above item defining attributes are given by the below query.
  
     SELECT   inventory_item_flag,
        purchasing_item_flag,
     internal_order_flag,
     mrp_calculate_atp_flag,
          costing_enabled_flag,
     eng_item_flag,
     customer_order_flag,
     serviceable_product_flag
     --serviceable_component_flag ,service_item_flag
     FROM   mtl_system_items_b
  
   THe Item status attribute are 8 and they are,
   
            BOM Allowed,
       Build in WIP,
       Customer Orders Enabled,
       Internal Orders Enabled,
          Invoice Enabled,
       Transactable,
       Purchasable,
       Stockable.
  
   All these attributes are flags and the following query will give all those attributes. */

   SELECT inventory_item_id, organization_id,
       bom_enabled_flag, build_in_wip_flag, customer_order_enabled_flag,
    internal_order_enabled_flag,
       invoice_enabled_flag,mtl_transactions_enabled_flag,
    purchasing_enabled_flag,stock_enabled_flag
   FROM  mtl_system_items_b 
   WHERE  inventory_item_id = 101177 

   Here is the mapping of the Item defining vs the Item status attributes
    
     Inventory Item   (stockable, transactable, BOM Allowed)         
         Internal Ordered (Internal Orders Enabled)
  Purchased   (Purchasable)
         MRP Planning Method
         Costing Enabled 
         Engineering Item
         Customer Ordered  (Customer Orders Enabled)
         Support Service
  Invoiceable Item (Invoice Enabled)
  
 /* Before we go further, let us briefly dwell about the functional area
 and the default category sets in Inventory. In Inventory for every functional
 area, there is a default category set associated. We can see this from the
     setup => Items => Categories => Default Category Sets.
 Alternatively we can see that from the database table as well, as given below.
 The primary purpose of using the categories and category sets is reporting.
 We can generate reports based on them.*/
    
  SELECT ds.functional_area_id,
           ml.meaning functional_area_desc, ds.category_set_id,
            cst.category_set_name, cst.description category_set_description
   FROM mtl_default_category_sets ds,
           mfg_lookups ml,
           mtl_category_sets_tl cst
    WHERE  ml.lookup_type = 'MTL_FUNCTIONAL_AREAS'
      AND  ml.lookup_code = ds.functional_area_id
      AND  cst.category_set_id = ds.category_set_id
      AND  cst.LANGUAGE = USERENV ('LANG')

 /* Having defined the item defining attributes and the functional areas.
 Whenever an item defining attribute is set to yes for an item, then the default
 category set of the corresponding functional area is assigned to that item.

 Item Attribute Controls. You can choose to have centralized or decentralized
 control of item attributes. Defining attribute controls does not determine
 the value of an attribute ,only the level at which it is controlled.
 As mentioned before, there are 2 kinds of attribute controls, which are
  a) item attributes controlling at the master/org level and
 b) status attribute value control.
 Both these things we can do from the form
       setup => Items => Attribute Controls.
 */

 SELECT inventory_item_status_code,attribute_name, attribute_value
 FROM  mtl_status_attribute_values
 WHERE  inventory_item_status_code ='Active'

 /*From the below query we can see that if the status setting is 1 i.e
 corresponding to "Sets Value",then it means it is status controlled. and if
 the status setting is "Not Used", then that particular status attributes is
 not status controlled. The same thing shows up when we go to the form
            setup => Items => Status Codes.
  */
  SELECT user_attribute_name, user_attribute_name_gui,
   status_control_code, -- (1 for status setting "Sets Value", 3 for Status setting "Not Used")
  control_level, -- (1 for master,2 for org)
  attribute_name, 
  level_updateable_flag ,attribute_group_id
 FROM  mtl_item_attributes
 WHERE  user_attribute_name IN
   ('BOM Allowed','Build in WIP','Purchasable','Stockable','Invoice Enabled',
   'Customer Orders Enabled','Internal Orders Enabled','Transactable')

 /* Now let us see the form setup => Items => Status Codes, there we can group
 a item status to  these set of 8 status attributes and then we can find that. */

 SELECT ROWID, inventory_item_status_code,attribute_name, attribute_value
 FROM  mtl_status_attribute_values
 WHERE  inventory_item_status_code ='Active'
 
 /*PICKING RULES : Typically the inventory items are stored in different
 subinventories,will have different lot numbers and revisions.Which one needs
 to be picked will be determined by the picking rules.
   We can define picking rules which basically define the order in which
 revisions, lots , subinventories and locators are picked for sales orders.
 You can get the picking rules from the below query. When you define an
  item, you can choose a picking rule that you have defined. When Oracle
 Shipping Execution submits requests to Oracle Inventory, it uses the info in
 picking rule to generate the picklists for sales orders. 

 A picking rule can be specified from the order management tab in the Item definition form*/

 SELECT picking_rule_id, picking_rule_name, description,
  revision_rule ,
  lot_rule,
  serial_number_rule,
  subinventory_rule,locator_rule
 FROM  mtl_picking_rules
 
 /*As mentioned , there can be various orders that you can define, like revision order, lot order, subinventory
 order,locator order. Now in the case of
 revision order, you can choose to have the most recent revision or earliest revision effective date.
 lot order, pick the lowest lot number or earliest lot effective date
 subinventory order , pick by order defined by subinventory, or earliest subinventory receipt date.etc
 Subinventory receipt date means, what is the earlies receipt date in that subinventory.*/

 /*Item templates. Since we know that there are hundreds of attributes which an item can have,(distributed
 across various tabs in form), it can be tedious to enter all these attributes for each item. Hence we can
 define a template (for frequently defined items) and then while defining an item, we can choose this template
 from Tools => copy from , and then all these attribute values will be defaulted immediately.*/
 
  SELECT rule_id, rule_name,description
  FROM   mtl_atp_rules


  /* The stock locators are basically areas within the subinventory where the
   inventory items are stored. Hence each stock locator will correspond to a
   subinventory.You can set up an stock locator and assign it to the subinventory
 from setup => Items => Stock Locators.*/

 SELECT inventory_location_id, organization_id,  inventory_location_type,subinventory_code,segment1,status_id,
 LENGTH,width,height -- and other dimensional attributes.
 FROM mtl_item_locations
 WHERE subinventory_code LIKE 'MY%'

 /* To know whether a particular inventory item is lot controlled or serial controlled we can run the
 below query. Can a item be both lot and serial controlled ????? */

    SELECT lot_control_code,-- 1 for no control and 2 for full control.
    auto_lot_alpha_prefix,
    default_lot_status_id,
    fixed_lot_multiplier,
    start_auto_lot_number,
    std_lot_size
    --
    serial_number_control_code,
    serial_status_enabled,
    start_auto_serial_number
    FROM mtl_system_items_b
 WHERE segment1 ='LUCKYITEM'
 
/*
Available to Promise (ATP)
 
ATP computation options :
ATP computations use the consumption and accumulate available features.
Consumption resolves negative ATP after it is already determined that there is not enough
available inventory.
Accumulation uses the excessive inventory from a period to determine where the new demand can be
placed.
Accumulate Available :
This option determines how the
To implement ATP, you have to define ATP rules. ATP rules let you tailor the ATP calculation to suit your business needs.

Each ATP rule is a combination of
            ATP computation options
            Time fence options
            Supply and demand sources
*/


   SELECT  supply_type_code, supply_source_id,po_header_id, po_line_id, po_distribution_id,item_id,quantity,
      destination_type_code,to_organization_id
   FROM  mtl_supply
   --where item_id = 207984204


   (SELECT DISTINCT item_id FROM mtl_supply)
  
   SELECT inventory_item_id FROM mtl_system_items_b
   WHERE segment1='LUCKYITEM'
  
   SELECT COUNT(*) FROM mtl_demand


/* Just like GL,AR ,Inventory has its own periods as well & we can open period from
setup => costs => cost periods .And the data goes into the org_acct_periods.

Oracle Inventory --> Accounting Close Cycle --> Inventory Accounting Periods --> Change status

In inventory only one period at any time, while in GL or PO any periods can be open.

This is the most trickiest part. Actually in inventory if you need to open
any period, then the previous period needs to be already opened. That is
if the previous period is not open yet, just open and close it.

Also ensure that the purchasing periods are open, however in this case
more than one periods can be open simultaneously.
 
 Setup => Financials => Accounting =>  Control Purchasing Periods.  
 
If you do not have any item on hand, then you can do a subinventory transfer
of that item and then have some quantity available in the subinventory.
*/

/*
In the general planning tab for an item in inventory, you enter the type of
planner that you use, i.e Min-Max planning method, Reorder Point planning
method or no plan at all.

In the case of Min-Max planning method, you enter the Min and Max amounts
for that item. If a min is entered, you want atleast that amount of that
item on-hand always and if that amount is reached, Oracle inventory will
suggest for placing a new order.
If a max is entered, then you don't want more than the max amount of that item.

Reorder Point Planning : An inventory planning method that is used to determine
when and how much to order based on customer service level, safety stock,
carrying cost,  order setup cost, Lead time and average demand.

Minimum Order Quantity : this is the amount of the item that the system
places an order on, whenever it needs to reorder. Ex for discrete items,
when the net requirements fall short of the minimum order quantity, the planning algorithms suggest the minimum order quantity.

Maximum Order Quantity :
 Or optionally you can have an item to be MRP/MPS planned.

If an item is vendor managed, then you should enter the planner for that item.*/

-- hr_organization_units is a view based on hr_all_organization_units and
--hr_all_organization_units_tl.
    SELECT *
 FROM hr_organization_units
    WHERE organization_id = 1

   SELECT * FROM hr_all_organization_units_tl
  
   SELECT * FROM hr_all_organization_units
   WHERE organization_id =1

  SELECT * FROM mtl_parameters_view

--Move Order Issue and Mover Order Transfer : 

/*Miscellaneous Receipt :
 Transactions => Miscellaneous Transaction (type = Miscellaneous Receipt)
 Usually if we quickly want some amount of quantity for a particular item,
 then we can either do the PO,and receive against that PO. Or we can do a
 miscellaneous receipt for that particular item. Obviously when we do a miscellaneous
 receipt, we receive that particular item into a particular inventory
 organization and into a particular subinventory.
*/

-- Once we log into the Oracle Apps, the Operating unit is chosen by the

 profile value 'MO:Operating Unit'.


 SELECT * FROM mtl_customer_item_xrefs  --_v

 /* What are customer items?. Is it same as inventory items with customer orders enabled - NO */
  SELECT customer_item_id, customer_id, address_id
    ,item_definition_level
  FROM mtl_customer_items


  -- Item Categories Stuff :
  /**************************
  Usually we will have a lot of structures defined for this particular KFF "Item Categories".
 
  Here the data goes into a key columns of the
  underlying table (not descriptive columns like attribute etc). The category id
  is the primary key which is based on the unique values of the segment values.
  */

  SELECT category_id, structure_id ,attribute_category, attribute2,
     segment1, segment2, segment3
  FROM   mtl_categories_b

 /* When we define the category set,we use this particular KFF structure. That
  is we can define any number of category sets corresponding to different structures.
  Let us go thru the steps required to define a Item category KFF ,structure,
  codes and the associated stuff.

  1. First step, we have a KFF "Item Categories" and we can define a structure
  corresonding to this KFF,using the menu,,
    setup => KFF=> Segments

  2. The next step is to create the Item Categories or the combinations corresponding
  to the Item Category Segment that is being created above. This process is creating
  Category Codes. This is done using the menu,
       Setup => Items => Categories => Category Codes
   And then choose "New". Now we have to start creating the Category Codes,by
   choosing the structure in the Structure Name field. This is the same 
   structure that we have created in step 1 . Now once we come to Category
   field, we enter the values corresponding to all the segments for this particular
   structure. Basically here we are enterting the combination of values. If each
   segment has a value set attached to it in the segment definition, then we
   have to choose from the valueset, otherwise we can enter any values we want to.
   So like this, we define as many Item categories i.e combination of values as
   we want. So each such combination is a item category. A set of such
   combinations is called a category set.
  
  3. The next step is we come to the Category Sets form,
      Setup => Items => Categories => Category Sets
 In this step we create a Category Set. that is, we form a set of combinations
 that we have created in the above step.
 Hence in this from,we enter a Category Set name and description and in the
 Flex structure field, we enter the same structure that is created in the
 step 1. And in the below block, we enter all/some of the categories that are
 created in the above step 2. We also specify what is the default category
 for this item.
 
 Hence a very important point to note here is that,out of all the structures we
    choose the structure by category set. There is nothing like profile value which
   choose the particular structure or the particular category set. We can use
   multiple category sets at the same time for multiple inventory items and
   hence there is no option to set a specific category set.

    This concludes the Item Category Setup. Having created different categories
 and category sets, we can now assign Items to Item Categories.

  Essentially we assign items to category sets just for reporting and grouping purposes.
   Now we come to the item master,choose a particular item and from the menue
              Tools => Categories
 
  We can assign this item to a particular category set. What we need to understand is that
  when we assign item to a category set, we choose a specific value out of all the values
  in that particular category set.
  This tells us that this item belongs to that particular category.  */
 
 SELECT * FROM mtl_categories
    where creation_date >= trunc(sysdate)

   SELECT * FROM mtl_category_sets_b

What are the different types of Miscellaneous transactions.



interorg transfer.

what are inventory picking rules (Verisign does not use the inventory picking rules)




Usually since the valid GL combination codes are already created in GL, using the Account generator , it
is handy to go to GL and keep such combination,which can be used for entering the acct info in transactions.
011.2120.0000.140060.0000.000.000000 - Asset
011.9000.0000.250010.0000.020.000000 - Liability
011.9000.0000.360010.0000.000.000000 - Owners Equity

I think the account receipt/issue is basically a Miscellaneous receipt/issue, with the exception that
we specify a gl account at the time of receipt/issue.

It is important to note that for everything that we do in the Purchasing or OM, has an impact in Inventory in the
form of transactions. That is if we do a sales order pick release, then immediately a inventory transaction
happens with the corresonding trasacation type (Sales Order Pick). And also the onhand quantities etc will get 
reflected accordingly.

Now we want to see if we do an internal req, does it do a corresponding internal req trx type in Inventory and for
that, create an internal req, and see whether it shows in the material transactions
 as po req relation transaction type. ???????????????
 req # 119035042

Make sure that the item that you are ordering is Internal Order enabled.
For any internal orders, the price is automatically defaulted to 0
Also make sure the bill to location is specified for the internal customer

WHY the delivery did not get created and i had to create a auto create delivery.  ????????????

*/

--We can try to see what kind of transactions did what amounts from,  
    SELECT b.transaction_type_name,COUNT(*)
    FROM mtl_material_transactions a , mtl_transaction_types b
    WHERE a.transaction_type_id = b.transaction_type_id --and transaction_type_id = 64
    GROUP BY b.transaction_type_name
   
    SELECT * FROM mtl_material_transactions WHERE transaction_type_id = 64


/* For each type of inventory transaction we will have the accounting information.
however for some of items like expense item, we may not have the accounting records
in the mtl_transaction_accounts.

Why is that we are not seeing the mtl_transaction accounts records for all the
transactions even though it is an inventory item, not expense item. ????????

Basically, the inventory classifies an item as an asset type item, based on the
subinventory. If we place a sales order on an asset item which is stocked in
an asset subinventory.  
Usually pick release process can use a pick release rule which tells it to go
to which subinventory andget it from. However even with out the rule, we can
choose at the time of pick release ,which subinventoryshould be chosen.
Interestingly, when we place an order, we can tell which inventory org in the
form of the warehouse. we can also see the subinventory field(but not able to
select value in it). If the pick release process picks it from an asset subinventory,
then it goes ahead and creates the transaction accounts in the table,
*/
 
    SELECT * FROM mtl_transaction_accounts.

/*And if the item is picked from the expense subinventory , then it does not find
an entry in the transaction accounts.

In the case where an item is received both in expense and asset subinventory and
there is no picking rule, when I try to pick release such kind of item, I
encountered an error, this is probably because the system is confused to pick that
item from which subinventory. Oracle is not designed to handle this kind of cases.

Even though you define an asset item, you have to receive that item (using PO, Misc trx) into an asset
subinventory, otherwise the transaction accounts will not be generated. We can try to do a subinventory
transfer of an asset item from asset subinventory to an expense subinventory. What this effectively
means that we are moving a specific amount of quantity of that asset item to the expense subinventory
as it is of no use/damaged. So this effectively means that we do not have any items in our asset subinventory.


what happens when we post it to GL. ???????
*/ 


1). What are shipping Networks ?
Shipping networks determine between which two organizations you can do an inventory
transfer. That is ,say if you want to do an inventory transfer between two inventory
organizations M1 and M2, then you must define a shipping network between these two
inventory organizations and specify whether you want this transfer to be
  -- Direct Or
  -- Intransit

2). Explain the Inter-org transfer?

Inter-org transfer is the transfer of items between two different inventory organizations.
Remember this is not a transfer between two subinventories of the same inventory
organization, but it is between two inventory organizations. You can create an
inter-org transfer using the menu
    Transactions => Inter-org Transfer

The from Org is the current inventory Organization.
The LOV for the To org is determined by the shipping networks that you define between
 the from Org to different organization. The shipping networks are defined here
   Setup  => Organization  => Shipping Networks.

You will be able to do an inter-org transfer to a particular destination organization
only if the internal order enabled flag is not checked in the shipping networks.
 
   
3). what is the difference between transactable and oe transactable??
transactable means u can perform transactions on that item. i.e you can enter orders and book them.
oe transactable means that trasactions can be interfaced to oracle inventory, that means, some of the transactions like pick release (which involve inventory transactions) cannot be performed, if you don't set this flag. mostly if the shippable flag is set, oe transactable is set, but if shippable is not set, you could still set this flag, for forecasting purposes.

4). How do you create a Kit in Inventory ?

Create an item in Inventory,set it as inventory item, standard BOM and set pick components to Yes. This constitutes a kit, say xyz.
So a kit is a standard BOM with only mandatory components
 So basically all you do in a kit is to select items in the kit like (one cd, one hardware security token, one user manual). So the kit does not have a work in process (wip) involved,only picking. Another important point is that a kit by itself will not onhand in inventory. Which means you will have on hand for cd, token and manual but no onhand for the kit xyz.
OR
More easily ,just create an item and set the item type template as KIT in the main tab,and in the template all the appropriate flags will have been set.
One thing, interested I noticed is that when you create a kit item, the shippable flag is not set,although the kit itself is shipped right? May be what that means is that there are no delivery lines created for the kit itself,as opposed to the component items for which the delivery lines are created.
We're only shipping the components and the Kit item is a logical unit. however in the case of ATO, we make ATO shippable since we ship the entire assembly and not individual components there.
PTO configuration has the extra step of clicking on the configurator button to choose the items.

5). What is the difference between Asset type and Expense Types ??

Asset Type and Expense Type are opposite:  (Expense account is also called as Charge Account)
Earlier we have mentioned that, move orders are the orders which are used for moving the items between the
subinventories. However if we need to move the items across inventory organizations ,then we can use the
Internal Requisition process. In the Internal Requisition process, we have a clear way of mentioning the destination
and the source inventory organizations. At the lowest level, each item is stored at the subinventory level.Each
subinventory is either of asset type or expense type.
     Hence there is no concept of inter-org transfer if we have only one inventory organization.
   
An item is created as an ASSET item by setting the flag in the tab
     Costing => Inventory Asset Value  (and also costing enabling)
 and you also mention the COGS account. An Asset item's cost is realized at the time of selling that item. All
 stockable items are asset items.(Stockable item means no expense, it is an asset)

An item is created as an EXPENSE by NOT setting the flag in the tab
     Costing => Inventory Asset Value
 However in this case, we have to mention what is the Expense account. An expense item cost is realized
 at the time of purchasing that item. Expense item means small items like stationery, pencils etc.
   
6). What is the difference between subinventory transfer, move order
 (transaction mover order) ??
   Both the Move order as well as the subinventory transfer do the same result,
   i.e they move the item from one subinventory to another. However with the
   Move order, we have more functionality available.
 Usually the system creates the Move order. Generally if we want to do a
 subinventory transfer we would go ahead and do the transfer,however some of
 the other modules like Manufacturing can potentially do the transfers. In that
 case, they would create a Move order. However someone should open that Move order
 inspect it and approve that Move order,so that either subinventory transfer or
 account issue will happen. So the move order is a two step process,where in we
 first create,approve,allocate the move order and then transact it.
 Look at OM stuff for more information.

7). How to setup a Master Organization ??
 First we create an organization using the hr responsibility. once an
organization is created,then we can use the menu
  setup => organizations => parameters
 to set up that organization as a master organization.
 In here, we can also set up the child organizations
 */
 So to setup each child organization ,go to the change organization menu option,choose
 your inventory organization and after that,come to organization parameters and choose
 your master organization.


8). What is the difference between Item Cross Reference and Customer Item Cross Reference?
  Customer Item Cross Reference is a particular instance of Cross references.
  Item Cross Reference is a generic term which can be used to define reference
  with Customer's Items and Supplier's Items
 
For Item cross reference is used to track the old items or the supplier
items. That is ,if the same item is referred by a different name by the
supplier then, the item cross reference will map these two names.
 
  For Customer item cross reference,is probably used ,say for the sales guys to place the order on items, by
  which they remember. Thatisif a particular item 'Myitem" is referred to as 'abcd1' using the
  customer item cross reference, then we can go to the sales order from and in the line item
  we can refer to this 'abcd1' to place an order on that item.
  But usually the customer item cross reference, is when you are loading the data from EDI 40 etc. That is
  a customer sends an xml kind of file for placing a sales order and that file consists of all the customer
  item references and not oracle item references.
  */

9). What is the difference between Operating Unit and Inventory Organization ?
In some of the important modules like OM, Purchasing etc tables we find that
there is and org_id. this is actually an operating unit id (and not to be
confused with the inventory org id). And when we log into the applications,
the operating unit is already set from the profile parameter 'MO:Operating Unit'.
However in the inventory module, the org id that we are always referring to
is the inventory org id (and not the operating unit id).

When we enter the Inventory module, we are always prompted to choose a
particular inventory org id.

Usually when we create an item, we always assign it to an org id, i.e what
this means is that we can transact this item with in that particular
inventory org id. That is particularly we can purchase, sell with in that
inventory org id.

When we create an org it is always associated with a location and hence it
goes into the hr_organizations and hr_locations. It is important to know
that both the employee locations and the inventory locations go into
the same table hr_locations.*/
   
10).  What are Organization attributes /
Organization Attributes : Usually we create an item in the Master org, set
all its attributes and then assign that item to a different inventory
organization. However it is important to note that some attributes may not
be set into the new organization,so from the organization manager.

We can click on the org attributes and set the attributes of the item accordingly.

11). What are item attributes?
   There are two kinds of item attributes,
      --- Item Defining attributes
   --- Item Status attributes
  The following is the mapping between item defining and status attributes
     Inventory Item   (stockable, transactable, BOM Allowed)         
         Internal Ordered (Internal Orders Enabled)
  Purchased   (Purchasable)
         MRP Planning Method
         Costing Enabled 
         Engineering Item
         Customer Ordered  (Customer Orders Enabled)
         Support Service
  Invoiceable Item (Invoice Enabled)

 Build in WIP and Recipe enabled are status attributes for which there is no
 corresponding item defnining attirubtre.

Source: http://prasanthapps.blogspot.in/2011/04/inventory-transactionsuseful.html
Related Posts Plugin for WordPress, Blogger...