Professional Documents
Culture Documents
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).
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
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.
Secondary
Ledger
Switzerland
(CHE)
European
LSPs
SLs
LSPs
Asia-Pac
LEs
Swiss PL
(USD)
European PL
(USD)
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)
USA PL
(USD)
CORP
LE
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.
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
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:
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:
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
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.
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.
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
Page 6 of 46
Reconcile Your Inventory to G/L Balances With Ease, From 1 to 1,000 Inventory
Organizations!
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.
Page 7 of 46
Reconcile Your Inventory to G/L Balances With Ease, From 1 to 1,000 Inventory
Organizations!
Page 8 of 46
Reconcile Your Inventory to G/L Balances With Ease, From 1 to 1,000 Inventory
Organizations!
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
Page 9 of 46
Reconcile Your Inventory to G/L Balances With Ease, From 1 to 1,000 Inventory
Organizations!
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.
Page 11 of 46
Reconcile Your Inventory to G/L Balances With Ease, From 1 to 1,000 Inventory
Organizations!
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.
Page 12 of 46
Reconcile Your Inventory to G/L Balances With Ease, From 1 to 1,000 Inventory
Organizations!
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.
Page 13 of 46
Reconcile Your Inventory to G/L Balances With Ease, From 1 to 1,000 Inventory
Organizations!
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
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:
Corrective actions:
Corrective actions:
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.
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.
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.)
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:
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.
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
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.
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.
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!
This information comes from the month-end cost snapshot table. In the appendix a sample SQL script is given for
your use.
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
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
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:
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:
And from the Authors perspective and from many clients, here are some desired enhancement requests:
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:
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
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)
Caveats:
o
o
o
o
o
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.
Thanks for allowing the Author to share his experiences with you.
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
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:
The Oracle Cost Management Development Team for allowing me to discuss these topics with them
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
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.
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.
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
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.
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:
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
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,
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;
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
+=============================================================================+*/
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
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;
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,
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,
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;
+=============================================================================+
| 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
+=============================================================================+*/
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
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,
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
-- ==========================================================
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;
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;
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
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:
Page 45 of 46
Reconcile Your Inventory to G/L Balances With Ease, From 1 to 1,000 Inventory
Organizations!
TIP: For Discrete Costing, the prior Release 11i journal sources Purchasing and Inventory have been
replaced with Cost Management.
Page 46 of 46