S/4HANA changeObjectCost element merged into the G/L account masterModuleFI_FICO

Cost Elements Become G/L Accounts in S/4HANA

In S/4HANA, cost elements are no longer a separate master record. Primary cost elements are simply G/L accounts with a cost element category, and secondary cost elements now also exist as G/L accounts, of a new account type reserved for secondary costs. The old CO-only maintenance transactions still run, but they write to the same underlying G/L account object as FI.

This page covers the collapse of the classic dual master data model, separate cost elements in CO and G/L accounts in FI, into a single G/L account object in S/4HANA. It focuses on what breaks for secondary cost elements, which now require company code extension, and what a conversion project must check before go-live rather than clean up afterward.

Published 16 Sept 2026· 1,143 words

Classic ECC behaviour

In classic ECC, the cost element and the G/L account were two separate master data objects maintained in two separate places. A primary cost element could only be created for an account that already existed as a G/L account in the chart of accounts; the two records shared a number but lived in different tables, CSKA and CSKB on the CO side, SKA1 and SKB1 on the FI side. Secondary cost elements had no FI counterpart at all: they existed purely in Controlling, scoped to a controlling area, and were used for internal allocations, settlements, assessments and activity postings that never touch the general ledger directly. Maintenance ran through the KA01, KA02, KA03, KA05 and KA06 family of transactions, entirely separate from FS00. FI teams and CO teams frequently ran as separate work streams with separate authorisation roles, and it was common for a G/L account to exist for years with no cost element ever created against it, or vice versa in the case of secondary elements.

S/4HANA behaviour

S/4HANA removes the second object. The cost element category becomes a field on the G/L account master, in the controlling-relevant part of the chart of accounts segment, so a primary cost element is now just an account flagged accordingly, maintained through the standard G/L account master transactions or the Fiori app for managing G/L account master data. The more consequential change is on the secondary side: secondary cost elements now must exist as G/L accounts too, carrying a dedicated account type reserved for secondary costs. Because they are G/L accounts, they inherit G/L account behaviour that secondary cost elements never had in ECC: they belong to a chart of accounts, and they must be extended to every company code that needs to post with them, exactly like extending any other account to a new company code. The old cost element transactions, KA01 through KA06, are still callable and still feel familiar, but internally they now create and maintain the G/L account object. CSKA and CSKB survive as compatibility views over the merged structure rather than as independent tables.

Project impact

The practical damage concentrates in three places: secondary cost element extension, custom code, and authorisation design.

  • Secondary cost elements that were controlling-area scoped in ECC now require company code extension. Allocation, settlement or assessment cycles that post into a company code where the secondary element was never extended will fail at execution, typically discovered during month-end close rather than in testing, because test cycles often run against a subset of company codes.
  • Custom ABAP or interfaces that read CSKA or CSKB directly, or that call cost element BAPIs expecting the old object model, may still function through compatibility views but should not be assumed correct without a check, particularly if they filter on fields that existed only on the CO side.
  • Mass creation via batch input recordings built against KA01/KA06 screen sequences frequently breaks, because the underlying screens now route through G/L account logic with different field flow and additional mandatory company code data.
  • Authorisation roles built around separate FI and CO cost element maintenance transactions now overlap on the same underlying object; a user restricted from FS00 but allowed KA06 may find the boundary no longer separates what it used to.
  • Number range design: cost element and G/L account number ranges, historically allowed to diverge across the two objects, now must coexist without collision, which surfaces gaps in charts of accounts that were designed before this constraint existed.

Migration actions

The sequence matters, and the first two items are pre-conversion gates, not optional cleanup that can wait until after go-live.

  • Run the standard pre-conversion consistency checks for cost elements against G/L accounts before scheduling the technical conversion; unresolved inconsistencies here block or corrupt the merge and must be cleared first.
  • Identify every secondary cost element and confirm the full list of company codes it needs to post in, based on where allocation, settlement, and assessment cycles actually run, not just where they are configured; extend each one accordingly before cutover.
  • Reconcile number ranges between the legacy cost element ranges and the G/L account ranges in the same chart of accounts; resolve any overlap before conversion, since retrofitting a number range split afterward is far more disruptive.
  • Audit custom reports and interfaces that reference CSKA, CSKB, or cost element BAPIs directly; test them against the compatibility views rather than assuming pass-through behaviour.
  • Rebuild or review batch input recordings and any mass-maintenance tooling built on the old KA-transaction screen flow.
  • Redesign authorisation roles that relied on the FI/CO transaction split, since that boundary no longer maps cleanly onto the merged object.

Whose problem this is

Both functional teams own a piece of this. FI owns the chart of accounts and G/L account extension mechanics; CO owns the list of secondary cost elements and the allocation and settlement cycles that depend on them being extended correctly. The conversion lead, usually a joint FI/CO design owner, has to force the two teams to reconcile their account and cost element lists jointly rather than sequentially, since the merge exposes gaps neither side sees alone.

Common pitfalls

Most damage from this change shows up late because the symptom is a failed posting, not a configuration error visible at design time.

  • Teams assume the KA06 transaction behaves exactly as before and skip checking whether the resulting secondary cost element is extended to the company codes it will actually post to; the gap only appears when an allocation cycle runs in a company code excluded from test scope.
  • Test conversions run against a shrunk landscape with a handful of company codes active, so extension gaps for secondary cost elements never surface until the full productive run at month end, when settlement or assessment cycles hit every company code at once.
  • Custom reports that join cost element tables to G/L account tables assuming the pre-merge structure return silently wrong row counts rather than errors, because the compatibility views still resolve, just not the way the report author expected.
  • Authorisation testing focuses on transaction access and misses that the underlying object authorisation now governs both what used to be two separate domains, leaving users with either unintended access or unintended lockout discovered weeks after go-live.

Related SAP objects

Reviewed pages this object connects to in the ERPClimb knowledge graph.

Source: ERPClimb — https://erpclimb.com/sap-s4hana-changes/cost-element-merged-into-the-g-l-account-masterERPClimb is an independent platform and is not affiliated with SAP SE. Reference pages are written and reviewed by SAP consultants for learning and troubleshooting.