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 1 of 46 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 [email protected] (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

Cost Management Whitepaper

  • Upload
    muftisb

  • View
    42

  • Download
    0

Embed Size (px)

DESCRIPTION

Cost Management Whitepaper

Citation preview

Page 1: Cost Management Whitepaper

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 1 of 46

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 [email protected] (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

Page 2: Cost Management Whitepaper

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 2 of 46

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 Inventory’s 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 ConsolidatedLedger

Secondary Ledger

Primary Ledger

Legal Entity

Operating Unit

Inventory Orgs

Corporate Consolidated Ledger(USD)

USA PL(USD)

Other LEs

US OU

CORP LE

Item Master(ZZZ)

Switzerland Org

Korea OU

Switzerland(CHE) LSP’sLSP’s

European SLs

ORG Korea

SwitzerlandOU

US Dist. Centers

US LSP Orgs

Swiss Dist. Center

Asia-Pac OUs

Asia-Pac Dist. Centers

Europe Dist. Centers

Europe LSP Orgs

Other European

OUs

Korea LE Asia-Pac LEs

Swiss LEOther

European LEs

Korea(KRW)

Asia-Pac LEs

Swiss PL (USD)

European PL(USD)

Page 3: Cost Management Whitepaper

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 3 of 46

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

Page 4: Cost Management Whitepaper

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 4 of 46

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 don’t 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

Page 5: Cost Management Whitepaper

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 5 of 46

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.

Page 6: Cost Management Whitepaper

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 6 of 46

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.

Page 7: Cost Management Whitepaper

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 7 of 46

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.

Page 8: Cost Management Whitepaper

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

Page 9: Cost Management Whitepaper

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 9 of 46

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

Page 10: Cost Management Whitepaper

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

Page 11: Cost Management Whitepaper

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 11 of 46

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 12: Cost Management Whitepaper

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 12 of 46

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

Page 13: Cost Management Whitepaper

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 13 of 46

• 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”.

Page 14: Cost Management Whitepaper

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 14 of 46

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).

Page 15: Cost Management Whitepaper

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 15 of 46

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.

Page 16: Cost Management Whitepaper

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 16 of 46

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 month’s cum. Accounting balances plus this month’s activity)

• Release 12: Self-correcting cumulative accounting balances (last month’s perpetual balance plus this month’s 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,

Page 17: Cost Management Whitepaper

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 17 of 46

• 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.

Page 18: Cost Management Whitepaper

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 18 of 46

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.

Page 19: Cost Management Whitepaper

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 19 of 46

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:

Page 20: Cost Management Whitepaper

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 20 of 46

• The differences between the perpetual and accounted-for inventory balances are trapped in a table the users don’t see. You can run the Period Close Reconciliation Report, but many users and analysts don’t 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

Page 21: Cost Management Whitepaper

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 21 of 46

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 don’t 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 don’t mention trying to explain all this to your Auditors.

And even in Release 12 you still don’t 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 22: Cost Management Whitepaper

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 22 of 46

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 Author’s 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:

Page 23: Cost Management Whitepaper

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 23 of 46

Sample G/L to Inventory Reconciliation Script

As part of Doug Volz’s philosophy of giving back to the Oracle Community, you can request a free (no warranty) SQL report/script to:

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

• Improvements Since Collaborate11:

o Works with WMS (cost groups) o Generic account segments 1 – 9, only need to change the initial column heading names now

• Caveats:

o Only considers Discrete Costing, not OPM o Tested for Standard Costing (should work for Avg, FIFO, LIFO) o Assumes using one valuation account per subinventory or organization or cost group o Does not handle Receiving Perpetual (no snapshot) o 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:

Page 24: Cost Management Whitepaper

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 24 of 46

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 • [email protected] • Informal workshops can be arranged

Page 25: Cost Management Whitepaper

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 25 of 46

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 [email protected] or at www.volzconsulting.com.

Page 26: Cost Management Whitepaper

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 26 of 46

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 27: Cost Management Whitepaper

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 27 of 46

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,

Page 28: Cost Management Whitepaper

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 28 of 46

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 Master’s 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

Page 29: Cost Management Whitepaper

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 29 of 46

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 30: Cost Management Whitepaper

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 30 of 46

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 31: Cost Management Whitepaper

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 31 of 46

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 ([email protected]) -- | -- | 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 sum of diff on report compute sum of onhand on report compute sum of intransit on report compute sum of diff on code compute sum of onhand on code compute sum of 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",

Page 32: Cost Management Whitepaper

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 32 of 46

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 33: Cost Management Whitepaper

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 33 of 46

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 34: Cost Management Whitepaper

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 34 of 46

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 ([email protected]) -- | -- | 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,

Page 35: Cost Management Whitepaper

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 35 of 46

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 36: Cost Management Whitepaper

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 36 of 46

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 37: Cost Management Whitepaper

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 37 of 46

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 ([email protected]) -- | -- | 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 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" from 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 38: Cost Management Whitepaper

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 38 of 46

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 39: Cost Management Whitepaper

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 39 of 46

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 ([email protected]) -- | -- | 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 40: Cost Management Whitepaper

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 40 of 46

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 41: Cost Management Whitepaper

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 41 of 46

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 42: Cost Management Whitepaper

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 42 of 46

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 43: Cost Management Whitepaper

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 43 of 46

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 ([email protected]) -- | -- | 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",

Page 44: Cost Management Whitepaper

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 44 of 46

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:

Page 45: Cost Management Whitepaper

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 45 of 46

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:

Enter Transaction(s)

Cost Manager

Create Accounting Transfer Journal Entries to GL

Page 46: Cost Management Whitepaper

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 46 of 46

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

You can create accounting entries by Process Category: Inventory, Manual, Receiving, Third Party or Work in Process