You are on page 1of 46

Reconcile Your Inventory to G/L Balances With Ease, From 1 to 1,000 Inventory

Organizations!
Douglas A. Volz
Douglas Volz Consulting, Inc.
www.volzconsulting.com
Collaborate14 Synopsis:
This paper is an updated version from Collaborate11, offering new insights from recent work experiences.
Learn about improvements in Release 12 Oracle Cost Management that help you reconcile your G/L to
your perpetual inventory balances. Identity additional R12 changes that may hinder this reconciliation as
well as common problems and workarounds. And for both Releases 11i and 12 learn how to use the
month-end cost snapshot to systematically compare your G/L to perpetual inventory balances. These
techniques work for Standard, Average, LIFO and FIFO Costing. Working SQL is included in this paper
and now includes specialized code for Cost Group accounting (WMS). These techniques also work for
Release 11i as well.

Introduction
With larger and larger Oracle implementation footprints, with more ledgers, operating units and inventory
organizations, the effort to compare and reconcile the General Ledger (G/L) to the perpetual inventory balances
rapidly may become unrealistic using the standard Oracle Reports.
This paper describes the standard tools to use in reconciling your G/L to your perpetual inventory balances and
challenges normally found during the reconciliation process, for both Releases 11i and 12. In addition, if you have
multiple inventory organizations, this paper also suggests custom approaches that may help you save significant
time at month-end. Learn from the experiences of Douglas Volz Consulting; Doug Volz is a former Cost
Accounting Manager who co-designed Oracle Cost Management, has implemented Oracle Applications in over 12
countries and leads the OAUG Cost Management Special Interest Group.
For further information, Doug may be reached at doug@volzconsulting.com (or www.volzconsulting.com).

Scope of this Paper


This paper covers the following objectives:

Understand the difficulties reconciling across the Oracle Receiving, Inventory, WIP and the G/L modules.

Learn about the standard tools and reports available in Release 11i and 12

Discuss how Release 12 both improves the ability to reconcile but also adds complexity

Learn about custom approaches to improve your G/L to inventory reconciliation for any Oracle Release

Discuss ways to use hidden information to systematically reconcile your G/L to perpetual balances

This paper addresses many of the underlying concepts for Inventory Perpetual to G/L reconciliation. However there
are two general areas not addressed:

Costing for Process Manufacturing. Solutions in this paper have not been used for Process
Manufacturing, as the Oracle Process Costing table structures and functionality are very different from
Oracle Cost Management for Discrete Costing.

Receiving perpetual balances. Oracle Cost Management does not create month-end receiving information
for the month-end cost snapshot. Consequently custom approaches for receiving reconciliation was not

COLLABORATE 14 OAUG Forum

Copyright 2011-2014 Douglas Volz Consulting, Inc.

Page 1 of 46

Reconcile Your Inventory to G/L Balances With Ease, From 1 to 1,000 Inventory
Organizations!
included in this paper; although Douglas Volz Consulting has created viable solutions for a receiving
month-end snapshot (store it during the period close process or create it on the fly using SQL logic), this
was left off to simplify the paper discussion.

Background for Inventory Manufacturing Reconciliation


Oracle Inventory, with Inventorys receiving capabilities, was first released around 1989, with Oracle Work in
Process soon afterwards. In Release 10 the receiving functionality was transferred to Oracle Purchasing, as well as
the related Inventory A/P Accrual functionality. During these early designs the Oracle development teams were
mandated to write all reports by single inventory organization, and only until Release 10.6 did multi-organization
functionality start to appear for Purchasing, A/P, A/R, and Order Management (by Operating Unit). Over time more
and more multi-org functionality become available, such as opening and closing inventory organizations by
organization hierarchy. But even with Release 12.1.x, now 20 years later, multi-org inventory, WIP and receiving
value reports do not exist (there is a multi-org perpetual quantity report since Release 11.0x). Subledger Accounting
can do much of its reporting by Ledgers or Ledger Sets, but this is only for accounting distributions. So although
the general suite of products has matured and added many valuable features, the ability to reconcile across
Receiving, Inventory, Work in Process and General Ledger modules has been a continuing point of contention.
The lack of reconciliation functionality continues into Release 12. In Release 12 you can report summaries of
account balances by Ledger or Ledger Set, but inherently there are no major changes to inventory, receiving or WIP
reporting since Release 10. Even with period-end snapshot improvements which started in Release 11i, there are
still no direct comparison reporting between the G/L and the inventory perpetual balances. And with Subledger
Accounting (also known as SLA) in Release 12, more things can go wrong, as you have the same underlying
processes to run as in Release 11i, but in addition you have to make sure the Subledger Accounting is working
correctly and did not fail to transfer the entries into the General Ledger.
The example as described in this paper gives you valuable insights into the reconciliation solutions. These solutions
have been used in Release 11i and 12, for both Average and Standard Costing, with some sites exceeding 120
inventory organizations and 16 Ledgers. Here is an example for ledgers, operating units and inventory organizations
where these solutions were put in place:
Corporate
Consolidated
Ledger

Corporate Consolidated Ledger


(USD)

Secondary
Ledger

Switzerland
(CHE)

European
LSPs
SLs
LSPs

Asia-Pac
LEs

Swiss PL
(USD)

European PL
(USD)

Legal Entity Korea LE

Asia-Pac
LEs

Swiss LE

Other
European
LEs

Operating
Unit

Asia-Pac
OUs

Switzerland
OU

Other
European
OUs

US OU

Asia-Pac
Dist. Centers

Swiss Dist.
Center

Europe
LSP Orgs

US LSP
Orgs

Switzerland
Org

Europe Dist.
Centers

US Dist.
Centers

Primary
Ledger

Korea
(KRW)

Korea OU

Inventory
Orgs
ORG
Korea
Item
Master
(ZZZ)

COLLABORATE 14 OAUG Forum

USA PL
(USD)

CORP
LE

Copyright 2011-2014 Douglas Volz Consulting, Inc.

Other
LEs

Page 2 of 46

Reconcile Your Inventory to G/L Balances With Ease, From 1 to 1,000 Inventory
Organizations!
Before the creation of these reconciliation solutions, the Cost Accounting departments assigned multiple people to
reconcile and identify differences and balances across Receiving, Inventory, WIP and the General Ledger. Now
with these solutions in place they can reconcile in less than one hour, with the initial differences identified in less
than 5 minutes, with the balance of time for researching the differences. This paper offers insights to how this was
accomplished.

Definitions
Inventory: per Wikipedia (http://en.wikipedia.org/wiki/Inventory), inventory is commonly used to
describe the goods and materials that a business holds for the ultimate purpose of resale (or repair). In the
context of the Oracle Applications this includes receiving, onhand (stock), intransit, and work in process
(or WIP) sub-classifications of inventory. For more information on inventory definitions see below:
o Intransit Inventory: goods being transferred from one location to another, typically on a ship,
airplane or truck. Title to the goods is based on the FOB (Free on Board) rules. For international
shipments or International Commercial Terms Incoterms define the trade terms, including FOB
point. For more information on Incoterms see http://en.wikipedia.org/wiki/Incoterms.
o Onhand Inventory: the goods held typically in a storeroom or some other form of building or
enclosed area. Onhand inventory may also be represented by the type of inventory (sometimes
called a logical grouping) such as Raw Materials, Sub-Assemblies, Material Review Board/MRB
and Finished Assemblies.
o Receiving Inventory: the goods held in receiving inspection, before being transferred into
onhand inventory or into WIP (for OSP services).
o Work in Process: goods and other factors of production used to make or repair assemblies.
There are many types of WIP, including Standard, Non-Standard and EAM (Maintenance).
Perpetual Inventory: Inventory value that moves in tandem with each material or WIP transaction, as
opposed to periodic inventory value that is measured at the end of the accounting period. So as each
material or WIP transaction is played in the Oracle Applications, the onhand quantities and WIP values
increase or decrease, and is represented in the perpetual (or constantly moving) inventory value.
Subledger Balances: the cumulative accounting balances from your accounting subledgers. Not to be
confused with perpetual inventory values. Release 12 has two accounting subledgers, the original material,
receiving and WIP accounting subledgers, as reported on the Material, Receiving and WIP Distribution
Accounting Reports, and, the Release 12 Subledger Accounting Reports, such as the Journal Entries Cost
Management Report, Account Balances Report or Account Analysis Report. When you Transfer to the
General Ledger (R11i) or run Create Accounting (R12) these accounting subledger entries are sent for
inclusion into your general ledger. Release 11i uses the original material, receiving and WIP accounting
subledgers and Release 12 adds an additional step and uses the R12 subledger entries from Subledger
Accounting (also know as SLA).
Monthly Accounting Activity: the sum of your accounting entries from the beginning day of the
accounting period up to and including midnight of the last day of the accounting period, as defined in your
accounting calendar
Cumulative G/L Balance: for balance sheet accounts, inception-to-date balance in your general ledger. If
all of your monthly accounting activity or entries has been transferred and included into your G/L, than the
addition of all of your monthly accounting activity from the beginning should agree to your cumulative G/L
balances.

General Reconciliation Principles & Requirements


As a general formula, when reconciling the receiving, inventory and WIP perpetual balances to your G/L, the
formula is:

Prior cum. balance + monthly accounting activity = month-end cumulative G/L balance

You then compare the above cumulative accounting balance to your perpetual valuation reports. If the perpetual
balances do not agree to your G/L, the most likely reasons are manual G/L journal entries and entries from other
subledgers. In Release 12 you would also check to ensure all receiving, material and WIP accounting entries have
COLLABORATE 14 OAUG Forum

Copyright 2011-2014 Douglas Volz Consulting, Inc.

Page 3 of 46

Reconcile Your Inventory to G/L Balances With Ease, From 1 to 1,000 Inventory
Organizations!
had Create Accounting run for them by running the Subledger Period Close Exceptions Report. This report will
show you if entries have not been transferred to the G/L or if there are any invalid subledger accounting entries.
Here is a sample worksheet illustrating these principles:

More Reconciliation Principles


Here are a few more concepts that may help.
1) Ignore minor rounding differences:

When the unit cost precision is higher than the currency decimal precision, you may have minor
rounding differences between the valuation reports and cumulative accounting totals

2) Start by comparing your inventory perpetual values to your G/L balances. Make this comparison after all
monthly accounting entries have been transferred to your G/L and dont waste time comparing to your
accounting subledger reports to your inventory perpetual values until you know you have a G/L difference to
find.
3) For Release 11i: Watch out for transaction & reporting cut-offs issues, as all of the inventory value reports
create real-time quantity and value information, based on when you run the reports
4) For Release 11i & 12 the Transaction Historical Summary Report has a rollback date and you can run this
report back to your month-end date to get an accurate month-end balance for your subinventories. The reports
are:

Transaction Historical Summary Report Standard Costing


Transaction Historical Summary Report Average Costing

Note: Release 12: All Inventory and Receiving Value Reports have an As of Date. So the
Release 11i report cut-off issues do not exist in Release 12.

Note: Release 12: Make sure you run Create Accounting after all inventory orgs are closed and
after all A/R invoicing is done. In Release 12 you have two layers of accounting entries. The
original ones from the prior release (material accounting distributions, WIP accounting
distributions, receiving accounting distributions), plus the Subledger Accounting entries from
COLLABORATE 14 OAUG Forum

Copyright 2011-2014 Douglas Volz Consulting, Inc.

Page 4 of 46

Reconcile Your Inventory to G/L Balances With Ease, From 1 to 1,000 Inventory
Organizations!
Release 12. Release 12 uses a separate Create Accounting processes to create the subledger
entries, and optionally, transfer these entries to the General Ledger at the same time. And
although this does not affect inventory reconciliation, you should run the COGS Recognition and
Create Accounting Processes after A/R is closed, to ensure the COGS clearing account(s) are
relieved and to properly record Cost of Goods Sold.

Note: Release 11i: Set the Cost Cut-Off Date to the first day of the next accounting period.
When you run the Inventory Value Report set Only valued transactions to No ensure a clean
month-end report with no reporting cut-off issues. Any transactions in the next accounting period
will not be costed and will not be included in the report.

General Reconciliation Requirements


To summarize, the general inventory reconciliation requirements are:
1) Be able to run perpetual inventory value reports for your month-end balances, across multiple inventory
organizations. Depending on your information security requirements, this could be by Operating Unit,
Ledger or Ledger Sets, as many client sites are trying to save costs and run their Cost Accounting by
region, sometimes even globally using a common Cost Accounting Department or team.
2) Be able to run summary accounting distribution reports by transaction date range, across multiple inventory
organizations. Depending on your information security requirements, this could be by Operating Unit,
Ledger or Ledger Sets, as many client sites are trying to save costs and run their Cost Accounting by
region, sometimes even globally.
3) Be able to run summary G/L inventory value reports for your respective inventory accounts, typically by
accounting period and journal source. Again, depending on your information security requirements, this
could be by Operating Unit, Ledger or Ledger Sets, as many client sites are trying to save costs and run
their Cost Accounting by region, sometimes even globally.
4) And lastly, be able to directly compare the G/L month-end balances with the month-end inventory
perpetual balances, to quickly identify the differences. Depending on your information security
requirements, this could be by Company accounting segment, Ledger or Ledger Sets, as many client sites
are trying to save costs and run their Cost Accounting by region, sometimes even globally

Standard Oracle Reconciliation Reports


If you only have a few inventory organizations the standard reports work quite well. Especially with important
improvements in Release 12 that eliminates reporting cut-off issues. The receiving, inventory and WIP accounting
entries and perpetual balances are managed and stored in different areas of the Oracle Applications.
Oracle Purchasing: has the receiving transactions, and related accounting entries for the receipt and inventory
accrual for inventory purchases. (Oracle Inventory has the purchasing delivery transaction, the delivery into the
subinventory from receiving inspection.) For Release 11i, the general ledger journal source is Purchasing with the
journal category of Accrual and Receipt. For Release 12 the general ledger journal source is Cost Management,
with the category of Receiving (for both the Receiving and Accrual entries can be confusing).
Oracle Inventory: holds the material transactions and related accounting entries for all material movement and
revaluation of onhand quantities. This includes issues to and from WIP, as well as intransit transactions. For
Release 11i the general ledger source is Inventory, with the journal category of MTL. For Release 12 the general
ledger journal source is Cost Management, with the journal category of Inventory.
Oracle Work In Process: has the WIP resource, outside processing, job close variances, expense job period close
variances, and WIP standard cost updates. The Release 11i general ledger journal source is Inventory, with the
journal category of WIP. For Release 12 the general ledger journal source is Cost Management, with the journal
category of WIP.

COLLABORATE 14 OAUG Forum

Copyright 2011-2014 Douglas Volz Consulting, Inc.

Page 5 of 46

Reconcile Your Inventory to G/L Balances With Ease, From 1 to 1,000 Inventory
Organizations!
For your accounting distributions, up to Release 11i you need to use three different reports to see receiving,
inventory and WIP accounting entries. In Release 12 you have basic subledger journal reports, but the level of detail
may cause you to go back to the Release 11i-based reports. For your receiving, inventory and WIP perpetual
balances, the Release 11i and Release 12 reports are nearly the same, but with an important difference for Release
12. In Release 12 you can run your valuation reports up to an as of date. Doing so eliminates reporting cut-off
issues with late transactions or with having multiple inventory accounting periods open at a time.

Standard Oracle Receiving Reconciliation Reports

Use the Receiving Value Report to get the month-end balances for both Releases 11i and 12. The
Receiving Value by Destination Account Report is only available in Release 11i; it was disabled in
Release 12; with Subledger Accounting the expense accounts in use may differ from what is stored on
your purchase order distributions and as a result this report was disabled to avoid Oracle support
issues. The Account Analysis Report was recommended as a replacement but this report does not
show you the perpetual balances for expenses in your receiving valuation accounts, only account
balances.
Use the Receiving Account Distribution Report for monthly increases to the Receiving Valuation
Account. The initial purchasing receipt debits the receiving valuation account and credits the accrual
reconciliation account (Inventory or Expense A/P Accrual Account). Note that no summary receiving
account report exists.
Use the Material Distribution Summary Report for monthly decreases to the Receiving Valuation
Account. The delivery into inventory debits your subinventory or organization accounts and credits
your receiving inspection account.
For Release 12 use the Journal Entries Cost Management Report to also get your monthly accounting
entries. The big advantage to using this report is that if you changed your standard subledger
accounting rules to change how you derive your accounts, this Release 12 report will reflect the
revised accounting distributions.

Caution: Unfortunately the Receiving Value Report no longer shows account numbers in Release 12
Caution: For both Release 11i and 12, the Receiving Account Distribution Report is only in detail,
and does not show the accounts used by Subledger Accounting, it only uses shows the default
receiving, accrual and expense accounts.
COLLABORATE 14 OAUG Forum

Copyright 2011-2014 Douglas Volz Consulting, Inc.

Page 6 of 46

Reconcile Your Inventory to G/L Balances With Ease, From 1 to 1,000 Inventory
Organizations!

Standard Oracle Inventory Reconciliation Reports

Use the Inventory Value Report to get your subinventory balances. In Release 12 the Inventory Value
Report also reports your Intransit quantities and values.
You can also use the All Inventories Value Report to get Receiving, Inventory/Subinventories and
Intransit on one report. For many clients this is the preferred perpetual valuation report.
Use the Material Distribution Summary Report for summarizing the monthly activity for material
movement for subinventories, WIP and deliveries from Receiving
You can also use the Transaction Historical Summary Report, in any Oracle Release to rollback to a
given date and get clean subinventory balances. The two available reports are:
o Transaction Historical Summary Report Standard Costing
o Transaction Historical Summary Report Average Costing
You can use the Period Close Value Report to get a quick summary by subinventory or by organization
You can also use the Period Close Reconciliation Report to compare your perpetual balances to your
cumulative material accounting entries for your subinventories and intransit balances. Unfortunately
this report is only single-org and also, includes all items in stock. So you get lots and lots of zero
balance items.
For Release 12 use the Journal Entries Cost Management Report to also get your monthly accounting
entries. The big advantage to using this report is that if you changed your standard subledger
accounting rules to change how you derive your accounts, this Release 12 report will have reflect the
revised accounting distributions.

Caution; Unfortunately the Inventory Value Report and the Intransit Value Report no longer shows
any account numbers in Release 12

Caution: The Material Distribution Reports do not show the accounts used by Subledger Accounting,
it only uses shows the default accounting as created by the Inventory Cost Processor.

COLLABORATE 14 OAUG Forum

Copyright 2011-2014 Douglas Volz Consulting, Inc.

Page 7 of 46

Reconcile Your Inventory to G/L Balances With Ease, From 1 to 1,000 Inventory
Organizations!

COLLABORATE 14 OAUG Forum

Copyright 2011-2014 Douglas Volz Consulting, Inc.

Page 8 of 46

Reconcile Your Inventory to G/L Balances With Ease, From 1 to 1,000 Inventory
Organizations!

Standard Oracle WIP Reconciliation Reports


WIP is the cumulative sum of both material and WIP entries. The material transactions are for the component issues
and WIP assembly completions and the WIP entries are for earning resources, overheads, outside processing, WIP
job close variances and WIP cost update.

Use the WIP Value Report to get the month-end perpetual balances at any point in time. WIP balances
are stored by inventory organization, and WIP job or repetitive schedule or production line. Each
material or WIP transaction updates the WIP period balances are they are created. Therefore, at
month-end you have no reporting cut-off issues. When running this report select the option to include
closed jobs.
Use the WIP Account Summary Report and Material Distribution Summary Report for monthly
accounting activity totals.
For Release 12 use the Journal Entries Cost Management Report

COLLABORATE 14 OAUG Forum

Copyright 2011-2014 Douglas Volz Consulting, Inc.

Page 9 of 46

Reconcile Your Inventory to G/L Balances With Ease, From 1 to 1,000 Inventory
Organizations!

COLLABORATE 14 OAUG Forum

Copyright 2011-2014 Douglas Volz Consulting, Inc.

Page 10 of 46

Reconcile Your Inventory to G/L Balances With Ease, From 1 to 1,000 Inventory
Organizations!
Standard Cost Management Subledger Report for Inventory
In addition to the Subledger Accounting reports available across modules, for Cost Management there is the Journal
Entries Report Cost Management. Use this report to summarize your accounting entries for one or more
accounting periods, for receiving, inventory/subinventories and WIP.

COLLABORATE 14 OAUG Forum

Copyright 2011-2014 Douglas Volz Consulting, Inc.

Page 11 of 46

Reconcile Your Inventory to G/L Balances With Ease, From 1 to 1,000 Inventory
Organizations!

Drill-Down From the General Ledger


Release 11i and 12 have significant differences in how they drill-down from the G/L to your inventory transactions:

Release 11i: The Inventory/WIP GL batch numbers are visible in the G/L, as part of the journal entry
batch name
Release 11i: You can run the Material and WIP Distribution Reports by this G/L batch number and
compare to the General Ledger
Release 12: You cannot see the organization code or G/L batch number on the G/L journal entry batch
name unless you customize your SLA rules to include this on your journal line descriptions, for all
material and WIP accounting transactions that you use.

Caution: Changes in Release 12 with the use of SLA, especially to replace missing R11i features
is a time-consuming setup and configuration effort.

Release 12: You can drill down from your G/L to the Subledger Accounting Entries to the material,
receiving and WIP transactions
Release 12: You can run the Subledger Journal Entries, Account Balances or Account Analysis
Reports (with some setup required)

See the Appendix for the Original Release 10 111i design for integrating Oracle Inventory, WIP and Cost
Management to the G/L.

List of Month-End Reports


Below is a list of month-end reports commonly used in Cost Accounting:

Material Distribution Detail/Summary Reports


WIP Account Detail/Summary Reports
Receiving Account Distribution Report
Purchase Price Variance Report
Invoice Price Variance Report
Discrete Job Value
Repetitive Value Report
Expense Job Value Report
Margin Analysis Report (Margin Analysis Load, then report)
Inventory Value Reports
Elemental Inventory Value Reports
Intransit Value Report

COLLABORATE 14 OAUG Forum

Copyright 2011-2014 Douglas Volz Consulting, Inc.

Page 12 of 46

Reconcile Your Inventory to G/L Balances With Ease, From 1 to 1,000 Inventory
Organizations!

Subinventory Account Value Report


(disabled in Release 12)
All Inventories Value Reports
Receiving Value Report
Receiving Value by Destination Report
(disabled in Release 12 unable to view the perpetual expense balances)
WIP Value Report
Period Close Value Summary Report
Period Close Reconciliation Report (11.5.10 and 12)

Common Reconciliation Challenges


Below are a list G/L to Inventory reconciliation challenges commonly faced by Cost Accounting, reasons why your
inventory, receiving or WIP balances may not agree with your General Ledger.

Report cut-off issues at month-end or running multiple periods at a time


Account alias or miscellaneous inventory transactions using same accounts
Disabling a code combination during the month
Subledger miscodings
Manual G/L journal entries
Back-dated transactions from external system feeds
Delivering goods to a closed work order
Sharing System Accounts
Wrong initial subinventory summary balances
Initial legacy GL balances to do not match Oracle perpetual
Misleading timestamp report parameters
Out of Balance Item Costs

Report cut-off issues at month-end or running multiple periods at a time


In Release 11i the following reports need to be run at the correct time (before new transactions occur in the
following accounting period). In Release 11i these reports base their quantities on the real-time information when
the report is run:
Inventory Value Report
All Inventories Value Report
Receiving Value Report
Intransit Value Report

Corrective action:

Run the reports at midnight on the last day of the month. Also run the Material and Receiving
Account Distribution reports to capture daily transactions that need to be subtracted away.
You can also set the Cost Cut-Off Date to allow transaction processing for the new day, but allow
your Inventory / Subinventory Value Report to not include uncosted transactions. But this method
does not help with the Receiving Value or the Intransit Value Reports.

Account alias or miscellaneous inventory transactions using same accounts


Check for miscellaneous inventory transactions, where the offset account is the same as the subinventory or
organization valuation account. You can use the Material Distribution Inquiry to find these, query for entries that hit
your subinventory valuation accounts (Std) or organization valuation accounts (Avg), where the Accounting Line
Type is Account.

COLLABORATE 14 OAUG Forum

Copyright 2011-2014 Douglas Volz Consulting, Inc.

Page 13 of 46

Reconcile Your Inventory to G/L Balances With Ease, From 1 to 1,000 Inventory
Organizations!

Here is an example screenshot for how you would find this:

Corrective action:

Reverse the miscellaneous transaction (assuming the standard costs have not changed) and replay
the transaction with a correct offset account.
Or enter a manual journal entry to balance your G/L to inventory perpetual

Disabling a code combination during the month


If you disable a code combination during the month, AND it has been used in Inventory or WIP subledger:
Release 11i: it will not come over to the GL Interface. For other subledgers it will fail in journal
Import (Payables, others)
Release 12: will fail in Create Accounting
You can find this by:
Release 11i: comparing the summary material distribution reports to your GL entries (if able to run
journal import and post to GL)
Release 12: run the Subledger Period Close Exceptions Report

Corrective action for Release 11i:

For Inventory or WIP, manual journal entry to book the difference


For other subledgers, fix in the GL interface (it will be an unbalanced entry).

COLLABORATE 14 OAUG Forum

Copyright 2011-2014 Douglas Volz Consulting, Inc.

Page 14 of 46

Reconcile Your Inventory to G/L Balances With Ease, From 1 to 1,000 Inventory
Organizations!
Corrective action for Release 12:

It will fail during Create Accounting, or in the G/L Interface, use the correction screens.

Subledger miscodings
Miscoded Purchase Orders cause reconciliation differences once the corresponding line item is received. What
can happen is departments such as Accounts Payable and Accounts Receivable intermittently reference
inventory accounts during coding, causing reconciliation differences. To prevent this:

You must not code any Receivable or Payable entries to a system account
System accounts include your Inventory Accounts, AP Accrual Accounts (Inventory and
Expense), Intransit, Inter-org Clearing Accounts or Receiving Inventory Account

Corrective actions:

Reverse subledger entry if possible, or correct via manual GL entry.

Manual G/L journal entries


Manual General Ledger journal entries become an automatic reconciling item. Typically you only write reversing
entries to correct the balances at month-end, but in the new month you should perform the transaction in the
respective subledger

Corrective actions:

Include as a reconciling item on your G/L to inventory reconciliation

Back-dated transactions from external system feeds


In Release 11i backdated transactions can occur in the following month, affect the GL but are not reflected within
the perpetual records. Why, because you have usually run your perpetual inventory value reports at midnight, but
these transactions went in on the next day referencing the prior accounting period (this discussion assumes the
accounting period is not closed yet). This in-turn causes temporary accounting differences from month to month
precluding our ability to benchmark perpetual activity
Sources of backdated transactions include:
Late inventory period closes
External system feeds

Corrective actions:

Release 11i: Enter a manual reversing journal entry


Release 12: Rerun the respective Inventory Value Report

Delivering goods to a closed work order


Oracle provides us with the ability to receive Outside Processing (OSP) vendor receipts to closed work orders.
There may be patches in Release 11i, as of February 2011, the Release 12 patches to stop this are:

ER 2308832 to not allow closing of job if there are open POs/Requisition.


Bug patch 9791544 which will not allow job to be closed if there are open Receipts which are not
delivered.

This causes a permanent difference as the corresponding work order is not charged and the costs are not reflected
within the perpetual records (WIP balances) accordingly. And you can have receiving transactions stuck in your
Open Receiving Interface which you cannot clear (the job is closed). The outside processing PO is updated but your
Receiving balances have not been cleared and your WIP balances are not been charged.

COLLABORATE 14 OAUG Forum

Copyright 2011-2014 Douglas Volz Consulting, Inc.

Page 15 of 46

Reconcile Your Inventory to G/L Balances With Ease, From 1 to 1,000 Inventory
Organizations!
Corrective actions:

Reopen the work order and make corrections, but you can only do this if the inventory period is
not closed
If you cannot reopen the work order delete the transaction from the Open Receiving Interface and
manually accrual the WIP job charge into the G/L. Log an Oracle Service Request to delete /
correct your invalid receiving balance with Oracle.

Sharing System Accounts


Sometimes when setting up your Oracle Applications, the system accounts are not set up correctly, account values
are shared (the entire code combination values). Sharing System Accounts for the following will make
reconciliation very difficult if not impossible to achieve:
Expense and Inventory Accrual Accounts
Receiving Valuation Accounts
Organization Level Accounts (Average, FIFO, LIFO Costing)
Subinventory Accounts (Standard Costing)
Cost Group Accounts (Project Mfg, WMS)
WIP Accounting Classes
Inventory Account Aliases
Order Types and COGS
Release 12 Subledger Accounting Rules causing you to share accounts

Corrective actions:

Typically back-end SQL*PLUS fixes for Organization, Subinventory, WIP or Cost Group account
changes
Most other changes can be done via the forms or setup screens
Note: Oracle Support advice may be too conservative (new orgs, new subinventories, issue all
goods out, close all work orders, etc.)

Wrong initial subinventory summary balances


Since Release 11.5.10 summary balances exist by organization, subinventory and item. There balances are based on
your inventory material movement. If your initial onhand quantity conversion is wrong, or not done using
miscellaneous receipt/account alias transactions your cumulative accounting balances may be incorrect. The
consequences are:
Release 11i: Cumulative accounting balances will continue to be wrong
(last months cum. Accounting balances plus this months activity)
Release 12: Self-correcting cumulative accounting balances
(last months perpetual balance plus this months accounting activity)

Note: prior to Release 11.5.10, Average Costing had a summary snapshot table called
MTL_PER_CLOSE_DTLS. From Release 11.5.10 onward the table is
CST_PERIOD_CLOSE_SUMMARY for all cost methods

Corrective actions:

Release 12: will self-correct (assuming your perpetual is correct)


Release 11i: backend SQLPLUS fixes

Initial legacy GL balances to do not match Oracle perpetual


In this scenario you went live with Oracle and:

You never reconciled G/L to Perpetual on your prior system, or,

COLLABORATE 14 OAUG Forum

Copyright 2011-2014 Douglas Volz Consulting, Inc.

Page 16 of 46

Reconcile Your Inventory to G/L Balances With Ease, From 1 to 1,000 Inventory
Organizations!

If your initial onhand quantity conversion is wrong and never corrected, or,
You never reconciled your G/L to Perpetual post GoLive

You basically have to pick a clean starting point and force-balance your G/L to agree to your perpetual inventory
value reports. Especially if a lot of time has passed since GoLive, it is difficult to figure out what happened, say 12
or 24 months ago.

Corrective actions for All Releases:

Correct your perpetual balances using inventory material transactions


Correct your G/L balances with manual journal entries

Misleading Timestamp Inquiry Parameters


For both Release 11i and 12, the material transaction distribution inquiry screen uses misleading date ranges. For
some reason it finds the material transactions up to the date and timestamp, but, not including the ending timestamp.
In Release 12 this become more obvious as the COGS Recognition entries, if created after the inventory period is
closed, for that closed inventory period, have a month-end date with a timestamp of 23:59:59. Unfortunately if you
enter for example, 31-DED-2010 23:59:59 you will not see these COGS Recognition accounting entries. You have
to increment the timestamp to 01-JAN-2011 00:00:00. See below for an example screenshot:

Out of Balance Item Costs


The underlying cost tables consist of two parts. A summary table by organization, cost type and item; and a detailed
table, by organization, cost type, item and resource (sub-element). Especially for Standard Costing the
recommended approach is to load your initial item costs using the Open Item Cost Interfaces, as these programs
ensure that the Cost Summary (CST_ITEM_COSTS) and Cost Details (CST_ITEM_COST_DETAILS) have the
same item cost totals. But infrequently, usually because of custom programming, these two tables may have
different item costs. If this happens, you will most likely not be able to reconcile your inventory perpetual balances
to your G/L balances, as the recorded material and WIP accounting entries may not be correct.
COLLABORATE 14 OAUG Forum

Copyright 2011-2014 Douglas Volz Consulting, Inc.

Page 17 of 46

Reconcile Your Inventory to G/L Balances With Ease, From 1 to 1,000 Inventory
Organizations!
See the following summary for the types of problems you might see:

Why is this true? Certain material and WIP absorption accounting entries use the detailed costs whereas the rest of
the accounting entries use the summary cost information. Some of the inventory value reports use elemental cost
information (Elemental Value Report) but most just use the item costs in total. And if you have unbalanced item
costs the Standard Cost Update programs can produce unreliable results for both the onhand and WIP cost updates.
Note: prior to Release 11.5.10, if the source item costs such as the Pending cost type was out-of-balance,
the Standard Cost Update would fail. Unfortunately this is no longer true, so if you load unbalanced costs
into a cost type by using custom programs which bypass the Open Item Cost Interfaces and then implement
these costs using the Standard Cost Update program you will have unbalanced Frozen costs.
The following diagram illustrates this:

How is this detected? Usually when no other reasons for having out-of-balances can be found. This is not a typical
problem, although the author has witnessed more and more improperly written custom programs in the past three
years. The best way to detect this issue is to run the SQL report as found in the Appendix, section 8, Sample
Release 11i and 12 Item Cost Out-of-Balance Report.
COLLABORATE 14 OAUG Forum

Copyright 2011-2014 Douglas Volz Consulting, Inc.

Page 18 of 46

Reconcile Your Inventory to G/L Balances With Ease, From 1 to 1,000 Inventory
Organizations!
And because the Cost Mass Edits automatically sum up the Cost Details and reset the Cost Summary information to
equal the Cost Details, you can use the following procedure to fix your out-of-balance item costs, without any
programming required:
1) Copy Frozen costs into a new cost type called DATAFIX, item costs, resources, overheads,
resource/overhead associations
2) Run a Cost Mass Edit to edit the Material Costs across all basis types and sub-elements, changing the value
by .00001. Doing this will cause the Cost Mass Edit to set the Summary Item Costs = Detailed Item Costs
3) Run the Pending Standard Cost Adjustment Reports. Note that the WIP Standard Cost Adjustment Report
may not work correctly.
4) Stop all transactions by stopping the Cost Processor for Inventory and WIP (or set the Cost Cut-Off Date in
the Inventory Parameters for the offending inventory orgs)
5) Run before Inventory Value, WIP Value, All Inventory Value Reports
6) Do the Standard Cost Update
7) Run after Inventory Value, WIP Value, All Inventory Value Reports
8) Compare the before and after valuation reports against the inventory and WIP standard cost adjustments
and make manual journals as needed to true up the amounts
9) Start the Inventory and WIP Cost Processors (or remove the Cost Cut-Off Date)
10) And for all WIP jobs that are currently open, when they are closed manually calculate the amount of WIP
Variance that is in error and make a manual journal correction.

Reconciliation Improvements for Release 12


As mentioned earlier in this paper, Release 12 offers the following reconciliation improvements:
All of the inventory value reports can be run by As of Date. In addition these reports are available as XML
reports and you can get the output using Excel:

Inventory Value Report By Subinventory


Inventory Value Report By Cost Group
Elemental Inventory Value Report By Subinventory
Elemental Inventory Value Report By Cost Group
All Inventories Value Report
All Inventories Value Report By Cost Group
Intransit Value Report
Receiving Value Report

And Release 12 also has a better period close diagnostics with the following:

Forms Drilldown from the Accounting Close Cycle form, you can drilldown to associated forms to
view the problem transactions
A new workflow to notify of failing transactions
Period Close Pending Transactions Report which will report the transactions holding up the
inventory accounting period.
Caution: But note this report is only by inventory organization. You have to run for each
inventory organization.

Release 12 Reconciliation Challenges


But contrary to what you may have heard elsewhere, you may have more inventory reconciliation issues in R12.
Why?
Issues Common to Release 12 and 11i:
COLLABORATE 14 OAUG Forum

Copyright 2011-2014 Douglas Volz Consulting, Inc.

Page 19 of 46

Reconcile Your Inventory to G/L Balances With Ease, From 1 to 1,000 Inventory
Organizations!

The differences between the perpetual and accounted-for inventory balances are trapped in a table the users
dont see. You can run the Period Close Reconciliation Report, but many users and analysts dont know about
it, it is limited to a single warehouse, and it shows zero quantity items which is not efficient!

What is really needed is a Multi-Org Perpetual vs. Accounted-For Report

See below for an example custom report:

This information comes from the month-end cost snapshot table. In the appendix a sample SQL script is given for
your use.

Issues New for Release 12 - Subledger Accounting and Inventory Reconciliation


With subledger Accounting (SLA), which accounts represent inventory and WIP valuation? You can set up custom
rules and change it from your setup screens. Because of this feature:

The account numbers were removed from the Inventory Value and Receiving Value Reports,
making it harder to reconcile manually with no valuation accounts

If you accrue your expenses at time of receipt, you cannot tell if you have expenses stuck in your
Receiving Value, as the Receiving Value by Destination Account Report is disabled in Release 12

But in addition, you also have the following issues:

Release 12 material and WIP distribution inquiries & reports do not reflect the SLA results, they
use the original accounts from the setup screens as used by the Inventory and WIP Cost
Processors.
SLA Journal Reports do not show operational information, such as quantities or transactional
details.
Release 12 records the material accounting and WIP accounting entries by cost element
rendering these inquiries and reports more difficult to use, especially for Standard Costing. The

COLLABORATE 14 OAUG Forum

Copyright 2011-2014 Douglas Volz Consulting, Inc.

Page 20 of 46

Reconcile Your Inventory to G/L Balances With Ease, From 1 to 1,000 Inventory
Organizations!
standard feature since Release 10 to record across cost elements (to summarize) has been
removed. You can configure your SLA rules to summarize, but you dont have the same reporting
details with your SLA reports that you do with your Inventory, WIP or Receiving accounting
distribution reports.

Release 12 has two layers of accounting distributions. One for the Inventory and WIP Cost
Processors (the same as in Release 11i) and a second one for Subledger Accounting (SLA).
Having two layers, with the SLA rules having the ability to change the account numbers into the
SLA journal lines, can create confusion. Why?

You now have two accounting processes to check. Are the Cost Processors running (just
like in Release 11i) and have you run Create Accounting and better still, did all the
entries from the original accounting distributions make it to Subledger Accounting and
then to the General Ledger. You do have the Subledger Period Close Exceptions Report
in Release 12, but nevertheless you have two layers and multiple interfaces to verify.
And dont mention trying to explain all this to your Auditors.

And even in Release 12 you still dont have a decent General Ledger Interface Errors
report.

Here is a general diagram for how Release 12 works, from the transactions to the General Ledger:

COLLABORATE 14 OAUG Forum

Copyright 2011-2014 Douglas Volz Consulting, Inc.

Page 21 of 46

Reconcile Your Inventory to G/L Balances With Ease, From 1 to 1,000 Inventory
Organizations!
Common Custom Reports and Desired Enhancements
Given the issues mentioned in this paper, here are some of the common enhancement requests faced by the larger
Oracle implementations:

Multi-Org Material Account Summary Report


Multi-Org Receiving Account Summary Report
Multi-Org WIP Account Summary Report
Multi-Org All Inventories Value Report
Multi-Org Inventory Value Report
Multi-Org Receiving Value Report
Multi-Org Expense Receiving Value Report
Multi-Org WIP Value Report
Multi-Org Period Close Variances Report
Multi-Org G/L to Inventory Reconciliation Report

And from the Authors perspective and from many clients, here are some desired enhancement requests:

Eliminate the two layers of accounting entries in R12

Put the Inventory and Receiving Valuation Accounts back on the valuation reports

Add a standard report or alert to find the miscellaneous inventory transactions that are causing an out-of-balance

Simplify, make more robust, or eliminate the interfaces needed in Oracle (especially the Receiving Interface).
The Receiving Interface has no form or screen to reprocess stuck receipts in the Open Receiving Interface
Table. This table is usually a mess at many client sites (RCV_TRANSACTIONS_INTERFACE).

Automated reconciliation report comparing the G/L to the inventory and WIP perpetuals (and receiving too).
Here is a sample report:

COLLABORATE 14 OAUG Forum

Copyright 2011-2014 Douglas Volz Consulting, Inc.

Page 22 of 46

Reconcile Your Inventory to G/L Balances With Ease, From 1 to 1,000 Inventory
Organizations!
Sample G/L to Inventory Reconciliation Script
As part of Doug Volzs philosophy of giving back to the Oracle Community, you can request a free (no warranty)
SQL report/script to:

Automatically Compare:
o
o
o

Improvements Since Collaborate11:


o
o

G/L to Inventory Perpetual (sum G/L JE Lines vs. Period Close Summary)
G/L to Intransit Perpetual (sum G/L JE Lines vs. Period Close Summary)
G/L to WIP Period-End Balances (sum G/L JE Lines vs. WIP Period Balances)

Works with WMS (cost groups)


Generic account segments 1 9, only need to change the initial column heading names now

Caveats:
o
o
o
o
o

Only considers Discrete Costing, not OPM


Tested for Standard Costing (should work for Avg, FIFO, LIFO)
Assumes using one valuation account per subinventory or organization or cost group
Does not handle Receiving Perpetual (no snapshot)
Your Release 12 Subledger Accounting Rules may be different

This script works by selecting and comparing:

The cumulative G/L balances by journal source


The cumulative Inventory (stores) and Intransit perpetual balances from the month-end snapshot
The cumulative WIP balances
Compare the three above balances and reports differences
This script runs in under 2 minutes for 6 ledgers with 60 inventory orgs
If on Release 11i, change GL_LEDGERS to GL_SETS_OF_BOOKS

Here is a diagram for how the script works:

COLLABORATE 14 OAUG Forum

Copyright 2011-2014 Douglas Volz Consulting, Inc.

Page 23 of 46

Reconcile Your Inventory to G/L Balances With Ease, From 1 to 1,000 Inventory
Organizations!
And the sample version of the SQL script uses a manufacturing lookup code to determine the valid accounts to
select, as indicated below (XXX_CST_GLINV_RECON_ACCOUNTS):

Summary
Release 12 solves many of the inventory reporting cut-off issues. But there are still multi-org reporting issues with
account distribution and valuation reports, plus the additional considerations for having two layers of accounting
entries.

Release 12 offers as-of valuation reporting

But Release 12 Subledger Accounting can complicate reconciliation

Investments in custom reporting can save significant amounts of time at month-end

Thanks for allowing the Author to share his experiences with you.

To Get this Reconciliation Script Send Your Email Address:

Mention which release, costing method, and if using separate accounts by cost element
Ask for the sample reconciliation excel spreadsheet
Ask for the Comparison Script between the G/L and Inventory Perpetual Values
doug@volzconsulting.com
Informal workshops can be arranged

COLLABORATE 14 OAUG Forum

Copyright 2011-2014 Douglas Volz Consulting, Inc.

Page 24 of 46

Reconcile Your Inventory to G/L Balances With Ease, From 1 to 1,000 Inventory
Organizations!
Acknowledgements
Doug wishes to thank for following folks for their contributions to this paper:

Partners in crime at my many clients

The Oracle Cost Management Development Team for allowing me to discuss these topics with them

Additional information is available from:

Manufacturing Accounting by Product Line For Release 11. OAUG Paper from Doug Volz
(www.volzconsulting.com). This paper explains how the underlying manufacturing transactions work in
Oracle; including a deeper look at material transaction types, sources and transaction actions. This
knowledge is helpful in discovering how to reconcile inventory and WIP to the General Ledger.
Can We Actually Reconcile Project MFG to Inventory, WIP, Projects & G/L? What Was I Thinking?
OAUG Paper from Doug Volz (www.volzconsulting.com). This paper explains how to reconcile Project
Manufacturing (Inventory and WIP) with the General Ledger.
Oracle Metalink Note Manufacturing Period Close Product Information Center ID 1262392.1

About the Author


Douglas A. Volz is President of Douglas Volz Consulting, Inc., founded in 2005 with the goal of helping Oracle
customers use and implement Oracle Financial and Manufacturing applications, specializing in Cost Accounting.
As a Senior Architect and Advisor for Oracle Application projects, Doug has over 30 years experience, including 5
years in Oracle Development (co-designing Oracle Cost Management), 11 years in industry in Cost and Accounting
Management positions and over 15 years international consulting with the Oracle Applications . His Manufacturing
and Cost systems experience covers project management, business process/systems design, delivery and consulting
services, for both Oracle Corporation, and multiple international consulting firms. Prior to his systems career, Mr.
Volz also held numerous management accounting positions for telecommunications, defense, and electronics
companies.
Doug has led the OAUG Cost Management Special Interest Group since 2007. In addition, Doug is a frequent
presenter at OAUG Collaborate, UKOUG and OpenWorld conferences, speaking since 1996 on Business
Transformation, Change Management and Cost Accounting topics. He also advises and participates on numerous
Oracle Customer Advisory Boards and also advises the Oracle Cost Development teams.
Doug may be reached at doug@volzconsulting.com or at www.volzconsulting.com.

COLLABORATE 14 OAUG Forum

Copyright 2011-2014 Douglas Volz Consulting, Inc.

Page 25 of 46

Reconcile Your Inventory to G/L Balances With Ease, From 1 to 1,000 Inventory
Organizations!
APPENDIX
1. Original Release 10 111i design for integrating Oracle Inventory, WIP and Cost
Management to the G/L.
2. Inventory and WIP Transaction Tables
3. Accounting Line Types
4. Sample SQL logic for Month-End Cost Snapshot
5. Sample SQL Code for Release 12 Material Distribution Report
6. Sample SQL Code for Release 12 WIP Distribution Report
7. Sample SQL Code for Release 12 Receiving Distribution Report
8. Sample SQL for Finding Item Cost Out-of-Balances
9. Subledger Accounting Transfer Methods
Note: Appendix sections 4, 5, 6, 7 and 8 give SQL samples for your use, but as sample code the
logic may or may not work for your particular situation. For example the SQL logic assumes
you are using a certain number of segments for your account numbers. However you should still
find this useful as a starting point, for custom multi-org reporting for accounting distribution
reports for Receiving, Inventory and WIP, as well as your month-end cost accounting snapshot
for your inventory and WIP balances.

COLLABORATE 14 OAUG Forum

Copyright 2011-2014 Douglas Volz Consulting, Inc.

Page 26 of 46

Reconcile Your Inventory to G/L Balances With Ease, From 1 to 1,000 Inventory
Organizations!
1. Original Releases 10 111i design for integrating Oracle Inventory, WIP and Cost
Management to the G/L.
Below is the original design for integrating Oracle Inventory and WIP to the G/L, making sure the organization code
is included in the journal batch header. This feature is currently missing in Release 12; you have to configure your
SLA rules in Release 12 to put the journal line descriptions back into the General Ledger.

2. Inventory and WIP Transaction Tables


The following concepts and definitions may be helpful in understanding how to reconcile.

Material Transactions, Costs, Material Parameters and Item Master Tables


Inventory and WIP Transaction Tables
The inventory and manufacturing accounting entries are held in the tables MTL_TRANSACTION_ACCOUNTS
and WIP_TRANSACTION_ACCOUNTS (the PO receipt accruals are held in RCV_TRANSACTIONS and
RCV_RECEIVING_SUB_LEDGER, but are not part of this discussion). The underlying table structures are:
MTL_PARAMETERS holds the most basic definition of the Inventory Organization or warehouse, holding the
costing method, default inventory valuation accounts and default inventory controls for the warehouse.
MTL_PARAMETERS join to the complex HR Organization tables; for more information see the view definition for
ORG_ORGANIZATION_DEFINITIONS.
MTL_SYSTEM_ITEMS_B defines your items in the item master. Depending on your Key Flexfield definition, the
item number is usually held in the SEGMENT1 column, with the INVENTORY_ITEM_ID and the
ORGANIZATION_ID the key defining columns for this table. Each inventory organization has its own set of items,
COLLABORATE 14 OAUG Forum

Copyright 2011-2014 Douglas Volz Consulting, Inc.

Page 27 of 46

Reconcile Your Inventory to G/L Balances With Ease, From 1 to 1,000 Inventory
Organizations!
grouped together by ORGANIZATION_ID. A child table, MTL_SYSTEM_ITEMS_TL, holds the foreign language
translations for your item descriptions. And typically a master Item Master organization is set up, holding all of
the items for each and every inventory organization.

MTL_MATERIAL_TRANSACTIONS holds the material transactions for inventory and WIP. The unique
reference is the TRANSACTION_ID for each row. The ORGANIZATION_ID tells you which inventory
organization the transaction belongs to for most transactions (except for certain organization to organization
transfers, called Direct Inter-Org Transfers). So it is much safer to join the Item Masters ORGANIZATION_ID to
the Material Accounting Table, MTL_TRANSACTION_ACCOUNTS, as the ORGANIZATION_ID in this table
always represents the correct inventory warehouse. The material transaction types are defined in a table called
MTL_TRANSACTION_TYPES, which includes the TRANSACTION_SOURCE_TYPE_ID (source of the
transaction, such as Purchase Order, Sales Order and so forth) and the TRANSACTION_ACTION_ID (how the
transaction affects the inventory balances, issuing versus receiving the quantities into inventory).
And these columns are not easy to use as their meanings vary by TRANSACTION_SOURCE_TYPE_ID,
TRANSACTION_ACTION_ID and MTL_TRANSACTION_TYPE_ID. For example, for a Subinventory Code, as
sometimes you use the SUBINVENTORY_CODE column and sometimes the
TRANSFER_SUBINVENTORY_CODE column, depending on the TRANSACTION_ACTION_ID and
TRANSACTION_SOURCE_TYPE_ID.
MTL_TRANSACTION_ACCOUNTS holds the material accounting entries for the parent material transactions
table. For each row in MTL_MATERIAL_TRANSACTIONS there can be none to many rows in
MTL_TRANSACTION_ACCOUNTS. It joins to MTL_MATERIAL_TRANSACTIONS using the
TRANSACTION_ID, but generally speaking you should never join these two tables by ORGANIZATION_ID.
MTL_TRANSACTION_ACCOUNTS joins to the item master MTL_SYSTEM_ITEMS_B table using the
INVENTORY_ITEM_ID and the ORGANIZATION_ID columns. The BASE_TRANSACTION_VALUE column
is the Debit (positive number) or the Credit (negative) number for the accounting entry. The
ACCOUNTING_LINE_TYPE gives you the purpose of the accounting entry, such as Inventory (1), Intransit (14),
WIP (7) and Account (2) for entries such as Cost of Goods Sold. Please see the appendix for a list of Release 12
Accounting Line Types.
And for Release 11i, the REFERENCE_ACCOUNT column holds the code_combination_id found in the
GL_CODE_COMBINATIONS table (the table which defines the Accounting Flexfield values). But note, in
Release 12 Subledger Accounting has the final say for the Accounting Flexfield values. If using Release 12 you
COLLABORATE 14 OAUG Forum

Copyright 2011-2014 Douglas Volz Consulting, Inc.

Page 28 of 46

Reconcile Your Inventory to G/L Balances With Ease, From 1 to 1,000 Inventory
Organizations!
should join to the Subledger Accounting tables to get the correct account numbers, as opposed to using the
REFERENCE_ACCOUNT column in the Inventory and WIP transaction accounting tables.

The WIP job is defined in WIP_ENTITIES, listing the ENTITY_TYPE (Discrete job, Repetitive Schedule, EAM
Job and so forth). The name of the job is in the WIP_ENTITY_NAME column and the assembly being made on the
job, or the repetitive assembly is referenced in the PRIMARY_ITEM_ID column. (Note: other tables are used to
define WIP jobs, repetitive schedules, EAM jobs and work-order completions, but this is beyond the scope of this
paper.)
WIP_TRANSACTIONS holds the WIP resource, outside processing, cost updates and item-based overhead
transactions for your discrete jobs, repetitive schedules and work-orderless completions. Unlike
MTL_MATERIAL_TRANSACTIONS, TRANSACTION_TYPE is based on a lookup code and the
ORGANIZATION_ID reliably references the inventory organization. WIP_TRANSACTIONS also references the
assembly being worked upon by joining the WIP_ENTITY_ID to WIP_ENTITIES.PRIMARY_ITEM_ID column.
WIP_TRANSACTION_ACCOUNTS holds the WIP Resource, Overhead, Cost Update and Variance accounting
entries for the parent WIP transactions table (WIP component issues, returns and Assembly completions are in the
Material Transaction tables). For each row in WIP_TRANSACTIONS there can be none to many rows in
WIP_TRANSACTION_ACCOUNTS. It joins to WIP_MATERIAL_TRANSACTIONS using the
TRANSACTION_ID. MTL_TRANSACTION_ACCOUNTS joins to the item master MTL_SYSTEM_ITEMS_B
table using the INVENTORY_ITEM_ID and the ORGANIZATION_ID columns. The
BASE_TRANSACTION_VALUE column is the Debit (positive number) or the Credit (negative) number for the
accounting entry. And the ACCOUNTING_LINE_TYPE gives you the purpose of the accounting entry, such as
Inventory (1), Intransit (14), WIP (7) and Account (2) for entries such as WIP Scrap Account. Please see the
appendix for a list of Release 12 Accounting Line Types. And for Release 11i, the REFERENCE_ACCOUNT
column holds the code_combination_id found in the GL_CODE_COMBINATIONS table (the table which defines
the Accounting Flexfield values). Note that in Release 12 Subledger Accounting has the final say for the
Accounting Flexfield values. If using Release 12 you should join to the Subledger Accounting tables to get the
correct account numbers.

COLLABORATE 14 OAUG Forum

Copyright 2011-2014 Douglas Volz Consulting, Inc.

Page 29 of 46

Reconcile Your Inventory to G/L Balances With Ease, From 1 to 1,000 Inventory
Organizations!
3. Accounting Line Types
The following accounting line types describe the purpose for the accounting entries. In Release
11i only Oracle Cost Management used this concept (MTL_TRANSACTION_ACCOUNTS,
WIP_TRANSACTION_ACCOUNTS). In Release 12 the Receiving Accounting table also uses
accounting line types:

COLLABORATE 14 OAUG Forum

Copyright 2011-2014 Douglas Volz Consulting, Inc.

Page 30 of 46

Reconcile Your Inventory to G/L Balances With Ease, From 1 to 1,000 Inventory
Organizations!
4. Sample Release 12 Cost Snapshot Month-End Summary Report
/* +=============================================================================+
-- | Copyright 2007-2014 Douglas Volz Consulting, Inc.
|
-- | All rights reserved.
|
-- | Permission to use this code is granted provided the original author is
|
-- | acknowledged. No warranties, express or otherwise are included in this
|
-- | permission.
|
-- +=============================================================================+
-- |
-- | Original Author: Douglas Volz (doug@volzconsulting.com)
-- |
-- | Program Name: XXX_COST_SNAPSHOT_ACCT_SUMMARY_REPT.sql
-- |
-- | Parameters:
-- | P_MIN_VALUE_DIFF -- minimum difference to add up by org by period
-- | P_OPERATING_UNIT -- operating unit parameter
-- | P_PERIOD_YEAR -- the accounting period year to report
-- |
-- | Description:
-- | Report to show month-end inventory values in the period end snapshot that is created
-- | when you close the inventory periods. This report also shows the
-- | material account for each subinventory plus the default intransit account.
-- |
-- | Version Modified on Modified by Description
-- | ======= =========== ============== =========================================
-- | 1.0 02 APR 2006 Douglas Volz Initial Coding
-- | 1.1 07 Sep 2007 Douglas Volz Revision for Beckman Coulter
-- | 1.2 13 Sep 2007 Douglas Volz Revision for FX translation rates into a
-- |
single reporting currency
-- | 1.3 05 Aug 2008 Douglas Volz Revision for adding subinventory account number
-- | 1.4 05 Oct 2009 Douglas Volz Revision to include Intransit as well
-- +=============================================================================+*/
set verify off
set heading on
set pages 45
set lines 120
col code format a4 hea "Org|Code"
col id format 9999 hea "Org|Id"
col pn format a6 hea "Part|Number"
col per format a6 hea "Period|Name"
col pnum format 9999999 hea "Period|Num"
col pyr format 999999 hea "Period|Year"
col per_id format 9999999 hea "Period|ID"
col onhand format 9,999,999,999.90 hea "Onhand Value|Difference"
col intransit format 9,999,999,999.90 hea "Intransit Value|Difference"
col diff format 9,999,999,999.90 hea "Value Difference"
compute
compute
compute
compute
compute
compute

sum
sum
sum
sum
sum
sum

of
of
of
of
of
of

diff on report
onhand on report
intransit on report
diff on code
onhand on code
intransit on code

break on code skip 1 on report skip 1


ttitle 'Inventory Period Close Snapshot for All Locations in Local
Currency|XXX_COST_SNAPSHOT_ACCT_SUMMARY_REPT.sql'
-- =============================================================
-- This first select gets the subinventory values and quantities
-- =============================================================
select mp.organization_code code,
mp.organization_id id,
oap.period_name per,
oap.period_num pnum,
oap.period_year pyr,
gcc1.segment1 "Co",
gcc1.segment2 "Cost Ctr",
gcc1.segment3 "Acct",

COLLABORATE 14 OAUG Forum

Copyright 2011-2014 Douglas Volz Consulting, Inc.

Page 31 of 46

Reconcile Your Inventory to G/L Balances With Ease, From 1 to 1,000 Inventory
Organizations!
gcc1.segment4 "Sub-Acct",
gcc1.segment5 "Prod Grp",
gcc1.segment6 "Loc",
gcc1.segment7 "InterCo",
gcc1.segment8 "Future1",
gcc1.segment9 "Future2",
msi.segment1 pn,
msi.description descrip,
msi.primary_uom_code UOM,
sum(nvl(cpcs.ROLLBACK_QUANTITY,0)) qty,
sum(nvl(cpcs.ROLLBACK_VALUE,0)) onhand,
sum(nvl(cpcs.ACCOUNTED_VALUE,0)) acctval,
sum( (nvl(cpcs.ONHAND_VALUE_DISCREPANCY,0)) +
(nvl(cpcs.INTRANSIT_VALUE_DISCREPANCY,0))) diff
from
apps.cst_period_close_summary cpcs,
apps.org_acct_periods oap,
apps.mtl_parameters mp,
apps.mtl_system_items_b msi,
apps.mtl_secondary_inventories msub,
apps.gl_code_combinations gcc1,
-- apps.gl_code_combinations gcc2,
apps.HR_ORGANIZATION_INFORMATION hoi,
apps.hr_all_organization_units haou, -- inv_organization_id
apps.hr_all_organization_units haou2, -- operating unit
apps.gl_ledgers gsob
where
oap.acct_period_id = cpcs.acct_period_id
and
oap.organization_id = mp.organization_id
and
oap.period_year = '&P_PERIOD_YEAR'
-- P_PERIOD_YEAR
and
cpcs.subinventory_code IS NOT NULL
and
msub.SECONDARY_INVENTORY_NAME = cpcs.subinventory_code
and
msub.organization_id = cpcs.organization_id
and
mp.organization_id = cpcs.organization_id
and
msi.organization_id = cpcs.organization_id
and
msi.inventory_item_id = cpcs.inventory_item_id
and
msub.material_account = gcc1.code_combination_id
-- and msi.cost_of_sales_account = gcc2.code_combination_id
-- ===================================================================
-- using the base tables to avoid the performance issues
-- with org_organization_definitions and hr_operating_units
-- ===================================================================
and
hoi.org_information_context = 'Accounting Information'
and
hoi.organization_id = mp.organization_id
and
hoi.org_information1 = gsob.ledger_id
and
hoi.organization_id = haou.organization_id -- this gets the organization name
and
haou2.organization_id = hoi.org_information3 -- this gets the operating unit id
group by
mp.organization_code,
mp.organization_id,
oap.period_name,
oap.period_num,
oap.period_year,
gcc1.segment1,
gcc1.segment2,
gcc1.segment3,
gcc1.segment4,
gcc1.segment5,
gcc1.segment6,
gcc1.segment7,
gcc1.segment8,
gcc1.segment9,
msi.segment1,
msi.description,
msi.primary_uom_code
having abs(sum(nvl(cpcs.ONHAND_VALUE_DISCREPANCY,0) +
nvl(cpcs.INTRANSIT_VALUE_DISCREPANCY,0))) >= 1 -- P_MIN_VALUE_DIFF
UNION ALL
-- =============================================================
-- This second select gets the intransit values and quantities
-- =============================================================
select mp.organization_code code,
mp.organization_id id,
oap.period_name per,

COLLABORATE 14 OAUG Forum

Copyright 2011-2014 Douglas Volz Consulting, Inc.

Page 32 of 46

Reconcile Your Inventory to G/L Balances With Ease, From 1 to 1,000 Inventory
Organizations!
oap.period_num pnum,
oap.period_year pyr,
gcc1.segment1 "Co",
gcc1.segment2 "Cost Ctr",
gcc1.segment3 "Acct",
gcc1.segment4 "Sub-Acct",
gcc1.segment5 "Prod Grp",
gcc1.segment6 "Loc",
gcc1.segment7 "InterCo",
gcc1.segment8 "Future1",
gcc1.segment9 "Future2",
msi.segment1 pn,
msi.description descrip,
msi.primary_uom_code UOM,
sum(nvl(cpcs.ROLLBACK_QUANTITY,0)) qty,
sum(nvl(cpcs.ROLLBACK_VALUE,0)) onhand,
sum(nvl(cpcs.ACCOUNTED_VALUE,0)) acctval,
sum( (nvl(cpcs.ONHAND_VALUE_DISCREPANCY,0)) +
(nvl(cpcs.INTRANSIT_VALUE_DISCREPANCY,0))) diff
from
apps.cst_period_close_summary cpcs,
apps.org_acct_periods oap,
apps.mtl_system_items_b msi,
apps.mtl_parameters mp,
apps.gl_code_combinations gcc1,
-- apps.gl_code_combinations gcc2,
apps.HR_ORGANIZATION_INFORMATION hoi,
apps.hr_all_organization_units haou, -- inv_organization_id
apps.hr_all_organization_units haou2, -- operating unit
apps.gl_ledgers gsob
where
oap.acct_period_id = cpcs.acct_period_id
and
oap.organization_id = mp.organization_id
and
oap.period_year = '&P_PERIOD_YEAR'
-- P_PERIOD_YEAR
-- Intransit has a NULL subinventory code
and
cpcs.subinventory_code IS NULL
and
mp.organization_id = cpcs.organization_id
and
msi.organization_id = cpcs.organization_id
and
msi.inventory_item_id = cpcs.inventory_item_id
and
mp.intransit_inv_account = gcc1.code_combination_id
--and msi.cost_of_sales_account = gcc2.code_combination_id
-- ===================================================================
-- using the base tables to avoid the performance issues
-- with org_organization_definitions and hr_operating_units
-- ===================================================================
and
hoi.org_information_context = 'Accounting Information'
and
hoi.organization_id = mp.organization_id
and
hoi.org_information1 = gsob.ledger_id
and
hoi.organization_id = haou.organization_id -- this gets the organization name
and
haou2.organization_id = hoi.org_information3 -- this gets the operating unit id
group by
mp.organization_code,
mp.organization_id,
oap.period_name,
oap.period_num,
oap.period_year,
gcc1.segment1,
gcc1.segment2,
gcc1.segment3,
gcc1.segment4,
gcc1.segment5,
gcc1.segment6,
gcc1.segment7,
gcc1.segment8,
gcc1.segment9,
msi.segment1,
msi.description,
msi.primary_uom_code
having abs(sum(nvl(cpcs.ONHAND_VALUE_DISCREPANCY,0) +
nvl(cpcs.INTRANSIT_VALUE_DISCREPANCY,0))) >= 1 -- P_MIN_VALUE_DIFF
order by 1,2,4;

COLLABORATE 14 OAUG Forum

Copyright 2011-2014 Douglas Volz Consulting, Inc.

Page 33 of 46

Reconcile Your Inventory to G/L Balances With Ease, From 1 to 1,000 Inventory
Organizations!
5. Sample Release 12 Material Distribution Report
/*
------------------------------

+=============================================================================+
| Copyright 2009-2014 Douglas Volz Consulting, Inc.
|
| All rights reserved.
|
| Permission to use this code is granted provided the original author is
|
| acknowledged. No warranties, express or otherwise is included in this
|
| permission.
|
+=============================================================================+
|
| Original Author: Douglas Volz (doug@volzconsulting.com)
|
| Program Name: XXX_XLA_MTL_ACCTS_DETAIL_REPT.sql
|
| Parameters:
| P_OPERATING_UNIT
-- operating unit parameter
| P_TRX_DATE_FROM
-- starting transaction date
| P_TRX_DATE_TO
-- ending transaction date
|
| Description:
| Report to get the material accounting entries by account, transaction type
| and accounting line type. A group by is used to add up entries across cost
| cost elements.
|
| Version Modified on Modified by
Description
| ======= =========== ============== =========================================
| 1.0
06 Nov 2009 Douglas Volz
Initial Coding
| 1.1
11 Nov 2009 Douglas Volz
Added Org Code and transaction ID
| 1.2
12 Nov 2009 Douglas Volz
Added item and description
| 1.3
06 Jan 2010 Douglas Volz
Made dates a parameter
| 1.4
12 Jan 2010 Douglas Volz
Added quantity and unit cost columns
+=============================================================================+*/

select gl.name "Ledger",


haou2.name "Operating Unit",
mp.organization_code "Org Code",
oap.period_name "Period Name",
gcc1.code_combination_id "CCID",
ml.meaning "Acct Line Type",
mtt.transaction_type_name "Txn Name",
mta.transaction_id "Txn Id",
gcc1.segment1 "Co",
gcc1.segment2 "Cost Ctr",
gcc1.segment3 "Acct",
gcc1.segment4 "Sub-Acct",
gcc1.segment5 "Prod Grp",
gcc1.segment6 "Loc",
gcc1.segment7 "InterCo",
gcc1.segment8 "Future1",
gcc1.segment9 "Future2",
msi.segment1 "Item",
msi.description "Description",
DECODE(mta.accounting_line_type, 7, 'WIP', 14, '', 1,
DECODE (mmt.transaction_action_id,
2, DECODE (SIGN (mta.primary_quantity),
-1, mmt.subinventory_code,
1, mmt.transfer_subinventory,
mmt.subinventory_code
),
3, DECODE (mmt.organization_id,
mta.organization_id, mmt.subinventory_code,
mmt.transfer_subinventory
),
21, DECODE (SIGN (mta.primary_quantity),
-1, mmt.subinventory_code,
1, mmt.transfer_subinventory,
mmt.subinventory_code
),
22, DECODE (SIGN (mta.primary_quantity),
-1, mmt.subinventory_code,

COLLABORATE 14 OAUG Forum

Copyright 2011-2014 Douglas Volz Consulting, Inc.

Page 34 of 46

Reconcile Your Inventory to G/L Balances With Ease, From 1 to 1,000 Inventory
Organizations!
1, mmt.transfer_subinventory,
mmt.subinventory_code
),
28, DECODE (SIGN (mta.primary_quantity),
-1, mmt.subinventory_code,
1, mmt.transfer_subinventory,
mmt.subinventory_code
),
mmt.subinventory_code
)
) "Subinv",
mta.primary_quantity "Qty",
sum(nvl(al.ACCOUNTED_DR,0) - nvl(al.ACCOUNTED_CR,0)) /
decode((mta.primary_quantity), 0,1,(mta.primary_quantity)) "Unit Cost",
sum(nvl(al.ACCOUNTED_DR,0) - nvl(al.ACCOUNTED_CR,0)) "Amount"
from
inv.mtl_transaction_accounts mta,
inv.mtl_material_transactions mmt,
inv.mtl_transaction_types mtt,
inv.mtl_system_items_b msi,
inv.org_acct_periods oap,
gl.GL_CODE_COMBINATIONS gcc1,
inv.mtl_parameters mp,
apps.mfg_lookups ml,
hr.HR_ORGANIZATION_INFORMATION hoi,
hr.hr_all_organization_units haou, -- inv_organization_id
hr.hr_all_organization_units haou2, -- operating unit
gl.gl_ledgers gl,
xla.xla_transaction_entities ent,
xla.xla_events xe,
xla.xla_distribution_links xdl,
xla.xla_ae_headers ah,
xla.xla_ae_lines al
-- ========================================================
-- Material Transaction, org and item joins
-- ========================================================
where
mta.transaction_id
= mmt.transaction_id
and
mmt.transaction_type_id
= mtt.transaction_type_id
and
mta.organization_id
= msi.organization_id
and
mta.inventory_item_id
= msi.inventory_item_id
and
mp.organization_id
= msi.organization_id
-- ========================================================
-- Inventory Org accounting period joins
-- ========================================================
and
oap.period_name
= ah.period_name
and
oap.organization_id
= mta.organization_id
-- ========================================================
-- Version 1.3, added lookup values to see more detail
-- ========================================================
and
ml.lookup_type
= 'CST_ACCOUNTING_LINE_TYPE'
and
ml.lookup_code
= mta.accounting_line_type
-- ========================================================
-- Material Transaction date and accounting code joins
-- ========================================================
and
mta.transaction_date
>= to_date('&P_TRX_FROM_YYYY_MM_DD','YYYY/MM/DD HH24:MI:SS')
-- P_TRX_DATE_FROM
and
mta.transaction_date
< to_date('&P_TRX_TO_YYYY_MM_DD','YYYY/MM/DD HH24:MI:SS')+1
-- P_TRX_DATE_TO
-- ========================================================
-- using the base tables to avoid the performance issues
-- with org_organization_definitions and hr_operating_units
-- ========================================================
and
hoi.org_information_context = 'Accounting Information'
and
hoi.organization_id
= mta.organization_id
and
hoi.organization_id
= haou.organization_id
-- this gets the organization name
and
haou2.organization_id
= to_number(hoi.org_information3)
-- this gets the operating unit id
and
gl.ledger_id
= to_number(hoi.org_information1) -- get the ledger_id
-- ========================================================
-- SLA table joins to get the exact account numbers
-- ========================================================
AND
ent.entity_code
= 'MTL_ACCOUNTING_EVENTS'
AND
ent.application_id
= 707

COLLABORATE 14 OAUG Forum

Copyright 2011-2014 Douglas Volz Consulting, Inc.

Page 35 of 46

Reconcile Your Inventory to G/L Balances With Ease, From 1 to 1,000 Inventory
Organizations!
AND
xe.application_id
= ent.application_id
AND
xe.event_id
= xdl.event_id
AND
ah.entity_id
= ent.entity_id
AND
ah.ledger_id
= ent.ledger_id
AND
ah.application_id
= al.application_id
AND
ah.application_id
= 707
AND
ah.event_id
= xe.event_id
AND
ah.ae_header_id
= al.ae_header_id
AND
al.application_id
= ent.application_id
AND
al.ledger_id
= ah.ledger_id
AND
al.AE_HEADER_ID
= xdl.AE_HEADER_ID
AND
al.AE_LINE_NUM
= xdl.AE_LINE_NUM
AND
xdl.application_id
= ent.application_id
AND
xdl.source_distribution_type = 'MTL_TRANSACTION_ACCOUNTS'
AND
xdl.source_distribution_id_num_1 = mta.inv_sub_ledger_id
AND
gcc1.code_combination_id
= al.code_combination_id
-- ==========================================================
group by
gl.name,
haou2.name,
mp.organization_code,
oap.period_name,
gcc1.code_combination_id,
ml.meaning,
mtt.transaction_type_name,
mta.transaction_id,
gcc1.segment1,
gcc1.segment2,
gcc1.segment3,
gcc1.segment4,
gcc1.segment5,
gcc1.segment6,
gcc1.segment7,
gcc1.segment8,
gcc1.segment9,
msi.segment1,
msi.description,
DECODE(mta.accounting_line_type, 7, 'WIP', 14, '', 1,
DECODE (mmt.transaction_action_id,
2, DECODE (SIGN (mta.primary_quantity),
-1, mmt.subinventory_code,
1, mmt.transfer_subinventory,
mmt.subinventory_code
),
3, DECODE (mmt.organization_id,
mta.organization_id, mmt.subinventory_code,
mmt.transfer_subinventory
),
21, DECODE (SIGN (mta.primary_quantity),
-1, mmt.subinventory_code,
1, mmt.transfer_subinventory,
mmt.subinventory_code
),
22, DECODE (SIGN (mta.primary_quantity),
-1, mmt.subinventory_code,
1, mmt.transfer_subinventory,
mmt.subinventory_code
),
28, DECODE (SIGN (mta.primary_quantity),
-1, mmt.subinventory_code,
1, mmt.transfer_subinventory,
mmt.subinventory_code
),
mmt.subinventory_code
)
),
mta.primary_quantity
order by 1,2;

COLLABORATE 14 OAUG Forum

Copyright 2011-2014 Douglas Volz Consulting, Inc.

Page 36 of 46

Reconcile Your Inventory to G/L Balances With Ease, From 1 to 1,000 Inventory
Organizations!
6. Sample Release 12 WIP Distribution Report:
/*
-------------------------------

+=============================================================================+
| Copyright 2009-2014 Douglas Volz Consulting, Inc.
|
| All rights reserved.
|
| Permission to use this code is granted provided the original author is
|
| acknowledged. No warranties, express or otherwise are included in this
|
| permission.
|
+=============================================================================+
|
| Original Author: Douglas Volz (doug@volzconsulting.com)
|
| Program Name: XXX_XLA_WIP_ACCTS_DETAIL_REPT.sql
|
| Parameters:
| P_OPERATING_UNIT
-- operating unit parameter
| P_TRX_DATE_FROM
-- starting transaction date
| P_TRX_DATE_TO
-- ending transaction date
|
| Description:
| Report to get the WIP accounting entries by account, transaction
| type and accounting line type. . A group by is used to add up entries across cost
| cost elements.
|
| Version Modified on Modified by
Description
| ======= =========== ============== =========================================
| 1.0
06 Nov 2009 Douglas Volz
Initial Coding
| 2.0
11 Nov 2009 Douglas Volz
Fixed join for primary_assembly_id
| 3.0
11 Nov 2009 Douglas Volz
Added Org Code and transaction ID
| 4.0
12 Nov 2009 Douglas Volz
Added item and description
| 5.0
05 Jan 2010 Douglas Volz
Added org joins for wac and wdj, to avoid
|
cross-joining
+=============================================================================+*/

select

from

gl.name "Ledger",
haou2.name "Operating Unit",
mp.organization_code "Org Code",
oap.period_name "Period Name",
ml.meaning "Acct Line Type",
ml2.meaning "WIP Transaction Type",
wta.transaction_id "Txn Id",
gcc1.segment1 "Co",
gcc1.segment2 "Cost Ctr",
gcc1.segment3 "Acct",
gcc1.segment4 "Sub-Acct",
gcc1.segment5 "Prod Grp",
gcc1.segment6 "Loc",
gcc1.segment7 "InterCo",
gcc1.segment8 "Future1",
gcc1.segment9 "Future2",
msi.segment1 "Item",
msi.description "Description",
wac.class_code "WIP Class",
sum(nvl(al.ACCOUNTED_DR,0) - nvl(al.ACCOUNTED_CR,0)) "Amount"
wip.wip_transaction_accounts wta,
wip.wip_transactions wt,
wip.wip_accounting_classes wac,
wip.wip_discrete_jobs wdj,
apps.mfg_lookups ml2,
inv.mtl_system_items_b msi,
inv.org_acct_periods oap,
gl.GL_CODE_COMBINATIONS gcc1,
inv.mtl_parameters mp,
apps.mfg_lookups ml,
hr.HR_ORGANIZATION_INFORMATION hoi,
hr.hr_all_organization_units haou, -- inv_organization_id
hr.hr_all_organization_units haou2, -- operating unit
gl.gl_ledgers gl,
xla.xla_transaction_entities ent,

COLLABORATE 14 OAUG Forum

Copyright 2011-2014 Douglas Volz Consulting, Inc.

Page 37 of 46

Reconcile Your Inventory to G/L Balances With Ease, From 1 to 1,000 Inventory
Organizations!
xla.xla_events xe,
xla.xla_distribution_links xdl,
xla.xla_ae_headers ah,
xla.xla_ae_lines al
-- ========================================================
-- Material Transaction, org and item joins
-- ========================================================
where
wta.transaction_id
= wt.transaction_id
and
wta.organization_id
= msi.organization_id
-- fix for version 2.0, use wdj not wt
and
wdj.primary_item_id
= msi.inventory_item_id
and
mp.organization_id
= msi.organization_id
-- ========================================================
and
wac.class_code = wdj.class_code
and
wdj.wip_entity_id = wt.wip_entity_id
and
wac.organization_id = wdj.organization_id
-- ========================================================
-- Inventory Org accounting period joins
-- ========================================================
and
oap.acct_period_id = wt.acct_period_id
-- ========================================================
-- Version 1.3, added lookup values to see more detail
-- ========================================================
and
ml.lookup_type
= 'CST_ACCOUNTING_LINE_TYPE'
and
ml.lookup_code
= wta.accounting_line_type
and
ml2.lookup_type
= 'WIP_TRANSACTION_TYPE_SHORT'
and
ml2.lookup_code
= wt.transaction_type
-- ========================================================
-- Material Transaction date and accounting code joins
-- ========================================================
and
wta.transaction_date
>= to_date('&P_TRX_FROM_YYYY_MM_DD','YYYY/MM/DD HH24:MI:SS')
-- P_TRX_DATE_FROM
and
wta.transaction_date
< to_date('&P_TRX_TO_YYYY_MM_DD','YYYY/MM/DD HH24:MI:SS')+1
-- P_TRX_DATE_TO
-- ========================================================
-- using the base tables to avoid the performance issues
-- with org_organization_definitions and hr_operating_units
-- ========================================================
and
hoi.org_information_context = 'Accounting Information'
and
hoi.organization_id
= wta.organization_id
and
hoi.organization_id
= haou.organization_id
-- this gets the organization name
and
haou2.organization_id
= to_number(hoi.org_information3)
-- this gets the operating unit id
and
gl.ledger_id
= to_number(hoi.org_information1) -- get the ledger_id
-- ========================================================
-- SLA table joins to get the exact account numbers
-- ========================================================
AND
ent.entity_code
= 'WIP_ACCOUNTING_EVENTS'
AND
ent.application_id
= 707
AND
xe.application_id
= ent.application_id
AND
xe.event_id
= xdl.event_id
AND
ah.entity_id
= ent.entity_id
AND
ah.ledger_id
= ent.ledger_id
AND
ah.application_id
= al.application_id
AND
ah.application_id
= 707
AND
ah.event_id
= xe.event_id
AND
ah.ae_header_id
= al.ae_header_id
AND
al.application_id
= ent.application_id
AND
al.ledger_id
= ah.ledger_id
AND
al.AE_HEADER_ID
= xdl.AE_HEADER_ID
AND
al.AE_LINE_NUM
= xdl.AE_LINE_NUM
AND
xdl.application_id
= ent.application_id
AND
xdl.source_distribution_type = 'WIP_TRANSACTION_ACCOUNTS'
AND
xdl.source_distribution_id_num_1 = wta.wip_sub_ledger_id
AND
gcc1.code_combination_id
= al.code_combination_id
-- ==========================================================
group by
gl.name,
haou2.name,
mp.organization_code,
oap.period_name,
ml.meaning,

COLLABORATE 14 OAUG Forum

Copyright 2011-2014 Douglas Volz Consulting, Inc.

Page 38 of 46

Reconcile Your Inventory to G/L Balances With Ease, From 1 to 1,000 Inventory
Organizations!
ml2.meaning,
wta.transaction_id,
gcc1.segment1,
gcc1.segment2,
gcc1.segment3,
gcc1.segment4,
gcc1.segment5,
gcc1.segment6,
gcc1.segment7,
gcc1.segment8,
gcc1.segment9,
-DECODE(wta.accounting_line_type, 7, 'WIP', 14, 'Intransit', 1, 'Subinventory'),
msi.segment1,
msi.description,
wac.class_code
order by 1,2;

7. Sample R12 Receiving Accounting Distribution Report


/*
----------------------------------------------------

+=============================================================================+
| Copyright 2010 Douglas Volz Consulting, Inc.
|
| All rights reserved.
|
| Permission to use this code is granted provided the original author is
|
| acknowledged. No warranties, express or otherwise is included in this
|
| permission.
|
+=============================================================================+
|
| Original Author: Douglas Volz (davolz@comcast.net)
|
| Program Name: XXX_RCV_DIST_XLA_SUM_REPT.sql
|
| Parameters:
| P_LEDGER
-- general ledger you wish to report, works with
|
NULL, % or valid ledger names
| P_TRX_DATE_FROM
-- starting transaction date for receiving related transactions
| P_TRX_DATE_TO
-- ending transaction date for receiving related transactions
| P_DEST_TYPE_CODE
-- PO destination type code, such as INVENTORY, EXPENSE or
|
SHOP FLOOR
|
| Description:
| Report to get the report the receiving accounting entries by account,
| transaction type and accounting line type.
|
| Version Modified on Modified by
Description
| ======= =========== ============== =========================================
| 1.0
05 Apr 2010 Douglas Volz
Initial Coding based on XXX_RCV_DIST_XLA_SUM_REPT.sql
| 1.1
12 Apr 2010 Douglas Volz
Changed join to mp.organization_id to rt.organization_id
|
to ensure expense transactions are picked up
| 1.2
15 Apr 2010 Douglas Volz
Commented out transaction_id group by
| 1.3
20 Jun 2010 Douglas Volz
Fixed report sort
| 1.4
23 Jun 2010 Douglas Volz
Added project number, destination type columns
|
a ledger parameter,and used an inline table
|
to summarize the results
| 1.5
26 Jun 2010 Douglas Volz
Added lookup code for destination type
| 1.6
13 Sep 2010 Douglas Volz
Updated ledger and date parameters for BO
|
Freehand SQL requirements, added UOM Code
| 1.7
08 Sep 2011 Douglas Volz
Changed the transaction date parameters to
|
look at rcv_receiving_sub_ledger as opposed
|
to rcv_transactions, since for retro-active
|
price adjustments, the original receiving
|
transaction id is used, but the retro-active
|
price adjustment accounting entries have a
|
different transaction date.
| 1.8
12 Sep 2011 Douglas Volz
Fix for the SIGN of the transaction quantity
|
for Correction transactions
| 1.9
21 Jan 2012 Douglas Volz
Added WIP job, Resource, PO number, PO line
|
and PO release columns, and added PO
|
Destination parameter
| 1.10
16 Jan 2014 Douglas Volz
Added rcv_accounting_events table to improve
|
performance by date range
+=============================================================================+*/

COLLABORATE 14 OAUG Forum

Copyright 2011-2014 Douglas Volz Consulting, Inc.

Page 39 of 46

Reconcile Your Inventory to G/L Balances With Ease, From 1 to 1,000 Inventory
Organizations!
select gl.name "Ledger",
haou2.name "Operating Unit",
rcv_acct.organization_code "Org Code",
oap.period_name "Period Name",
gcc1.segment1 "Co",
gcc1.segment2 "Dept",
gcc1.segment3 "Acct",
gcc1.segment4 "Sub-Acct",
gcc1.segment5 "Prod Grp",
gcc1.segment6 "Loc",
gcc1.segment7 "InterCo",
gcc1.segment8 "Future1",
gcc1.segment9 "Future2",
rcv_acct.item_number "Item Number",
rcv_acct.item_description "Item Description",
rcv_acct.accounting_line_type "Acct Line Type",
flv.meaning "Transaction Type",
pl.displayed_field "Destination Type",
-- Fix for version 1.9
rcv_acct.po_num "PO Number",
rcv_acct.po_line "PO Line",
rcv_acct.release_num "Rel Num",
-- End fix for version 1.9
pp.name "Project Number",
-- Fix for version 1.9
rcv_acct.wip_job "WIP Job",
rcv_acct.bom_resource "Resource Code",
-- End fix for version 1.9
rcv_acct.primary_uom_code "UOM Code",
sum(rcv_acct.primary_quantity) "Quantity",
gl.currency_code "Curr Code",
sum(nvl(al.ACCOUNTED_DR,0) - nvl(al.ACCOUNTED_CR,0)) "Amount"
from
inv.org_acct_periods oap,
pa.pa_projects_all pp,
gl.GL_CODE_COMBINATIONS gcc1,
apps.fnd_lookup_values flv,
hr.HR_ORGANIZATION_INFORMATION hoi,
hr.hr_all_organization_units haou, -- inv_organization_id
hr.hr_all_organization_units haou2, -- operating unit
gl.gl_ledgers gl,
apps.po_lookup_codes pl,
xla.xla_transaction_entities ent,
xla.xla_events xe,
xla.xla_distribution_links xdl,
xla.xla_ae_headers ah,
xla.xla_ae_lines al,
-- ==========================================================================
-- Use this inline table to fetch the receiving transactions
-- ==========================================================================
(select mp.organization_code organization_code,
rt.organization_id organization_id,
rrsl.code_combination_id code_combination_id,
rrsl.rcv_sub_ledger_id rcv_sub_ledger_id,
msi.segment1 item_number,
msi.description item_description,
rrsl.accounting_line_type accounting_line_type,
rt.transaction_type transaction_type,
pod.destination_type_code destination_type_code,
-- Fix for version 1.9
poh.segment1 po_num,
pol.line_num po_line,
(select pr.release_num
from
po.po_releases_all pr
where pr.po_release_id = rt.po_release_id) release_num,
-- End fix for version 1.9
pod.project_id project_id,
-- Fix for version 1.9
(select we.wip_entity_name
from
wip.wip_entities we
where we.wip_entity_id = rt.wip_entity_id) wip_job,
(select br.resource_code

COLLABORATE 14 OAUG Forum

Copyright 2011-2014 Douglas Volz Consulting, Inc.

Page 40 of 46

Reconcile Your Inventory to G/L Balances With Ease, From 1 to 1,000 Inventory
Organizations!
from
bom.bom_resources br
where br.resource_id
= rt.bom_resource_id) bom_resource,
-- End fix for version 1.9
msi.primary_uom_code,
sum(decode(SIGN(nvl(rrsl.ACCOUNTED_DR,0) - nvl(rrsl.ACCOUNTED_CR,0)),
-- =============================================
-- Fix for version 1.8
-- SIGN of qty incorrect on CORRECTION transactions
-- =============================================
-1, rt.primary_quantity,
--1, -1 * rt.primary_quantity,
1, 1 * abs(rt.primary_quantity),
-1, -1 * abs(rt.primary_quantity),
-- End fix for version 1.8
-- =============================================
rt.primary_quantity
)
) primary_quantity,
sum(nvl(rrsl.ACCOUNTED_DR,0) - nvl(rrsl.ACCOUNTED_CR,0)) amount
from
po.rcv_receiving_sub_ledger rrsl,
-- Fix for version 1.10
po.rcv_accounting_events rae,
po.rcv_transactions rt,
po.rcv_shipment_lines rsl,
-- Fix for version 1.9
po.po_headers_all poh,
po.po_lines_all pol,
-- Fix for version 1.9
po.po_distributions_all pod,
inv.mtl_system_items_b msi,
inv.mtl_parameters mp
-- ========================================================
-- Material Transaction, org and item joins
-- ========================================================
where rrsl.rcv_transaction_id = rt.transaction_id
-- Fix for version 1.10
and
rae.accounting_event_id = rrsl.accounting_event_id
and
rae.rcv_transaction_id = rt.transaction_id
-- End fix for version 1.10
and
rt.SHIPMENT_LINE_ID
= rsl.SHIPMENT_LINE_ID
and
rsl.item_id
= msi.inventory_item_id (+)
and
rsl.to_organization_id = msi.organization_id
(+)
and
pod.po_distribution_id = nvl(rt.po_distribution_id, to_number(rrsl.reference3))
and
mp.organization_id
= rt.organization_id
-- ========================================================
-- Fix for version 1.9
-- ========================================================
and
rt.po_header_id
= poh.po_header_id
and
rt.po_line_id
= pol.po_line_id
-- ========================================================
-- Fix for version 1.7
-- ========================================================
-- Receiving Transaction date joins
-- ========================================================
-- and
rt.transaction_date
>= to_date('&P_TRX_FROM_DD_MON_YYYY','DD/MON/YYYY HH24:MI:SS') -- P_TRX_DATE_FROM
-- and
rt.transaction_date
< to_date('&P_TRX_TO_DD_MON_YYYY','DD/MON/YYYY HH24:MI:SS')+1 -- P_TRX_DATE_TO
-- and
rrsl.transaction_date >= to_date('&P_TRX_FROM_DD_MON_YYYY','DD/MON/YYYY HH24:MI:SS') -- P_TRX_DATE_FROM
-- and
rrsl.transaction_date < to_date('&P_TRX_TO_DD_MON_YYYY','DD/MON/YYYY HH24:MI:SS')+1 -- P_TRX_DATE_TO
-- Fix for version 1.10
-- and
rrsl.accounting_date >= to_date('&P_TRX_FROM_DD_MON_YYYY','DD/MON/YYYY HH24:MI:SS')
-- P_TRX_DATE_FROM
-- and
rrsl.accounting_date < to_date('&P_TRX_TO_DD_MON_YYYY','DD/MON/YYYY HH24:MI:SS')+1
-- P_TRX_DATE_TO
and
rae.transaction_date >= to_date('&P_TRX_FROM_DD_MON_YYYY','DD/MON/YYYY HH24:MI:SS') -- P_TRX_DATE_FROM
and
rae.transaction_date < to_date('&P_TRX_TO_DD_MON_YYYY','DD/MON/YYYY HH24:MI:SS')+1 -- P_TRX_DATE_TO
-- End fix for version 1.10

and

pod.destination_type_code = decode(UPPER('&P_DEST_TYPE_CODE'),
'%', pod.destination_type_code,
NULL, pod.destination_type_code,
UPPER('&P_DEST_TYPE_CODE'))
-- P_DEST_TYPE_CODE
-- End fix for version 1.7
-- End fix for version 1.9
-- ========================================================
group by
mp.organization_code,
rt.organization_id,

COLLABORATE 14 OAUG Forum

Copyright 2011-2014 Douglas Volz Consulting, Inc.

Page 41 of 46

Reconcile Your Inventory to G/L Balances With Ease, From 1 to 1,000 Inventory
Organizations!
rrsl.code_combination_id,
rrsl.rcv_sub_ledger_id,
msi.segment1,
msi.description,
rrsl.accounting_line_type,
rt.transaction_type,
pod.destination_type_code,
-- Fix for version 1.9
poh.segment1,
pol.line_num,
-- End fix for version 1.9
pod.project_id,
-- Fix for version 1.9
-- Added for inline column selects
rt.po_release_id,
rt.wip_entity_id,
rt.bom_resource_id,
-- End fix for version 1.9
msi.primary_uom_code
) rcv_acct
-- ========================================================
-- Inventory Org accounting period joins
-- ========================================================
where
oap.period_name
= ah.period_name
and
oap.organization_id
= rcv_acct.organization_id
-- ========================================================
-- Version 1.3, added lookup values to see more detail
-- ========================================================
and
flv.lookup_type
= 'RCV TRANSACTION TYPE'
and
flv.lookup_code
= rcv_acct.transaction_type
and
source_lang
= 'US'
and
language
= 'US'
and
pl.lookup_type
= 'DESTINATION TYPE'
and
pl.lookup_code
= rcv_acct.destination_type_code
-- ========================================================
-- Project number join
-- ========================================================
and
rcv_acct.project_id
= pp.project_id (+)
-- ========================================================
-- using the base tables to avoid the performance issues
-- with org_organization_definitions and hr_operating_units
-- ========================================================
and
hoi.org_information_context = 'Accounting Information'
and
hoi.organization_id
= rcv_acct.organization_id
and
hoi.organization_id
= haou.organization_id
-- this gets the organization name
and
haou2.organization_id
= to_number(hoi.org_information3)
-- this gets the operating unit id
and
gl.ledger_id
= to_number(hoi.org_information1) -- get the ledger_id
-- and gl.name
= nvl('&P_LEDGER',gl.name)
-- P_LEDGER
and
gl.name = decode('&P_LEDGER', '%', gl.name, NULL, gl.name, '&P_LEDGER')
-- P_LEDGER
-- ========================================================
-- SLA table joins to get the exact account numbers
-- ========================================================
AND
ent.entity_code
= 'RCV_ACCOUNTING_EVENTS'
AND
ent.application_id
= 707
AND
xe.application_id
= ent.application_id
AND
xe.event_id
= xdl.event_id
AND
ah.entity_id
= ent.entity_id
AND
ah.ledger_id
= ent.ledger_id
AND
ah.application_id
= al.application_id
AND
ah.application_id
= 707
AND
ah.event_id
= xe.event_id
AND
ah.ae_header_id
= al.ae_header_id
AND
al.application_id
= ent.application_id
AND
al.ledger_id
= ah.ledger_id
AND
al.AE_HEADER_ID
= xdl.AE_HEADER_ID
AND
al.AE_LINE_NUM
= xdl.AE_LINE_NUM
AND
xdl.application_id
= ent.application_id
AND
xdl.source_distribution_type = 'RCV_RECEIVING_SUB_LEDGER'
AND
xdl.source_distribution_id_num_1 = rcv_acct.rcv_sub_ledger_id
AND
gcc1.code_combination_id
= al.code_combination_id
-- ==========================================================

COLLABORATE 14 OAUG Forum

Copyright 2011-2014 Douglas Volz Consulting, Inc.

Page 42 of 46

Reconcile Your Inventory to G/L Balances With Ease, From 1 to 1,000 Inventory
Organizations!
group by
gl.name,
haou2.name,
rcv_acct.organization_code,
oap.period_name,
gcc1.segment1,
gcc1.segment2,
gcc1.segment3,
gcc1.segment4,
gcc1.segment5,
gcc1.segment6,
gcc1.segment7,
gcc1.segment8,
gcc1.segment9,
rcv_acct.item_number,
rcv_acct.item_description,
rcv_acct.accounting_line_type,
flv.meaning,
pl.displayed_field,
-- Fix for version 1.9
rcv_acct.po_num,
rcv_acct.po_line,
rcv_acct.release_num,
-- End fix for version 1.9
pp.name,
-- Fix for version 1.9
rcv_acct.wip_job,
rcv_acct.bom_resource,
-- End fix for version 1.9
rcv_acct.primary_uom_code,
gl.currency_code
order by 1,3,4,7,8,9,10,11,14,16,17,18;

8. Sample Release 11i and 12 Item Cost Out-of-Balance Report


/* +=============================================================================+
-- | Copyright 2009-2014 Douglas Volz Consulting, Inc.
|
-- | All rights reserved.
|
-- | Permission to use this code is granted provided the original author is
|
-- | acknowledged. No warranties, express or otherwise is included in this
|
-- | permission.
|
-- +=============================================================================+
-- |
-- | Original Author: Douglas Volz (doug@volzconsulting.com)
-- |
-- | Program Name: XXX_ITEM_COST_DIFF_REPT.sql
-- |
-- | Parameters:
-- | NONE
-- |
-- | Description:
-- | Report to compare summary and detail item cost information and show any out-of-balances.
-- |
-- | Version Modified on Modified by Description
-- | ======= =========== ============== =========================================
-- | 1.0
06 Oct 2009 Douglas Volz Initial Coding
-- | 1.1
16 Mar 2010 Douglas Volz Updated with Make/Buy flags
-- | 1.2
08 Nov 2010 Douglas Volz Updated with additional columns and parameters
-- | 1.3
10 Dec 2012 Douglas Volz Compare summary and detail item cost information.
-- +=============================================================================+*/
select mp.organization_code "Org Code",
cct.cost_type "Cost Type",
msi.segment1 "Item Number",
msi.description "Description",
msi.primary_uom_code "UOM Code",
msi.inventory_item_status_code "Item Status",
fcl.meaning "Item Type",
decode (msi.planning_make_buy_code, 1,'Make',2,'Buy','None') "MB Code",
decode (msi.COSTING_ENABLED_FLAG, 'Y','Yes','N','No','None') "Allow Costs",

COLLABORATE 14 OAUG Forum

Copyright 2011-2014 Douglas Volz Consulting, Inc.

Page 43 of 46

Reconcile Your Inventory to G/L Balances With Ease, From 1 to 1,000 Inventory
Organizations!
decode (cic.INVENTORY_ASSET_FLAG, 1,'Yes',2,'No','No') "Inv. Asset",
decode(cic.based_on_rollup_flag,1,'Yes','No') "Based on Cost Rollup",
cic.shrinkage_rate "Shrinkage Rate",
max(nvl(cic.material_cost,0)) "Sum Material Cost",
max(nvl(cic.material_overhead_cost,0)) "Sum Matl Ovhd Cost",
max(nvl(cic.resource_cost,0)) "Sum Resource Cost",
max(nvl(cic.outside_processing_cost,0)) "Sum OSP Cost",
max(nvl(cic.overhead_cost,0)) "Sum Overhead Cost",
max(nvl(cic.item_cost,0)) "Sum Item Cost",
sum(decode(cicd.cost_element_id, 1, nvl(cicd.item_cost,0),0)) "Material Cost",
sum(decode(cicd.cost_element_id, 2, nvl(cicd.item_cost,0),0)) "Matl Ovhd Cost",
sum(decode(cicd.cost_element_id, 3, nvl(cicd.item_cost,0),0)) "Resource Cost",
sum(decode(cicd.cost_element_id, 4, nvl(cicd.item_cost,0),0)) "OSP Cost",
sum(decode(cicd.cost_element_id, 5, nvl(cicd.item_cost,0),0)) "Overhead Cost",
sum(nvl(cicd.item_cost,0)) "Item Cost",
max(nvl(cic.item_cost,0)) - sum(nvl(cicd.item_cost,0)) "Item Cost Diff."
from
apps.cst_item_costs cic,
apps.cst_item_cost_details cicd,
apps.cst_cost_types cct,
apps.mtl_system_items_b msi,
apps.mtl_parameters mp,
apps.fnd_common_lookups fcl
-- ===================================================================
-- Item master, organization and item master to cost joins
-- ===================================================================
where
mp.organization_id
= msi.organization_id
and
msi.inventory_item_id
= cic.inventory_item_id
and
msi.organization_id
= cic.organization_id
and
cic.cost_type_id
= cct.cost_type_id
and
cct.cost_type
= 'Frozen'
and
cic.inventory_item_id
= cicd.inventory_item_id
and
cic.organization_id
= cicd.organization_id
and
cic.cost_type_id
= cicd.cost_type_id
-- ===================================================================
-- Lookup codes for item types
and
fcl.lookup_code
= msi.item_type
and
fcl.lookup_type
= 'ITEM_TYPE'
-- ===================================================================
group by
mp.organization_code,
cct.cost_type,
msi.segment1,
msi.description,
msi.primary_uom_code,
msi.inventory_item_status_code,
fcl.meaning,
decode (msi.planning_make_buy_code, 1,'Make',2,'Buy','None'),
decode (msi.COSTING_ENABLED_FLAG, 'Y','Yes','N','No','None'),
decode (cic.INVENTORY_ASSET_FLAG, 1,'Yes',2,'No','No'),
decode(cic.based_on_rollup_flag,1,'Yes','No'),
cic.shrinkage_rate
having abs(sum(nvl(cicd.item_cost,0)) - max(nvl(cic.item_cost,0))) > .0001
order by 1,2,3,4;

9. Subledger Accounting Transfer Methods


Prior to Release 12 each subledger (A/P, A/R, PO, Cost, etc.) had its own method for transferring entries to the
General Ledger. With SLA there is one unified method for doing this. You still use the Process Cost Engine or the
Discrete Cost Manager, depending if you use Process or Discrete costing. Overall, the process looks like:

COLLABORATE 14 OAUG Forum

Copyright 2011-2014 Douglas Volz Consulting, Inc.

Page 44 of 46

Reconcile Your Inventory to G/L Balances With Ease, From 1 to 1,000 Inventory
Organizations!
Enter Transaction(s)

Cost
Manager

Create Accounting

Transfer Journal Entries to GL

The Create Accounting program creates subledger entries based upon your SLA setup and SLAM (Subledger
Accounting Method) assigned to each ledger. The Create Accounting program applies the application accounting
definitions that are created by the Accounting Methods Builder (AMB) when you define and validate your SLA
setups. The Create Accounting program also controls how and when you wish to transfer eligible journal entries to
the General Ledger. Each subledger has access to the Create Accounting program.
You have three ways to create subledger entries:

Draft Accounting create the journal entries in draft mode for test purposes only. Draft entries are not
transferred to the General Ledger. You can review the entries, update the transaction or update the
accounting rules. Any changes will be reflected when the transaction is processed again for accounting.
Final Accounting create the journal entries ready for transferring to the General Ledger with the
transactions considered to be processed for accounting. You cannot modify these entries created in Final
Accounting mode.
Final Post create the journal entries and post them to the General Ledger. Again, you cannot modify
these entries created in Final Post Accounting mode.

For Oracle Cost Management there are two programs to run for Create Accounting:
Create Accounting Cost Management concurrent request for accounting all transactions from the
Cost Management SLA responsibility. It picks up Inventory, WIP and Receiving accounting entries.
Create Accounting Receiving concurrent request for Receiving Accounting can be generated in the
Purchasing responsibilities. You use this program if you are not using Oracle Cost Management.

TIP: When you run Create Accounting you should set the parameter Include User Transaction
Identifiers to Yes, as this will help you track transaction information. Go to:

COLLABORATE 14 OAUG Forum

Copyright 2011-2014 Douglas Volz Consulting, Inc.

Page 45 of 46

Reconcile Your Inventory to G/L Balances With Ease, From 1 to 1,000 Inventory
Organizations!

You can create accounting entries


by Process Category: Inventory,
Manual, Receiving, Third Party or
Work in Process

TIP: For Discrete Costing, the prior Release 11i journal sources Purchasing and Inventory have been
replaced with Cost Management.

COLLABORATE 14 OAUG Forum

Copyright 2011-2014 Douglas Volz Consulting, Inc.

Page 46 of 46

You might also like