PackagePackagetypeA library you install and call yourself.See every one →What this type is →by SAPby SAPoriginPublished by SAP itself. A visible facet, never an input to a reading — a dormant official plugin reads exactly like a dormant independent one.See every one →

code pal for ABAP

ATC and Code Inspector checks for the parts of Clean ABAP a static analyser can actually check, installed into a system with [abapGit](artifact:abapgit-abapgit) rather than delivered with it.

The styleguide is a document and the built-in ATC checks cover some of it. This is the open-source check set that covers more, and its configurability is the point: a threshold, a severity, whether a check applies to productive or test code, whether it applies only to objects created after a date, and a validity period. Teams adopting Clean ABAP on an existing system need all of that, because switching every check on at once against a decade of code is not an adoption plan.

Facts

Last pushLicenceApache-2.0

Where it sits

Lives in
Provides
Clean code conventionsABAPClean code conventionscapabilityThe 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.Static analysisABAPStatic analysiscapabilityCatching problems in code before it runs: naming, obsolete statements, security findings, and compatibility with a target environment. Style linting, security scanning and cloud-readiness checks are often treated as one concern.
Requires
abapGitabapGitartifactNamed as a dependency in its documentation.

Who is behind it

SAPSAPOrganisationMaintains this
In the atlas: maintains 137, wrote 14
@SAP
maintainerAlexandreHTPersonContributes to this
In the atlas: contributes to 6
@AlexandreHT
Björn JüligerPersonContributes to this
In the atlas: contributes to 5
@bjoern-jueliger-sap
ConjuringCoffeePersonContributes to this
In the atlas: contributes to 7
@ConjuringCoffee
Josh ElliottPersonContributes to this
In the atlas: contributes to 9
@jelliottp
Jaime Rodriguez CapotePersonContributes to this
In the atlas: maintains 1, contributes to 9
@jrodriguez-rc
Lars HvamPersonContributes to this
In the atlas: maintains 13, contributes to 92, wrote 1
@larshp
Lucas BorinPersonContributes to this
In the atlas: contributes to 4
@lucasborin
Maxim EngelPersonContributes to this
In the atlas: contributes to 2
@maxim-engel-sap
8 contributors

Before choosing this

Conditions

PracticalFunctional boundary

This is the legacy edition, for on-premise systems from SAP_BASIS 7.40. On ABAP Cloud, the Cloud Edition is the one that runs.

What it declares

Every artifact

Type
Package
Origin
By SAP

As a package

Where it runs
Inside its host
Distributed through
abapGit

Connections3

README

quoted from SAP/code-pal-for-abap under Apache-2.0, read
SAP/code-pal-for-abap/README.mdOn GitHub

code pal for ABAP

abap package version license REUSE status

This tool provides a set of checks to help adhering to the Clean ABAP style guide. While not all recommendations from the guide can be checked by static code analysis and in certain situations strict adherence to the guide might not be recommended, this provides robust automated support at least for a subset of recommendations.

It's free and open-source.

This is the legacy version supporting local checks on check systems starting with SAP_BASIS release 7.40. For the remote-enabled version for ABAP Cloud, see the Cloud Edition.

Features

  • Supported by Code Inspector (SCI / SCII) and ABAP Test Cockpit (ATC) (SE80 / Eclipse);
  • Ignores automatically generated code;
  • Supports exemptions;
  • Provides a new user-friendly way to create variants (Profile Management);
  • Allows configuration based on:
    • Threshold;
    • Severity / Priority;
    • Validity for productive code, test code, or both;
    • Validity for objects created since a specific date;
    • Validity period;
    • Allow / Deny exemption.

Severities set to Notification / Priority 3 by default (#368).

Set of Checks

Dependencies

  • Since Version 1.00 - SAP NetWeaver 7.40 SP8 or higher
  • abapGit

How-to Guides

Further Documentation

Apache-2.0, read

History

Latest

v1.12.3

Fixes 2

Notes
  • Object Creation Date from TRDIR table
  • Reversal Thresholds Validation
  1. v1.12.2

    Fixes 1

    Notes
    • Code Pal Exempts All the Sub-Objects (#326)
  2. v1.12.1

    Fixes 1

    Notes
    • Application Component Scan (#325)
  3. v1.12.0

    Removed 2, Features 1, Fixes 2

    Notes
    • Performance Improvements (#318)
    • Shared Memory (#319)
    • Performance Issues (#317)
    • Profile Tool - UX Refinement (#313)
    • RFC Disabled (#305)
  4. v1.11.1

    Fixes 1

    Notes
    • Dump in DB access in UT (#309)
  5. v1.11.0

    Features 1, Changed 3, Fixes 3

    Notes
    • CHECK position after comments (#301)
    • Modify an Internal Table is no DB Access (#300)
    • Enhancing coverage to run for multiple objects (#294) ! Disabling profiles when the API executes the regression (#293)
    • DELETE from internal table gives a "Database access" prio 1 error (#290) ! The pseudo comment position of the Form Routine Check was moved from the 'ENDFORM' to 'FORM' statement ! The pseudo comment position of the Number of Public Attributes was moved from the 'CLASS DEFINITION.' to 'PUBLIC SECTION' statement
  6. v1.10.0

    Features 5, Changed 3, Fixes 5

    Notes
    • New Check: Scope of the Variable (#276)
    • Comment position when code has pseudo comments (#282)
    • Y_CHECK_STATEMENT_POSITION: before DATA declarations (#272)
    • 'was' and 'were' as a method which returns boolean (#275) ! DB Access in UT has distinct behavior depending on test risk level (#267) ! Prefer Case to ElseIf is now reporting single conditions only (#262) ! Chain Declaration check is now warning by default (#266)
    • abapLint app integration in GitHub (#264)
    • API regression reports 'maintain attributes..." message (#259)
    • API improvements (#259)
    • Missing space between string or character literal and parentheses (#253)
    • Broken UTs (#251)
    • Constants in Interface (#244)
  7. v1.09.0

    Features 3, Changed 2, Fixes 1

    Notes
    • deprecated classes/interfaces check ! coverage checks threshold ! 'check statement position' won't validate check in loop anymore
    • new check: 'check in loop'
    • object creation date for classes
    • service to execute regression test
  8. v1.08.0

    Changed 2, Fixes 3

    Notes

    ! deprecated classes/interfaces (aunit)

    • short dump in unit test fixed ! unit test using buffer with shared memory
    • prefer is not exempts line_exists( )
    • check order in sci
  9. v1.07.0

    Features 1, Changed 2, Fixes 6

    Notes
    • comment type exempt generated include
    • comment position for empty catches ! self reference check validates instance method only
    • buffer deadlock ! Y_CHECK_RETURNING_NAME is warning by default
    • minor clean code refactoring
    • automatic exemption for function modules with prefix TABLEFRAME* and TABLEPROC*
    • sort dump in the comment position check
    • omit optional exporting with exceptions
  10. v1.06.0

    Changed 1, Fixes 4

    Notes
    • subsequent memory assignment check
    • 7.40 compatibility issue ! abapLint support
    • performance
    • 'object creation date' in the include level
  11. v1.05.0

    Removed 1, Features 2, Changed 2, Fixes 1

    Notes
    • profile message check runs only once ! check messages
    • db access in ut when OSQL/CDS framework is being used ! category description
    • report to activate or deactivate the SCI entries
    • add/remove all check in profiles
  12. v1.04.1

    Features 1, Fixes 2

    Notes
    • magic number to support numeric strings (#142)
    • enabling table log for exemptions
    • prefer case to else if (#156)
  13. v1.04.0

    Features 1, Changed 2

    Notes
    • API to read version ! minor clean code refactoring ! minor documentation fixes
  14. v1.03.1

    Fixes 1

    Notes
    • if_apack_manifest does not exist
  15. v1.03.0

    Features 4

    Notes
    • statement coverage check
    • branch coverage check
    • procedure coverage check
    • API to import profile
  16. v1.02.1

    Changed 1, Fixes 1

    Notes
    • unit test of external call in ut ! description of the profile management tool
  17. v1.02.0

    Features 3, Changed 3

    Notes
    • new check y_check_external_call_in_ut
    • new check y_check_statement_coverage
    • threshold support to 'less equal' and 'greater than' ! folder logic to prefix logic ! name to code pal for ABAP ! project documentation
  18. v1.01.0

    Features 1

    Notes
    • profile feature
  19. v1.00.0

    Features 1

    Notes
    • changelog

Others providing16

Clean code conventions
  1. FORMfactorGenerates local classes from FORM-based ABAP programsfrom ABAP
  2. code pal for ABAP — Cloud EditionClean ABAP check set for ABAP Cloudfrom ABAP
  3. Clean ABAPOpen, versioned style guide for ABAPfrom ABAP
Static analysis
  1. @abap2ui5/linterCommand-line checker for abap2UI5 app classes and their viewsfrom ABAP
  2. abap2UI5 PlaygroundIn-browser ABAP editor beside the abap2UI5 app it buildsfrom ABAP
  3. abapcdsgrammarANTLR4 grammar, lexer and parser for ABAP CDSfrom ABAP
  4. @abapify/acdsParser for ABAP CDS DDL source with a typed ASTfrom ABAP
  5. abaplint-sci-clientABAP client surfacing abaplint checks in Code Inspector and ATCfrom ABAP
  6. abaplintStatic analysis for ABAP source outside a systemfrom ABAP
  7. BellaEclipse plugin bringing Claude into ABAP Development Toolsfrom ABAP
  8. abapOpenChecksOpen-source rule pack for SAP Code Inspector and ATCfrom ABAP
  9. upDOWNciUploads and downloads Code Inspector check variants as XMLfrom ABAP
  10. abaplint-Ext-for-abapGitShows abaplint results inside abapGitfrom ABAP
  11. ABAP remote filesystemVS Code extension editing ABAP systems over ADT as a filesystemfrom ABAP
  12. Clean-Core.ioHosted workspace redrawing custom ABAP as BPMN and grading itfrom ABAP
  13. ACESAP GUI tool for static analysis of ABAP call flow and code metricsfrom ABAP

Details

Sources3
GitHub APIdiscovered herechecked
github.com/SAP/code-pal-for-abaptree, pushes, contributors, CIchecked
README.mdquoted, and what the entry declareschecked

Sources are graph entities: the same page may back several entries, and an unreachable source flags every row that rests on it.

Compatibility and provenance
discovered viaGitHub API
first seen in the atlas
ecosystem and domainabap, developer-experience
abaplint
issues under its own abaplint configuration0
lines25,008
statements11,233
objects117
files273
analysed, master
abaplint version2.120.84
Flavors1
Standard ABAP
“- Since Version 1.00 - SAP NetWeaver **7.40 SP8** or higher” — SAP/code-pal-for-abap — READMEchecked
Contributors8
History in the atlas1
  1. First seen.
For your agent
Ref
artifact:sap-code-pal-for-abap
JSON
/artifacts/sap-code-pal-for-abap.json
MCP
Connecting an agent