Uploaded by marko.krneta

Oracle Sub-Ledger Accounting - Technical Overview

advertisement
Oracle Sub-Ledger Accounting
Technical Overview
David Taylor
29th June 2012
Contents
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Subsidiary Ledgers and General Ledger
General Ledger
Sub-Ledgers (AP, AR, …)
Basic Transaction Accounting
View Accounting in Oracle eBs Suite
Sub-ledger to GL Transfer
Oracle GL to Sub-ledger Drill-down
Oracle SLA Data Model
SQL example: GL to AP Drill-down Query
Questions
1. Subsidiary Ledgers and General Ledger
Oracle GL
•
•
Journals
Journal Lines
Manual Journals
Oracle Sub-ledger Accounting (SLA)
Oracle AP
•
•
•
•
Supp Invoices
Invoice Lines
Invoice Distrib’s
Payments
Oracle AR
•
•
•
•
•
Customer Trx
Trx Lines
Trx Distrib’s
Receipts
Adjustments
Oracle Payroll
Oracle FA
2. General Ledger
o
GL is the “truth”, since statutory financial and management reporting is based on GL data
o
GL data structure is very simple…
o
o
Journal Lines consist of:
• An amount (DR or CR)
• A transaction currency
• A date
• An account code combination
…which mirrors the principal properties of a GL set-of-books (or “Ledger”):
• A currency (known as the “functional” currency)
• A calendar
• A chart-of-accounts (a scheme to classify amounts of money moving around the business)
o
Journal lines are grouped together under Journal Headers and Journal Batches
o
By convention, a GL “amount” (or “balance”) is calculated as DR minus CR
o
The GL amounts are shown in two sets of columns:
• Entered Amounts
• Accounted Amounts
(in the transaction currency)
(in the functional currency – i.e. the set-of-books, or “ledger”, currency)
o
GL reports should always display amounts in the functional currency.
o
Never perform exchange rate calculations in a custom report!
3. Sub-Ledgers (AP, AR, …)
o
A sub-ledger is used…
• To manage transactional processing (e.g. recording and payment of supplier invoices)
• To assign GL account code combinations to transaction amounts (at transaction-distribution-level)
o
Accounting information is transferred to General Ledger to support financial statutory and management reporting
4. Basic Transaction Accounting
o
Accounts Payable (AP)
Transaction
Level
DR / CR
Account Type
Invoice
Header
CR
Liability
Distribution
DR
Expense
Distribution
DR
Tax
Header
DR
Liability
Distribution
CR
Expense
Distribution
CR
Tax
Header
CR
Liability
Distribution
DR
Prepaid Expense
Distribution
DR
Tax
Header
DR
Liability
Header
CR
Cash Clearing
Header
DR
Cash Clearing
Header
CR
Cash
Credit Note
Prepayment
Payment
Reconciled Payment
Basic Transaction Accounting (cont)
o
Accounts Receivable (AR)
Transaction
Level
DR / CR
Account Type
Invoice
Header
DR
Receivables (Trade Debtors)
Distribution
CR
Revenue
Distribution
CR
Tax
Header
CR
Receivables (Trade Debtors)
Distribution
DR
Revenue
Distribution
DR
Tax
Header
CR
Receivables (Trade Debtors)
Header
DR
Write Off/Bad Debt
Credit Memo
Adjustment
Basic Transaction Accounting (cont)
o
Accounts Receivable (AR), continued
Transaction
Level
DR / CR
Account Type
Misc Cash Receipt
Header
CR
Receivables (Activity)
Header
DR
Cash Clearing
Header
DR
Receivables (Activity)
Header
CR
Cash Clearing
Header
DR
Cash Clearing
Header
CR
Unidentified
Header
or CR
Unapplied
Header
or CR
On Account
Header
or CR
Receivables (Trade Debtors)
Header
CR
Cash Clearing
Header
DR
Cash
Misc Cash Payment
Cash Receipt
Reconciled Cash Receipt
5. View Accounting in Oracle eBs Suite
o
When viewing the sub-ledger transaction, use the “Tools” or “Reports” menu.
o
E.g. for an AP invoice, with the following invoice distributions…
o
Reports > View Accounting…
Note: Oracle SLA has prorated the Liability amount across item and tax lines
6. Sub-ledger to GL Transfer
o
Accounted amounts can be transferred to Oracle GL in Detail or Summary mode.
o
In Detail mode:
• Each sub-ledger transaction header or distribution is used to create a corresponding journal line
• There is a one-to-one relationship between the sub-ledger accounting entry, and the GL journal line
• GL stores some of the sub-ledger transaction information (invoice number, etc) in the REFERENCE_x columns of
the GL_JE_LINES table
o
In Summary mode
•
•
•
•
For a given journal header, a single journal line is created per unique account code combination
There is a many-to-one relationship between the sub-ledger accounting entry, and the GL journal line
In this case, GL cannot store sub-ledger transaction information in the GL_JE_LINES table
A GL report which relies on the REFERENCE_x columns of the GL_JE_LINES table cannot provide transaction info if
accounting is transferred to GL in Summary mode
• Detail transaction information can only be derived by connecting from GL to sub-ledger transaction tables
(AP_INVOICES_ALL, AP_INVOICE_DISTRIBUTIONS_ALL, etc.)
7. Oracle GL to Sub-ledger Drill-down
o
In R12 Oracle eBs, drill-down from GL to all sub-ledger modules (AP, AR, etc.) proceeds via Oracle Sub-Ledger Accounting
(SLA) database tables, in the XLA database schema.
o
As part of the R12 upgrade process, the XLA tables are populated for all R11 transactions.
o
Beware! There may be some (old) historical transactions which are not in XLA.
Oracle GL to Sub-ledger Drill-down
o
Resp: GL Administrator, Nav: Inquiry > Account. Click on “Show Journal Details”, and then on “Show Full Journal”:
Oracle GL to Sub-ledger Drill-down
o
The Line Drilldown shows the multiple SLA lines corresponding to the single GL journal line (since transfer to GL was
carried out in Summary mode):
o
The View Transaction button takes the user to the Sub-Ledger transaction which generated the accounting line (an AP
Invoice, in this case)
8. Oracle SLA Data Model
Oracle Sub Ledger (E.g. Payables)
AP_INVOICES_ALL
Oracle Sub Ledger Accounting (SLA)
Oracle General Ledger
XLA.XLA_TRANSACTION_ENTITIES
GL_JE_BATCHES
XLA_EVENTS
GL_JE_HEADERS
XLA_AE_HEADERS
GL_JE_LINES
SUMMARISED
AP_INVOICE_LINES_ALL
XLA_AE_LINES
AP_INVOICE_DISTRIBUTIONS_ALL
XLA_DISTRIBUTION_LINKS
GL_IMPORT_REFERENCES
9. SQL: GL to AP Drill-down Query
SELECT *
FROM
gl_je_batches
gjb
,
gl_je_headers
gjh
,
gl_je_lines
gjl
,
gl_period_statuses
gps
,
gl_code_combinations
gcc
,
gl_import_references
gir
,
xla_ae_lines
xal
,
xla_ae_headers
xah
,
xla.xla_transaction_entities xte -- must use XLA base table, not APPS synonym
,
xla_distribution_links
xdl
,
ap_invoice_distributions_all aida
,
ap_invoices_all
aia
WHERE 1 = 1
-- identify GL journal lines
AND
gps.application_id = 101
AND
gps.ledger_id = 1
AND
gps.effective_period_num >= &P_EFF_PERIOD_NUM_FROM
AND
gps.effective_period_num <= &P_EFF_PERIOD_NUM_TO
AND
gjb.je_batch_id = gjh.je_batch_id
AND
gjh.period_name = gps.period_name
AND
gjh.ledger_id = gps.ledger_id
AND
gjh.status = 'P'
AND
gjh.actual_flag = 'A'
AND
gjh.je_source = 'Payables'
AND
gjcv.je_category_key(+) = gjh.je_category
AND
gjh.je_header_id = gjl.je_header_id
AND
gjl.code_combination_id = gcc.code_combination_id
AND
gcc.summary_flag = 'N'
GL to AP Drill-down Query (cont)
-- join GL journal line to SLA headers and lines
AND
NVL(gir.je_batch_id,-1) = NVL(gjh.je_batch_id,-1)
AND
gir.je_header_id = gjh.je_header_id
AND
gir.je_line_num = gjl.je_line_num
AND
gir.gl_sl_link_table = xal.gl_sl_link_table
AND
gir.gl_sl_link_id = xal.gl_sl_link_id
AND
gcc.code_combination_id = xal.code_combination_id
AND
xah.ae_header_id = xal.ae_header_id
AND
xah.application_id = xal.application_id
AND
xah.gl_transfer_status_code = 'Y'
-- join SLA header to subledger transaction header
AND
xah.entity_id = xte.entity_id
AND
xte.application_id = xah.application_id
AND
xte.entity_code = 'AP_INVOICES'
AND
aia.invoice_id = xte.source_id_int_1
-- join SLA line to SLA distributions, if they exist
AND
xal.ae_header_id = xdl.ae_header_id(+)
AND
xal.ae_line_num = xdl.ae_line_num(+)
AND
xal.application_id = xdl.application_id(+)
AND
xah.event_id = NVL(xdl.event_id,xah.event_id)
-- join SLA distribution to subledger tranaction distribution
AND
xdl.source_distribution_type(+) = 'AP_INV_DIST'
AND
xdl.source_distribution_id_num_1 = aida.invoice_distribution_id(+)
-- join to other subledger transaction information
AND
aia.invoice_id = NVL(aida.invoice_id,aia.invoice_id)
AND
aia.org_id = NVL(aida.org_id,aia.org_id)
GL Jnl Line to
Import Refs
Import Refs to
SLA Line
SLA Line to
SLA Header
SLA Header to
Trx Header
SLA Line to
SLA Dist
SLA Dist to
Trx Dist
Other SL Joins
XLA_TRANSACTION_ENTITIES
o
The following transaction entities are commonly used…
ENTITY_CODE
SOURCE_ID_INT_1 joins to…
AP_INVOICES
AP_INVOICES_ALL.INVOICE_ID
AP_PAYMENTS
AP_CHECKS_ALL.CHECK_ID
TRANSACTIONS
RA_CUSTOMER_TRX_ALL.CUSTOMER_TRX_ID
RECEIPTS
AR_CASH_RECEIPTS_ALL.CASH_RECEIPT_ID
ADJUSTMENTS
AR_ADJUSTMENTS_ALL.ADJUSTMENT_ID
DEPRECIATION
FA_BOOKS.ASSET_ID
ASSIGNMENTS
PAY_ASSIGNMENT_ACTIONS.ASSIGNMENT_ACTION_ID
o
All eBs entity codes, and their descriptions, are listed in XLA_ENTITY_TYPES_TL.
o
Mappings from XLA_TRANSACTION_ENTITIES to sub-ledger transaction tables for all entity codes are listed in
XLA_ENTITY_ID_MAPPINGS.
o
A GL to Sub-ledger Drill-down report will require one query per transaction entity, and the separate queries joined by
UNION ALL.
XLA_DISTRIBUTION_LINKS
o
The following distribution types are commonly used…
SOURCE_DISTRIBUTION_TYPE
SOURCE_DISTRIBUTION_ID_NUM_1 joins to…
AP_INV_DIST
AP_INVOICE_DISTRIBUTIONS_ALL.INVOICE_DISTRIBUTION_ID(+)
AP_PMT_DIST
AP_PAYMENT_HIST_DISTS.PAYMENT_HIST_DIST_ID(+)
RA_CUST_TRX_LINE_GL_DIST_ALL
RA_CUST_TRX_LINE_GL_DIST_ALL.CUST_TRX_LINE_GL_DIST_ID(+)
AR_DISTRIBUTIONS_ALL
AR_DISTRIBUTIONS_ALL.LINE_ID(+)
More…
o
If the XLA_DISTRIBUTION_LINKS table is used, all amounts should be taken from the UNROUNDED_ACCOUNTED_DR /
CR and UNROUNDED_ENTERED_DR / CR columns.
o
Since some accounting does not originate from transaction distributions (such as INTRA or INTER company accounting),
the XLA_DISTRIBUTION_LINKS table should be outer-joined to the main query.
Questions, questions?
Download