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.
Clean Core Foundations
Explain Clean Core as a contract about where extensions sit, not 'no Z code'
Learn itPlace any object in the right extensibility approach (key-user / developer / side-by-side) and grade its cleanliness (Levels A–D)
Learn itName what Restricted ABAP forbids and why it protects upgrades
Learn itRead an object's API State and classify it C0/C1/C2/C3
Learn itReason 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 itIdentify and fix the common HANA pitfalls (empty-driver FAE, missing ORDER BY, partial-key SELECT SINGLE)
Learn itAvoid the deep-cut internal-table and SQL traps that produce wrong results without a dump
Learn itRun a custom-code migration loop: SCMON usage scoping, ATC quality scan, exemption baseline
Learn itUse 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 itWrite modern Open SQL with inline declarations and a projected field list
Learn itApply the core constructor operators (VALUE, CORRESPONDING, COND, SWITCH, REDUCE, FILTER, FOR)
Learn itReplace CONCATENATE with formatted string templates
Learn itChoose 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 itImplement a behavior pool with local handlers using READ/MODIFY ENTITIES in local mode
Learn itRecognise the classic statements that are syntax errors in a Cloud Development package
Learn itImplement 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 itMap a high-yield legacy API to its released replacement
Learn itUse the XCO library for cross-cutting concerns like JSON parsing
Learn itRead 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 itWrite a CDS view entity with aggregation, associations and a group by that covers every non-aggregated field
Learn itImplement a CDS table function over an AMDP read method with explicit client handling and window functions
Learn itWrite an AMDP write procedure with a complete USING list, explicit client filter and correct READ-ONLY use
Learn itMove 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 itPick the right diagnostic tool (ST05, SAT, SQLM, SWLT, DBACOCKPIT, PLANVIZ, SCMON, SCOV, SUSG) for a given symptom
Learn itRewrite per-row SELECT SINGLE in a loop into a single projected INNER JOIN or CDS read
Learn itReason about %_HINTS HDB, statement rewrites over hints, ABAP buffering modes and why FAE bypasses the buffer
Learn itAvoid 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 itExplain local vs central/remote ATC and how CI/CD invokes it through the Code Inspector API
Learn itCreate and maintain an exemption baseline so ATC reports only new debt, and transport it across systems
Learn itRun the full Custom Code Migration loop from usage scoping through re-baseline each sprint
Learn itMap 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 itExploit abapGit beyond the basics: background mode, offline repos, and ATC in the stage step
Learn itDistinguish UPL, SCMON, and SUSG and time SCMON activation before a decommission decision
Learn itApply the Decoupling Cockpit to wrap a standard internal API behind a Z-namespace boundary
Learn itChoose the right test-double framework for interfaces, CDS views, and RAP behavior
Learn itReach 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 itChoose ASSIGNING vs INTO and avoid undefined BINARY SEARCH / unstable SORT in internal tables
Learn itAvoid RAP traps: dead ETags, IN LOCAL MODE auth, dropped UPDATE FIELDS, late-numbering order
Learn itRead CDS cardinality, #CHECK/DCL coupling and @Consumption layering as declarations, not guarantees
Learn itWrite AMDP/ABAP Cloud that survives: READ-ONLY, full USING, SQLScript types, drifting ATC variant
Learn itTransport 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 itDrive ADT faster: command palette, ATC Quick Fix, abapGit Explorer, Open Type across ABAP+CDS
Learn itReach for released helper APIs (gzip, base64, HMAC, URL coding, parallel) instead of hand-rolling
Learn itKnow the operations touchpoints: RZ70 SLD, SE63 translation, the Release Information Note per FPS
Learn itRead the release state of a USE, the 'Replaced By' successor, and the green-light release status
Learn itPick 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 itRun remote ATC against a package and create a findings baseline
Learn itRefactor a FORM/PERFORM program into a class with one method per FORM
Learn itWrite a CDS unit test with cl_cds_test_environment and assert results
Learn itWire static lint and remote ATC into a CI/CD pull-request gate
Learn itWrite a client-safe AMDP that filters MANDT explicitly
Learn it
Capstone Scenarios
Delivering Clean Core: People, Conflict & Cadence
Justify Clean Core as a managed cross-team programme, not ad-hoc cleanup
Learn itSize a migration from measurable drivers and express duration as phases with exit criteria
Learn itName the team interfaces (functional, Basis, security, SAP) and run handoffs with a shared definition of done
Learn itPrevent transport collisions and resolve priority friction with impersonal, pre-agreed rules
Learn itPrioritise the backlog by usage × standard-impact × cost, weighted by upgrade severity
Learn itRecognise 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 itFrame the extensibility approaches as an investment decision
Learn itDefine the governance roles for variants, baselines, and exemptions
Learn itSequence a migration roadmap from zero to ATC-green
Learn itChoose KPIs that make Clean Core progress visible
Learn itSize and fund the programme — a driver-based duration range and protected capacity
Learn itSet 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 itRecognise what key-user (in-app) extensibility lets you do
Learn itAdd custom fields and simple logic without a developer
Learn itDecide when to involve a developer and what to ask for
Learn itKeep your extensions upgrade-safe and avoid shadow processes
Learn it
Clean Core Orientation for Stakeholders
Define Clean Core in one plain-language sentence
Learn itName the six Clean Core dimensions and why they span the whole solution
Learn itExplain in plain terms why upgrades get easier under Clean Core
Learn itRecognise the common Clean Core vocabulary in a conversation
Learn itRead 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).