{"ref":"capability:abap-clean-code","page":"/capabilities/abap-clean-code","json":"/capabilities/abap-clean-code.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"abap-clean-code","name":"Clean code conventions","domain":"learning-and-reference","ecosystems":["abap"],"universal":false,"description":"The naming, structure and language-subset conventions that make source code readable across a team — and the question of which of them a checker can enforce.","short":"Naming, structure and language-subset conventions for readable code","core_coverage":{"state":"core-and-community","assessed_at":"2026-08-31","relationship":"unassessed","what_core_does":"SAP publishes the [Clean ABAP](artifact:sap-styleguides-clean-abap) styleguide as an open, versioned document, and ships ATC checks that enforce part of it.","community_adds":"Refactoring help for old code: [FORMfactor](artifact:larshp-formfactor) from [Lars Hvam](actor:larshp) generates local classes with static methods from the FORM routines of an old program, for a developer to paste in by hand.","sources":[{"url":"https://github.com/SAP/styleguides/blob/main/clean-abap/CleanABAP.md","title":"SAP/styleguides — Clean ABAP","checked":"2026-08-31"}]},"coverage_by_flavor":{"abap-cloud":{"state":"core-only","assessed_at":"2026-09-14","what_core_does":"SAP ships a separate [Cloud Edition](artifact:sap-code-pal-for-abap-cloud) of code pal, because [the legacy edition](artifact:sap-code-pal-for-abap) cannot run inside a Steampunk system, so the same [Clean ABAP](artifact:sap-styleguides-clean-abap) styleguide is enforced through ATC checks in the released-API, RAP-only ABAP Cloud model too.","where_it_stops":"Its own migration list puts about 20 of the legacy edition's 62 checks in the Cloud Edition so far, with 15 still to migrate and 8 under discussion; 19 were dropped, several because ABAP Cloud already forbids the construct they guard against (COLLECT, PERFORM) and others because the cloud check API cannot yet see comments or pragmas.","sources":[{"url":"https://github.com/SAP/code-pal-for-abap-cloud","title":"SAP/code-pal-for-abap-cloud — README","checked":"2026-09-14","quote":"Code Pal is a project that provides ATC checks to assist ABAP programmers in adhering to the Clean ABAP style guide. This is a version of that project that provides ATC checks that can be executed in an ABAP Cloud (\"Steampunk\") environment."},{"url":"https://github.com/SAP/code-pal-for-abap-cloud/blob/main/check_migration_list.md","title":"SAP/code-pal-for-abap-cloud — check_migration_list.md","checked":"2026-09-14"}]}},"history":[{"date":"2026-09-14","field":"coverage_by_flavor.abap-cloud","from":null,"to":"core-only","reason":"code pal for ABAP — Cloud Edition is the only sap-official provider of this capability that states abap-cloud; the legacy code pal edition explicitly does not run in ABAP Cloud, and the Clean ABAP styleguide itself states no flavor."},{"date":"2026-10-17","field":"description","from":"The naming, structure and language-subset conventions that make ABAP readable across a team — and the question of which of them a checker can enforce.","to":"The naming, structure and language-subset conventions that make source code readable across a team — and the question of which of them a checker can enforce.","reason":"Keep the default capability wording neutral; preserve the previous wording in framing_by_ecosystem.abap. Maintainer-requested scope audit."},{"date":"2026-10-26","field":"core_coverage.state, core_coverage.relationship, core_coverage.community_adds","from":"core-only","to":"core-and-community, relationship unassessed, community_adds names the FORM-to-class generator FORMfactor","reason":"Reassessed against the graph (check:capabilities): FORMfactor, an independent ABAP generator, provides this capability, so the community is present on the door."}],"drafted_with_ai":true,"framing_by_ecosystem":{"abap":{"description":"The naming, structure and language-subset conventions that make ABAP readable across a team — and the question of which of them a checker can enforce."}}},"sap_delivery":{"door":"abap","all":{"built_in":[],"documented_pattern":[],"announced":[],"packages":[{"ref":"artifact:sap-styleguides-clean-abap","name":"Clean ABAP","json":"/artifacts/sap-styleguides-clean-abap.json"},{"ref":"artifact:sap-code-pal-for-abap","name":"code pal for ABAP","json":"/artifacts/sap-code-pal-for-abap.json"},{"ref":"artifact:sap-code-pal-for-abap-cloud","name":"code pal for ABAP — Cloud Edition","json":"/artifacts/sap-code-pal-for-abap-cloud.json"}]},"by_flavor":{"standard-abap":{"built_in":[],"documented_pattern":[],"announced":[],"packages":[{"ref":"artifact:sap-code-pal-for-abap","name":"code pal for ABAP","json":"/artifacts/sap-code-pal-for-abap.json"},{"ref":"artifact:sap-code-pal-for-abap-cloud","name":"code pal for ABAP — Cloud Edition","json":"/artifacts/sap-code-pal-for-abap-cloud.json"}]},"abap-cloud":{"built_in":[],"documented_pattern":[],"announced":[],"packages":[{"ref":"artifact:sap-code-pal-for-abap-cloud","name":"code pal for ABAP — Cloud Edition","json":"/artifacts/sap-code-pal-for-abap-cloud.json"}]}}},"edges":{"use_cases":[],"shared_tasks":[],"related_tasks":[],"options":[{"ref":"artifact:sap-styleguides-clean-abap","name":"Clean ABAP","json":"/artifacts/sap-styleguides-clean-abap.json","ecosystem":"abap","origin_ring":"sap-official"},{"ref":"artifact:sap-code-pal-for-abap","name":"code pal for ABAP","json":"/artifacts/sap-code-pal-for-abap.json","ecosystem":"abap","origin_ring":"sap-official"},{"ref":"artifact:sap-code-pal-for-abap-cloud","name":"code pal for ABAP — Cloud Edition","json":"/artifacts/sap-code-pal-for-abap-cloud.json","ecosystem":"abap","origin_ring":"sap-official"},{"ref":"artifact:larshp-formfactor","name":"FORMfactor","json":"/artifacts/larshp-formfactor.json","ecosystem":"abap","origin_ring":"independent"}],"samples":[],"explained_by":[{"ref":"content:051-abap-cleaner-in-vs-code-installation-and-guide","name":"051: ABAP Cleaner in VS Code - Installation and Guide","json":"/content/051-abap-cleaner-in-vs-code-installation-and-guide.json"}],"normative_context":[]}}