Skip to content

Profile Option “SLA: Enable Diagnostics” : How not to use it

Originally posted 23 December 2008 on

As diagnostics functionality tends to be very useful, most implementers when arriving at a site immediately enable all diagnostics. In case of profile option “SLA: Enable Diagnostics” this might cause more bad than good, and here is why:

First of all it’s important to understand the basic concept of SLA. When SLA creates accounting it doesn’t physically store all the data from the subledgers into the XLA tables. Instead SLA uses views to look directly at the subledger data it requires (you can see these views in the SLA Accounting Event Class Options window under the Transaction Objects tab).

But when profile option “SLA: Enable Diagnostics” is set to Yes, SLA will not only look at the subledger data through the abovementioned views, but it will also physically copy over all that data into an SLA diagnostics table (XLA_DIAG_SOURCES).

The reason why SLA does this is because you enabled SLA diagnostics, so SLA expects that you will want to run the Transaction Objects Diagnostics report. But in order for this report to be able to pick up data, SLA first needs to make the data available, therefore it copies over all the subledger data to the SLA tables so afterwards the Transaction Objects Diagnostics report can print the data for you.

This copy process happens during Create Accounting so when you run Create Accounting while the profile option is set to Yes you should also notice a decrease in the Accounting Program’s performance (because all the inserts into XLA_DIAG_SOURCES are being executed).

Correct order of events when diagnosing SLA:

1) Enable profile option “SLA: Enable Diagnostics”
2) Run “Create Accounting”
3) Disable profile option “SLA: Enable Diagnostics”
4) Run “Transaction Objects Diagnostics” report
5) Run “Purge Transaction Objects Diagnostics”

Keep the profile option away from so-called “overenthusiastic profile option switchers”. I’ve seen a case where the profile option was set to Yes at Site level meaning every single run of Create Accounting copied all source data from all subledgers to the XLA scheme eventually causing the database to run out of space. Although this was in a DEV instance without security policy it still proves that this (and in fact any) profile option should be handled with care – if you don’t know it then please don’t touch it.

When you do use the profile option then use it as it was intended to be used: run Create Accounting for a very small amount of data. It really doesn’t make any sense to try and diagnose a large volume of data because you will get lost in the Transaction Objects Diagnostics’ output file.

When you’re done diagnosing do not forget to switch the profile option back to No.

As soon as you’ve run your Transaction Objects Diagnostics report you can run Purge Transaction Objects Diagnostics request. This will purge the diagnostics data from XLA_DIAG_SOURCES. You can still continue looking at the data because that’s saved in the Transaction Objects Diagnostics’ output file.

taken from

Oracle Service Pack

There is nothing called service pack for Oracle EBS.
If you are running release 12.1.3
There is a patch level for each product or family of products in Oracle EBS
You can use the below query to identify the patch level of individual products:

select a.application_short_name, a.application_name, fpi.status, patch_level
from fnd_product_installations fpi, fnd_application_vl a
where fpi.application_id = a.application_id
and a.application_name like ‘%%’;



How To Use Source Line Transfer To Transfer Cost From One Asset Into Another Asset?


Oracle Assets – Version and later
Information in this document applies to any platform.


How to perform a source line transfer to transfer cost from one asset into another asset?


Perform the following steps:

1.  Query the “Transfer Out” asset in the Asset Workbench.  Navigate to Assets > Asset Workbench, query the asset number.
2.  Place the cursor in the record for the asset, then click the Source Lines button.
3.  In this form, check the line for the invoice, click the “Transfer To” button.
4.  In this form, do a blind query to find all the assets that this could be transferred to, or simply hit F11 to initiate the query.  Or enter query mode (f11), then key the desired “Transfer To” asset on the first line, then hit Ctrl+F11 to bring it back. Click Done to commit the Source Line Transfer to the asset.

Doc ID 1447559.1

This case just happened today, when 1 user was wrong Add new Invoice to an Asset Number. Lucky I have this document.



Re-Assign Buyer


To disable the function “Reassign To Buyer” from the Tools menu in Autocreate, please implement following steps.
I’ve already tested following steps in our internal instance and got the result as expected.

1. Navigate to Application Developer responsibility

2. Navigate to Application> Function

3. Query the function ‘PO_REASSIGN_BUYER’, e.g. F11> Enter PO_REASSIGN_BUYER> CTRL-F11

4. Go to Properties Tab

5. Select ‘Offline’ from Maintenance Mode Support LOV

6. Save changes

7. Check the result in Autocreate form

Eun Sil

SA: How to Add New Profile Options

Hi All,

This is the how-to to create new Profile Options:



Applied Prepayment


We had a prepayment cases, where user cannot applied standard invoice to a prepayment. The reason is simple, because the discarded flag is already stated Y. This is the script to udpate the data.

SET PARENT_REVERSAL_ID= null, reversal_flag = NULL, prepay_amount_remaining= &inv_amount
WHERE invoice_id = &Invoice_num;

WHERE invoice_id = &Invoice_num;


Test again in the environment.



Relation RCV – GL

The table that stores the receiving transactions from the RECEIPT is RCV_RECEIVING_SUBLEDGER. The DELIVERY portion is stored in MTL_MATERIAL_TRANSACTIONS (transaction) and MTL_TRANSACTION_ACCOUNTS (distributions).

You must run the Create Accounting – Receiving program from Purchasing to create the SLA entry for the Receipt, and the Create Accounting – Cost Management program from Cost Management to create the SLA entry for the delivery.

The entry for the receipt should be:

Inventory in Receiving Po price * qty
Uninvoiced Rcpt Liability PO price * qty

The entry for the delivery should be

Inventory in Stock std cost * qty
Inventory in Receiving PO price * qty
PO/Invoice variance var * qty (only if PO price is different from std cost)

The SLA information is stored in the following tables:

there is a column in this table called SOURCE_DISTRIBUTION_ID_NUM1 which is the foreign key back to the original distribution from RCV_RECEIVING_SUBLEDGER

shares EVENT_ID with the table above

shares EVENT_ID with the table above.

shares AE_HEADER_ID with the table above

shares GL_SL_LINK_ID with table above

shares JE_HEADER_ID with table above.

If you do a join between all the tables above you can get from the receiving distribution to the SLA entry and from the SLA entry to the corresponding General Ledger entry.

SLA also has a number of good reports which show you what has not made it to General Ledger:

Subledger Period Close Exceptions Report
Journal Entries report (run with the status parameter set to “Not Transferred” to see SLA entries with no corresponding GL entry.

Share from: Andrea