Professional Documents
Culture Documents
In this Document
Purpose
This guide has been created to give a clear explanation of the common errors found in Pending Transactions
MTL_MATERIAL_TRANSACTIONS_TEMP (MMTT) and how to resolve these errors.
Troubleshooting Steps
Script to pick-up errors
Script to reset locked MMTT transactions
Table of common error messages and reasons errors occur
Possible Solutions
1) An error occurred while relieving reservations.
2) Calling material processor to process 1 row(s) under header ID.
3) The MMTT.new_average_cost field is null or zero.
4) Lot numbers are missing for lot controlled items.
5) For this transaction row the serial records are missing.
6) Invalid Serial number transaction quantity.
7) Negative balances not allowed.
8) No open period found for date entered .
9) Oracle error.
10) Organization ID is either blank or invalid.
11) Status not applicable for this subinventory.
12) The material pick release and pick confirm process completed with errors.
13) Total Lot Transaction Quantity does not Match Transaction Quantity.
14) Total serial numbers does not match the transaction quantity.
15) Transaction date cannot be a future date.
16) Transaction quantity has an incorrect sign for the given transaction.
17) The expenditure organization information is invalid.
18) The item revision is not valid.
19) The value of expiration date is required.
20) The Subinventory record is missing in MTL_SECONDARY_INVENTORIES for the organization.
21). How to verify if pending WIP Completion and WIP Issue transactions in MMTT are duplicates or not
Transaction Codes
SOURCE_TYPE_ID
TRANSACTION_TYPE_ID
TRANSACTION_ACTION_ID
References
APPLIES TO:
https://support.oracle.com/epmos/faces/SearchDocDisplay?_adf.ctrl-state=11xss40j87_592#aref_section225 1/12
2/21/24, 9:52 PM Document Display
Information in this document applies to any platform.
This document includes all versions of 11i and Release 12
PURPOSE
This guide has been created to give a clear explanation of the common errors found in Pending Transactions
MTL_MATERIAL_TRANSACTIONS_TEMP (MMTT) and how to resolve these errors.
This is a working document and as new solutions or issues come to light, they will be added to the document.
TROUBLESHOOTING STEPS
The following script can be used to report all the errors found grouped by the transaction_type_id, transaction_action_id,
error_code and error_explanation.
SELECT TRANSACTION_TYPE_ID,
TRANSACTION_ACTION_ID,
ERROR_CODE,
ERROR_EXPLANATION, COUNT(*)
FROM MTL_MATERIAL_TRANSACTIONS_TEMP
GROUP BY TRANSACTION_TYPE_ID,
TRANSACTION_ACTION_ID,
ERROR_CODE,
ERROR_EXPLANATION;
Sometimes issues happen that stop MMTT transactions from processing. The following sql statement can be safely used to
reset transactions to be picked up by the transaction manager for reprocessing. Be sure to issue a commit after running:
UPDATE MTL_MATERIAL_TRANSACTIONS_TEMP
SET PROCESS_FLAG = 'Y',
ERROR_CODE = NULL ,
ERROR_EXPLANATION = NULL ,
LOCK_FLAG = 'N' ,
TRANSACTION_MODE = 3
WHERE PROCESS_FLAG IN ('Y', 'E');
If you run the script, pending transactions are reprocessed, and transactions re-error, there is most likely a problem with the
transactions. Review the common errors below.
1. An error occurred while relieving Reservations Not enough available stock to relieve reservation.
3. CSTPACIT.COST_DET_VALIDATE: An invalid cost change is New average cost would be zero or negative which is not
associated with the item being transacted valid.
4. For this transaction row either the lot records are missing Make sure that for lot controlled items, lot numbers are
or the lot quantity does not match the transaction quantity populated in the mtl_transaction_lots_temp with the correct
quantity and then reprocess.
https://support.oracle.com/epmos/faces/SearchDocDisplay?_adf.ctrl-state=11xss40j87_592#aref_section225 2/12
2/21/24, 9:52 PM Document Display
5. For this transaction row the serial records are missing Make sure that for serial controlled items, serial numbers
populated in the mtl_serial_numbers_temp with the correct
quantity and then reprocess.
6. Invalid Serial Number transaction quantity Lot and/or Serial Number quantity does not match
7. Negative balances not allowed Ensure that there is enough onhand quantity for the items
and SKU and then reprocess the transactions.
8. No open period found for date entered Period is not open for the transaction date
9. Oracle error Database error check for locking issue or duplicate rows
11. Status not applicable for this Subinventory Subinventory is assigned a status which does not allow the
transactions
12. The material pick release and pick confirm process Associated Move Order is already closed
completed with errors
13. Total Lot Transaction Quantity does not Match The sum of the Lot quantities does not match
Transaction Quantity
14. Total serial numbers does not match the transaction The no. of serials is different to the transaction qty
quantity
15. Transaction date cannot be a future date The date for this transaction type cannot be in the future
16. Transaction quantity has an incorrect sign for the given This is a receipt transaction, but the quantity sign is -ve.
transaction action. Correct the quantity sign to +ve and then re-process the
transaction.
17. The expenditure organization information is invalid Ensure that the PA_EXPENDITURE_ORG_ID populated is the
correct org_id and then re-process the transaction.
18. The item revision is not valid. Item revision is invalid or revision qty control is incorrect
19. The value of expiration date is required. Expiration date is missing on the Lots
20. No subinventory record found for organization The Subinventory record is missing in
MTL_SECONDARY_INVENTORIES for the organization
Another possible issue is that the error_code and error_explanation can be NULL with transaction_mode set to 8. This is
normally due to duplicate records. For the datafix for this please see Note: 294391.1
Possible Solutions
*** Please Note these are only possible solutions and the issue needs to be fully investigated. As standard practice,
ALWAYS test on a copy of Production following a suitable backup and fully check results before applying to Production. ***
Not enough available stock to relieve reservation. Can be down to the following:
Stuck Transaction Interface Sales Order Issues: An Error Occured While Relieving Reservations (INV_RSV_RLF_FAILED) (Doc
ID 280400.1)
B. Hard reservations that have a date that is fixed in the future, these reservations prevent other lines to be interfaced as they
take the available stock.
https://support.oracle.com/epmos/faces/SearchDocDisplay?_adf.ctrl-state=11xss40j87_592#aref_section225 3/12
2/21/24, 9:52 PM Document Display
If the onhand should exist create more onhand by doing a cycle count or by creating a miscellaneous receipt
D. Enough quantity was available but another order or job used the quantity because reservations was not enabled on the item
or subinventory.
Run onhand.sql from Note: 330284.1 - check reservations flag in Subinventory controls and item attributes
E. Enough quantity is onhand but not enough is reservable. An old reservation remains that should have been removed.
Run onhand.sql from Note: 330284.1 - check reservations section for unwanted reservations
Please use note FAQ: Inventory Standard Datafixes (Doc ID 568012.1), Standard Datafix #16 for the i2471362.sql,
INVCLRMO.sql sql's to clear any 'orphan' reservations. You can also get the scripts from main Doc ID 1322105.1.
Please use note FAQ: Inventory Standard Datafixes (Doc ID 568012.1) Standard Datafix #17 for the
Duplicates_for_mmt_mti_mmtt.sql to help clear any possible duplicate transactions. You can also get the Standard Datafix
from Doc ID 1472074.1.
SELECT *
FROM MTL_MATERIAL_TRANSACTIONS_TEMP
WHERE PROCESS_FLAG IN ('Y', 'E')
AND TRANSACTION_SOURCE_ID IS NULL;
Check transaction_type_id to find where transaction has come from. This may be correct for some transactions so check
similar transactions from the past.
Issue Verification:
SELECT
TRANSACTION_TEMP_ID,
NEW_AVERAGE_COST
FROM MTL_MATERIAL_TRANSACTIONS_TEMP
WHERE ERROR_EXPLANATION LIKE 'CSTPACIT.COST_DET_VALIDATE%';
https://support.oracle.com/epmos/faces/SearchDocDisplay?_adf.ctrl-state=11xss40j87_592#aref_section225 4/12
2/21/24, 9:52 PM Document Display
Or the lot quantity populated in the mtl_transaction_lots_temp does not match the transaction_quantity in the associated
Mtl_Transactions_Temp row. Check the correct number and quantity of lots are available in mtl_transaction_lots_temp:
Issue Verification:
Serial numbers are missing for serial controlled items, or the serial quantity populated in the mtl_serial_numbers_temp does
not match the transaction_quantity in the associated MMTT row.
Check the correct number of serial numbers are available in mtl_serial_numbers_temp for the transaction.
Issue Verification:
SELECT *
FROM MTL_SERIAL_NUMBERS_TEMP
WHERE TRANSACTION_TEMP_ID = &TEMP_ID;
Where serial numbers are known and were issued Add missing serial rows in mtl_serial_numbers_temp:
Substitute <SERIAL_NUMBER> with the actual serial number at both the places
See 4 and 5. Also check if serial number exists and whether the subinventory is correct for the serial number:
Issue Verification:
SELECT *
FROM MTL_SERIAL_NUMBERS_TEMP
WHERE TRANSACTION_TEMP_ID = &TEMP_ID;
SELECT *
FROM MTL_TRANSACTION_LOTS_TEMP
WHERE TRANSACTION_TEMP_ID = &TEMP_ID;
Add missing serial number / lot as per 4 & 5 above or correct subinventory
https://support.oracle.com/epmos/faces/SearchDocDisplay?_adf.ctrl-state=11xss40j87_592#aref_section225 5/12
2/21/24, 9:52 PM Document Display
Ensure that there is enough onhand quantity for the respective items and SKU and then reprocess the transactions:
Issue Verification:
Run onhand.sql from Note: 330284.1 - onhand section
Solution:
Create more onhand by doing a cycle count or by creating a miscellaneous receipt
B. Enough onhand exists but available quantity has been reduced by reservations.
Issue Verification:
Solution:
Please use note FAQ: Inventory Standard Datafixes (Doc ID 568012.1), Standard Datafix #16 for the i2471362.sql,
INVCLRMO.sql sql's to clear any 'orphan' reservations. You can also get the scripts from main Doc ID 1322105.1.
Please use note FAQ: Inventory Standard Datafixes (Doc ID 568012.1) Standard Datafix #17 for the
Duplicates_for_mmt_mti_mmtt.sql to help clear any possible duplicate transactions. You can also get the Standard Datafix
from Doc ID 1472074.1.
Open the accounting period for the transaction date in the Account Periods form.
9) Oracle error.
SELECT MMTT.TRANSACTION_TEMP_ID,
MMTT.ORGANIZATION_ID
FROM MTL_MATERIAL_TRANSACTIONS_TEMP MMTT
WHERE NOT EXISTS (SELECT * FROM MTL_PARAMETERS MP
WHERE MMTT.ORGANIZATION_ID = MP.ORGANIZATION_ID);
https://support.oracle.com/epmos/faces/SearchDocDisplay?_adf.ctrl-state=11xss40j87_592#aref_section225 6/12
2/21/24, 9:52 PM Document Display
WHERE MMTT.ORGANIZATION_ID = MP.ORGANIZATION_ID)
AND TRANSACTION_TEMP_ID = &TRANS_ID;
The subinventory is assigned a status which does not allow the transactions.
SELECT DISTINCT(SUBINVENTORY_CODE)
FROM MTL_MATERIAL_TRANSACTIONS_TEMP
WHERE ERROR_EXPLANATION
LIKE 'STATUS NOT APPLICABLE FOR THIS SUBINVENTORY%';
B. If on R12 ensure Patch 6905385:R12.WSH.A containing WSHDEACB.pls 120.42.12000000.9 has been loaded
SELECT ORGANIZATION_ID,
SECONDARY_INVENTORY_NAME , STATUS_ID
FROM MTL_SECONDARY_INVENTORIES
WHERE ORGANIZATION_ID = &ORG_ID
AND SECONDARY_INVENTORY_NAME = '&SUBINV_NAME';
SELECT IS_ALLOWED
FROM MTL_STATUS_TRANSACTION_CONTROL
WHERE STATUS_ID = (SELECT STATUS_ID FROM MTL_SECONDARY_INVENTORIES
WHERE ORGANIZATION_ID = &ORG_ID
AND SECONDARY_INVENTORY_NAME = '&SUBINV_NAME')
AND TRANSACTION_TYPE_ID = &TRANS_TYPE_ID;
12) The material pick release and pick confirm process completed with errors.
The Move Order is completed. The pick wave move order lines are getting picked for allocating even though the line is already
allocated through move order transaction form, resulting in a closed move order line.
SELECT *
FROM MTL_MATERIAL_TRANSACTIONS_TEMP MMTT
WHERE EXISTS (SELECT 1 FROM MTL_TXN_REQUEST_LINES MTRL
WHERE MTRL.LINE_ID = MMTT.MOVE_ORDER_LINE_ID
AND MTRL.LINE_STATUS = 5)
AND MMTT.TRANSACTION_TEMP_ID = &TRANS_ID;
13) Total Lot Transaction Quantity does not Match Transaction Quantity.
The sum of the lot transaction quantities does not agree with the transaction quantity for the MMTT transaction.
SELECT *
FROM MTL_TRANSACTION_LOTS_TEMP
WHERE TRANSACTION_TEMP_ID = &TEMP_ID;
https://support.oracle.com/epmos/faces/SearchDocDisplay?_adf.ctrl-state=11xss40j87_592#aref_section225 7/12
2/21/24, 9:52 PM Document Display
Script to update the transaction quantity for a specific lot number:
UPDATE MTL_TRANSACTION_LOTS_TEMP
SET TRANSACTION_QUANTITY = &TRANS_QTY
PRIMARY_QUANTITY = &PRIM_QTY
WHERE TRANSACTION_TEMP_ID = &TRANS_ID
AND LOT_NUMBER = '&LOT_NO';
14) Total serial numbers does not match the transaction quantity.
The number of serial numbers does not agree with the transaction quantity of the MMTT transaction. This may be due to
missing serial number(s):
SELECT *
FROM MTL_SERIAL_NUMBERS_TEMP
WHERE TRANSACTION_TEMP_ID = &TEMP_ID;
B. To insert serial numbers where serial numbers are known and were issued:
https://support.oracle.com/epmos/faces/SearchDocDisplay?_adf.ctrl-state=11xss40j87_592#aref_section225 8/12
2/21/24, 9:52 PM Document Display
WHERE TRANSACTION_TEMP_ID = &TRANS_TEMP_ID;
COMMIT;
NOTE: In SR#3-5230729491 - Records stuck on MTI with Transaction processor error Total serial numbers does not match
the transa, the customer had to delete invalid serial records from table WSH_SERIAL_NUMBERS in addition to adding SNs
to MTL_SERIAL_NUMBERS_TEMP.
UPDATE MTL_MATERIAL_TRANSACTIONS_TEMP
SET TRANSACTION_DATE = SYSDATE
WHERE TRANSACTION_TEMP_ID = &TRANS_ID
AND ERROR_EXPLANATION LIKE 'TRANSACTION DATE CANNOT BE A FUTURE DATE%';
16) Transaction quantity has an incorrect sign for the given transaction.
The quantity is showing the wrong sign for the transaction type, for example a receipt transaction, but the quantity sign is -ve:
SELECT *
FROM MTL_MATERIAL_TRANSACTIONS_TEMP
WHERE TRANSACTION_TEMP_ID = &TRANS_ID;
UPDATE MTL_MATERIAL_TRANSACTIONS_TEMP
SET TRANSACTION_QUANTITY = TRANSACTION_QUANTITY * -1
-- PRIMARY_QUANTITY = PRIMARY_QUANTITY * -1
-- REMOVE HYPHENS IF PRIMARY QTY ALSO NEEDS TO BE CHANGED
WHERE TRANSACTION_TEMP_ID = &TEMP_ID;
SELECT PA_EXPENDITURE_ORG_ID
FROM MTL_MATERIAL_TRANSACTIONS_TEMP
WHERE TRANSACTION_TEMP_ID = &TEMP_ID;
SELECT *
FROM MTL_MATERIAL_TRANSACTIONS_TEMP MMTT
WHERE NOT EXISTS (SELECT X FROM MTL_ITEM_REVISIONS MIV
WHERE MMTT.ORGANIZATION_ID = MIV.ORGANIZATION_ID
AND MMTT.INVENTORY_ITEM_ID = MIV.INVENTORY_ITEM_ID
https://support.oracle.com/epmos/faces/SearchDocDisplay?_adf.ctrl-state=11xss40j87_592#aref_section225 9/12
2/21/24, 9:52 PM Document Display
AND MMTT.REVISION = MIV.REVISION)
AND MMTT.REVISION IS NOT NULL;
SELECT MSIB.ORGANIZATION_ID,
MSIB.INVENTORY_ITEM_ID,
DECODE(REVISION_QTY_CONTROL_CODE,1,'1-N',2,'2-Y')REV_CONT
FROM MTL_SYSTEM_ITEMS_B MSIB, MTL_MATERIAL_TRANSACTIONS_TEMP MMTT
WHERE MSIB.ORGANIZATION_ID = MMTT. ORGANIZATION_ID
AND MSIB.INVENTORY_ITEM_ID = MMTT.INVENTORY_ITEM_ID
AND UPPER(MMTT.ERROR_CODE) LIKE 'INVALID ITEM REVISION%';
SELECT MTLT.TRANSACTION_TEMP_ID,
MTLT.LOT_NUMBER, MTLT.LOT_EXPIRATION_DATE
FROM MTL_TRANSACTION_LOTS_TEMP MTLT, MTL_MATERIAL_TRANSACTIONS_TEMP MMTT
WHERE MMTT.TRANSACTION_TEMP_ID = MTLT.TRANSACTION_TEMP_ID
AND upper(MMTT.ERROR_EXPLANATION) LIKE 'THE VALUE OF EXPIRATION DATE IS REQUIRED%';
This is normally due to the transaction having a missing ie. null subinventory_code. After checking to ensure that the stock is available in the
designated subinventory, use the following SQL script to update the transaction with the missing subinventory_code:
SELECT TRANSACTION_TEMP_ID,
SUBINVENTORY_CODE,
LOCATOR_ID
FROM MTL_MATERIAL_TRANSACTIONS_TEMP
WHERE ERROR_EXPLANATION LIKE 'NO SUBINVENTORY RECORD FOUND FOR ORGANIZATION%';
UPDATE MTL_MATERIAL_TRANSACTIONS_TEMP
SET SUBINVENTORY_CODE = '&SUBINV' -- EXPECTED SUBINVENTORY
--, LOCATOR_ID = &LOC_ID
-- REMOVE HYPHENS IF LOCATOR_ID IS ALSO REQD
WHERE TRANSACTION_TEMP_ID = (&TRANS_TMP_ID);
You may also need to add locator_id if subinventory is locator controlled and locator_id is missing.
Note: please also review Doc ID 1910380.1 for a related issue with MTL_SECONDARY_INVENTORIES.
21). How to verify if pending WIP Completion and WIP Issue transactions in MMTT are duplicates or not
Please see the following note for diagnosis scripts and root cause patches:
Duplicate Pending (MMTT) WIP : How To Verify If Pending WIP Completion And Issue Transactions In MMTT Are Duplicates Or Not (Before
Resubmitting Or Deleting) (Doc ID 1073279.1)
Transaction Codes
SOURCE_TYPE_ID
1 Purchase order
2 Sales order
https://support.oracle.com/epmos/faces/SearchDocDisplay?_adf.ctrl-state=11xss40j87_592#aref_section225 10/12
2/21/24, 9:52 PM Document Display
3 Account
4 Move order
5 Job or Schedule
6 Account alias
7 Internal requisition
8 Internal order
9 Cycle Count
10 Physical Inventory
11 Standard cost update
12 RMA
13 Inventory
14 Periodic Cost Update
15 Layer Cost Update
16 Project Contract
17 External Requisition
TRANSACTION_TYPE_ID
24 Standard cost update 54 Int Order Direct Ship 86 Cost Group Transfer
31 Account alias issue 58 WIP Lot Quantity Update 90 WIP assembly scrap
32 Miscellaneous issue 61 Int Req Intr Rcpt 91 WIP return from scrap
33 Sales order issue 62 Int Order Intr Ship 92 WIP estimated scrap
TRANSACTION_ACTION_ID
https://support.oracle.com/epmos/faces/SearchDocDisplay?_adf.ctrl-state=11xss40j87_592#aref_section225 11/12
2/21/24, 9:52 PM Document Display
27 Receipt into stores
28 Staging transfer
29 Delivery adjustments
30 WIP scrap transaction
31 Assembly completion
32 Assembly return
REFERENCES
https://support.oracle.com/epmos/faces/SearchDocDisplay?_adf.ctrl-state=11xss40j87_592#aref_section225 12/12