Tuesday, October 15, 2013

What do the transaction mode (like transaction_mode = 8) numbers mean in the pending transactions table (MTL_MATERIAL_TRANSACTIONS_TEMP)?



What do the transaction mode (like transaction_mode = 8) numbers mean in the pending transactions table (MTL_MATERIAL_TRANSACTIONS_TEMP)?

Goal
What do the transaction mode numbers mean in the pending transactions table (MTL_MATERIAL_TRANSACTIONS_TEMP)?

Solution
The pending transactions can be found in the pending transactions form available from Inventory > Transactions > Pending Transactions or by looking directly in the pending transactions table (MTL_MATERIAL_TRANSACTIONS_TEMP).  The transaction modes have the following meanings:

Transaction Mode Number / Description
NULL or 1:  Online Processing
2:  Concurrent Processing
3:  Background Processing
8:  Internal Processing (Not visible in the pending transactions form)

Explanation
Here is an explanation of each:

NULL or 1:  Online Processing
Online processing is used by the Oracle Applications to immediately process records. This does not require that a concurrent program be run. The Transaction Manager does not process transactions marked for online processing.

2: Concurrent Processing
Transactions marked as concurrent transaction mode are processed by a dedicated transaction worker to explicitly process a set of transactions. The Transaction Manager does not process transactions marked for concurrent processing.

3: Background Processing
Interface transactions marked for Background processing will be picked up by the transaction manager polling process and assigned to a transaction worker. These transactions will not be processed unless the transaction manager is running.

8:  Internal Processing
Transaction mode 8 is not a mode normally visible to the user as it is used for internal processing.  Transactions with this mode are not visible in the Pending transactions form. Transaction_mode of 8 is used internally to identify if records came from the interface table to the pending table or came directly into the pending table.

** If you find stuck transactions with a mode of 8, you should log a Service Request with Oracle Support to get assistance processing these records.  This is often caused by transactions that exist both in the transaction open interface and in the pending transactions table.  In such a case, the transaction open interface records would be removed and the pending transactions would be processed by resetting the transaction mode to 3: Background Processing.

Identification
The following script can be used to identify the corrupted records in case the duplicate scripts do not return any data:

SELECT msi.segment1, tmp.PROCESS_FLAG, tmp.LOCK_FLAG,
tmp.TRANSACTION_MODE, tmp.ERROR_CODE, tmp.transaction_quantity,
to_char(tmp.transaction_date,'dd-mm-yyyy hh24:mi:ss')
FROM mtl_material_transactions_temp tmp, mtl_system_items_b msi
WHERE transaction_mode = 8
AND tmp.inventory_item_id = msi.inventory_item_id
AND msi.organization_id = &organization_id

No comments: