Back to Clean Core Academy

Skills matrix

What each module builds

Per-module competencies for this course. Rate your confidence in each and jump straight to the lesson that builds it — a living map of where you are on the road to Clean Core.

Skills you're confident in
0 / 88
0 learning · 88 not yet

Clean Core Foundations

  • Explain Clean Core as a contract about where extensions sit, not 'no Z code'

    Learn it
  • Place any object in the right extensibility approach (key-user / developer / side-by-side) and grade its cleanliness (Levels A–D)

    Learn it
  • Name what Restricted ABAP forbids and why it protects upgrades

    Learn it
  • Read an object's API State and classify it C0/C1/C2/C3

    Learn it
  • Reason about the software-component boundary and released interfaces

    Learn it

HANA Readiness: the DB Mindset

  • Explain the five conceptual shifts HANA introduces (columnar, no implicit sort, MVCC)

    Learn it
  • Identify and fix the common HANA pitfalls (empty-driver FAE, missing ORDER BY, partial-key SELECT SINGLE)

    Learn it
  • Avoid the deep-cut internal-table and SQL traps that produce wrong results without a dump

    Learn it
  • Run a custom-code migration loop: SCMON usage scoping, ATC quality scan, exemption baseline

    Learn it
  • Use the Simplification Database and the right release-aligned ATC variant

    Learn it

ABAP Language Modernization

  • Hunt obsolete language elements and replace them with modern equivalents

    Learn it
  • Write modern Open SQL with inline declarations and a projected field list

    Learn it
  • Apply the core constructor operators (VALUE, CORRESPONDING, COND, SWITCH, REDUCE, FILTER, FOR)

    Learn it
  • Replace CONCATENATE with formatted string templates

    Learn it
  • Choose the right class-based exception category and wire IF_T100_MESSAGE texts

    Learn it

ABAP Cloud Development & RAP

  • Assemble the five mandatory artefacts of a managed RAP business object

    Learn it
  • Implement a behavior pool with local handlers using READ/MODIFY ENTITIES in local mode

    Learn it
  • Recognise the classic statements that are syntax errors in a Cloud Development package

    Learn it
  • Implement a released BAdI without referencing its unreleased filter values

    Learn it

Released APIs & Extensibility Contracts

  • Locate released APIs via ADT Released Objects, api.sap.com, and the API State property

    Learn it
  • Map a high-yield legacy API to its released replacement

    Learn it
  • Use the XCO library for cross-cutting concerns like JSON parsing

    Learn it
  • Read released I_* CDS views instead of selecting from underlying tables

    Learn it

CDS, AMDP & Code Pushdown

  • Rank read-heavy logic on the pushdown ladder and pick the most declarative layer that fits

    Learn it
  • Write a CDS view entity with aggregation, associations and a group by that covers every non-aggregated field

    Learn it
  • Implement a CDS table function over an AMDP read method with explicit client handling and window functions

    Learn it
  • Write an AMDP write procedure with a complete USING list, explicit client filter and correct READ-ONLY use

    Learn it
  • Move authorization into the model with a DCL role and wire it to @AccessControl.authorizationCheck

    Learn it

Performance & SQL on HANA

  • Apply the five rules that fix most slow SQL: push aggregation down, project narrowly, treat FAE with care, key internal tables, drop ENDSELECT

    Learn it
  • Pick the right diagnostic tool (ST05, SAT, SQLM, SWLT, DBACOCKPIT, PLANVIZ, SCMON, SCOV, SUSG) for a given symptom

    Learn it
  • Rewrite per-row SELECT SINGLE in a loop into a single projected INNER JOIN or CDS read

    Learn it
  • Reason about %_HINTS HDB, statement rewrites over hints, ABAP buffering modes and why FAE bypasses the buffer

    Learn it
  • Avoid the rarely-documented pitfalls: FOR UPDATE locks, counter serialization, dynamic Open SQL, and silently dropped duplicate keys

    Learn it

ATC, Custom-Code Migration & Simplification

  • Pick the right ATC variant (readiness, cloud, performance, security) and compose a team union variant with severities

    Learn it
  • Explain local vs central/remote ATC and how CI/CD invokes it through the Code Inspector API

    Learn it
  • Create and maintain an exemption baseline so ATC reports only new debt, and transport it across systems

    Learn it
  • Run the full Custom Code Migration loop from usage scoping through re-baseline each sprint

    Learn it
  • Map high-impact Simplification Items to their successor tables and bridge old reads with the released interface views (I_*) over the new model

    Learn it

Lesser-Known Tools & Utilities

  • Use ABAP Cleaner for in-ADT auto-fixes and abaplint for offline git-based linting in CI

    Learn it
  • Exploit abapGit beyond the basics: background mode, offline repos, and ATC in the stage step

    Learn it
  • Distinguish UPL, SCMON, and SUSG and time SCMON activation before a decommission decision

    Learn it
  • Apply the Decoupling Cockpit to wrap a standard internal API behind a Z-namespace boundary

    Learn it
  • Choose the right test-double framework for interfaces, CDS views, and RAP behavior

    Learn it
  • Reach for the right ADT goody or hidden t-code (source search, CDS where-used, STC01, SE95, SQVI)

    Learn it

Common Pitfalls & Defect Patterns

  • Guard Open SQL against empty-driver FAE, undefined SELECT SINGLE rows, and silent de-duplication

    Learn it
  • Choose ASSIGNING vs INTO and avoid undefined BINARY SEARCH / unstable SORT in internal tables

    Learn it
  • Avoid RAP traps: dead ETags, IN LOCAL MODE auth, dropped UPDATE FIELDS, late-numbering order

    Learn it
  • Read CDS cardinality, #CHECK/DCL coupling and @Consumption layering as declarations, not guarantees

    Learn it
  • Write AMDP/ABAP Cloud that survives: READ-ONLY, full USING, SQLScript types, drifting ATC variant

    Learn it
  • Transport DCL roles, BDEFs and draft tables together so the target system isn't half-wired

    Learn it

Advanced Techniques & Lesser-Known APIs

  • Use IS INSTANCE OF, SWITCH (any comparable type, strings included), CDS let/cast and conversion built-ins for cleaner code

    Learn it
  • Drive ADT faster: command palette, ATC Quick Fix, abapGit Explorer, Open Type across ABAP+CDS

    Learn it
  • Reach for released helper APIs (gzip, base64, HMAC, URL coding, parallel) instead of hand-rolling

    Learn it
  • Know the operations touchpoints: RZ70 SLD, SE63 translation, the Release Information Note per FPS

    Learn it
  • Read the release state of a USE, the 'Replaced By' successor, and the green-light release status

    Learn it
  • Pick the right number type: DECFLOAT for money, explicit DECIMALS, INT8, UTCLONG for timestamps

    Learn it

How-To Recipes

  • Release an object as a C1 API so downstream code can consume it

    Learn it
  • Run remote ATC against a package and create a findings baseline

    Learn it
  • Refactor a FORM/PERFORM program into a class with one method per FORM

    Learn it
  • Write a CDS unit test with cl_cds_test_environment and assert results

    Learn it
  • Wire static lint and remote ATC into a CI/CD pull-request gate

    Learn it
  • Write a client-safe AMDP that filters MANDT explicitly

    Learn it

Capstone Scenarios

  • Design a 12-month Clean Core migration roadmap for a large legacy codebase

    Learn it
  • Architect a released-API-first RAP extension end to end with tests and ATC

    Learn it
  • Run a HANA performance-forensics path from SAT through PLANVIZ to a fix decision

    Learn it

Delivering Clean Core: People, Conflict & Cadence

  • Justify Clean Core as a managed cross-team programme, not ad-hoc cleanup

    Learn it
  • Size a migration from measurable drivers and express duration as phases with exit criteria

    Learn it
  • Name the team interfaces (functional, Basis, security, SAP) and run handoffs with a shared definition of done

    Learn it
  • Prevent transport collisions and resolve priority friction with impersonal, pre-agreed rules

    Learn it
  • Prioritise the backlog by usage × standard-impact × cost, weighted by upgrade severity

    Learn it
  • Recognise the common programme issues and apply the known resolution for each

    Learn it

Clean Core for Management & Leads

  • Articulate the business case for Clean Core to a budget owner

    Learn it
  • Frame the extensibility approaches as an investment decision

    Learn it
  • Define the governance roles for variants, baselines, and exemptions

    Learn it
  • Sequence a migration roadmap from zero to ATC-green

    Learn it
  • Choose KPIs that make Clean Core progress visible

    Learn it
  • Size and fund the programme — a driver-based duration range and protected capacity

    Learn it
  • Set decision rights and pre-decide the response to the common programme issues

    Learn it

Clean Core for Key & End Users

  • Explain what Clean Core means for your own daily work

    Learn it
  • Recognise what key-user (in-app) extensibility lets you do

    Learn it
  • Add custom fields and simple logic without a developer

    Learn it
  • Decide when to involve a developer and what to ask for

    Learn it
  • Keep your extensions upgrade-safe and avoid shadow processes

    Learn it

Clean Core Orientation for Stakeholders

  • Define Clean Core in one plain-language sentence

    Learn it
  • Name the six Clean Core dimensions and why they span the whole solution

    Learn it
  • Explain in plain terms why upgrades get easier under Clean Core

    Learn it
  • Recognise the common Clean Core vocabulary in a conversation

    Learn it
  • Read a readiness report and focus on the trend, not the headline number

    Learn it

Your ratings are saved in this browser only (namespaced per course).