OPM Financials (GMF) Process Manufacturing Financials Troubleshooting Guide (Doc ID 1213193.1)

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 17

Document 1213193.1 https://support.oracle.com/epmos/faces/Docum...

Copyright (c) 2018, Oracle. All rights reserved.

OPM Financials (GMF) Process Manufacturing Financials Troubleshooting Guide (Doc ID 1213193.1)

In this Document

Purpose
Questions and Answers
References

APPLIES TO:

Oracle Process Manufacturing Financials - Version 11.5.10 and later


Information in this document applies to any platform.
All opm financials forms, reports, concurrent requests for release 11i and R12

PURPOSE

This document provides basic to advanced trouble shooting information which can be used by Customers, Support and Development.

QUESTIONS AND ANSWERS

This note provides troubleshooting information for OPM Financials Module (GMF). It covers the following topics.

1. How to enable Debug Log mode for GMF Concurrent Programs

2. Find File versions, Profile values and Patches Applied

3. Find Log File and Error messages for important processes

Cost Rollup
Actual Cost
Lot Cost
Cost Update
Test Subledger Update
Final Subledger Update
Detailed Subledger Report
OPM Accounting Pre- Preprocessor
Create Accounting

4. Enable Forms Trace


5. Enable Reports/Concurrent Request Trace
6. Important Tables in 11i and R12
7. Important SQL queries and filtering transaction related issues
8. Relayering in Actual Costing

For any OPM Financials issue Oracle Support request that you provide the file versions, log file with debug mode, error
messages, screen shots and steps followed.

1.How to enable Debug Log mode

(Enabling Debug mode in OPM Financials)

These steps are same in 11i and R12

Profile name : GMF Debug Log Level


Valid values : Null, 0,1,2 & 3.

Set this profile value to 3 to enable the Debug mode and set it to Null in order to disable debug mode. This profile can be set
from Menu -> Edit->Preferences ->Profiles->Personal Profile Values (Screen) . Query for profile name %GMFÞbug%.
(The long name of the Profile may vary - it is frequently set up as "GMF: Concurrent Debug Flag").

1 of 17 10/07/2018 09:31
Document 1213193.1 https://support.oracle.com/epmos/faces/Docum...

If profile value can not be seen from menu check by logging with the responsibility of system administrator. Otherwise contact
your system administrator.

If this profile does not exist or if this is a new instance then this profile has to be created.

Define new profile GMF_CONC_DEBUG as below:


Responsibility: Application Developer. In case you do not have this responsibility ask your dba to create this profile . Before
creating this profile below steps can be performed to check if the profile already exists.

Profiles screen ---> View ---> Query By Example --->


Enter GMF_CONC_DEBUG in Name field
Profile ---> View ---> Query By Example ---> Run
If the query does not return any records, it means that this profile was not created

Use below information create a new record :


Name GMF_CONC_DEBUG
Application Process Manufacturing Financials
User Profile Name GMF: Concurrent Debug Flag
Description Debug level flag for GMF concurrent programs
Active Dates Enter a date from which this profile is active

2 Find File versions, Profile values and Patches Applied

These steps are same in 11i and R12.

File versions and Profile values

There is a concurrent request named Diagnostics: Apps Check which can be submitted in order to get the file version and
profile values.

Responsibility : PURCHASING
Menu -> View Requests -> Submit a new concurrent request ->
Diagnostics: Apps Check
Parameter : Process Manufacturing Financials
(In order to get multiple product versions, submit different products needed in the parameter.)

If your requirement is to find only one form version , it is easier to get that from the Application .
These steps are same in 11i and R12.
Inside the application select the Menu: Use Help->About Oracle Applications Scroll down to find the form name Character: Use
Help->Version

If you have the access to the server where the Application is installed use below commands to get the executable file versions

strings $GMF_TOP/bin/GMFACOST | grep Head | sort

For a particular file version inside the executable

strings -a $GMF_TOP/bin/GMFACOST | grep -i '$Header'| grep gmafmt.lc

Finding a package version

SELECT name, text


FROM all_source
WHERE UPPER (NAME) LIKE UPPER ('%&EnterPackageName%')
AND text LIKE '%$Header%'
ORDER BY 1;

Finding a view definition

SELECT view_name,text FROM


DBA_VIEWS WHERE UPPER (VIEW_NAME) LIKE UPPER ('%&EnterViewName%') ;

2 of 17 10/07/2018 09:31
Document 1213193.1 https://support.oracle.com/epmos/faces/Docum...

Note that in SQL*Plus the output from the above statement will normally be limited to 80 characters.

To find out how large the view definition is:

SELECT view_name,text_length FROM


DBA_VIEWS WHERE UPPER (VIEW_NAME) LIKE UPPER ('%&EnterViewName%') ;

You now need to use the SQL*Plus 'SET LONG <xxx>' command, using a number greater than the View Length returned
above. So if the query returned a length of '9800':

SQL> SET LONG 10000

... will allow the whole View Definition to be displayed,

Patches Applied, File name and Version using Query

SELECT DISTINCT af.app_short_name, af.filename, afv.version,


afv.creation_date, apr.end_date, aap.patch_name, aprb.applied_flag,
aprb.success_flag, a.bug_number
FROM ad_patch_drivers apd, ad_applied_patches aap, ad_patch_runs apr,
ad_patch_run_bugs aprb,
ad_patch_run_bug_actions aprba, ad_file_versions afv, ad_files af, ad_bugs a
WHERE apd.patch_driver_id = apr.patch_driver_id AND apd.applied_patch_id =
aap.applied_patch_id
AND apr.patch_run_id = aprb.patch_run_id AND aprb.patch_run_bug_id =
aprba.patch_run_bug_id
AND aprba.patch_file_version_id = afv.file_version_id AND afv.file_id = af.file_id
AND a.bug_id = aprb.bug_id AND af.app_short_name = 'GMF'
ORDER BY 4 DESC;

Note that the above query tells you which patches have specifically been applied on your environment, but it does not list those
fixes which came onto your system implicitly when (for example) a consolidated patch or a Patch Set was applied.

When given a list of patches, you can find out which ones are already applied on your system (either explicitly or implicitly) with
the following script:

SELECT BUG_NUMBER FROM AD_BUGS


WHERE BUG_NUMBER IN ('<Patch1>', '<Patch2>', ...);

When a value of Bug_Number is returned by this script, that patch is already applied and does not need to be applied again.

3 Find Log File and Error messages

a) Cost Rollup

These steps are same in 11i and R12.


Navigation : Standard Costs -> Cost Rollup

If the issue is happening for a particular item, run the cost rollup only for that item/product so that we have less data.

When a new request is submitted (screen name Start Cost Rollup), note down the reference number. Once the request is
completed go to the same Cost Rollup screen and click on the Cancel button. It will show Cost Rollup screen. Query for the
reference number.

Process status can be found from the Menu ->Actions->Process Status in the same screen. Error messages can be found from
the Menu ->Actions->View Error messages. If the error messages are less use the Menu -> Export to get the error messages
to an excel file.

If there are more error messages please use the below query to get the error messages from the database using the reference
number.

3 of 17 10/07/2018 09:31
Document 1213193.1 https://support.oracle.com/epmos/faces/Docum...

SELECT line_no, message_comment, rollup_id


FROM cm_rlup_msg
WHERE rollup_id = &EnterRefNo
ORDER BY line_no;

Log file for the Cost Rollup can be seen from


Menu -> View Requests ->Find Requests -> Search for the Cost Rollup Concurrent request. Click on the button View Log to
get the log file.

If the log file is very large, note down the concurrent request id from the Concurrent Requests screen and use it in below query
to find the location.

SELECT phase_code, status_code, description, completion_text, logfile_name


FROM fnd_concurrent_requests
WHERE request_id =&EnterRequestID;

If you do not have the access to this file , request your dba to provide the above log file. Provide the file version (Apps Check),
log file and error messages for issues related to this.

b) Actual Cost Process

These steps are same in 11i and R12.

Navigation : Actual Costs-> Actual Cost Process

When a new request is submitted (screen name Start Actual Cost Process), note down the reference number. Once the
request is completed go to the same Actual Cost Process screen and click on the Cancel button. It will show Actual Cost
Process screen. Query for the reference number.

Process status can be found from the Menu ->Actions->Process Status.


Error messages can be found from the Menu ->Actions->View Error messages

If the error messages are less use the Menu -> Export to get the error messages.

If there are more error messages please use the below query to get the error messages from the database using the reference
number.

SELECT line_no, message_comment


FROM cm_acer_msg
WHERE acproc_id = &EnterRefNo
ORDER BY line_no;

Log file for the Actual Cost Process can be seen from Actual Cost Process screen by clicking on View Log button. Same log file
can be seen from Concurrent request screen. Menu -> View Requests ->Find Requests -> Search for the Actual Cost Process
Concurrent request. Click on the button View Log to get the log file.

If the log file is very large, note down the request id from the Requests screen and use it in below query to find the location.

SELECT phase_code, status_code, description, completion_text, logfile_name


FROM fnd_concurrent_requests
WHERE request_id =&EnterRequestID;

If you do not have the access to this file , request your dba to provide the above log file. Provide the file version (Apps Check),
log file and error messages for issues related to this.

c) Lot Cost Process

These steps are same in 11i and R12.

Navigation : Lot Costs-> Lot Cost Process

If the issue is happening for a particular lot or item run the Lot cost process only for that so that we have less data.

When a new request is submitted (screen Lot Cost Process), note down the reference number. Process status can not be

4 of 17 10/07/2018 09:31
Document 1213193.1 https://support.oracle.com/epmos/faces/Docum...

found from the same screen. It can be found only from the view requests screen. Also there is no view error messages for this
process.

Log file for the Lot Cost Process can be seen from Concurrent request screen. Menu -> View Requests ->Find Requests ->
Search for the Lot Cost Process Concurrent request. Click on the button View Log to get the log file.

If the log file is very large, note down the request id from the Requests screen and use it in below query to find the location.

SELECT phase_code, status_code, description, completion_text, logfile_name


FROM fnd_concurrent_requests
WHERE request_id =&EnterRequestID;

Please note that in case of lot costing unlike other requests there is no error message which can be found from Menu
->Actions- >View Error messages.

If you do not have the access to this file , request your dba to provide the above log file. Provide the file version (Apps Check)
and log file for issues related to this.

d) Cost Update

11i Navigation : MAC-> Cost Update


R12 Navigation : Cost Update

When a new request is submitted (screen name Start Cost Update Process), note down the reference number. Once the
request is completed go to the same Cost Update screen and click on the Cancel button. It will show Cost Update Process
screen. Query for the reference number.

Process status can be found from the Menu ->Actions->Process Status.


Error messages can be found from the Menu ->Actions->View Error messages

If the error messages are less use the Menu -> Export to get the error messages.

If there are more error messages please use the below query to get the error messages from the database using the reference
number.

SELECT line_no, message_comment


FROM cm_cupd_msg
WHERE cuproc_id = &EnterRefNo
ORDER BY line_no;

Log file for the Cost Update can be seen from


Menu -> View Requests ->Find Requests -> Search for the Cost Update Concurrent request. Click on the button View Log to
get the log file.

If the log file is very large, note down the request id from the Requests screen and use it in below query to find the location.

SELECT phase_code, status_code, description, completion_text, logfile_name


FROM fnd_concurrent_requests
WHERE request_id =&EnterRequestID;

If you do not have the access to this file , request your dba to provide the above log file. Provide the file version (Apps Check),
log file and error messages for issues related to this.

e) Test Subledger Update

This is available only in 11i


Navigation : MAC-> Subledger Update -> Menu -> Actions ->Test Subledger Update

If the issue is happening for a particular source, run this process only for that source. If this is happening for a particular date
restrict this using the Post Start Date and Post End Date. This helps to have the smallest data that replicates the issue.

When a new request is submitted (screen name Test Subsidiary Ledger Update ), note down the reference number. Once the
request is completed go to the same Subsidiary Ledger Update screen and click on the Cancel button. It will show Subsidiary
Ledger Update Process screen. Query for the reference number.

5 of 17 10/07/2018 09:31
Document 1213193.1 https://support.oracle.com/epmos/faces/Docum...

Process status can be found from the Menu ->Actions->Process Status.


Error messages can be found from the Menu ->Actions->View Error messages

If the error messages are less use the Menu -> Export to get the error messages.

If there are more error messages please use the below query to get the error messages from the database using the reference
number.SELECT line_no, message_text

FROM gl_mesg_tbl
WHERE reference_no = &EnterRefNo
ORDER BY line_no;

Log file for the Test Subledger can be seen from Concurrent request screen. Menu -> View Requests ->Find Requests ->
Search for the Test Subledger Concurrent request. Click on the button View Log to get the log file.

If the log file is very large, note down the request id from the Requests screen and use it in below query to find the location.

SELECT phase_code, status_code, description, completion_text, logfile_name


FROM fnd_concurrent_requests
WHERE request_id =&EnterRequestID;

If you do not have the access to this file , request your dba to provide the above log file. Provide the file version (Apps Check),
log file, report output if any and error messages for issues related to this.

f) Final Subledger Update Update

This is available only in 11i


Navigation : MAC-> Subledger Update -> Menu -> Actions -> Subsidiary Ledger Update.

Please note that Final mode can be run only once. So please check if the same issue happens when the Test Subledger is run.

If the issue is happening for a particular source, run this process only for that source. If this is happening for a particular date
restrict this using the Post Start Date and Post End Date. This helps to have the smallest data that replicates the issue.

When a new request is submitted (screen name Subsidiary Ledger Update ), note down the reference number. Once the
request is completed go to the same Subsidiary Ledger Update screen and click on the Cancel button. It will show Subsidiary
Ledger Update Process screen. Query for the reference number.

Process status can be found from the Menu ->Actions->Process Status.


Error messages can be found from the Menu ->Actions->View Error messages

If the error messages are less use the Menu -> Export to get the error messages.

If there are more error messages please use the below query to get the error messages from the database using the reference
number.

SELECT line_no, message_text


FROM gl_mesg_tbl
WHERE reference_no = &EnterRefNo
ORDER BY line_no;

Log file for the Lot Cost Process can be seen from Concurrent request screen. Menu -> View Requests ->Find Requests ->
Search for Final Subledger request. Click on the button View Log to get the log file.

If the log file is very large, note down the request id from the Requests screen and use it in below query to find the location.

SELECT phase_code, status_code, description, completion_text, logfile_name


FROM fnd_concurrent_requests
WHERE request_id =&EnterRequestID;

If you do not have the access to this file , request your dba to provide the above log file. Provide the file version (Apps Check),
log file, report output if any and error messages for issues related to this.

g) Detailed Subledger Report

6 of 17 10/07/2018 09:31
Document 1213193.1 https://support.oracle.com/epmos/faces/Docum...

These steps are same in 11i and R12.

Navigation : Menu-> View Requests ->Submit New Request -> Detailed Subledger Report

Please note that reference number is taken from the Subledger update (11i) or from
OPM Accounting preprocessor (R12).

If this is happening for a particular date restrict this using the Start Date and End Date. This helps to have the smallest data
that replicates the issue.

Log file for the Detailed Subledger Report can be seen from Concurrent request screen. Menu -> View Requests ->Find
Requests -> Search for Detailed Subledger Report . Click on the button View Log to get the log file.

If the log file is very large, note down the request id from the Requests screen and use it in below query to find the location.

SELECT phase_code, status_code, description, completion_text, logfile_name


FROM fnd_concurrent_requests
WHERE request_id =&EnterRequestID;

If you do not have the access to this file , request your dba to provide the above log file. Provide the file version (Apps Check),
log file and report output for issues related to this.

h) OPM Accounting Pre- Preprocessor

This is available only in R12


Navigation : OPM Accounting Preprocessor

If the issue is happening for a particular source, run this process only for that source. If this is happening for a particular date
restrict this using the Post Start Date and Post End Date. This helps to have the smallest data that replicates the issue.

When a new request is submitted (screen name Start OPM Accounting Preprocessor), note down the reference number. Once
the request is completed go to the same OPM Accounting Preprocessor screen and click on the Cancel button. It will show
Subsidiary Ledger Update Process screen. Query for the reference number.

Process status can be found from the Menu ->Actions->Process Status.


Error messages can be found from the Menu ->Actions->View Error messages

If the error messages are less use the Menu -> Export to get the error messages.

If there are more error messages please use the below query to get the error messages from the database using the reference
number.

SELECT line_no, message_text


FROM gl_mesg_tbl
WHERE reference_no = &EnterRefNo
ORDER BY line_no;

Log file can be seen from OPM OPM Accounting Preprocessor screen or from the Concurrent request screen. Menu -> View
Requests ->Find Requests -> Search for the OPM Preprocessor in the Concurrent request. Click on the button View Log to get
the log file.

If the log file is very large, note down the request id from the Requests screen and use it in below query to find the location.

SELECT phase_code, status_code, description, completion_text, logfile_name


FROM fnd_concurrent_requests
WHERE request_id =&EnterRequestID;

If you do not have the access to this file , request your dba to provide the above log file. Provide the file version (Apps Check),
log file and error messages for issues related to this.

i) Create Accounting

This is available only in R12

7 of 17 10/07/2018 09:31
Document 1213193.1 https://support.oracle.com/epmos/faces/Docum...

Navigation : Menu-> View Requests ->Submit New Request -> Create Accounting

Please note that Final mode can be run only once. Make sure to run this in Draft mode and when everything works fine or
when you are ready to run the Final run then only run the Create Accounting in Final Mode.

If the issue is happening for a particular process category(source), run this process only for that process category(source). If
this is happening for a particular date restrict this using End Date. This helps to have the smallest data that replicates the issue.

GMF Debug Log mode has no effect on Create Accounting since this is part of SLA which is common for most of the Financial
Modules. In order to enable the Debug we need to set FND profile values , run create accounting and run the sql query.

Profile values
SLA: Enable Diagnostics : Yes
FND: Debug Log Enabled : Yes
FND: Debug Log Filename: Blank
FND: Debug Log Level: Statement
FND: Debug Log Module: %

These profile values can be set from Menu -> Edit->Preferences ->Profiles->Personal Profile Values (Screen) . Query for
%FNDÞbug%.

If profile values can not be seen from menu check by logging with the responsibility of system administrator. Otherwise contact
your system administrator.

3 Submit Request for the smallest criteria that replicates the issue. Note down the request id of the create accounting and
accounting program. If the Create Accounting spawns multiple Accounting Program requests then include all the request ids.

Provide the create accounting, Accounting program log fies and below sql query output

SELECT tcon.transaction_id ,SUBSTR (module, 1, 120), message_text, timestamp,


log_sequence
FROM fnd_log_messages msg, fnd_log_transaction_context tcon
WHERE msg.transaction_context_id = tcon.transaction_context_id
AND tcon.transaction_id in ( &Req_ID1, &Req_ID2, &Req_ID3 ...)
ORDER BY 1,4 ;

If you do not have the access to this file , request your dba to provide the above log file. Provide the file version (Apps Check),
log files, report output and query output for issues related to this.

If the create accounting completes in errors or in warning please run the period close exception report and check the errors or
use below sql

SELECT * FROM XLA_ACCOUNTING_ERRORS WHERE request_id =


&accounting_program_request_id;
SELECT * FROM GMF_XLA_EXTRACT_HEADERS
WHERE EVENT_ID IN (SELECT EVENT_ID FROM XLA_ACCOUNTING_ERRORS WHERE REQUEST_ID =
&accounting_program_request_id);
SELECT * FROM GMF_XLA_EXTRACT_LINES
WHERE EVENT_ID IN (SELECT EVENT_ID FROM XLA_ACCOUNTING_ERRORS WHERE REQUEST_ID =
&accounting_program_request_id);

(&accounting_program_request_id is the request id of Accounting Program which is child request of Create Accounting) . If
the issue is related with the SLA ADR rule please review the related SLA ADRs. It is recommended to modify the SLA ADR
with the conditions similar to the default/seeded and see if it works. If it works keep on adding condition to find out which one
is failing.

8 of 17 10/07/2018 09:31
Document 1213193.1 https://support.oracle.com/epmos/faces/Docum...

Also please make sure the accounting entries are correct before running in Final mode because Final mode can not be
reverted. For seeing the different period end processes/steps for GMF/OPM Financials please refer to below document

Release 12 Period-End Process Flow For Oracle Process Manufacturing (OPM) Financials (GMF)- e-Business Suite
(Doc ID 1237963.1)

4.Enable Forms Trace

These steps are same in 11i and R12.


Navigation : Menu -> Help ->Diagnostics -> Trace >Trace with Binds and Waits

When you enable the trace you can see a Note window which shows the location and file name. Note down this or take a
screen shot.

This is needed if there is any APP-FND error messages or issues related to List of values or items is reported. Enable the trace
just before the error message occurs and
Disable the trace once the error message is displayed. Trace can be disabled by
Menu-> Help ->Diagnostics -> Trace >No Trace

Location of trace files (always on the database server) can be found from below query:

SELECT *
FROM v$parameter
WHERE name = 'user_dump_dest';

The following alternative query shows the location and name of trace files relating to currently-running Applications sessions
and processes:

SELECT DISTINCT par.value || '/' || LOWER(instance_name) || '_ora_' || spid ||


'.trc' "Trace file name" , par.value "Location"
FROM v$instance i, v$process p, v$mystat m, v$session s, v$parameter par
WHERE s.paddr = p.addr AND s.sid = m.sid
AND par.name='user_dump_dest';

Performance Related issues

a) Tkprof and Trace


If this trace is related to a performance issue please ask your dba to generate the tkprof file using below command.

tkprof <filename.trc> <output_filename> sys=no explain=apps/<password>


sort='(prsela,exeela,fchela)' print=10

b) Tables Analyzed

SELECT owner, MIN(last_analyzed), MAX(last_analyzed)


FROM dba_tables
WHERE owner = 'GMF'
GROUP BY owner ;

c) Current SQL that is being executed

SELECT r.request_id, sq.sql_text, ss.SID, ss.SERIAL#


FROM fnd_concurrent_requests r, v$process p,
v$session ss, V$SQLAREA sq ,sq.buffer_gets,ss.last_call_et
WHERE r.request_id IN (&EnterRequestID)
AND p.spid = r.oracle_process_id AND ss.paddr = p.addr
AND sq.ADDRESS = ss.SQL_ADDRESS;

Run the above every 5 minutes or certain intervals based on how much time the total request takes. This way it is easy to find
out which statement is taking time.

9 of 17 10/07/2018 09:31
Document 1213193.1 https://support.oracle.com/epmos/faces/Docum...

In some cases we may need to enable trace for the whole application session. Follow below note for the complete steps

Note 170223.1 Title: Trace 11i Bind Variables - Profile Option: Initialization SQL Statement - Custom

In some cases we may need to enable the trace for the user in order to capture all the SQL statements executed. Follow below
note for the complete steps

Note 309798.1 How to Trace Specific Database Users to Collect Full DML Statements Executed

If you do not have the access to these files , request your dba to provide the above files. Provide the file version (Apps Check),
trace file ,log file and screen shots for issues related to this. If this is related to performance issue provide the file version (Apps
Check), trace file , log file , tkprof ,table analyzed output and Sql executed output.

5.Enable Reports/Concurrent Request Trace

a) These steps are same in 11i and R12.

Responsibility -> System Administrator ->Program ->Define - >Query for the Program name. Enable the checkbox for trace in
the Request. And save the record.

b) Responsibility: System Administrator


Navigate: Profiles > System
Query Profile Option Concurrent: Allow Debugging
Set profile to Yes

c) Select Debug Options from the Request Submission screen

Logon to the Responsibility that runs the Concurrent Program


In the Submit Request Screen click on Debug Options (B)
Select the Checkbox for SQL Trace with value as SQL Trace with Binds and Waits

And provide the values for the request parameters and submit the request

Once the report is submitted and completed use the same responsibility and navigation path as above to deselect the
checkbox. This will disable the trace.

Reports/Concurrent request trace location

SELECT fcr.request_id "Request ID" ,


fcp.user_concurrent_program_name "Program" ,
p1.value "Trace Directory" ,
'*'
||fcr.oracle_process_id
||'*.trc' "Trace File format" ,
fcp.language
FROM fnd_concurrent_requests fcr ,
v$parameter p1 ,
fnd_concurrent_programs_tl fcp
WHERE p1.name ='user_dump_dest'
AND fcr.concurrent_program_id = fcp.concurrent_program_id
AND fcr.program_application_id = fcp.application_id
AND fcr.request_id=&EnterRequestID;

For example if trace_id = 123567 is returned, then in the user_dump_dest use the following to find the trace file

-ls -al *123567*

If this trace is related to a performance issue please perform the same steps mentioned in the Performance Related issues
under Enable Forms Trace.

If you do not have the access to these files , request your dba to provide the above files. Provide the file version (Apps Check),
trace file and log file for issues related to this. If this is related to performance issue provide the file version (Apps Check), trace
file, tkprof,table analyzed and Sql executed.

Concurrent request time taken

10 of 17 10/07/2018 09:31
Document 1213193.1 https://support.oracle.com/epmos/faces/Docum...

select fcr.request_id request_id, fcp.concurrent_program_name conc_prog,


fcpt.user_concurrent_program_name user_conc_prog, fcr.argument_text,
fcr.actual_start_date start_date, fcr.actual_completion_date completion_date,
round (fcr.actual_completion_date - fcr.actual_start_date, 5) aa,
substr (numtodsinterval (( fcr.actual_completion_date
- fcr.actual_start_d ate ), 'day' ), 12, 8 ) DURATION,
fcr.status_code, fcr.completion_text
from fnd_concurrent_programs fcp, fnd_concurrent_programs_tl fcpt,
fnd_concurrent_requests fcr
where fcr.concurrent_program_id = fcp.concurrent_program_id
and fcr.program_application_id = fcp.application_id
and fcr.concurrent_program_id = fcpt.concurrent_program_id
and fcr.program_application_id = fcpt.application_id
and fcp.concurrent_program_name = '&EnterShortname' --For example 'GMFACOST'
and rownum < 100
order by trunc ( ( (fcr.actual_completion_date - fcr.actual_start_date) / (1 / 24) )
* 60 ) desc;

Modify the above where condition to suit your needs.

6.Important Tables in 11i and R12

a) Important tables in 11i

IC_TRAN_PND: Inventory Transaction Table having pending and completed transactions. Transaction types( PORC, XFER,
OMSO, PROD )

IC_TRAN_CMP: Inventory Transaction Table having completed transactions.Transaction types( CREI, ADJI, CRER, ADJR,
TRNI, TRNR, PIPH )

IC_PERD_BAL: Inventory Table having ending balance, consumption, and yield for closed inventory periods.

IC_ITEM_MST_B : Item definition table having all information relating to an item, such as lot/sublot control, unit of measure
information, and all class and type designations.

CM_CMPT_DTL: Item Cost Component Details table

CM_ACST_LED:-Stores all actual costing transactions

GL_ITEM_CST: Cost Details Header table used by Subledger Process.

GL_ITEM_DTL: Cost component detail information for the item.

GL_SUBR_TST: Subsidiary ledger test run work Table

GL_SUBR_LED: Actual Subledger Table or GL subsidiary ledger data

GL_SUBR_STA : Subsidiary ledger update state.

GL_MESG_TBL: Subledger Error Message Table

b) Important tables in R12

MTL_MATERIAL_TRANSACTIONS : Inventory Transaction table which stores a record of every material transaction or cost
update performed in Inventory.

MTL_TRANSACTION_LOT_NUMBERS: Inventory table which stores lot number information for transactions in the
MTL_MATERIAL_TRANSACTIONS table.

GMF_MATERIAL_LOT_COST_TXNS : Transaction history table for lot costs

MTL_SYSTEM_ITEMS: Item definition table having all information relating to an item, such as lot/sublot control, unit of
measure information, and all class and type designations.

GMF_PERIOD_BALANCES : OPM Financials table having ending balance, consumption, and yield for closed inventory
periods.

11 of 17 10/07/2018 09:31
Document 1213193.1 https://support.oracle.com/epmos/faces/Docum...

GL_ITEM_CST: Cost details header table used by Subledger Process.

GL_ITEM_DTL: Cost component detail information for the item.

GMF_PERIOD_STATUSES :OPM Financails table which stores the OPM Financials period status.

CM_MTHD_MST: table stores the cost methods defined

GMF_INCOMING_MATERIAL_LAYERS : Layer data for consumption transactions in case of actual cost.

GMF_LOT_COST_ADJUSTMENTS: Lot Cost Adjustments header table

GMF_XLA_EXTRACT_HEADERS: SLA Extract Headers table which stores transactions for process inventory organizations
are processed and all the necessary data for accounting are stored in this table. When the SLA accounting program is run data
from this table is extracted for creation of journal entries in SLA.

GMF_XLA_EXTRACT_LINES: SLA Extract Lines table which stores transactions for process inventory organizations are
processed and all the necessary data for accounting are stored in this table. When the SLA accounting program is run data
from this table is extracted for creation of journal entries in SLA.

RCV_TRANSACTIONS: stores historical information about receiving transactions

XLA_AE_HEADERS: SLA table stores subledger journal entries. There is a one-to-many relationship between accounting
events and journal entry headers.

XLA_AE_LINES:SLA table stores the subledger journal entry lines. There is a one-to-many relationship between subledger
journal entry headers and subledger journal entry lines.

XLA_DISTRIBUTION_LINKS: SLA table stores the link between transactions and Subledger journal entry lines.

7.Important Queries and filtering transaction related issues

Please make sure to provide the output in excel format with column headers . For multiple query outputs make sure to take
each output in a separate worksheet.

These queries are same in 11i and R12

Invalid objects

SELECT object_name, object_type, owner, status


FROM all_objects
WHERE status = 'INVALID';

Application Instance name, Apps Level, Host Name, Version and database version

SELECT DISTINCT fat.application_name "Application", f.application_id,


a.host_name, a.instance_name, a.instance_number,a.VERSION "Db Version",
fpg.release_name "Apps Level", f.patch_level "Family Pack"
FROM v$instance a, fnd_product_installations f, fnd_product_groups
fpg,fnd_application_tl fat
WHERE f.application_id = fat.application_id
AND f.application_id IN (550, 551, 552, 553, 554, 555, 556, 709, -- for OPM --
related Products
50, 0, 101, 178, 222, 401, 724, 722, 660, 201, 665, 200)
ORDER BY 1;

a) Narrow down transaction related issues in 11i


Identify the TRANS_ID from material transactions Inquiry screen in Inventory or provide the ITEM_ID or BATCH_ID in order to
narrow down the data

Trans_id can be found from Opm Inventory Responsibility under the transaction inquiry
Item_id can be found using below query

select item_id from ic_item_mst where item_no = '&EnterItemNo';

12 of 17 10/07/2018 09:31
Document 1213193.1 https://support.oracle.com/epmos/faces/Docum...

Batch_id can be found from below query

select * from gme_batch_header where batch_no = '&EnterBatchno';

select * from ic_tran_pnd where trans_id in (&EnterTransID);

or select * from ic_tran_pnd where item_id in (&EnterItemID);


or select * from ic_tran_pnd where item_id in (&EnterBatchID);
or select itp.* from ic_tran_pnd itp, ic_item_mst iim where itp.item_id = iim.item_id and item_no in ('&EnterItemNo');
select * from ic_tran_cmp where trans_id in (&EnterTransID);
or select * from ic_tran_cmp where item_id in (&EnterItemID);
or select itp.* from ic_tran_cmp itc, ic_item_mst iim
where itc.item_id = iim.item_id and item_no in ('&EnterItemNo');

select * from cm_mthd_mst where cost_mthd_code = '&EnterCostMethod';


select * from cm_acst_led where item_id in (&EnterItemID);
select * from cm_brdn_dtl where item_id= &EnterItemID;
select cmp.* from cm_cmpt_mst cmp, cm_cmpt_dtl c
where cmp.cost_cmpntcls_id = c.cost_cmpntcls_id
and c.calendar_code = '&Entercost_calendar_code'
and c.period_code = '&Entercost_period_code'
and c.cost_mthd_code = '&Entercost_mthd_code' ;
select * from cm_cmpt_dtl
where calendar_code = '&Entercost_calendar_code'
and period_code = '&Entercost_period_code'
and cost_mthd_code = '&Entercost_mthd_code' ;

select * from cm_cldr_hdr a


where a.calendar_code= '&entercost_calendar_code'

select * from cm_cldr_dtl


where calendar_code = '&Entercost_calendar_code'
and period_code = '&Entercost_period_code'

select * from perd_bal


where fiscal_year = &EnterFiscalYear and
period = &EnterPeriod;

select * from gl_item_cst


where calendar_code = '&Entercost_calendar_code'
and period_code = '&Entercost_period_code'
and cost_mthd_code = '&Entercost_mthd_code' ;
or select * from gl_item_cst
where item_id in (&EnterItemID);

select * from gl_item_dtl


where itemcost_id in ( select itemcost_id from gl_item_cst
where calendar_code = '&Entercost_calendar_code'
and period_code = '&Entercost_period_code'
and cost_mthd_code = '&Entercost_mthd_code' );
or select * from gl_item_dtl
where itemcost_id in ( select itemcost_id from gl_item_cst
WHERE item_id in (&EnterItemID ) );
select * from gme_material_details
where batch_id = &enterbatchid;

select * from gl_subr_led where reference_no=&EnterReferenceNo;


or select * from gl_subr_led
where doc_id = &EnterBatchID and doc_type='PROD'

select * from gl_subr_tst reference_no=&EnterReferenceNo;


or select * from gl_subr_tst
where doc_id = &EnterBatchID and doc_type='PROD'

13 of 17 10/07/2018 09:31
Document 1213193.1 https://support.oracle.com/epmos/faces/Docum...

select * from gl_subr_sta where reference_no=&enterreferenceno;


or select * from gl_subr_sta
where doc_id = &EnterBatchID and doc_type='PROD'

b) Narrow down transaction related issues in R12

Identify the TRANSACTION_ID from material transactions Inquiry screen in Inventory or provide the INVENTORY_ITEM_ID or
BATCH_ID in order to narrow down the data

Transaction_id can be found from Opm Inventory Responsibility under the transaction inquiry.

Inventory_Item_id can be found using below query

select distinct inventory_item_id from mtl_system_items


where segment1 like '%EnterItemName%' ;

Batch_id can be found from below query

select * from gme_batch_header where batch_no = &EnterBatchno ;

Enter the transaction dates or the item number and find out the transaction_id

select msi.segment1 itemno, mmt.inventory_item_id, mmt.transaction_id,


mmt.transaction_date, mmt.creation_date, sysdate
from mtl_material_transactions mmt, mtl_system_items msi
where mmt.inventory_item_id = msi.inventory_item_id
and mmt.transaction_date between '&EnterFromDate' and '&EnterToDate'
or msi.segment1 = '&EnterItemNo';

select * from mtl_material_transactions mmt


where mmt.transaction_id in (&EnterTransactionID);
or select mmt.* from mtl_material_transactions mmt, mtl_system_items msi
where mmt.inventory_item_id = msi.inventory_item_id
and mmt.transaction_date between '&EnterFromDate' and '&EnterToDate'
or msi.segment1 = '&EnterItemNo';
or select * from mtl_material_transactions mmt
where mmt.transaction_batch_id in (&EnterBatchID);

select * from mtl_transaction_lot_numbers mtln


where mtln.transaction_id in (&EnterTransactionID);

OPM Preprocessor Data

Run Accounting Preprocessor only for a particular source and small date range to include transaction. This way we have the
smallest data that replicates the issue. Reference number is the number obtained while running OPM preprocessor.

a)

select * from gmf_xla_extract_headers


where reference_no = '&EnterReference_no'
and transaction_id in ( &EnterTransaction id)

b)

select * from gmf_xla_extract_lines


where header_id in ( select header_id from gmf_xla_extract_headers
where reference_no = '&reference_no' and transaction_id in ( &EnterTransaction id) );

14 of 17 10/07/2018 09:31
Document 1213193.1 https://support.oracle.com/epmos/faces/Docum...

c)

select line_no,message_text from gl_mesg_tbl


where (reference_no='&reference_no')
Order by line_no;

d ) If this issue is related with Inter org transfer or receiving transaction

select * from rcv_transactions


where transaction_id in (select rcv_transaction_id
from mtl_material_transactions
where transaction_id in (&transaction id));

Also provide the debug log output file from the OPM preprocessor.

Create Accounting Data

SLA Events

select dl.* from xla_events dl, gmf_xla_extract_headers geh


where dl.event_id = geh.event_id
and dl.application_id = 555
and geh.entity_code = '&EnterEntity' --For Example INVENTORY
and geh.transaction_date <= TO_DATE('01/02/08 23:59:59','dd/mm/yyhh24:mi:ss')

SLA Headers

select ah.* from


xla_ae_lines al,xla_ae_headers ah, xla_distribution_links dl,
gmf_xla_extract_headers geh, gmf_xla_extract_lines gel
where al.ae_header_id = dl.ae_header_id and ah.ae_header_id = al.ae_header_id
and ah.application_id = 555 and al.ae_line_num = dl.ae_line_num
and dl.event_id = geh.event_id and dl.application_id = 555
and dl.source_distribution_type = geh.entity_code
and dl.source_distribution_id_num_1 = gel.line_id
and geh.header_id = gel.header_id and geh.event_id = gel.event_id
and geh.entity_code = '&EnterEntity' --For Example INVENTORY
and geh.transaction_date <= TO_DATE('01/02/08 23:59:59','dd/mm/yyhh24:mi:ss')

SLA Lines

select al.* from xla_ae_lines al, xla_ae_headers ah,


xla_distribution_links dl, gmf_xla_extract_headers geh,
gmf_xla_extract_lines gel
where al.ae_header_id = dl.ae_header_id
and ah.ae_header_id = al.ae_header_id and ah.application_id = 555
and al.ae_line_num = dl.ae_line_num and dl.event_id = geh.event_id
and dl.application_id = 555 and dl.source_distribution_type = geh.entity_code
and dl.source_distribution_id_num_1 = gel.line_id
and geh.header_id = gel.header_id and geh.event_id = gel.event_id
and geh.entity_code = '&EnterEntity' --For Example INVENTORY
and geh.transaction_date <= TO_DATE('01/02/08 23:59:59','dd/mm/yyhh24:mi:ss')

SLA Distributions

select dl.* from xla_ae_lines al, xla_ae_headers ah,


xla_distribution_links dl, gmf_xla_extract_headers geh,
gmf_xla_extract_lines gel
where al.ae_header_id = dl.ae_header_id and ah.ae_header_id = al.ae_header_id
and ah.application_id = 555 and al.ae_line_num = dl.ae_line_num
and dl.event_id = geh.event_id and dl.application_id = 555
and dl.source_distribution_type = geh.entity_code
and dl.source_distribution_id_num_1 = gel.line_id and geh.header_id = gel.header_id
and geh.event_id = gel.event_id

15 of 17 10/07/2018 09:31
Document 1213193.1 https://support.oracle.com/epmos/faces/Docum...

and geh.entity_code = '&EnterEntity' --For Example INVENTORY


and geh.transaction_date <= TO_DATE('01/02/08 23:59:59','dd/mm/yyhh24:mi:ss')

Accounting entries based on source

SELECT geh.pm_batch_number, geh.header_id, geh.event_class,


geh.event_type, gel.line_number, gel.journal_line_type, cost_cmpntcls_id,
cost_analysis_code, gel.component_cost, DECODE(SIGN(gel.base_amount), 1,
gel.base_amount,0,0,'')
BASE_DR_AMOUNT, DECODE(SIGN(gel.base_amount),-1,ABS (gel.base_amount),0,0,'')
BASE_CR_AMOUNT, DECODE(SIGN(gel.trans_amount), 1,gel.trans_amount,0,0,'')
TRANS_DR_AMOUNT,DECODE(SIGN(gel.trans_amount),-1,ABS(gel.trans_amount),0,0,'')
TRANS_CR_AMOUNT,gel.entered_amount,gel.accounted_amount,
FND_FLEX_EXT.GET_SEGS('SQLGL',
'GL#',gcc.chart_of_accounts_id,gcc.code_combination_id)
account,GL_FLEXFIELDS_PKG.get_concat_description( gcc.chart_of_accounts_id,
gcc.code_combination_id) acc_description
FROM gl_code_combinations gcc,xla_ae_lines al,
xla_distribution_links dl,gmf_subledger_rep_v geh,
gmf_xla_extract_lines gel
WHERE gcc.code_combination_id = al.code_combination_id
AND al.ae_header_id = dl.ae_header_id AND al.ae_line_num = dl.ae_line_num
AND dl.event_id = geh.event_id AND dl.application_id = 555
AND dl.source_distribution_type = geh.entity_code AND dl.source_distribution_id_num_1
= gel.line_id
AND geh.header_id = gel.header_id AND geh.event_id = gel.event_id
AND geh.entity_code ='&EntityCode';

For eg entity code can be 'REVALUATION' or 'PRODUCTION' or 'PURCHASING' or 'ORDERMANAGEMENT' or


'INVENTORY'

-- For batch replace the last line above with below information

AND geh.entity_code = 'PRODUCTION'


AND geh.pm_batch_number = '&batch_number'

--If you know the transaction_id use replace the last line with below

AND geh.transaction_id in &EnterTransaction id)

Also provide the FND debug log for the create accounting.

Identify transaction Type

Transaction type can be identified from the transaction id or item no or inventory item id or date range by using below query.

SELECT msi.segment1 ItemName, mtt.transaction_type_name TxnType, mmt.*


FROM mtl_material_transactions mmt, mtl_transaction_types mtt , mtl_system_items msi
WHERE mtt.transaction_type_id = mmt.transaction_type_id
AND mtt.transaction_action_id = mmt.transaction_action_id
AND mmt.organization_id=msi.organization_id
AND mtt.transaction_source_type_id = mmt.transaction_source_type_id
AND mmt.inventory_item_id = msi.inventory_item_id
AND mmt.transaction_id in (&EnterTransactionID);

or modify the where condition with item_no or inventory_item_id


( msi.segment1 = '&EnterItemNo' or mmt.inventory_item_id= &EnterInventoryItemID)
or modify the where condition with date range
and mmt.transaction_date between '&EnterFromDate' and '&EnterToDate'

8.Relayering in Actual Cost Process

This concept was introduced from 11.5.10 in order to resolve inventory reconciliation issues with batches crossing the period.
Prior to this when a batch is completed in one costing period and closed in the next or subsequent period, quantities yielded in
prior periods were counted twice in the PMAC cost calculation. This change assumes that the users are creating batch
transactions in sequence (like, first consumptions followed by yields) and no back dated transactions.

16 of 17 10/07/2018 09:31
Document 1213193.1 https://support.oracle.com/epmos/faces/Docum...

In Release 11i manually-executed scripts were used to recreate the Layer data, but in Release 12 and later a Concurrent
Request is provided to make it easier to include the recreation of the Layer Cost data in your routine Period End tasks.

Long Name:- GMF Recreate Batch / Period Layers


Short Name :- GMFRLAYR
Parameters:- Legal Entity, Cost Calendar , Period, Cost Type, Batch
Organization & Batch Number

This concurrent request is available from patch 8523022 (R12)/ patch 9078278 (R12.1.1) onwards. This can be run for a
particular period, batch or organization.

Run this request when the batch cost is not correct or when there is transactions which are out of sequence. Actual cost
process has to be run after this concurrent request and costs can be verified from the item costs screen.

Running this 'Recreate' program can not do any harm, so it is recommended that it should be routinely run before Actual
Costing in order to remove potential data problems (for example where the details of a Batch have been updated but these
changes are not reflected in the Layer Cost tables.

For details of this program in 11i, please refer the following Note -

- New concurrent program GMF Recreate Batch / Period Layers to recreate layer date for production batches Document ID
1068301.1

REFERENCES

NOTE:309798.1 - How to Trace Specific Database Users to Collect Full DML Statements Executed
NOTE:1237963.1 - Release 12 Period Close Process Flow For Oracle Process Manufacturing (OPM) Financials (GMF)- e-Business Suite
NOTE:170223.1 - How To Create a User Event Trace by Using Profile Option: Initialization SQL Statement - Custom
Didn't find what you are looking for?

17 of 17 10/07/2018 09:31

You might also like