You are on page 1of 21

Understanding Physical Inventory

An Oracle White Paper May2003

Understanding Physical Inventory


INTRODUCTION

Oracle Inventory provides several tools to aid users in controlling and improving the accuracy of inventory records. a. c. ABC Analysis Physical Inventory b. Cycle Counting This white paper will give an overview of Physical Inventory, various steps involved, associated tables, forms, packages, concurrent programs and reports.

EXECUTIVE OVERVIEW

Oracle Inventory provides a fully automated physical inventory feature. Physical inventory is a periodic reconciliation of system on-hand balances with physical counts in inventory. Physical inventory can be performed, whenever there is a need to verify the accuracy of system on-hand quantities. This can be done for entire organization or for particular subinventories within an organization. Accurate system on-hand quantities are essential for managing supply & demand, maintaining high service levels, effective planning, minimizing inventory investment and for audit purpose. Physical inventory and cycle counting can both be a part of annual program to manage and improve inventory record accuracy. Cycle counting would be a daily, weekly or monthly activity. Physical inventories might be performed at periodic intervals - monthly, quarterly, annually and so on. One strategy is to only perform physical inventories as required to satisfy auditors of the organization.
INTERFACES

Physical inventory integrates with Oracle Cost Management and Oracle General Ledger. If there is a quantity discrepancy for items, Inventory derives the item costs from Cost management and posts the inventory value changes to General Ledger.

Oracle Cost Management

Physical Inventory

Oracle General Ledger

Item Costs

Quantity Changes

Inventory Value Changes

STEPS INVOLVED IN PHYSICAL INVENTORY

Define Physical Inventory

Take a Snapshot of system Onhand quantities

Generate Physical Inventory Tags

Enter Counts

Approve or Reject Physical Inventory Adjustments

Post Adjustments

Purge Physical Inventory information

1. DEFINE PHYSICAL INVENTORY

Unlimited number of physical inventories can be defined and maintained to count selected portions of inventory or total inventory. A physical inventory is identified by a unique name. To define physical inventory navigation is Inventory -> Counting -> Physical Inventory -> Define Physical Inventory

a.

Enter a unique physical inventory name in the name field

b. Select approval requirements for the adjustment. Options available are Always: Requires approval for all physical inventory adjustments. Adjustments program cannot be run until all the adjustments are approved. If out of tolerance: Quantity and / or Value adjustment tolerances can be entered. Adjustments exceeding tolerances must be approved before running the adjustment program. Adjustment value = (Actual count - System count) x Item cost Never: Allow any adjustment to post without approval.

Choose when to Approve adjustments

Enter Tolerances

Specify Scope

Enable or disable Dynamic Tag entry

c.

Enter positive and negative approval tolerances

d. Select the scope of physical inventory Determines whether the physical inventory is for all subinventories of the organization or for one or more specific subinventories. Enter only quantitytracked subinventories e. Indicate whether to allow dynamic entry of tags Determines whether manually created tags can be entered. If the option is not to allow dynamic tag entry all tags must generated before the use.

Technical Notes: When physical Inventory definition is saved the following tablecolumn values are inserted / updated Tables MTL_PHYSICAL_INVENTORIES Columns Updated / Inserted PHYSICAL_INVENTORY_ID ORGANIZATION_ID ALL_SUBINVENTORIES_FLAG Permitted values are 1 - Yes (All subinventories) 2 - No (Specific subinventories) APPROVAL_REQUIRED Permitted values are 1 - Required for all adjustments 2 - Not Required for adjustments 3 - Required for adjustments out of tolerance APPROVAL_TOLERANCE_POS APPROVAL_TOLERANCE_NEG (Updated if approval required is 3-If Out of tolerance and choose +ve / -ve tolerance for quantity) COST_VARIANCE_POS COST_VARIANCE_NEG (Updated if approval required is 3-If Out of tolerance and choose +ve / -ve tolerance for cost) DYNAMIC_TAG_ENTRY_FLAG Permitted values are 1 - Yes (Allowed) 2 - No (Not Allowed) MTL_PHYSICAL_SUBINVENTORIES While defining the physical inventory if user chooses ALL_SUBINVENTORIES_FLAG as 1 Yes(All subinventories) no data is populated.

While defining the physical inventory if user chooses ALL_SUBINVENTORIES_FLAG as 2-No (Specific subinventories) the fields updated are PHYSICAL_INVENTORY_ID ORGANIZATION_ID SUBINVENTORY MTL_PHYSICAL_INVENTORY_TAGS MTL_PHYSICAL_ADJUSTMENTS Form Nil Nil Name: Define Physical Inventory Short Name: INVADPPI

2. SNAPSHOT OF SYSTEM ONHAND QUANTITIES

To run the snapshot navigation is Inventory -> Counting -> Physical Inventory -> Define Physical Inventory -> Choose the Snapshot button Snapshot must be completed before generating the tags. After taking the snapshot, system will no longer allow to update header information of the physical inventory. The snapshot saves all item onhand quantities and costs and uses this information as the basis for all physical inventory adjustments rather than the current on-hand quantity. System allows to resume transaction activities even before running the adjustments program for the physical inventory .Therefore need to procedurally coordinate snapshot of physical inventory with actual counting and ensure that no transaction activity occurs in a particular location until adjustments are launched and posted. Once snapshot concurrent process is finished, the snapshot complete box is checked, the snapshot date is updated and the Tags button is enabled in the define physical inventory window.

Technical Notes: When snapshot is finished the following tablecolumn values are inserted / updated Tables MTL_PHYSICAL_INVENTORIES ( MPI ) MTL_PHYSICAL_SUBINVENTORIES MTL_PHYSICAL_INVENTORY_TAGS MTL_PHYSICAL_ADJUSTMENTS ( MPA ) Columns Updated / Inserted FREEZE_DATE NUMBER_OF_SKUS : Number of SKUs are calculated and updated . Nil Nil ADJUSTMENT_ID : Number of rows equal to NUMBER_OF_SKUS of MPI are inserted PHYSICAL_INVENTORY_ID ORGANIZATION_ID SUBINVENTORY_NAME INVENTORY_ITEM_ID SYSTEM_QUANTITY ADJUSTMENT_QUANTITY will be set as ve of SYSTEM_QUANTITY ACTUAL_COST REVISION LOCATOR_ID LOT_NUMBER LOT_EXPIRATION_DATE SERIAL_NUMBER

The concurrent program INCAPF - Freeze Physical Inventory executes the following Updates the Freeze date in MTL_PHYSICAL_INVENTORIES table. Calculate and insert number of SKUs in physical inventory into MTL_PHYSICAL_INVENTORIES table. Adjustment records will be inserted into MTL_PHYSICAL_ADJUSTMENTS table. Cost of the items will be calculated and updated in MTL_PHYSICAL_ADJUSTMENTS table The On-hand quantity of the items will be calculated from table MTL_ONHAND_QUANTITIES and updates in MTL_PHYSICAL_ADJUSTMENTS.

3. GENERATE PHYSICAL INVENTORY TAGS

Physical inventory tags are used to record the count of inventory items. Tags are referred by its alphanumeric identification code. Oracle Inventory can automatically generate tag numbers that can be used to enter inventory counts. Tags can be generated only after snapshot is completed. The system also supports using numbers generated outside the Oracle Inventory. There should be only one item on a tag but multiple tags can refer to the same item . Physical Inventory can be performed for items under serial control. If default tags are generated, system generates one tag per item per serial number. Dynamic Tag Entry : Determines whether manually created tags can be entered or not . If the option is not to allow dynamic tag entry, all tags must be generated before the use. Dynamic Tag Entry is allowed when tag numbers are generated outside the system. For example when using third-party pre-numbered tags.

Option 1: Dynamic Tag Entry

No need to run the Tag Generation program Use own tag numbers while entering the counts
Default Tags : Contain information on items in the physical inventory definition. Generates a tag for each SKU i.e. unique combination of item, subinventory, locator, revision, lot number and serial number that exists in the subinventories of physical inventory.

Option 2: Default Tags

Specify the starting tag number and digit increments

Run the Tag Generation program

Use system generated tag numbers to enter counts

Blank Tags: Do not contain any information about the items in physical inventory definition. Blank tags can be generated to enter counts for those items whose locations are not currently recorded in the system.

Option 3: Blank Tags

Specify the starting tag number and digit increments

Specify quantity of tags or the ending tag number

Run the Tag Generation program

Use system generated tag numbers to enter counts

To generate the tags navigation is Inventory -> Counting -> Physical Inventory -> Tags Generation -> Choose Generate button a. Enter the name of the physical inventory.

b. Select the type of tag to create.

c.

Indicate whether it is required to show serial numbers on the physical inventory tags. If the option is not to show serial numbers on the tags, system will generate a tag for each item but user has to match the serial numbers to the items manually. It is allowed to enter a value in this field only if tag type selected is default.

d. Enter the starting tag number for example - 0001 and say user wants the increment to be 5, then for the increment enter 1115. The increment field should have the number of digits the starting tag has and it should have 1's preceding what the actual increment value would be. Tag numbers may be alphanumeric, but increment will be done only for the numeric portion. e. Choose the Generate button to create the tag numbers and information. Note that this process does not physically print the tags. To print the tags, user need to run the Physical Inventory Tags report using the navigation Inventory -> Reports -> ABC and Counting -> Run Physical Inventory Tags report

Technical Notes: When tags are generated the following tablecolumn values are inserted / updated Tables MTL_PHYSICAL_INVENTORIES Columns Updated / Inserted

the

Based on the increment that is entered while generating the tags the following columns are updated NEXT_TAG_NUMBER TAG_NUMBER_INCREMENTS

MTL_PHYSICAL_SUBINVENTORIES MTL_PHYSICAL_INVENTORY_TAGS

Nil PHYSICAL_INVENTORY_ID ORGANIZATION_ID TAG_ID VOID_FLAG is set to 2. Possible values are 1-Void, 2- Active TAG_NUMBER ADJUSTMENT_ID SUBINVENTORY REVISION LOCATOR_ID LOT_NUMBER LOT_EXPIRATION_DATE SERIAL_NUMBER

MTL_PHYSICAL_ADJUSTMENTS Form

Nil Name: Generate Physical Inventory tags Short Name: INVARPGT

Concurrent program INCAPT - Generate physical Inventory Tags executes the following Gets ORGANIZATION_ID for particular PHYSICAL_INVENTORY_ID from MTL_PHYSICAL_INVENTORIES table NEXT_TAG_NUMBER and TAG_NUMBER_INCREMENTS will be calculated and updated in MTL_PHYSICAL_INVENTORIES Inserts the records to MTL_PHYSICAL_INVENTORIES using the sequence MTL_PHYSICAL_INVENTORY_TAGS_S Generates tag numbers based on the starting tag number & the increment and insert the records in to table MTL_PHYSICAL_INVENTORY_TAGS table Generates pre printed tags by fetching rows from MTL_PHYSICAL_ADJUSTMENTS table for a PHYSICAL_INVENTORY_ID and insert tag numbers in MTL_PHYSICAL_INVENTORY_TAGS table

4. ENTER COUNTS

Generated tags are used to record the physical counts. After recording the physical counts user must enter the quantity for each tag. To enter the Tag counts the navigation is Inventory -> counts -> Physical Inventory -> Tag Counts. Navigate to the Physical Inventory Tag Counts window. Enter name of the employee that performed the physical inventory in the Default Counter field. This is used as a default for the Counted by field of each tag. If the default tags are used, the system will display the tags with relevant item information. User need to enter only the quantity counted for each tag. User can also query a subset of tags by any combination of tag number, item, revision, subinventory, locator, lot and serial number. If blank tags are used in the physical inventory, user can query up the tags by tag number. The system displays the tags but no item information. Need to enter the count quantity as well as the item information i.e. item name, subinventory, locator, revision, lot and serial numbers. If dynamic tags are allowed in physical inventory definition user can enter tag numbers generated outside the system. User needs to enter the count quantity as well as the item information.

Void Tags: If any of the tags are not used, they have to be voided, as this is necessary for auditing purpose. A voided tag is not reported as a missing in the Physical inventory Missing Tag Listing report. Tags can be voided if they are lost, damaged or discarded before the approval or before the adjustment process. If a default tag is voided Oracle Inventory adjusts the quantity in that location to zero.

Technical Notes: After entering the counts and save the following tablecolumn values are inserted / updated Tables MTL_PHYSICAL_INVENTORIES MTL_PHYSICAL_SUBINVENTORIES MTL_PHYSICAL_INVENTORY_TAGS Nil Nil TAG_QUANTITY is set as equal to COUNT_QUANTITY entered If Tag is voided TAG_QUANTITY is updated as Null and VOID_FLAG is set to 1. TAG_UOM COUNTED_BY_EMPLOYEE_ID Columns Updated / Inserted

COST_GROUP_ID MTL_PHYSICAL_ADJUSTMENTS COUNT_QUANTITY ADJUSTMENT_QUANTITY set as equal to [(COUNT_QUANTITY) (SYSTEM_QUANTITY)] Form Name: Physical Inventory Tag Counts Short Name: INVADPTE

5. APPROVING PHYSICAL INVENTORY ADJUSTMENTS

Oracle Inventory supports two types of physical inventory approval tolerances i.e. quantity tolerances and cost tolerances. For each type, it is allowed to specify a positive and a negative limit. The adjustments that can be viewed from this window are determined by the approval option selected while defining the physical inventory. If a particular adjustment is approved, physical Inventory Adjustments program adjusts inventory balance by that quantity. If an adjustment is rejected, Oracle Inventory does not change the system onhand quantity. Navigation to approve physical Inventory adjustments is Inventory -> Counting -> Physical Inventory -> Approve Adjustments a. Select the physical inventory and choose approve.

b. Enter the name of the employee approving the adjustments. c. Select an adjustment to approve or reject and check the Approve/Reject option.

User must either approve or reject all adjustments of the physical inventory before running adjustments program. Technical Notes: When physical Inventory records are approved the following tablecolumn values are inserted / updated

Tables MTL_PHYSICAL_INVENTORIES MTL_PHYSICAL_SUBINVENTORIES MTL_PHYSICAL_INVENTORY_TAGS MTL_PHYSICAL_ADJUSTMENTS

Columns Updated / Inserted Nil Nil Nil APPROVAL_STATUS set to 1 if approved 2 if rejected

Permitted values are 1-Approved 2-Rejected 3-Posted APPROVED_BY_EMPLOYEE_ID Form Name: Approve Physical Inventory Adjustments Short Name: INADPAP

6. POST ADJUSTMENTS

After entering all the tag counts and approve the adjustments that need approval, user can submit the process that posts the physical inventory adjustments. This will automatically creates a material transaction, adjusting the item quantity and debiting/crediting the adjustment account specified for the physical inventory. If the count of an item matches with the snapshot system onhand quantity, there will be no adjustment transaction posted. Once the adjustment program is completed it does not allow new tag generation and no longer will be able to make changes to the physical inventory. Oracle Inventory will not post adjustments, if any adjustment is pending for approval. User must approve or reject all the adjustments before running the adjustment program. Adjustments can be previewed before actually posting them by running the Physical inventory adjustments report. If the approval option for a particular physical inventory is Never, Oracle Inventory does not at any time prevent from submitting the adjustment process. For any tag that has no count entered, it assumes a count of zero and performs adjustment transactions accordingly. To run the adjustment program a. c. Navigate to the Physical Inventories Summary window. Choose Launch adjustments from the Tools menu. The Launch Adjustments window appears. b. Select the physical inventory.

d. Enter the Adjustment Account number against which adjustments should be charged. e. Enter the adjustment date.

f. Choose the Launch Adjustments button to submit the concurrent request.

Technical Notes: When post adjustments program is run the following table-column values are inserted / updated Tables MTL_PHYSICAL_INVENTORIES MTL_PHYSICAL_SUBINVENTORIES MTL_PHYSICAL_INVENTORY_TAGS Columns Updated / Inserted LAST_ADJUSTMENT_DATE TOTAL_ADJUSTMENT_VALUE Nil Nil GL_ADJUST_ACCOUNT APPROVAL_STATUS is set to 3 - Posted Records will be inserted for the difference of quantity i.e. [(COUNT_QUANTITY) (SYSTEM_QUANTITY)] DISTRIBUTION_ACCOUNT_ID of MMT is set to GL_ADJUST_ACCOUNT of MPA PHYSICAL_ADJUSTMENT_ID of MMT is set to ADJUSTMENT_ID of MPA. MMTT is MTL_MATERIAL_TRANSACTIONS_TEMP table MMT is MTL_MATERIAL_TRANSACTIONS table The concurrent program INCAPA- Perform Physical Inventory Adjustments is responsible for posting the adjustments and executes the following Checks for adjustment records, which are pending approval/rejection .If there are any pending, then no adjustments will be posted. Gets the approved records from MTL_PHYSICAL_ADJUSTMENTS for which adjustment quantity is not equal to zero. Gets description, tolerance from MTL_PHYSICAL_ADJUSTMENTS. Gets period close id for adjustment date and check whether it is in open period.

MTL_PHYSICAL_ADJUSTMENTS (MPA) MMTT / MMT

Gets transaction_id from sequence. Takes 100 transactions and then

commit. The adjustment transaction records are inserted into MTL_MATERIAL_TRANSACTIONS_TEMP If the item is lot, serial controlled the records are also inserted into MTL_TRANSACTION_LOT_NUMBERS MTL_SERIAL_NUMBERS_TEMP and respectively Updates the table MTL_PHYSICAL_ADJUSTMENTS with approval status Updates the table MTL_PHYSICAL_INVENTORIES with adjustment date and value.

7. PURGE PHYSICAL INVENTORY INFORMATION

Purging physical inventory will delete definition from the database. Purge does not affect any adjustments or adjustment transactions made using the physical Inventory. Options to choose while purging are Tags only or All. Tags Only: Purges all the tags associated with a physical inventory definition. If irreversible mistakes are made in the count-entry phase, user can start over without refreezing the inventory. All: Purges the physical inventory definition, frozen quantities, tags and count quantities.

Identify the Physical Inventory to be purged

Choose Purge option: Tags only or All

To run the purge program a. c. Navigate to the Physical Inventories Summary window. Choose Perform purge from the Tools menu. b. Select the physical inventory

d. Choose purge option Tags only or All

Technical Notes: When Purge program is run using Tags only option the following tablecolumn values are inserted / updated / deleted Tables MTL_PHYSICAL_INVENTORIES Columns Updated/Inserted/Deleted Resets the value of the fields NEXT_TAG_NUMBER and TAG_NUMBER_INCREMENTS to Null Nil All records of physical Inventory will be deleted COUNT_QUANTITY is set to Null ADJUSTMENT_QUANTITY is set as -Ve of (SYSTEM_QUANTITY) When Purge program is run using All option the following tablecolumn values are inserted / updated / deleted Tables MTL_PHYSICAL_INVENTORIES Columns Updated/ Inserted / Deleted Purge program checks for adjustment transaction rows of that physical inventory in MTL_MATERIAL_TRANSACTIONS table with TRANSACTION_ACTION_ID=8 . If no rows found, deletes the header details of physical inventory. To reuse the physical Inventory name the adjustment transaction rows should be purged from table MTL_MATERIAL_TRANSACTIONS and run the physical Inventory purge All MTL_PHYSICAL_SUBINVENTORIES MTL_PHYSICAL_INVENTORY_TAGS MTL_PHYSICAL_ADJUSTMENTS All records of physical Inventory will be deleted All records of physical Inventory will be deleted All records of physical Inventory will be deleted

MTL_PHYSICAL_SUBINVENTORIES MTL_PHYSICAL_INVENTORY_TAGS MTL_PHYSICAL_ADJUSTMENTS

The concurrent program INCAPP-Purge Physical Inventory Information executes the following Gets the valid organization ID. Checks for adjustment record approval status 3 - Posted for purging the records If the purge type is All the records from the tables will purged in the following order o o o o MTL_PHYSICAL_ADJUSTMENTS MTL_PHYSCIAL_SUBINVENTORIES MTL_PHYSICAL_INVENTORY_TAGS MTL_PHYSICAL_INVENTORIES records will not be deleted if adjustment transaction rows of that physical inventory are found in MTL_MATERIAL_TRANSACTIONS table. Records will be purged from MTL_PHYSICAL_INVENTORY_TAGS table Updates MTL_PHYSICAL_ADJUSTMENTS with count and adjustment quantities Resets tag information in MTL_PHYSICAL_INVENOTRIES table

If the purge type is Tag Only o o o

PACKAGES

a. INV_PHY_INV_LOVS (INVPINLS.pls / INVPINLB.pls) This will check for valid physical Inventories. Returns the count of physical tag records for a given serial number inputted. This will validate whether inputted serial is within the scope of the physical inventory i.e. exists in a subinventory which physical inventory covers. This package also includes API's to process a tag entry in a physical count. b. INV_UI_ITEM_SUB_LOC_LOVS (INVITPSS.pls / INVITPSB.pls) This will check for valid subinventories and locators associated with physical Inventory. c. INVADPT1 (INVADPTS.pls / INVADPTB.pls) This server side package used by the form INVADPTE to update the table MTL_PHYSICAL_ADJUSTMENTS d. INV_CG_UPGRADE (INVCGUGB.pls / INVCGUGS.pls) Records that do not have a default cost group will be identified and assigned with cost group.

e. INV_UI_ITEM_LOVS (INVITMLS.pls / INVITMLB.pls) Returns valid items that are associated with a given physical inventory. Returns LOV rows for a given organization, item and user input text. Returns LOV rows for a given organization, item and user inputted text for valid uom's. f. INV_INV_LOVS (INVINVLS.pls / INVINVLB.pls) Returns a valid cost group associated with the given parameters. Returns lot numbers for a given organization and inventory item within a particular physical inventory g. INV_UI_ITEM_ATT_LOVS (INVITATS.pls/ INVITATB.pls) Return valid serial numbers for physical inventory when performing serial triggered tag counts.

REPORTS

The following reports will help during the process of performing physical inventory. Run these reports using the navigation Inventory -> Reports -> ABC and Counting -> Choose to run one of the following reports.

Report Name: Physical Inventory Tags report Short Name: INVARPTP Use Physical Inventory Tags report to print the tags. This report prints all the tags or range of tags for a single subinventory/all subinventories for a specified physical inventory. Physical inventory tags represent actual hard copy of tags that companies use to count inventory items. A tag contains the count of a given item.

Report Name: Physical Inventory Tag Listing report Short Name: INVARPTG This report lists all the default and blank tags that are generated and the entire dynamic tags that are entered. Use the Physical Inventory Tag Listing to review the tags created by the Generate Physical Inventory Tags process.

Report Name: Physical Inventory Counts report Short Name: INVARPSL Shows information on the tags including the item, item controls, count location, count quantity and count value.

Report Name: Physical Inventory Missing Tag Listing report Short Name: INVARPMT This report lists the tags that are missing from a userspecified range of tag numbers. If the counts are not entered for the tag, it is considered as missing tag. Void tags are not considered to be missing. Use this report before initiating physical adjustments to verify all tags generated by the system.

Report Name: Physical Inventory Adjustments report Short Name: INVARPAR This report shows all adjustments against each SKU of physical inventory. Run this report before processing the adjustments to get a preview of adjustment quantities and values. This report is also automatically generated after the successful completion of the adjustment program as a record of what was actually adjusted.

Report Name: Physical Inventory Accuracy Analysis report Short Name: INVARPIA Review the output of this report at various stages of physical Inventory i.e. snapshot, entering tag counts..etc. This report can be used as a historical accuracy analysis tool.

Report Name: Physical Inventory Trend and Summary analysis report Short Name: INVARPTS While running the report choose to run either Summary Report or Trend Report a) Summary report: Provides a summary of physical inventory adjustments by subinventory. The output shows system onhand value, actual count value, resulting adjustment value in functional currency as well as the number of tags and adjustments performed for each subinventory. b) Trend report: This report compares past physical inventories to gauge the accuracy level improvement over time. It provides a summary of physical inventory adjustment values by date and subinventory as well as number of tags and adjustments each subinventory required.

CONCLUSION

Using physical Inventory feature requires an understanding of the customer business process. Physical Inventory has to define as per the company cost and quantity discrepancy approval policy.

Understanding Physical Inventory May 2003 Author: Cherukuri Srinivasa Rao Copyright Oracle Corporation 2002 All Rights Reserved Printed in the U.S.A. This document is provided for informational purposes only and the information herein is subject to change without notice. Please report any errors herein to Oracle Corporation. Oracle Corporation does not provide any warranties covering and specifically disclaims any liability in connection with this document. Oracle is a registered trademark and Enabling the Information Age. Oracle Applications are trademarks of Oracle Corporation.

Oracle Corporation World Headquarters 500 Oracle Parkway Redwood Shores, CA 94065 U.S.A. Worldwide Inquiries: 415.506.7000 Fax 415.506.7200 Copyright Oracle Corporation 2002 All Rights Reserved

You might also like