Posts

IFRS 18, Part 3: SAP CO View, the Cost Flow Behind Operating Profit and CO-PA

Part 1 summarized IFRS 18 itself and Part 2 covered the SAP FI side, the Financial Statement Version (FSV). Part 3 is about SAP CO. It follows how the expenses that end up in the IFRS 18 operating category are built in CO (cost center → distribution and assessment → activity allocation → production order → product cost → cost of goods sold → CO-PA), read from an S/4HANA sandbox. Example system: S/4HANA sandbox with two controlling areas, CA10 (company code CC10, operating concern OC10) and JNC2 (company code JNC2, operating concern JNC2). It is a training system; the amounts are only there to show the structure. 1. What IFRS 18 asks of CO Item Topic Detail Operating category How expenses are classified Expenses in the operating category are presented by function (cost of sales, selling, administration) or by nature (materials, personnel, depreciation), whichever is more useful. If presented by function, the notes must disclo...

IFRS 18, Part 2: SAP FI View, Adapting the Financial Statement Version (FSV)

Part 1 summarized what IFRS 18 changes: the income statement is split into operating, investing and financing categories, and an operating profit subtotal becomes mandatory. Part 2 looks at SAP FI. In SAP the shape of the income statement is defined by the Financial Statement Version (FSV). This post reads the FSV of an S/4HANA sandbox as it is today and lists what has to change to present it the IFRS 18 way. Example system: S/4HANA sandbox, company code CC10, chart of accounts COA1, financial statement version FSV1. It is a training system, not a real company. 1. What IFRS 18 requires in the income statement (summary) Item Topic Detail Three categories Operating, investing, financing Every income and expense item goes into one of the three categories. Income taxes and discontinued operations are shown separately. Subtotal Operating profit or loss Income minus expenses in the operating category. Mandatory. Subtotal Profit before financ...

CO-PA Derivation User Exit: What I_DERIVATION_DATE Contains for Actual and Plan Data

Image
In ECC 6.0 CO-PA characteristic derivation (KEDR), the user exit EXIT_SAPLKEDRCOPA_001 (include ZXKKEU11 ) receives a parameter called I_DERIVATION_DATE . This post records, with the ABAP debugger, which date arrives in that parameter for actual postings and which date arrives for plan data. Note: screen names, menu paths and settings can differ by SAP release and system configuration. The screenshots are from a Korean-language GUI. 1. What to check The line inside the user exit that builds a year+period key ( P_YMM ) from the derivation date: CONCATENATE I_DERIVATION_DATE(4) '0' I_DERIVATION_DATE+4(2) INTO P_YMM. Item Detail P_YMM format YYYY0MM (for example 2026009). Used as the lookup key against the period range (FJAHRPER to TJAHRPER) of a profit-center mapping table Question Which date does I_DERIVATION_DATE carry for an actual document, and which for plan data? 2. Actual postings KEDR → Derivation → Test. Enter a company code and ...

IFRS 18, Part 1: Operating, Investing and Financing Categories and the New Operating Profit

IFRS 18 is the new international accounting standard that defines how financial statements, and the income statement in particular, are presented. This is Part 1 of a short series: it summarizes what IFRS 18 changes. Part 2 will look at the impact from an SAP FI point of view, and Part 3 from an SAP CO point of view. Note: the example figures below are illustrative only. Requirements are summarized from the IFRS Foundation materials linked at the end. 1. The standard at a glance Item Value Detail Standard IFRS 18 Presentation and Disclosure in Financial Statements Issued April 2024 Issued by the International Accounting Standards Board (IASB) Replaces IAS 1 Replaces the existing standard on presentation of financial statements Effective date 1 January 2027 Annual reporting periods beginning on or after this date; earlier application is permitted What changes Presentation and disclosure Recognition and measurement ...

ECC G/L accounts, cost elements and the combined list: three Oracle SQL queries on SKA1/SKB1/CSKB

Three Oracle SQL queries for ECC: G/L accounts, cost elements, and the two combined. Each section goes query → result → notes. Unlike S/4HANA, ECC keeps G/L accounts (SKA1) and cost elements (CSKA/CSKB) as separate masters. SKA1 has no GLACCOUNT_TYPE field; whether an account is a cost element is decided by whether a CSKB row exists. Verified on IDES ECC 6.0 EhP7 / client 800 / company code 1000 (IDES AG, chart of accounts INT, EUR) / controlling area 1000 (CO Europe). The result values were read in SE16N. Replace the schema prefix SAPSR3 with the one on your system. 1. G/L accounts — query Case G/L accounts used by a company code (T001 + SKA1 + SKB1 + SKAT) What it does The chart-of-accounts master (SKA1) joined to the company code segment (SKB1) and the texts (SKAT). The INNER JOIN on SKB1 keeps only accounts that were actually extended to the company code. Result 1,400 rows for SKB1 BUKRS = 1000 (SE16N Number of Entries) SELECT t.BUKRS, t.KTOPL, LTRIM(a.SAKNR, ...

When was a CO-PA value field (VVxxx) created? HANA SQL in DB02 on DD03L/DD04L

Who created the CO-PA value fields (VV010, VV020, ...) and when. HANA SQL for DB02 → Diagnostics → SQL Editor. Verified on an S/4HANA sandbox (client 100, operating concerns OC10 and JNC2) on 2026-08-27. 0. Before you start — find the table that stores the value fields (CE1xxxx) Case Company code → controlling area → operating concern (TKA02 / TKA01) What it does Value fields (VVxxx) are created as columns of the operating concern line item table CE1<ERKRS>. Starting from the company code, TKA02 gives the controlling area (KOKRS) and TKA01 gives the operating concern (ERKRS), which names the table. Watch out On this system: CC10 → CA10 → OC10 (CE1OC10) and JNC2 → JNC2 → JNC2 (CE1JNC2). Each company code ends up in a different table. Result 2 rows (CC10 → OC10, JNC2 → JNC2) SELECT k.BUKRS, k.KOKRS, a.ERKRS FROM TKA02 k INNER JOIN TKA01 a ON a.MANDT = k.MANDT AND a.KOKRS = k.KOKRS WHERE k.MANDT = '100' AND k.BUKRS IN ('CC10', 'JNC2') ...