When an inventory valuation is undertaken using tdinv6230m000, the way in which that valuation is undertaken depends on the valuation date:
- when this date is the actual system date ("today"), the stock value is taken directly from tdinv001.
*- when this date is a date from the past, the stock value for that date is calculated departing from the "historic inventory balance" and then by adding and subtracting all the inventory mutations stored in tdinv700 up (forward in time) until the date in the past is reached for which the stock valuation is made.
[These two ways explain why - even without any stock mutations - the stock valuation for today may differ from the stock valuation for some day in the past. The records from tdinv700 must have been lost by some event].
SOLUTION Comprises of four main steps:
1. Make sure that the system shows inventory values consistently:
Run the diagnostic program tdinv0252m000 that produces a report (no changes in the database will be made). The stock values from the tables, itm001 and inv001 have to be the same. If Location Control or Lot Control is used then ilc101 and ltc001 also have to be the same. If there are inconsistencies then these have to be corrected first. How this is done depends on the differences found for each item. After this correction the system data is internally consistent.
2. Make sure that the (consistent) system inventory reflects reality in the warehouse:
Perform a Warehouse Cycle Counting, in order to determine the real stock physically present. After completion of the Cycle Counting procedure the system will have the correct inventory numbers.
In a specific situation you can probably think of a more efficient way to trace and correct the possible discrepancies between the system inventory values and the real inventory values. You will certainly be able to think of a more efficient way if you have some idea about the reason for the inventory differences. These corrections can then be input via session tdinv1101m000 or tdilc1120m000 (in case of ILC). After this step the system data will reflect reality again.
3. Run correction program tdinv0253m000 (It should be started from the command line - after 'P'; changes in the database are made or not made depending on the choice you make in the menu that appears); WHILE RUNNING, NO INVENTORY MUTATIONS MUST BE MADE BY A USER.
*This program departs from the actual stock on hand (from tdinv001) and calculates back in time adding and subtracting all inventory changes (taken from table tdinv700) until it has receded to the earliest mutation present. That oldest date (per warehouse and per item) will be stored as the "date of the historic inventory balance" and the earliest stock that was recalculated in this way, will be stored as the "historic inventory balance" (both in table inv001).
4. Correction in FINANCE
E.g. when closing the month in Finance and after having booked all inventory mutations to Finance, a difference still may be found between the stock valuation (as described) and the corresponding ledger account or balance sheet. This difference then has to be corrected once on some date X by a manual booking in Finance. After this correction inventory data and Finance are consistent again for date X (and later).
Stock valuations (tdinv6230m000) done later for some date after date X now have to correspond again with the financial data. When performing a stock valuation (after this correction procedure) for a date before date X one will still find, that the stock value differs from Finance (since apparently some tdinv700 stock mutations were lost; these are basic and cannot be retrieved from other data in the system).