How and when costing will be done for material transactions?
Once inventory transactions are completed then records will be inserted into MTL_MATERIAL_TRANSACTIONS table and can be viewed through Material Transaction from. After that ‘Cost Manager’ program will pick these transactions and try to cost them. If eligible records are presents then Cost Manager triggers, ‘Material Cost Transaction Worker’ and once this costing worker process is successfully completed then records will be inserted into MTL_TRANSACTION_ACCOUNTS & CST_INV_DISTRIBUTIONS_V and you can view these records from Material Distributions form.
This ‘Cost Manager’ and ‘Material Cost Transaction Worker’ are part of Interface Mangers of Inventory.
How to check whether ‘Cost Manager’ and ‘Material Cost Transaction Worker’ are working or not?
Responsibility: Inventory
Navigation: Setup -> Transactions -> Interface Managers
Some more information on Cost Manger
Cost Manager is one of the concurrent program in oracle apps which will trigger itself in periodic intervals, unlike other concurrent requests it will not create new concurrent request every time it runs.
Practically ‘Cost Manager’ request ALWAYS show in “pending” status, because it “just” wakes up in periodic intervals, finds the eligible transactions to be costed and then spawns the ‘Material Cost Transaction Worker’ processes, which do all the actual costing work.
How to find whether a Material Transaction is costed or not?
‘Material Cost Transaction Worker’ does the job of costing the transaction which are present in MTL_MATERIAL_TRANSACTIONS table. After costing is done on particular transaction this particular program will change the costed_flag column from ‘N’ to ‘NULL’
The COSTED_FLAG in material transactions(MTL_MATERIAL_TRANSACTIONS table) can have the below three values:
N -> Not processed and waiting for the cost manager
NULL -> Successfully processed by the cost manager
E -> Errored out during costing
SQL Query to find out uncosted transactions
SELECT * FROM mtl_material_transactions WHERE costed_flag = 'N';
The above query will generally result in only few rows, if it all you are getting more rows and the count of rows are increasing then ‘Cost Manager’ must be inactive or they must be any other problem with Interface Mangers.
Please do comment if you have any questions and also correct me if I am wrong anywhere.
Cost Cutoff Date
Even though cost manager is running successfully to get the transactions costed, cost cutoff date must be greater than sysdate or null.