Documente Academic
Documente Profesional
Documente Cultură
Larry Baugh
Apps Ingenuity LLC
April 24,2012
Introduction
Larry Baugh
• 13+ years Oracle Federal Financials Functional/Technical/Mgmt Experience
• Emphasis Areas: GL, Budget Execution, Fed Admin (FV), AR, AP, IBY, FA,
Fed Reporting, PA, PO, iProc, Proc Contracts, XLA, XML/BI Publisher,
Discoverer, SQL, PL/SQL, etc.
• Sample Federal Customers: DOI-NBC, USAF/USTRANSCOM-DEAMS,
DFAS, TMA, SBA, Other DOE, DoD, and misc Federal Civilian entities.
• Recent Role: Solution Architect/Co-PM for US Dept. of Interior National
Business Center (DOI-NBC) Shared Services Environment Release 12.1.3
Upgrade (Go-Live = Feb ‘12).
Agenda
• SLA Intro: What is SLA? How is SLA invoked? What does the Engine Do?
• SLA Rules Configuration Framework, the Accounting Methods Builder
• Event Processing – Which components are applicable When?
• Other Key AMB Components
• SLA Sources and Custom Sources
• Accounting Attributes & other Journal Line Type Pieces
• Account Derivation Rules
• SLA Debugging and Accounting Event/Entry Analysis
• Accounting Methods Builder Context Goal: To familiarize attendees with the
• 11i vs R12 GL Drilldown differences internals of Federal SLA, enabling
• SLA vs XLA vs FAH enhanced capabilities for troubleshooting
• GL Transfer Summarization Level in R12 and maintaining Agency-specific SLA
• Takeaways Configurations.
What is SubLedger Accounting (SLA)
• A centralized, rules-based accounting engine/service utilized throughout R12 to
create an agency’s required USSGL accounting entries.
• A schema and toolset to support various features including enhanced
drilldown/reconciliation between the GL/Subsidiary modules and additional
reporting capability around accounting transactions/balances.
FV PO AP PA AR FA
XLA
GL
Primary Ledger
• Funds Check actions will create the SLA entries in a temporary ‘Draft’ status.
• Funds Reservation actions will create the SLA entries in a ‘Final’ status.
What does the SLA Engine do?
As the SLA engine processes, it:
• Creates the appropriate accounting entries from defined
SLA rules consisting of key attributes including base
CCIDs, Natural Account Segments, Accounted/Entered
Dr/Cr, Journal Line Descriptions, etc.
Which
AAD?
Which
Event Class?
Which
JLD(s)?
Which
JLTs?
Which
ADRs?
SLA Processing – What’s Applicable When?
Factors that control which JLTs/ADRs are applicable and fire for specific transaction events:
• Module of the transaction: Controls which AAD of the SLAM will be evaluated
• SLA Event Class/Type of the transaction: Controls which JLD(s) of the AAD will be
evaluated
• Is the transaction subject to Budgetary Control: Controls which JLD(s) of the AAD will
be evaluated
• JLT Conditions: Once the SLA Event processing identifies a transaction as applicable to a
JLD, the SLA engine will evaluate the transaction attributes against all the JLT conditions
within the JLD to determine which JLTs will fire for the transaction.
• ADR Conditions: For all JLTs turned on, the mapped ADRs will then be evaluated based
on their conditions.
Which
AAD, Event Class, JLD(s), JLTs, ADRs?
SLA Event Processing – Which EventType?
The method of associating a specific SLA Event Type code to a transaction differs between
modules, but there is no straight-forward way of precisely mapping the SLA Event Type Codes
to typical transaction events. However, the Event Type Codes/Names are mostly
understandable.
SLA Event Processing – Which EventType?
Example: For Purchasing, Event_Type_Codes for PO Transactions are created by the
po_encumbrance_postprocessing.get_event_and_entity_codes procedure which is executed
by a Purchasing Funds Check/Reserve action, just prior to a call to SLA Event Processing.
IF (p_action = g_action_RESERVE) THEN
PROCEDURE get_event_and_entity_codes( l_action_str := 'RESERVED';
p_doc_type IN VARCHAR2, ELSIF (p_action = g_action_UNRESERVE) THEN
p_doc_subtype IN VARCHAR2, l_action_str := 'UNRESERVED';
p_action IN VARCHAR2, ELSIF (p_action = g_action_ADJUST) THEN
x_entity_type_code OUT NOCOPY VARCHAR2, l_action_str := 'ADJUSTED';
x_event_type_code OUT NOCOPY VARCHAR2 ELSIF (p_action = g_action_CANCEL) THEN
) l_action_str := 'CANCELLED';
IS ELSIF (p_action = g_action_FINAL_CLOSE) THEN
… l_action_str := 'FINAL_CLOSED';
IF (p_doc_type = 'REQUISITION') THEN ELSIF (p_action = g_action_UNDO_FINAL_CLOSE) THEN
x_entity_type_code := 'REQUISITION'; l_action_str := 'UNDO_FINAL_CLOSED';
l_entity_str := 'REQ'; ELSIF (p_action = g_action_REJECT) THEN
ELSIF (p_doc_type IN ('PO','PA')) THEN l_action_str := 'REJECTED';
x_entity_type_code := 'PURCHASE_ORDER'; ELSIF (p_action = g_action_RETURN) THEN
l_entity_str := 'PO_PA'; l_action_str := 'RETURNED';
ELSIF (p_doc_type = 'RELEASE') THEN -- Bug 4684263 Begin
x_entity_type_code := 'RELEASE'; -- Bug 5015010 ELSIF (p_action = g_action_INVOICE_CANCEL) THEN
l_entity_str := 'RELEASE'; l_action_str := 'INV_CANCELLED';
ELSE ELSIF (p_action = g_action_CR_MEMO_CANCEL) THEN
l_error_flag := 'Y' ; l_action_str := 'CR_MEMO_CANCELLED';
END IF;
x_event_type_code := l_entity_str||'_'||l_action_str;
SLA Event Processing – Which EventType?
SLA Event Classes and Types
are seeded and not modifiable
for standard E-Business Suite
transactions.
Functionally, the
conditions make sense
in the Federal
environment, but fully
understanding the
values represented by
the sources requires
more digging into SLA
Sources.
SLA Sources
Sources are R12 data elements that can be used in AMB rule definition. Sources
are assigned to the Event Classes they are applicable to. R12 provides thousands
of seeded sources and also provides the capability for Custom Sources.
SLA Sources
SLA Sources map to columns of database views. These views represent numerous data
elements directly related to or derivable from a transaction and its data attributes
% _extract_%v Views: Fv_xla% _ref_%v Views:
e.g. e.g.
Source_Code Source Name PO_DISTS_REF_V Column
PO_EXTRACT_HEADER_V FV_XLA_PO_REF_V PO_DISTRIBUTION_ID PO Distribution Identifier PO_DISTRIBUTION_ID
PO_EXTRACT_DETAIL_V FV_XLA_AP_REF_V
PO_DISTS_REF_V PO_DISTRIBUTION_NUMBER PO Distribution Number PO_DISTRIBUTION_NUMBER
PO_SHIPMENT_NUMBER PO Shipment Number PO_SHIPMENT_NUMBER
PO_LINE_ID PO Line Identifier PO_LINE_ID
PO_HEADER_ID PO Header Identifier PO_HEADER_ID
EBS Core PO_DISTRIBUTION_TYPE PO Distribution Type PO_DISTRIBUTION_TYPE
Tables PO_LINE_LOCATION_ID PO Line Location Identifier PO_LINE_LOCATION_ID
GL_DATE Gl Date GL_DATE
FV_EXTRACT_DETAIL_GT_Logs
SLA Sources
To 100% understand the driving field or logic behind the seeded SLA
Sources, the source’s extract object view needs to be interrogated and
in some cases, PL/SQL needs to be searched to understand the data’s
origination.
SLA Sources
In the case of our Federal Prior Year Source, the originating source is the
fv_sla_utl_processing_pkg.get_prior_year_status procedure. The
fv_sla_utl_processing_pkg is triggered by a series of “hooks” originating from the
xla_accounting_pkg.
The procedure compares the period_year of
create or replace
PACKAGE BODY fv_sla_utl_processing_pkg the current transaction’s GL Date versus the
AS
….. BFY on the transaction to determine if the
PROCEDURE get_prior_year_status
( BFY is Prior Year.
p_application_id IN NUMBER,
p_ledger_id IN NUMBER,
p_bfy_value IN VARCHAR2,
p_gl_date IN DATE, Note: If the GL Date Year is not setup in the
p_pya OUT NOCOPY VARCHAR2,
p_pya_type OUT NOCOPY VARCHAR2, FV Define Federal Options form (aka BFY
p_error_code OUT NOCOPY NUMBER,
p_error_desc OUT NOCOPY VARCHAR2 Mapping table), the procedure will throw an
)
exception, preventing SLA Entry creation.
Custom Sources
Although thousands of seeded SLA Sources are available, the potential exists that
some data attribute desired for use may not be available as a seeded source. R12
provides the capability for developing custom PL/SQL functions that can then return
values to be used as sources.
• Try to standardize on input Sources that are consistently solid & code from there.
Many sources are null, depending on the transaction (even sources like Ledger_ID)
• Keep as simple and high performing as possible.
• Version control the code.
JLT Components – Accounting Attributes
All JLTs must include Accounting Attribute Assignments. The Accounting Attribute
Assignments are used to populate numerous columns in the XLA_AE_LINES,
XLA_DISTRIBUTION_LINKS and GL_JE_LINES depending on the accounting entry
summarization level utilized.
For example, the value for the SLA Source
mapped to the ‘Accounted Amount’ will be the
Accounted_Dr or Accounted_Cr amount
created in XLA_AE_LINES/GL_JE_LINES if
detail level summarization is utilized.
This is due to the lack of a SLA Historical Upgrade process for pre-R12 entries
created by USSGL Transaction Codes.
Account Derivation Rules (ADRs)
Once the SLA engine determines a JLT
will be invoked for an event, the ADRs
provide the framework for creating the
Code Combination ID (CCID) or Line of
Accounting the JLT that will be posted.
Additional segment ADRs, i.e. SGL or Natural Account, can then be mapped and
configured to override the basline CCID values for the applicable segment.
Account Derivation Rules (ADRs)
Conditions based on SLA
Sources are the key
components that drive ADR
value selection, just like JLTs
Journal Line Descriptions
As desired, R12 supports flexible configuration of constant text and dynamic source
values to be included in the SLA and GL journal header & line description fields.
Mapping Components to Charts of Accounts
Most AMB Components may be mapped to a Transaction and Accounting Chart of
Accounts.
Mapping Components to a
Transaction Chart of Accounts
allows for:
• In the case of JLTs, ADRs and
Line Descriptions, non-qualified
Flexfield Segments (i.e. not the
balancing, natural, cost center,
etc. segments), become
available for use as sources.
Mapping Components to Charts of Accounts
Mapping JLDs to an Accounting Chart of Accounts value provides the capability to
include ADRs for non-qualified segments.
Vs.
Mapping Components to Charts of Accounts
The primary downside of mapping AMB Components to Transaction and
Accounting Chart of Accounts values is that when multiple Chart of
Accounts are used in an environment, the AMB Components will need to
be duplicated.
2. When exceptions occur that prevent data from being committed to the XLA
tables for an event, the XLA actions can typically be caught by using standard
FND Debug functionality.
1. Turn on FND Debug at Statement Level (Profile Options)
2. Select Max(Log_Sequence) From Fnd_Log_Messages M
3. Execute XLA Action (e.g. Funds Check/Reserve, Create Acctg)
4. Extract the fnd_log_messages created
SLA Debugging and Analysis
3: Enable the FV: Debug Profile option to see the extract data populated during the
XLA event processing in fv_extract_detail_gt_logs. Querying this table is the best
method to see the FV source values derived for a transaction event.
4: Other extract
source values are
often written as
fnd_log_message
records during XLA
processing.
SLA Debugging and Analysis
Oracle also provides a standard SLA Diagnostics capability, which is helpful as long as
exceptions don’t prevent the processing data from being committed to the XLA tables.
e.g.
xla.plsql.XLA_AE_LINES_PKG.SetAcctLineType p_accounting_line_type_code = C- p_accounting_line_code= FV_RLS_RE_RES_OBL_UNPAID
xla.plsql.XLA_AE_LINES_PKG.SetDebitCreditAmounts Accounted_DR =
xla.plsql.XLA_AE_LINES_PKG.SetDebitCreditAmounts Accounted_CR = 239.97
xla.plsql.XLA_AE_LINES_PKG.SetAcctLineType p_accounting_line_type_code = C- p_accounting_line_code= FV_RLS_UNANTIC_BUD
xla.plsql.XLA_AE_LINES_PKG.SetDebitCreditAmounts Accounted_DR = 319.96
xla.plsql.XLA_AE_LINES_PKG.SetDebitCreditAmounts Accounted_CR =
xla.plsql.XLA_AE_LINES_PKG.SetAcctLineType p_accounting_line_type_code = C- p_accounting_line_code= XXNBC_FV_RLS_UNPAID_OBL_PYA
xla.plsql.XLA_AE_LINES_PKG.SetDebitCreditAmounts Accounted_DR =
xla.plsql.XLA_AE_LINES_PKG.SetDebitCreditAmounts Accounted_CR = 319.96
AMB Object Data Model
XLA – the application short name and prefix for the common
database schema/objects which support R12 SLA and FAH.
I asked (via SR) if Summarization was an option with R12. Support responded with
“Please note that irrespective of the Mode of Transfer (Detail or Summary), Drilldown
will work from GL to all the Subledgers that are using the SLA Engine.”
Analysis of some of the R12 FACTS & 224 code, showed that FV Reporting should
work with Summarized GL postings (since everything drills back through the
xla_distribution_links table).
In the environment I’ve been working in, GL Transfers are done every hour. Based on
the minimal additional GL Journal summarization that would have occurred due to
that, we just decided to stick with detail-level SLA and GL Journal entries.
Summary and Detail XLA/GL Posting in R12
In the SLA Configuration, there are 3 components which are factors in the SLA and GL
Line Summarization Level
1. JLT Merge Matching Lines option
2. JLT Transfer to GL option
3. Accounting Setup Manager: General Ledger Journal Entry Summarization Option
Using the ‘No Summarization’ option will result in GL Journal Entries (Headers)
being created for every individual XLA Event Id.
Key Takeaways
The introduction of SLA for Federal Financials, while much more flexible and
provides multiple benefits, is significantly more complex to implement,
maintain and troubleshoot than 11i USSGL Transaction Codes. Be prepared.
Due to the wide variety in transaction attributes and event actions that may result
in source value differences used in SLA conditions, significant SLA testing must be
robustly employed when initially implementing, changing or patching an agency’s
SLA Configuration.
Additional Resources
Various Oracle Docs:
Oracle® Subledger Accounting Implementation Guide, Oracle® Financials
Implementation Guide, Oracle® Financials Concepts Guide
Oracle® Applications Upgrade Guide, Oracle® Financials and Oracle Procurement
Functional Upgrade Guide
MOS Notes:
Note 396829.1: Oracle Subledger Accounting Documentation Resources, R12
Note 985539.1: R12 SLA: Subledger Accounting Reference Articles
The Seeded US Federal Accounting Method (FV Imp Guide)
Solution Beacon – R12 SLA: What It Is, What It Does, and How to Use It
Various R12 Blogs & R12 Apps Related Sites online (XLA, SLA, FAH)
http://sleemput.blogspot.com/
Thanks for attending
Larry Baugh
Larry.Baugh@AppsIngenuity.com
Blog - http://www.OracleFedApps.com
Twitter - @OracleFedApps
Be sure to check the blog for the latest version of this presentation
and other info!
Add’l session:
R12 Federal Financials Recent Enhancements and Upgrade Impacts
Wednesday, 25-April, 1PM, South Seas A