You are on page 1of 133

How to Create Shipping Burdens for Oracle Cost

Management, in Spite of Subledger Accounting!

Session ID#: 13944

Prepared by:
Doug Volz
Douglas Volz Consulting, Inc.
REMINDER
Check in on the
COLLABORATE mobile app
Learning Points

■ Learn about the business reasons for earning material


overheads at time of shipment and why your COGS and other
shipping expenses may be at a different from your inventory
costs or value

■ Understand the different approaches to solving this for


Release 12 and why this was much easier in Release 11i

■ Learn how to use SLA and other techniques for solving this
business requirement

■ Find out which alternative a recent client choose and contrast


this with other clients
Agenda

■ Shipping Burdens
▪ Definitions and Accounting Principles
▪ Why needed? Why Shipping Burdens?
▪ How does SLA work with Discrete Oracle Cost Management?
▪ Why was Release 11i so Much Easier?
▪ Business Solutions for Shipping Burdens
▪ Recent Client Experiences with Release 12
▪ Appendix:
— Create Material Shipping Burden & SLA Entries
— Discrete Cost Management SLA Model
— Inventory Transactions Architecture
— Create DFFs for Sub-Elements and Material Transactions
Doug Volz
Helping people use Oracle since 1990
■ Professional Summary
▪ 30+ years industry, design and consulting experience, specializing in design,
implementation and project delivery for Cost Management business solutions
▪ Specific areas of expertise:
• Profit in inventory • Multi‐org inventory reporting
• Intercompany • Inventory reconciliation
• A/P accruals • Product Line & Margin analysis
• WIP analysis • Cost Rollup and Update
▪ Presenter at Collaborate (OAUG) and UKOUG since 1996
▪ Multi-national experience in twelve countries +1 510 755 7050
doug@volzconsulting.com
■ Qualification Summary www.volzconsulting.com
▪ Former co-designer for Oracle Cost Management
▪ Lead the OAUG Cost Management Special Interest Group
▪ Cost Management industry experience

Helping people using Oracle Applications since 1990
Copyright ©2014 Douglas Volz Consulting, Inc.
Douglas Volz Consulting, Inc.
„ Douglas Volz Consulting started in 2005 to provide:
ƒ Cost Accounting Business & System Improvements
ƒ Procure to Pay Business Improvements
ƒ Project Management and Advisory Services
ƒ Multi-Org, Global Cost Reporting Solutions
ƒ Lots of free advice and conference papers:
• www.volzconsulting.com/resources.html
• www.volzconsulting.com/oaugcostsig.html

Sample Project Experience:

Helping people using Oracle Applications since 1990
Copyright ©2014 Douglas Volz Consulting, Inc.
Solutions You Can Use
─ http://oaug.org/education-events/cpd
2008 OAUG Collaborate & 2007 UKOUG:  A/P Accruals
How to Setup, Use and Balance Your A/P Accrual Accounts (or How to Manage the Accounts from Hades)

2009, 2013 & 2014: OAUG Collaborate & UKOUG:  Cost Management & SLA
2009:  Cost Accoun ng As You Want It ─ EBS R12 Cost Accoun ng with SLA
2013:  Subledger Accounting for Discrete Cost Accounting: Product Line Accounting Made 
Easy Through SLA 
2014:  How to Create Shipping Burdens for Oracle Cost Management, in Spite of Subledger
Accounting

2010:  OAUG Collaborate:  Profit in Inventory Solutions & PJM Solutions
Does Rel. 12 Solve Global Inter‐Company Issues for Multiple Ledgers, Profit in Inventory and COGS?
Can We Actually Reconcile Project MFG to Inventory, WIP, Projects & G/L?  What Was I Thinking?

2011 & 2014:  OAUG Collaborate & UKOUG:  Inventory Reconciliation
2011:  60 Inventory Orgs?  6 Ledgers?  No Worries, Reconcile Your Inventory With Ease!
2014:  Reconcile Your Inventory to G/L Balances With Ease, From 1 to 1,000 Inventory Organizations!

2012:  OAUG Collaborate:  Transaction Interfaces for Period Close
Egads!  How in the Dickens Do I Handle Those Month‐End Interfaces? 
(And Why Can’t I Close My Books)
Definitions and Accounting
Principles
Definitions
■ Burdens:
Another word for Overheads or Indirect Costs; as a general
term Overheads may include expenses related to product
procurement, production, warehousing or distribution as well as
non-product related expenses such as G&A and selling
expenses

■ Cost of Goods Sold (adapted from Wikipedia):


▪ The cost of products or raw materials, including freight or shipping
charges;
▪ The cost of storing products the business sells;
▪ Direct labor costs for workers who produce the products;
▪ Factory overhead expenses
▪ Discounts that must be deducted from the costs of purchased
inventory including trade discounts and manufacturer’s rebates
Definitions
■ Direct Product Costs:
Directly traceable product expenses such as direct material
(purchase cost), direct labor and other direct production costs

■ General & Administrative Expenses (G&A):


General operating expenses and taxes that are related to the
overall operation of the company

■ Handling Costs:
US GAAP – FAS605: “Costs incurred to store, move, and
prepare the products for shipment. Generally, handling costs
are incurred from the point the product is removed from
finished goods inventory to the point the product is provided to
the shipper and often include an allocation of internal
overhead.”
Definitions
■ Inventoriable Costs:
Acquisition and production costs included in the inventory
value, such as direct materials, direct labor, indirect
manufacturing overheads and indirect material handling costs

US GAAP – FAS 151: “Inventories are presumed to be stated at cost. The definition of
cost as applied to inventories is understood to mean acquisition and production cost
…”

IFRS – IAS2: “The cost of inventories shall comprise all costs of purchase, costs of
conversion and other costs incurred in bringing the inventories to their present
location and condition.”
Definitions
■ Non-Inventoriable Costs:
General and administrative (G&A) and selling expenses or any cost
which is not related to the acquisition or production product cost

US GAAP – FAS 151: “general and administrative expenses should be included as


period charges, except for the portion of such expenses that may be clearly related to
production and thus constitute a part of inventory costs (product charges). Selling
expenses constitute no part of inventory costs.”

IFRS – IAS2: “Certain costs are not included in the valuation of inventories. These
costs are recognized as expense when they occur. Following are some of the
common examples of these costs:
▪ Abnormal wastage of materials, labor and other production costs
▪ Storage costs if they are not essential for the production process
▪ Selling and distribution costs
▪ Administrative costs that are not involved in bringing the inventory to its present
condition and location”
Definitions
■ Selling Expenses:
Costs incurred to market products such as advertising, sales
commissions, sales salaries, sales offices and other selling
expenses

■ Shipping Costs:
US GAAP – FAS605: “Costs incurred to physically move the product
from the seller’s place of business to the buyer’s designated
location.”
Accounting Principles

■ Accrual Matching Principle & Revenue Recognition:

Must recognize appropriate costs when revenue is booked or


recognized. IFRS – IAS2: “When inventories are sold and revenue
is recognised, the carrying amount of those inventories is
recognised as an expense (often called cost-of-goods-sold).”
Why Needed? Why Shipping
Burdens?
Why Want Shipping Burdens?

■ Costs of shipping are significant but not part of inventory value

■ May want to recognize some MFG G&A costs at time of shipping

■ Suppliers may offer discounts based on shipping volumes or based


on the customer for that shipment

■ Trying to avoid “sales staff giving away the product”


Release 11i COGS Example:
Original Entries
Shipping Burdens

R11i COGS Entries Debit / Credit Acct Line Type


Sales Order Issue
DR COGS Account 100 Account
CR Inventory 100 Inventory Valuation

Shipping Burden
DR COGS Account 10 Account
CR Matl Overhead Absorption 10 Ovhd Absorption
Release 12 COGS Example: Original Entries
Shipping Burdens

R12 COGS Entries


Debit / Credit Acct Line Type
Sales Order Issue
DR Deferred COGS 100 Deferred COGS
CR Inventory 100 Inventory Valuation
COGS Recognition
DR COGS Account 100 COGS
CR Deferred COGS 100 Deferred COGS

Shipping Burden
DR COGS Account 10 COGS
CR Matl Overhead Absorption 10 Ovhd Absorption
Why Was Release 11i So Much
Easier for Adding Shipping
Burdens?
R10 – R11i Transaction Flow for Cost Mgmt

Enter Transaction(s)

Receiving
Material
Accounting WIP
Processor

G/L Tables
Transaction Inventory
Accounting Tables Period Close
GL_SETS_OF_BOOKS

GL_JE_BATCHES
GL_ Journal
Transfer to G/L
INTERFACE Import
GL_JE_HEADERS

GL_JE_LINES
Release 11i Solution
■ Enter Material Overhead Sub-Element(s) for Shipping Burdens

■ Enter and store the Shipping Burden rates in an unimplemented


cost type, a MFG Lookup Code or in a custom table

■ Create a custom program to insert additional rows into the


material accounting distributions:

Shipping Burden Example Debit / Credit Acct Line Type

DR COGS Account 10 COGS


(from existing transaction)
CR Material Overhead Absorption 10 Ovhd Absorption
(from shipping burden sub-element)

■ All other processing is unchanged (except tweaks to Margin Reporting)


How Does SLA Work with
Oracle Cost Management?
Supply Chain Transaction Processing
■ Release 12 has two transaction models
▪ RCV, INV, WIP Transactions
▪ SLA transactions – “Mirror image” of the original transactions

Supply Chain SLA

PO Receipts
RCV
Txn Sources

RCV
SO Shipmts

COST
INV INV G/L
Inventory
WIP WIP
WIP
LSPs, Others
Key Concepts for SLA Transaction Types
Event Model:
A set of subledger transaction types with common characteristics

▪ Entity : Denotes the transaction source


▪ Event Class: Classifies transaction types by accounting rule
▪ Event Type: for each transaction type, defines possible actions
with accounting significance

ENTITY Material, Receiving or WIP or Write Off


Transaction

EVENT EVENT Grouping of transaction events which


MODEL CLASS have similar kind of accounting

EVENT The most granular level of business


TYPE event which has accounting impact
R12 Transaction Flow for Cost Management

Module
Enter Transaction(s) Specific One Common
Transaction Accounting
Accounting Subledger
Tables Table
Accounting
Processor

SLA Accounting Tables G/L Tables


Transaction
Accounting Tables
GL_LEDGERS
XLA_EVENTS

Receiving GL_JE_BATCHES
Create XLA_AE_HEADERS GL_
Material Accounting INTERFACE
WIP
GL_JE_HEADERS
XLA_AE_LINES

XLA_DISTRIBUTION GL_JE_LINES
_LINKS
Setup and Process
ADR SETUPS PROCESS

Define or Identify ADR


Sources Enter Transaction(s)

JOURNAL ENTRY SETUPS


Define/copy and modify Cost Manager
Define/copy and
journal line modify
types
account derivation rules

Define/copy and modify


Define/copy and modify Create Accounting* Transfer Journal Entries to GL
descriptions
journal line types

*Run ‘Create Accounting – Cost Management’ concurrent request for


accounting all transactions from the Cost Management – SLA
Define/copy and modify
responsibility.
descriptions

Receiving Accounting can also be generated in the Purchasing


ASSIGNMENT responsibilities using the ‘Create Accounting – Receiving’ concurrent
request.

Assign to SLAM and Ledger These requests have an option to transfer the entries created to


General Ledger as well as post at the same time.
Cost Management and SLA Processing Steps
■ The Cost Manager creates the accounting entries for material
accounting distributions and calls a special program
(CST_XLA_PVT(CSTVXLAB.pls) to create the initial
information for Create Accounting (SLA)

MTL
MTL_MATERIAL_TRANSACTIONS

SLA
COST MANAGER

MTL_TRANSACTION_ACCOUNTS XLA_EVENTS XLA_TRANSACTION_ENTITIES


Cost Management and SLA Processing Steps

■ Create Accounting picks up the entries found in


XLA_EVENTS and XLA_TRANSACTION_ENTITIES and
completes the creation of the SLA accounting entries

XLA_EVENTS

CREATE ACCOUNTING

XLA_DISTRIBUTION_LINKS XLA_AE_HEADERS XLA_AE_LINES


Issues with SLA

■ Create Accounting never writes a processed status to either


MTL_TRANSACTION_ACCOUNTS or
XLA_DISTRIBUTION_LINKS

■ Create Accounting only knows the processing status for the


entire material transaction (XLA_EVENTS), but not for each
transaction accounting entry
▪ Process status by TRANSACTION_ID or EVENT_ID
▪ But not by each DR or CR or INV_SUB_LEDGER_ID

■ See next slide for desired transaction flow diagram


Desired Transaction Processing
– Create Accounting and SLA

Material  Create New 
Material  Cost 
Accounting  Matl Acct’g 
Transactions Processor
Entries Entries

1. Cost Processor creates the material accounting entries


2. Shipping Burdens are then created with a custom
program Create 
Accounting
3. The custom program also calls the CSTVXLAB.pls
package to create the initial SLA information
4. There are now two SLA events for the same material
transaction, one created by the Cost Processor and SLA Journal 
Entries
one by the custom program
5. Create Accounting processes the old and new entries
and creates the SLA journal entries with no duplication
Standard  Custom 
Program Program
Actual Transaction Processing
– Create Accounting and SLA
Material  Create 
Material  Cost 
Accounting  Accounting
Transactions Processor
Entries

1. Cost Processor creates the material accounting entries


2. Create Accounting runs before the Shipping Burdens Create New 
are created and processes the existing SLA event and Matl 
Entries
material accounting entries
3. Shipping Burdens are created with the custom program
4. The custom program also calls the CSTVXLAB.pls Create 
package to create the initial SLA information and a Accounting
second SLA event for the same material transaction
5. Create Accounting processes the new entries, re-
processes the old entries and by doing so, doubles up SLA Journal 
the SLA journal entries Entries
Standard  Custom 
Program Program
Business Solutions for
Shipping Burdens
Potential Solutions
1. Do this adjustment in a management reporting system only

2. Include the Shipping Burdens in the Frozen Costs (inventory


value) and back it out at month-end

3. Create the Shipping Burdens in the original distribution tables


(mtl_transaction_accounts) and as SLA accounting entries

4. Only create the Shipping Burdens in the SLA accounting entries


(using the same SLA events for material transactions)

5. Interface manual SLA entries for Shipping Burden entries

6. Only create the entries into the G/L


Desired Solution Requirements
1. Want good visibility for Cost Accountants using standard
material distribution inquiries and reports

2. Follow the Oracle architecture for material distributions & SLA


Custom material distribution reporting (which combines the
original material distributions and SLA information) must work
the same way for Oracle and custom accounting distributions

3. As needed use SLA setups and processes

4. Minimize or avoid creation of custom tables

5. Limit the amount of custom code


Pros and Cons
1. Do this adjustment in a management reporting system only
▪ Not as easily accessed by all concerned parties
▪ Custom solution, all inputs, outputs, inquiries and reports
▪ Creates a condition where “source of truth” is in multiple places
▪ Not included in Margin Analysis Load and Report programs

2. Include the Shipping Burdens in the Frozen Costs (inventory


value) and back it out at month-end
▪ Source of truth in one location
▪ But requires month-end manual adjustment for US GAAP and IFRS
▪ Requires custom reporting (to back it out)
▪ May be best choice depending on complexity of number of
interfaces and customizations
▪ Margin Analysis Load and Report programs work with no changes
Pros and Cons
3. Create the Shipping Burdens in the original distribution tables
(mtl_transaction_accounts) and as SLA accounting entries
▪ Able to see these new entries in the original reports and inquiries
▪ But have to prevent Create Accounting from doubling-up entries
▪ SLA setups can be quite extensive and requires SLA expertise
▪ May need to modify Margin Analysis Load and Report programs

4. Only create the Shipping Burdens in SLA accounting entries


(using the same SLA events/material transactions)
▪ Will not show up in any original report or inquiry
▪ Needs lots of custom programming, SLA setups and development
▪ Needs custom reporting; different from normal Cost Mgmt entries
▪ Need to modify Margin Analysis Load and Report programs
Pros and Cons
5. Interface manual SLA entries for Shipping Burden entries
▪ One of the easiest solutions (open interface)
▪ Lack of visibility, needs custom reporting, not easily accessed
▪ Not directly tied to the actual COGS entries
▪ Cannot easily use this information for margin and performance
reporting

6. Only create the entries into the G/L


▪ Not in a subledger
▪ Lack of visibility, needs custom reporting, not easily accessed
▪ Not directly tied to the actual COGS entries
▪ Cannot easily use this information for margin and performance
reporting
Recent Client Experiences with
Release 12
Release 12 Client Experiences

■ Tried third solution, new material distributions and SLA entries


▪ Client had too many customizations, both with the material
transactions and as post-processing customizations
▪ Even needed to change stored transaction cost information (in
mtl_material_transactions) in addition to changing three major
custom interfaces
▪ At the time could not prevent SLA from doubling-up entries

■ Second solution ended up being easier, put into Frozen costs


▪ As new sub-element, put burdens into the Frozen costs
▪ Designed month-end inventory value reports to back out these
costs at month-end
▪ Designed monthly material account summary reports for visibility
Summary
Summary

■ Life with SLA can be very useful:


▪ Configure transactions to use new accounts
▪ Multiple representations for the same transactions (by chart of
accounts)
▪ Better mapping capabilities, can do outside of consolidations
▪ Can even create new sources, even integrate entirely new non-
Oracle modules and transactions (with FIN Hub)

■ But SLA can be devilishly complex, you have to weigh the


pros and cons

■ Make the best choice for your situation, there is not one
“right” answer
Appendix

A) Create Material Shipping Burden & SLA Entries

B) Discrete Cost Management SLA Model

C) Inventory Transactions Architecture

D) Creating DFFs for Material Transactions and Sub-Elements


Appendix

A) Create Material Shipping Burden & SLA Entries

B) Discrete Cost Management SLA Model

C) Inventory Transactions Architecture

D) Creating DFFs for Material Transactions and Sub-Elements


A) Create Material Shipping Burden & SLA Entries
■ Required Steps
1. Enter Material Overhead Sub-Elements for Shipping Burdens

2. Identify which transactions to apply shipping burdens

3. Enter and store the Shipping Burdens

4. Create custom program to insert additional rows into the material


accounting distributions, using the same material transaction

5. Configure SLA to process additional material accounting entries


ƒ Add Journal Lines as needed

ƒ Add logic to prevent double-processing


■ Caveat: This Solution is a Prototype, Requires Testing
1) Enter Material Overhead Sub-Elements for
Shipping Burdens

Added a DFF to avoid hard‐
coding the Sub‐Element name
Choose Material Txn Types for Burdens

Click 
here
2) Identify Which Transactions to Apply
Shipping Burdens
■ Use the Appendix Section “Discrete Cost Management SLA Model”
▪ Identify which SLA Event Class Names: Sales Order Issue
▪ Identify which Event Type Name
— COGS Recognition
— RMA Receipt
— RMA Issue
▪ Identify which SLA Journal Line Types to change:
— Cost of Goods Sold, Deferred COGS, Cost Update Adjustment
Identify Which Transactions to Apply
Shipping Burdens (Cont’d)
■ Have to Correlate SLA Events With “Real” Material Transactions

Material Transactions Accounting Line Type


Material
• COGS Recognition ƒ Cost of Goods Sold
Transaction
Definition ƒ RMA Receipt ƒ Deferred COGS
ƒ RMA Return ƒ Overhead Absorption
(New)

SLA Event Class Name Journal Line Type


SLA Event ƒ Sales Order Issue ƒ Cost of Goods Sold
Definition • COGS Recognition ƒ Deferred COGS
ƒ RMA Receipt
ƒ RMA Return
ƒ Overhead Absorption
(New)
Î The Oracle EBS Supply Chain transactions loosely correlate to
the SLA events and journal lines. Can be confusing.
Release 12 COGS Example: Original Entries
Shipping Burdens
Don’t Want to Mess With Deferred COGS

R12 COGS Material Transaction Entries


Debit / Credit Acct Line Type
Sales Order Issue Txn
DR Deferred COGS 100 Deferred COGS
CR Inventory 100 Inventory

COGS Recognition Txn


DR COGS Account 100 COGS
CR Deferred COGS 100 Deferred COGS

Shipping Burden (added to COGS Recognition Txn)


DR COGS Account 10 COGS
CR Matl Overhead Absorption 10 Ovhd Absorption
3) Enter and Store the Shipping Burden Rates
■ Enter the Rates in a Non-Implemented Cost Type
■ Store by Item in Only One Inventory Organization

Uncheck Multi‐Org
Enter and Store the Shipping Burden Rates (Cont’d)
■ Enter the rate by cost type by item (for this example)
■ You could also use a MFG Lookup Code, custom table …
Example Values From CST_ITEM_COST_DETAILS

CST_ITEM_COST_DETAILS EXAMPLE MTL_TRANSACTION COMMENTS


VALUE _ACCOUNTS
INVENTORY_ITEM_ID 11923 INVENTORY_ITEM_ID MTL_SYSTEM_ITEMS_B
ORGANIZATION_ID 207 ORGANIZATION_ID MTL_PARAMETERS
COST_TYPE_ID 1207 N/A CST_COST_TYPES
LEVEL_TYPE 1 N/A This Level
RESOURCE_ID 78542 RESOURCE_ID Sub‐Element Identifier
USAGE_RATE_OR_AMOUNT 0.1 RATE_OR_AMOUNT USAGE_RATE_OR_AMOUNT X 
Original COGS 
BASE_TRANSACTION_VALUE
BASIS_TYPE 5 BASIS_TYPE Percent of Total Value
COST_ELEMENT_ID 2 COST_ELEMENT_ID Material Overhead
ROLLUP_SOURCE_TYPE 1 N/A User Defined
4) Create Custom Program to Insert Additional
Accounting Entries
INSERT INTO mtl_transaction_accounts

(transaction_id, (v_trx_id,
reference_account, v_adjust_account,
last_update_date, SYSDATE,
last_updated_by,

■ Use existing material transactions


fnd_profile.VALUE('USER_ID'),
creation_date, SYSDATE,
created_by, fnd_profile.VALUE('USER_ID'),
last_update_login, fnd_profile.VALUE('USER_ID'),
inventory_item_id, v_mtl.inventory_item_id,

■ Adding new material accounting organization_id,

transaction_date,
v_mtl.organization_id,

v_mtl.transaction_date,

entries using the same material transaction_source_id,

transaction_source_type_id,
v_mtl.transaction_source_id,

v_mtl.transaction_source_type_id,

TRANSACTION_ID transaction_value,

primary_quantity,
v_trx_val,

v_trx_qty,
gl_batch_id, -1,
accounting_line_type, 3, -- Material Overhead Absorption
base_transaction_value, v_trx_val,

■ On the material transaction update contra_set_id,

rate_or_amount,
v_mtl.contra_set_id,

v_trx_rate,

ATTRIBUTE15 to indicate Shipping basis_type,

resource_id,
v_basis_type,

v_resource_id,

Burdens have been recorded cost_element_id,

activity_id,
2,

NULL,
currency_code, v_mtl.currency_code,
currency_conversion_date, v_mtl.currency_conversion_date,
currency_conversion_type, v_mtl.currency_conversion_type,

■ BASE_TRANSACTION_AMOUNT = currency_conversion_rate,

request_id,
v_mtl.currency_conversion_rate,

v_request_id,

the item’s RATE_OR_AMOUNT X program_application_id,

program_id,
fnd_profile.VALUE('PROGRAM_APPLICATION_ID'),

fnd_profile.VALUE('PROGRAM_ID'),

original COGS amount program_update_date,

encumbrance_type_id,
SYSDATE,

v_mtl.encumbrance_type_id,
repetitive_schedule_id, v_mtl.repetitive_schedule_id,
gl_sl_link_id) '');
VALUES
Values for MTL_TRANSACTION_ACCOUNTS
MTL_TRANSACTION_ACCOUNTS SOURCE COMMENTS
TRANSACTION_ID MTL_TRANSACTION_ACCOUNTS Same as COGS entry
REFERENCE_ACCOUNT ABSORPTION_ACCOUNT From BOM_RESOURCES
INVENTORY_ITEM_ID MTL_TRANSACTION_ACCOUNTS Same as COGS entry
ORGANIZATION_ID MTL_TRANSACTION_ACCOUNTS Same as COGS entry
TRANSACTION_DATE MTL_TRANSACTION_ACCOUNTS Same as COGS entry
TRANSACTION_SOURCE_ID MTL_TRANSACTION_ACCOUNTS Same as COGS entry
TRANSACTION_SOURCE_TYPE_ID MTL_TRANSACTION_ACCOUNTS Same as COGS entry
TRANSACTION_VALUE MTL_TRANSACTION_ACCOUNTS NULL for COGS
PRIMARY_QUANTITY MTL_TRANSACTION_ACCOUNTS Same as COGS entry
GL_BATCH_ID MTL_TRANSACTION_ACCOUNTS NULL
ACCOUNTING_LINE_TYPE CST_ACCOUNTING_LINE_TYPE 3 – overhead absorption
35 – cost of goods sold
BASE_TRANSACTION_VALUE USAGE_RATE_OR_AMOUNT X  For Basis Type “Percent 
COGS BASE_TRANSACTION_VALUE X  of Total Value”
SIGN(PRIMARY_QUANTITY)
Values for MTL_TRANSACTION_ACCOUNTS
MTL_TRANSACTION_ACCOUNTS SOURCE COMMENTS
CONTRA_SET_ID MTL_TRANSACTION_ACCOUNTS Same as COGS entry
RATE_OR_AMOUNT USAGE_RATE_OR_AMOUNT From the item cost
BASIS_TYPE CST_BASIS_TYPES Lookup Code 5 for “% of Total Value”
RESOURCE_ID BOM_RESOURCES.RESOURCE_ID Sub‐Element Identifier
COST_ELEMENT_ID BOM_RESOURCES. Usually a value of 2 
COST_ELEMENT_ID (Material Overhead)

CURRENCY_CODE MTL_TRANSACTION_ACCOUNTS Same as COGS entry


CURRENCY_CONVERSION_DATE MTL_TRANSACTION_ACCOUNTS Same as COGS entry
CURRENCY_CONVERSION_TYPE MTL_TRANSACTION_ACCOUNTS Same as COGS entry
CURRENCY_CONVERSION_RATE MTL_TRANSACTION_ACCOUNTS Same as COGS entry
GL_SL_LINK_ID Leave NULL Create Accounting / GL
INV_SUB_LEDGER_ID Leave NULL From CSTVXLAB.pls
5) Steps to Configure SLA
Create custom PL/SQL function

Define custom sources

Can skip this step Create account derivation rules (ADRs)

Create journal line types (JLTs)

Create journal line definitions (JLDs)

Create an application accounting definition (AAD)

Create a subledger accounting method (SLAM)

Assign it to a Ledger
Desired Material Transaction Flow
Material  Create 
Material  Cost 
Accounting  Accounting A
Transactions Processor
Entries

Create New 
No Don’t  Material 
Process the  Accounting 
Journal Line Entries
Shipping 
A Burdens 
Exist?
Create 
Accounting A
Yes Do Process 
the Journal 
Line

Standard  Custom  SLA Journal 


Program Program Entries

New SLA Conditions
Create Custom PL/SQL Function
Create custom PL/SQL function

Define custom sources

Create account derivation rules (ADRs)

Create journal line types (JLTs)

Create journal line definitions (JLDs)

Create an application accounting definition (AAD)

Create a subledger accounting method (SLAM)

Assign it to a Ledger
Create Custom PL/SQL Function

■ Will determine if SLA can process the journal line


CREATE OR REPLACE FUNCTION XXX_CST_CNTRL_CREATE_ACCTG (p_transaction_id IN NUMBER) RETURN VARCHAR2 is

l_yes_no varchar2(2);

BEGIN
SELECT nvl((select DISTINCT('Y')
from inv.mtl_material_transactions mmt,
inv.mtl_transaction_types mtt,
inv.mtl_transaction_accounts mta
where mmt.transaction_id = p_transaction_id
and mmt.transaction_type_id = mtt.transaction_type_id
and mmt.transaction_id = mta.transaction_id
and ((nvl(mtt.attribute1,'N') = 'Y' -- indicates this transaction is for Shipping Burdens
and
nvl(mmt.attribute15,'N') = 'Y' -- indicates shipping burden exist
)
OR
(nvl(mtt.attribute1, 'N') = 'N' -- indicates not for Shipping Burdens
)
)
), 'N'
)
into l_yes_no
FROM inv.mtl_material_transactions mmt
WHERE mmt.transaction_id = p_transaction_id
;

RETURN l_yes_no;

END XXX_CST_CNTRL_CREATE_ACCTG;
/
Define Custom Sources
Menu path: Cost Management SLA => Setup => Accounting Methods Builder => Sources =>
Custom Sources
■ Need to use the correct parameters for your PL/SQL inputs
Create Journal Line Types and Definitions
Create custom PL/SQL function

Define custom sources

Create account derivation rules (ADRs)

Create journal line types (JLTs)

Create journal line definitions (JLDs)

Create an application accounting definition (AAD)

Create a subledger accounting method (SLAM)

Assign it to a Ledger
Determine Which Journal Lines to Change
Menu path: Cost Management SLA => Accounting Setup => Accounting Methods Builder =>
Methods and Definitions => Journal Lines Definitions

■ Query the Event Class / Sales Order Issue


Need User-Defined Journal Lines
Menu path: Cost Management SLA => Accounting Setup => Accounting Methods Builder =>
Methods and Definitions => Journal Lines Definitions

■ Sales Order Issue Event Class - Two Material Txn Types


▪ Sale Order Issue (Shipment)
— Deferred COGS (DR)
— Inventory Valuation (CR)
▪ COGS Recognition
— Cost of Goods Sold (DR)
— Deferred COGS (CR)
— Overhead absorption (CR)

▪ RMAs with Cost Changes


— Cost Update Adjustment
Need New User-Defined Journal Lines
Menu path: Cost Management SLA => Accounting Setup => Accounting Methods Builder =>
Methods and Definitions => Journal Lines Definitions

■ Copy and Change These Journal Lines for COGS


Recognition
▪ Cost of Goods Sold
▪ Deferred COGS
▪ Cost Update Adjustment (for RMAs)

■ Create New Journal Line for Material Overhead Absorption as


this is not in the SLA transaction model for Sales Orders
Create User-Defined Journal Line Types
Menu path: Cost Management SLA => Accounting Setup => Accounting Methods Builder =>
Journal Entry Setups => Journal Line Types
■ Query Up Each Journal Line and Copy the Oracle Journal
■ Choose the Event Class Sales Order Issue
Copy Journal Line Types
Menu path: Cost Management SLA => Accounting Setup => Accounting Methods Builder =>
Journal Entry Setups => Journal Line Types
■ Copy the Oracle Journal Line Type – Cost of Goods Sold

2) Enter Line Type 
Code, Name and
Description

3) Click Done
1) Click Copy
Definition
Copy Journal Line Types
Menu path: Cost Management SLA => Accounting Setup => Accounting Methods Builder =>
Journal Entry Setups => Journal Line Types
■ Add New Conditions to the Journal Line Type

Click 
Conditions
Copy Journal Line Types
Menu path: Cost Management SLA => Accounting Setup => Accounting Methods Builder =>
Journal Entry Setups => Journal Line Types

■ Add New Conditions to the Journal Line Type (Cont’d)

Indicates if the journal line 
y p
is ready to be processed

Ensures that COGS is only charged for 
the COGS Recognition Transaction Type
Copy Journal Line Types
Menu path: Cost Management SLA => Accounting Setup => Accounting Methods Builder =>
Journal Entry Setups => Journal Line Types
■ Copy the Oracle Journal Line Type – Deferred COGS

2) Enter Line Type 
Code, Name and
Description

3) Click Done
1) Click Copy
Definition
Copy Journal Line Types
Menu path: Cost Management SLA => Accounting Setup => Accounting Methods Builder =>
Journal Entry Setups => Journal Line Types
■ Add New Conditions to the Journal Line Type

Click 
Conditions
Copy Journal Line Types
Menu path: Cost Management SLA => Accounting Setup => Accounting Methods Builder =>
Journal Entry Setups => Journal Line Types

■ Add New Conditions to the Journal Line Type (Cont’d)

Indicates if the journal line 
y p
is ready to be processed

Ensures that Deferred COGS is only charged 
g yp
for the COGS Recognition Transaction Type
Copy Journal Line Types
Menu path: Cost Management SLA => Accounting Setup => Accounting Methods Builder =>
Journal Entry Setups => Journal Line Types
■ Copy the Oracle Journal Line Type – Cost Update Adjustment

2) Enter Line Type 
Code, Name and
Description

3) Click Done
1) Click Copy
Definition
Copy Journal Line Types
Menu path: Cost Management SLA => Accounting Setup => Accounting Methods Builder =>
Journal Entry Setups => Journal Line Types

■ Add New Conditions to the Journal Line Type (Cont’d)

Indicates if the journal line 
y p
is ready to be processed

Ensures that RMA Cost Updates are  only changed 
g yp
for the COGS Recognition Transaction Type
New Journal Line Type for Overhead
Menu path: Cost Management SLA => Accounting Setup => Accounting Methods Builder =>
Journal Entry Setups => Journal Line Types
■ Create the New Journal Line Type
New Journal Line Types
Menu path: Cost Management SLA => Accounting Setup => Accounting Methods Builder =>
Journal Entry Setups => Journal Line Types
■ Add Conditions to the Journal Line Type

Click 
Conditions
New Journal Line Types
Menu path: Cost Management SLA => Accounting Setup => Accounting Methods Builder =>
Journal Entry Setups => Journal Line Types

■ Add Conditions to the Journal Line Type (Cont’d)

Overhead absorption 
accounting line type

Indicates if the journal line 
y p
is ready to be processed

Ensures that Overhead Absorption is  only charged 
g yp
for the COGS Recognition Transaction Type
Create Journal Line Types and Definitions
Create custom PL/SQL function

Define custom sources

Create account derivation rules (ADRs)

Create journal line types (JLTs)

Create journal line definitions (JLDs)

Create an application accounting definition (AAD)

Create a subledger accounting method (SLAM)

Assign it to a Ledger
Create Journal Line Definition
Menu path: Cost Management SLA => Accounting Setup => Accounting Methods Builder =>
Journal Entry Setups => Methods and Definitions => Journal Line Definitions
■ Copy the Oracle Journal Line Definition

2) Enter Definition 
Code, Name and
Description

3) Click Done
1) Click Copy
Definition
Create Journal Line Definition
Menu path: Cost Management SLA => Accounting Setup => Accounting Methods Builder =>
Journal Entry Setups => Journal Line Types
■ Replace the Oracle Journal Line Types with User Defined

Use default 
ADR for Cost 
g
Mgmt
Create Journal Line Definition
Menu path: Cost Management SLA => Accounting Setup => Accounting Methods Builder =>
Journal Entry Setups => Journal Line Types
■ Delete Oracle Journal Line Type and Replace with User JL Type

Use default 
ADR for Cost 
g
Mgmt
Create Journal Line Definition
Menu path: Cost Management SLA => Accounting Setup => Accounting Methods Builder =>
Journal Entry Setups => Journal Line Types
■ Delete Oracle Journal Line Type and Replace with User JL Type

Use default 
ADR for Cost 
g
Mgmt
Create Journal Line Definition
Menu path: Cost Management SLA => Accounting Setup => Accounting Methods Builder =>
Journal Entry Setups => Journal Line Types
■ Delete Oracle Journal Line Type and Replace with User JL Type

Use default 
ADR for Cost 
g
Mgmt
Create Journal Line Definition
Menu path: Cost Management SLA => Accounting Setup => Accounting Methods Builder =>
Journal Entry Setups => Journal Line Types
■ Delete Oracle Journal Line Type and Replace with User JL Type

Use default 
ADR for Cost 
g
Mgmt
Create Journal Line Definition
Menu path: Cost Management SLA => Accounting Setup => Accounting Methods Builder =>
Journal Entry Setups => Journal Line Types
■ Cost Variance and Inventory Valuation Journal Types

Cost Variance 
and Inventory 
Valuation is 
unchanged
Create Application Accounting Definition
Create custom PL/SQL function

Define custom sources

Create account derivation rules (ADRs)

Create journal line types (JLTs)

Create journal line definitions (JLDs)

Create an application accounting definition (AAD)

Create a subledger accounting method (SLAM)

Assign it to a Ledger
Create Application Accounting Definition
Menu path: Cost Management SLA => Accounting Setup => Accounting Methods Builder =>
Methods and Definitions => Application Accounting Definitions
■ Copy the standard Oracle Application Accounting Definition

2) Enter Definition
Code, Name and
Description

This limits it to only 
3) Click Done
one COA Structure

1) Click Copy
Definition
Create Application Accounting Definition
Menu path: Cost Management SLA => Accounting Setup => Accounting Methods Builder =>
Methods and Definitions => Application Accounting Definitions
■ Validate the Copied Application Accounting Definition

Validate initial copy
Create Application Accounting Definition

■ Now assign new Journal Lines Definition to your Application


Accounting Definition:

■ COGS Sale Order Event Accounting Examples:

Sales Order Issue => XXX Sales Order Issue

■ Note: there are other COGS-related Event Classes:


▪ Logical Transactions
▪ Sender-side Intransit Interorg Shipment for FOB Receipt
▪ Sender-side Intransit Interorg Receipt for FOB Receipt
Create Application Accounting Definition
Menu path: Cost Management SLA => Accounting Setup => Accounting Methods Builder =>
Methods and Definitions => Application Accounting Definitions

Choose the 
Event Class 
to change

Then delete 
the existing 
row
Create Application Accounting Definition
Menu path: Cost Management SLA => Accounting Setup => Accounting Methods Builder =>
Methods and Definitions => Application Accounting Definitions

To catch errors 
should 
validate one‐
by‐one
y

Replace 
with new 
assignment
Create Application Accounting Definition
Menu path: Cost Management SLA => Requests => Submit a New Request =>
Validate Application Accounting Definitions

■ Another way to Validate Application Accounting Definitions


Create Application Accounting Definition
Menu path: Cost Management SLA => Requests => Submit a New Request =>
Validate Application Accounting Definitions

These should all 
have a Valid 
status
Create Subledger Accounting Method (SLAM)
Create custom PL/SQL function

Define custom sources

Create account derivation rules (ADRs)

Create journal line types (JLTs)

Create journal line definitions (JLDs)

Create an application accounting definition (AAD)

Create a subledger accounting method (SLAM)

Assign it to a Ledger
Create Subledger Accounting Method
Menu path: Cost Management SLA => Accounting Setup => Accounting Methods Builder =>
Methods and Definitions => Subledger Accounting Methods

2) Enter Definition
Code, Name and
Description

3) Click Done

1) Click Copy
Definition
Assign SLAM to a Ledger
Create custom PL/SQL function

Define custom sources

Create account derivation rules (ADRs)

Create journal line types (JLTs)

Create journal line definitions (JLDs)

Create an application accounting definition (AAD)

Create a subledger accounting method (SLAM)

Assign it to a Ledger
Create User-Defined SLAM
Menu path: Cost Management SLA => Accounting Setup => Accounting Methods Builder =>
Methods and Definitions => Subledger Accounting Methods

2) Enter Method
Code, Name and
Description

3) Click Done

1) Click Copy
Definition
Assign Ledger to SLAM
Menu path: Cost Management SLA => Accounting Setup => Accounting Methods Builder =>
Methods and Definitions => Subledger Accounting Methods => Accounting Setups
Assign Ledger to SLAM
Menu path: Cost Management SLA => Accounting Setup => Accounting Methods Builder => Methods and Definitions =>
Subledger Accounting Methods => Accounting Setups

Click on the “pencil” to update the ledger
Assign Ledger to SLAM

Click on the “pencil” to update the ledger
Assign Ledger to SLAM

Select the new 
SLAM

Select the new 
SLAM
Testing Your SLA Setups
■ If You AAD Validation Fails
▪ Check the Output File

Check Output
Testing Your SLA Setups – Validation Output
■ Valuable Clues

Review error 
text
Testing Your SLA Setups
■ Diagnostic Reports to SLA test inputs and outputs
▪ Enable profile option “SLA: Enable Diagnostics”
▪ Run “Create Accounting”
▪ Disable profile option “SLA: Enable Diagnostics”
▪ Run “Transaction Objects Diagnostics” report
▪ Run “Purge Transaction Objects Diagnostics”
Appendix

A) Create Material Shipping Burden & SLA Entries

B) Discrete Cost Management SLA Model

C) Inventory Transactions Architecture

D) Creating DFFs for Material Transactions and Sub-Elements


B) Discrete Cost Management SLA Model
Discrete Cost Management SLA Model
Discrete Cost Management SLA Model
Discrete Cost Management SLA Model
Discrete Cost Management SLA Model
Discrete Cost Management SLA Model
Discrete Cost Management SLA Model
Discrete Cost Management SLA Model
Appendix

A) Create Material Shipping Burden & SLA Entries

B) Discrete Cost Management SLA Model

C) Inventory Transactions Architecture

D) Creating DFFs for Material Transactions and Sub-Elements


C) Inventory Transactions Architecture

■ Inventory allows you to define new transaction types

Sources + Actions = Transaction Types

▪ As a result, material transactions are more complex


▪ You can query material transactions by Source or Transaction Type
▪ Sources are a group of transactions based on a common origin
▪ Actions indicate the behavior for the transaction
(decrease or increase onhand quantities for example)
▪ Transaction types are the individual kinds of entries for each
transaction source
▪ Material transactions are defined in MTL_TRANSACTION_TYPES
Inventory Transactions Architecture Defined By:
Sources and Actions Define Over 90 Material Transaction Types

ƒ Sources
Account Sample List of Actions

ƒ Account Alias ƒ Assembly completion ƒ Logical Intercompany


ƒ Assembly return Receipt Return
ƒ Cycle Count
ƒ COGS recognition ƒ Logical Intercompany Sales
ƒ Internal Order
ƒ Cost update ƒ Logical Intercompany Sales
ƒ Internal Requisition Return
ƒ Inventory ƒ Cycle count adjustment
ƒ Delivery adjustments ƒ Logical Issue
ƒ Job or Schedule Logical Receipt
ƒ Move Order ƒ Direct organization xfer ƒ
ƒ Intransit receipt ƒ Negative Component Issue
ƒ Physical Inventory ƒ Negative Component
ƒ Purchase Order ƒ Intransit shipment Return
ƒ RMA ƒ Issue from stores ƒ Ownership Transfer
ƒ Sales Orders ƒ Logical Intransit Receipt ƒ Physical Inventory
ƒ Standard Cost Update ƒ Logical Intransit Shipment Adjustment
ƒ Logical Delivery ƒ Receipt into Stores
Adjustment ƒ Retroactive Price Update
ƒ Logical Expense ƒ Staging Transfer
Requisition Receipt
ƒ Logical Intercompany ƒ Subinventory Transfer
Receipt ƒ WIP Scrap Transaction
So Why Care About Inventory Txn Architecture?
Menu path: Cost Management – SLA => View Transactions => Material Transactions
■ Use Transaction Sources and Transaction Types for Online Queries
So Why Care About Inventory Txn Architecture?
Menu path: Cost Management – SLA => View Transactions => Material Transactions
■ Use Transaction Sources and Transaction Types for Online Queries
List of Sources and Transaction Types
List of Sources and Transaction Types (cont’d)
Accounting Line Types

ƒ Define the Purpose for the Accounting Entry


ƒ Use these values to understand the accounting entry
ƒ Example: COGS Recognition Transaction
Menu path: Cost Management – SLA => View Transactions => Material Distributions
List of
R12 Accounting
Line Types
Appendix

A) Create Material Shipping Burden & SLA Entries

B) Discrete Cost Management SLA Model

C) Inventory Transactions Architecture

D) Creating DFFs for Material Transactions and Sub-Elements


Sub-Elements:
Enable DFF to Indicate a Shipping Burden
Sub-Elements:
Enable DFF to Indicate a Shipping Burden (Cont’d)

Unclick here
Sub-Elements:
Enable DFF to Indicate a Shipping Burden (Cont’d)
Use an existing 
value set
Sub-Elements:
Enable DFF to Indicate a Shipping Burden (Cont’d)

Unclick 
here
Change this 
Change these 
values
values
Sub-Elements:
Enable DFF to Indicate a Shipping Burden (Cont’d)
Sub-Elements:
Enable DFF to Indicate a Shipping Burden (Cont’d)

Click here to 
refreeze
Enable DFF for Material Transaction Types

Unclick
here
Enable DFF for Material Txn Types (Cont’d)

Change this 
Change these 
values
values
Enable DFF for Material Txn Types (Cont’d)
Click here to 
refreeze
Acknowledgements

■ Mohan Iyer and John Peters


– Paper review and support of shared Vision environment

■ Ashish Pathak and Anup Jha – Oracle Cost Development


– Workarounds with SLA and Create Accounting limitations
Any Questions?

Doug Volz
doug@volzconsulting.com
www. volzconsulting.com
+1 510 755‐7050
Please complete the session
evaluation
We appreciate your feedback and insight

You may complete the session evaluation either


on paper or online via the mobile app

You might also like