/*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.
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.
No comments:
Post a Comment