1) All accounting performed before transfer to the GL. Accounting data generated and stored in “Accounting Events” tables prior to transfer to GL
2) Run “Create Accounting” to populate accounting events (SLA) tables. User can “View Accounting” only after “Create Accounting” is run. Create Accounting process
– Applies accounting rules
– Loads SLA tables, GL tables
– Creates detailed data per accounting rules, stores in SLA “distribution links” table
3) Below are the key tables for SLA in R12
XLA_AE_HEADERS xah
XLA_AE_LINES xal
XLA_EVENTS xae
XLA_TRANSACTION_ENTITIES xte
XLA_DISTRIBUTION_LINKS xdl
GL_IMPORT_REFERENCES gir
Below are the possible joins between these XLA Tables
xah.ae_header_id = xal.ae_header_id
xah.entity_id = xte.entity_id
XLA_TRANSACTION_ENTITIES xte
XLA_DISTRIBUTION_LINKS xdl
GL_IMPORT_REFERENCES gir
Below are the possible joins between these XLA Tables
xah.ae_header_id = xal.ae_header_id
xah.entity_id = xte.entity_id
xae.entity_id = xte.entity_id
xah.event_id = xlae.event_id
xah.ae_header_id = xdl.ae_header_id
xah.ae_line_num = xdl.ae_line_num
xah.event_id = xdl.event_id
xal.gl_sl_link_id = gir.gl_sl_link_id
xah.ae_header_id = xdl.ae_header_id
xah.ae_line_num = xdl.ae_line_num
xah.event_id = xdl.event_id
xal.gl_sl_link_id = gir.gl_sl_link_id
xal.gl_sl_link_table = gir.gl_sl_link_table
xah.application_id = xal.application_id
xal.application_id = xte.application_id
xte.application_id = xdl.application_id
xae.application_id = xte.application_id
xah.application_id = xae.application_id
xah.application_id = (Different value based on Module)
xte.entity_code =
'TRANSACTIONS' or
'RECEIPTS' or
'ADJUSTMENTS' or
'PURCHASE_ORDER' or
'AP_INVOICES' or
'AP_PAYMENTS' or
'MTL_ACCOUNTING_EVENTS' or
'WIP_ACCOUNTING_EVENTS'
xte.source_id_int_1 =
'INVOICE_ID' or
'CHECK_ID' or
'CUSTOMER_TRX_ID' or
xah.application_id = (Different value based on Module)
xte.entity_code =
'TRANSACTIONS' or
'RECEIPTS' or
'ADJUSTMENTS' or
'PURCHASE_ORDER' or
'AP_INVOICES' or
'AP_PAYMENTS' or
'MTL_ACCOUNTING_EVENTS' or
'WIP_ACCOUNTING_EVENTS'
xte.source_id_int_1 =
'INVOICE_ID' or
'CHECK_ID' or
'CUSTOMER_TRX_ID' or
'TRANSACTION_ID'
XLA_DISTRIBUTION_LINKS table join based on Source Distribution Types
xdl.source_distribution_type = 'AP_PMT_DIST '
and xdl.source_distribution_id_num_1 = AP_PAYMENT_HIST_DISTS.payment_hist_dist_id
---------------
xdl.source_distribution_type = 'AP_INV_DIST'
and xdl.source_distribution_id_num_1 = AP_INVOICE_DISTRIBUTIONS_ALL.invoice_distribution_id
and xdl.source_distribution_id_num_1 = AP_INVOICE_DISTRIBUTIONS_ALL.invoice_distribution_id
---------------
xdl.source_distribution_type = 'AR_DISTRIBUTIONS_ALL'
and xdl.source_distribution_id_num_1 = AR_DISTRIBUTIONS_ALL.line_id
and xdl.source_distribution_id_num_1 = AR_DISTRIBUTIONS_ALL.line_id
and AR_DISTRIBUTIONS_ALL.source_id = AR_RECEIVABLE_APPLICATIONS_ALL.receivable_application_id
---------------
xdl.source_distribution_type = 'RA_CUST_TRX_LINE_GL_DIST_ALL'
---------------
xdl.source_distribution_type = 'RA_CUST_TRX_LINE_GL_DIST_ALL'
and xdl.source_distribution_id_num_1 = RA_CUST_TRX_LINE_GL_DIST_ALL.cust_trx_line_gl_dist_id
---------------
xdl.source_distribution_type = 'MTL_TRANSACTION_ACCOUNTS'
and xdl.source_distribution_id_num_1 = MTL_TRANSACTION_ACCOUNTS.inv_sub_ledger_id
xdl.source_distribution_type = 'MTL_TRANSACTION_ACCOUNTS'
and xdl.source_distribution_id_num_1 = MTL_TRANSACTION_ACCOUNTS.inv_sub_ledger_id
---------------
xdl.source_distribution_type = 'WIP_TRANSACTION_ACCOUNTS'
and xdl.source_distribution_id_num_1 = WIP_TRANSACTION_ACCOUNTS.wip_sub_ledger_id
xdl.source_distribution_type = 'WIP_TRANSACTION_ACCOUNTS'
and xdl.source_distribution_id_num_1 = WIP_TRANSACTION_ACCOUNTS.wip_sub_ledger_id
---------------
xdl.source_distribution_type = 'RCV_RECEIVING_SUB_LEDGER'
and xdl.source_distribution_id_num_1 = RCV_RECEIVING_SUB_LEDGER.rcv_sub_ledger_id
xdl.source_distribution_type = 'RCV_RECEIVING_SUB_LEDGER'
and xdl.source_distribution_id_num_1 = RCV_RECEIVING_SUB_LEDGER.rcv_sub_ledger_id
Hi,
ReplyDeleteI have got error note , while doing the online create accounting for the payments from Payment workbench in Accounts payables r12.
This is the note:
--------------------------------------------
"APP-XLA-95103: An internal error occurred. Please
inform your system administrator or support representative that:
An internal error has occurred in the program
xla_events_pkg.ger_entity_id. No event exits
for the document represented by the source information "
--------------------------------------------
Please help out .
Thanks,
ANR.
Extremely Sorry for the late comment...
ReplyDeleteThis error usually comes for cancelled invoices with no distribution. Oracle has marked it as a bug and still working on it. You can Ignore the error message because Canceled Invoices with no distributions do not prevent closing and do not require accounting.
For more details, Refer to Metalink note- 458979.1
Thanks
Amit
Hi Amit.
ReplyDeleteHow to purge Draft accounting data in sla table?
Thanks
Casper
I'm seeing Inv_sub_ledger_id value populated in mtl_transaction_accounts, but could not find records in xla_distribution_links
ReplyDeletehi: when i transferred to gl tables from asset, there are transactions like "additions" or "depreciation" that appear in ststaus "P" what is the meaning this?, this transaction not appear in gl tables, why?, thanks. Brenda.
ReplyDeleteStatus P means your accounting is Final. Have you run Transfer to GL program. Also check,
ReplyDeletexla_ae_headers.accounting_entry_status_code is F, xla_events.process_status_code is P and event_status_code is P
xte.source_id_int_1 =
ReplyDelete'INVOICE_ID' or
'CHECK_ID' or
'TRX_NUMBER'
are sure about 'TRX_NUMBER'
may be CUSTOMER_TRX_ID?
Yes correct, thanks for the input...i have modified the post now...
ReplyDeleteAmit
Hi Amit,
ReplyDeletewhile joing AR/XLA/GL , I'm using (XLA headers & Lines) but not sure about Distribution links table and Transaction Entities table.
As asked above on XLA (Dist links & Transaction Entities) table, what is difference b/w two tables, which table is used to join GL
ReplyDeleteTim.
XLA_DISTRIBUTION_LINKS stores the link between transactions and subledger journal entry lines. There is a one-to-many relationship between the subledger lines and distribution links. The transaction is stored in the columns UNROUNDED_ENTERED_DR, UNROUNDED_ENTERED_CR, UNROUNDED_ACCOUNTED_CR & UNROUNDED_ACCOUNTED_DR.
ReplyDeleteIf xla_distribution_links table is confusing, use xla_events table with below joins
gl_je_lines (je_header_id, je_line_num) -> gl_import_references (je_header_id, je_line_num)
gl_import_references (gl_sl_link_table, gl_sl_link_id) -> xla_ae_lines (gl_sl_link_table, gl_sl_link_id)
xla_ae_lines (applicaiton_id, ae_header_id) -> xla_ae_headers (application_id, ae_header_id)
xla_ae_headers (application_id, event_id) -> xla_events (application_id, event_id)
xla_events (application_id, entity_id) -> xla.xla_transaction_entities (application_id, entity_id)
Hi Amit-san,
ReplyDeleteThanks for sharing this information! This information is very timely and useful for me!
There is small mistake in the join conditions. Could you check once again
ReplyDeletexah.ae_line_num = xdl.ae_line_num
I dont think you will have AE_LINE_NUM column in XLA_AE_HEADERS. I think it is XLA_AE_LINES. Might be type. See if you can correct it.
Hi,
ReplyDeleteI need to add 2 Parameters(Vendor - currency) to Account Analysis Report can u provide me with steps
Hi,
ReplyDeleteHow the PO related tables linked to XLA tables?
Please suggest me......
Thanks,
Hi,
ReplyDeleteI need to create a Prepayment Balance report using
XLA_DISTRIBUTION_LINK,
XLA_AE_LINES,
XLA_AE_HEADERS,
AP_INVOICES_ALL,
AP_SUPPLIERS,
GL_CODE_COMBINATIONS.
The output should be Prepayment Balances grouped by AP_SUPPLIERS.VENDOR_NAME, AP_INVOICES_ALL.INVOICE_NUM.
I linked AP_INVOICES_ALL to XLA_DISTRIBUTIONS using invoice_id and applied_to_source_id_num_1 respectively. But, the output was wrong and I was advised to use ALLOC_TO_SOURCE_ID_NUM_1. What is the difference? Why would I use it?
Below is the query I wrote (which doesn't work).
SELECT aps.vendor_name VENDOR_NAME,
invoice.invoice_num,
SUM(AEL.ACCOUNTED_CR) - SUM(AEL.ACCOUNTED_DR) BALANCE
FROM xla.xla_distribution_links xld,
xla.xla_ae_headers aeh,
xla.xla_ae_lines ael,
ap.ap_invoice_distributions_all dist,
ap.ap_invoices_all invoice,
AP.AP_SUPPLIERS aps,
GL.GL_CODE_COMBINATIONS codecomb
WHERE XLD.APPLIED_TO_SOURCE_ID_NUM_1 = INVOICE.INVOICE_ID
AND AEH.AE_HEADER_ID = XLD.AE_HEADER_ID
AND AEL.AE_LINE_NUM = XLD.AE_LINE_NUM
AND AEL.AE_HEADER_ID = AEH.AE_HEADER_ID
AND invoice.vendor_id = aps.vendor_id
AND CODECOMB.CODE_COMBINATION_ID = DIST.DIST_CODE_COMBINATION_ID
AND CODECOMB.SEGMENT1 like '13%' --account segment
--AND INVOICE.INVOICE_NUM = '30'
--AND xld.APPLICATION_ID = 200
AND AEH.BALANCE_TYPE_CODE like 'A%'
-- AND aps.vendor_name like '%company_name%'
GROUP BY aps.vendor_name,
invoice.invoice_num
HAVING( SUM(AEL.ACCOUNTED_CR) - SUM(AEL.ACCOUNTED_DR) )<>0
And this is the one that does.
ReplyDeleteSELECT SUP.VENDOR_NAME,
API.INVOICE_NUM,
SUM (NVL (AEL.ACCOUNTED_DR, 0) - NVL (AEL.ACCOUNTED_CR, 0)) "BALANCE"
FROM xla.xla_ae_lines AEL,
xla.xla_ae_headers AEH,
---------------------------------------------------------
(SELECT XDL.AE_HEADER_ID,
XDL.AE_LINE_NUM,
XDL.APPLIED_TO_SOURCE_ID_NUM_1,
XDL.ALLOC_TO_SOURCE_ID_NUM_1,
APSI.INVOICE_NUM "ALLOC_TO_INVOICE_NUM",
XDL.EVENT_CLASS_CODE
FROM APPS.XLA_DISTRIBUTION_LINKS XDL, AP.AP_INVOICES_ALL APSI
WHERE XDL.APPLICATION_ID = 200
AND XDL.EVENT_CLASS_CODE IN
('PREPAYMENTS', 'PREPAYMENT APPLICATIONS')
AND XDL.ROUNDING_CLASS_CODE = 'PREPAID_EXPENSE'
AND XDL.ALLOC_TO_SOURCE_ID_NUM_1 = APSI.INVOICE_ID
GROUP BY XDL.AE_HEADER_ID,
XDL.AE_LINE_NUM,
XDL.APPLIED_TO_SOURCE_ID_NUM_1,
XDL.ALLOC_TO_SOURCE_ID_NUM_1,
APSI.INVOICE_NUM,
XDL.EVENT_CLASS_CODE
) dl, --------------VERY IMPORTANT---------------
-----------------------------------------------------------
GL.GL_CODE_COMBINATIONS CC,
AP.AP_SUPPLIERS SUP,
AP.AP_INVOICES_ALL API
WHERE aeh.balance_type_code = 'A'
AND aeh.ae_header_id = ael.ae_header_id
---hh
AND aeh.ae_header_id = DL.ae_header_id
AND ael.ae_line_num = DL.ae_line_num
--
AND ael.ledger_id = 2022
AND ael.code_combination_id = CC.CODE_COMBINATION_ID
AND DL.APPLIED_TO_SOURCE_ID_NUM_1 = API.INVOICE_ID --------------VERY IMPORTANT-----------------
AND CC.SEGMENT1 = '131061'
AND AEL.PARTY_ID = SUP.VENDOR_ID
AND SUP.VENDOR_NAME = 'BETEKO GROUP MMC'
AND TRUNC (AEH.ACCOUNTING_DATE) <= TO_DATE ('31-DEC-2012', 'DD-MON-YYYY')
GROUP BY API.INVOICE_NUM, SUP.VENDOR_NAME
HAVING SUM (NVL (AEL.ACCOUNTED_DR, 0) - NVL (AEL.ACCOUNTED_CR, 0)) <> 0
Here, they used a different method. Two tables, AP_INVOICES_ALL and XLA_DISTRIBUTION_LINKS are first joined using ALLOC_TO_SOURCE_ID_NUM_1 in the inline query. Afterwards, in the main query, APPLIED_TO_SOURCE_ID_NUM is used.
Could you please explain the problem here?
My client a Health insurance company would like to connection it business System directly via SLA without using any any standars subledger. Anyone has alreday implemented that?
ReplyDeleteIf the source is Projects how would PJB_REV_DISTRIBUTIONS and PJC_COST_DIST_LINES_ALL each join to the SLA tables?
ReplyDelete