Zum Inhalt springen
ERP Preflight

Clean Core Object Guard

Token-based ABAP Cloud / Clean Core static analysis and released-object classification

Inhalt geprüft am 26. September 2026

Engine
CLEAN_CORE_OBJECT_GUARD
Domäne
Migration & Clean Core
Version
2.2.0
Ziel-Releases
S4H_2022, S4H_2023, S4HANA_CLOUD_2402, S4HANA_CLOUD_2408
Akzeptierte Formate
ABAP, ZIP, JSON

Eingabevertrag

Custom ABAP source (report, class, function group include), an abapGit repository ZIP containing *.abap files, or an object list JSON {'objects': [{'name', 'type': TABL|FUNC|CLAS|DDLS}]} for release-status lookup.

Erforderliche Eingabe

  • ABAP source with at least one statement, an abapGit ZIP, or an object list
  • Released-object knowledge snapshot: clean-core-released-objects/2408.1
  • configuration.abap_references accepts AST-derived references (kind TABLE|CDS|FUNCTION_MODULE|CLASS|DYNAMIC|INTERFACE|TYPE|METHOD|FIELD, name, operation READ|WRITE|CALL, artifact, line, column) from an external analyzer such as abaplint (not bundled); they are classified by the same rules, capped at RULE_DERIVED.
  • SQL access classification: INSERT / UPDATE / MODIFY / DELETE targets are database tables where the statement form says so; ambiguous short forms are resolved by the DATA / TYPES / FIELD-SYMBOLS / parameter declarations in scope, then by the knowledge snapshot, and only then by naming convention (a DB-write verdict on that heuristic basis is RULE_DERIVED, never VERIFIED). metrics.sqlAccess lists every decision.
  • configuration.released_objects (sent by the API from the latest immutable knowledge-graph snapshot of the official SAP Cloudification Repository) takes precedence over the static list for the objects it covers; the snapshot id is recorded in every finding (knowledgeGraphSnapshotId). Objects in state 'deprecated' are reported as CLEAN_CORE_DEPRECATED_OBJECT_USED (with the successor the snapshot names).
  • Release-state verdicts resting on the curated static list are capped at RULE_DERIVED (CURATED_UNVERIFIED knowledge); only exact-release snapshot verdicts can be VERIFIED.

Befundcodes

Befundcodes (10)

  • CLEAN_CORE_DIRECT_DB_MUTATIONStandard-Schweregrad: BlockerKategorie: MIGRATION_CLEAN_CORE

    Direktes Schreiben in eine SAP-Standardtabelle

    Behebung: Schreiben Sie niemals mit INSERT/UPDATE/MODIFY/DELETE in SAP-Tabellen: Verwenden Sie das freigegebene RAP-Business-Objekt (EML MODIFY ENTITIES) oder die freigegebene API der besitzenden Anwendung; direkte Schreibzugriffe umgehen Validierungen und sind in ABAP Cloud gesperrt.

  • CLEAN_CORE_DIRECT_DB_ACCESSStandard-Schweregrad: KritischKategorie: MIGRATION_CLEAN_CORE

    Direktes Lesen einer SAP-Standardtabelle

    Behebung: Ersetzen Sie das SELECT auf die Standardtabelle durch die als Nachfolger genannte freigegebene (C1) CDS-View (z. B. MARA -> I_Product); ist keine freigegeben, beantragen Sie eine über das Customer-Influence-Portal oder lesen Sie über eine freigegebene API.

  • CLEAN_CORE_OBSOLETE_SYNTAXStandard-Schweregrad: KritischKategorie: MIGRATION_CLEAN_CORE

    Veraltete oder in der Cloud verbotene ABAP-Anweisung

    Behebung: Refaktorieren Sie die Anweisung wie im Befund beschrieben; sie ist nicht Teil der ABAP-Sprachversion „ABAP for Cloud Development“.

  • CLEAN_CORE_UNRELEASED_APIStandard-Schweregrad: KritischKategorie: MIGRATION_CLEAN_CORE

    Aufruf eines nicht für die Cloud-Entwicklung freigegebenen Funktionsbausteins

    Behebung: Ersetzen Sie den Aufruf durch den im Befund genannten freigegebenen Nachfolger (Cloudification Repository). Funktionsbausteine, die nicht in der Freigabeliste stehen, gelten als nicht freigegeben, bis SAP sie freigibt.

  • CLEAN_CORE_UNRELEASED_CLASSStandard-Schweregrad: KritischKategorie: MIGRATION_CLEAN_CORE

    Verwendung einer nicht für die Cloud-Entwicklung freigegebenen Klasse

    Behebung: Ersetzen Sie die Klasse durch den freigegebenen Nachfolger (z. B. CL_BCS -> CL_BCS_MAIL_MESSAGE); SAP-GUI-/ALV-Klassen haben kein ABAP-Cloud-Pendant und erfordern eine Fiori-Oberfläche.

  • CLEAN_CORE_DEPRECATED_OBJECT_USEDStandard-Schweregrad: HochKategorie: MIGRATION_CLEAN_CORE

    Verwendung eines als veraltet (deprecated) eingestuften SAP-Objekts

    Behebung: Ersetzen Sie das veraltete Objekt durch den im Befund genannten Nachfolger (Cloudification Repository). Veraltete Objekte sind vorerst weiter nutzbar, SAP kann sie aber in einem späteren Release entfernen; planen Sie die Umstellung vor dem nächsten Upgrade und führen Sie die Analyse erneut aus.

  • CLEAN_CORE_DYNAMIC_CALL_UNVERIFIABLEStandard-Schweregrad: HochKategorie: MIGRATION_CLEAN_CORE

    Dynamisches Aufrufziel nicht verifizierbar

    Behebung: Dynamische Ziele (FROM (lv_tab), CALL FUNCTION lv_fm, CALL METHOD (…)) lassen sich nicht statisch prüfen. Ersetzen Sie sie durch statische Aufrufe oder beschränken Sie die möglichen Werte auf freigegebene Objekte und dokumentieren Sie die Positivliste; ABAP Cloud prüft dynamische Ziele erst zur Laufzeit.

  • CLEAN_CORE_UNRELEASED_OBJECTStandard-Schweregrad: HochKategorie: MIGRATION_CLEAN_CORE

    Verweis auf ein Objekt außerhalb des Snapshots freigegebener Objekte

    Behebung: Prüfen Sie den Freigabestatus des Objekts in ADT (Eigenschaften > API-Status) oder im Cloudification Repository; verwenden Sie den freigegebenen Nachfolger oder eine eigene CDS-View auf freigegebenen Views.

  • CLEAN_CORE_UNRELEASED_TYPE_REFERENCEStandard-Schweregrad: HochKategorie: MIGRATION_CLEAN_CORE

    Typisierung mit einem nicht für die Cloud-Entwicklung freigegebenen DDIC-Objekt

    Behebung: Typisieren Sie das Datenobjekt mit dem im Befund genannten freigegebenen Nachfolger (z. B. TYPE mara -> TYPE i_product, TYPE mara-matnr -> ein freigegebenes Datenelement oder CDS-Feld) oder einem lokalen Typ; ABAP Cloud weist die Typisierung mit nicht freigegebenen Tabellen und Strukturen bereits bei der Syntaxprüfung ab.

  • CLEAN_CORE_OBJECT_RELEASEDStandard-Schweregrad: InfoKategorie: MIGRATION_CLEAN_CORE

    Objekt ist für die Cloud-Entwicklung freigegeben

    Behebung: Keine Aktion erforderlich: Das Objekt ist im für diese Analyse verwendeten Wissens-Snapshot freigegeben (C1).

Codes der Eingabeprüfung (5)

  • CLEAN_CORE_ARCHIVE_REJECTEDStandard-Schweregrad: HochKategorie: INPUT_VALIDATION

    Archiv durch Sicherheitsgrenzen der Datenaufnahme abgewiesen

    Behebung: Das Archiv hat das Expansionsverhältnis von 100:1, die Gesamtgröße von 500 MB, die Eintragsanzahl oder die Verschachtelungstiefe von 2 Ebenen überschritten oder enthielt Pfadtraversierung bzw. verschlüsselte Einträge. Laden Sie ein flaches, unverschlüsseltes Archiv der Exportdateien hoch. Es wurde kein Ergebnis erzeugt. Exportieren Sie das Artefakt erneut in einem der von Clean Core Object Guard akzeptierten Formate (ABAP, ZIP, JSON) und starten Sie die Analyse erneut.

  • CLEAN_CORE_INVALID_INPUTStandard-Schweregrad: HochKategorie: INPUT_VALIDATION

    Artefakt entspricht nicht dem Eingabevertrag der Engine

    Behebung: Liefern Sie den für diese Engine dokumentierten Artefakttyp; fremde oder strukturell ungültige Dokumente werden abgewiesen. Es wurde kein Ergebnis erzeugt. Exportieren Sie das Artefakt erneut in einem der von Clean Core Object Guard akzeptierten Formate (ABAP, ZIP, JSON) und starten Sie die Analyse erneut.

  • CLEAN_CORE_PARSE_ERRORStandard-Schweregrad: HochKategorie: INPUT_VALIDATION

    Artefakt konnte nicht geparst werden

    Behebung: Beheben Sie den Syntaxfehler an der gemeldeten Zeile/Spalte (oder exportieren Sie die Datei unverändert erneut aus SAP). Es wurde kein Ergebnis erzeugt. Exportieren Sie das Artefakt erneut in einem der von Clean Core Object Guard akzeptierten Formate (ABAP, ZIP, JSON) und starten Sie die Analyse erneut.

  • CLEAN_CORE_PAYLOAD_TOO_LARGEStandard-Schweregrad: HochKategorie: INPUT_VALIDATION

    Artefakt überschreitet die Größenbegrenzung

    Behebung: Teilen Sie den Export auf (z. B. nach Paket, Buchungskreis oder Zeitraum), sodass jeder Upload unter der Nutzlastgrenze des Dienstes bleibt. Es wurde kein Ergebnis erzeugt. Exportieren Sie das Artefakt erneut in einem der von Clean Core Object Guard akzeptierten Formate (ABAP, ZIP, JSON) und starten Sie die Analyse erneut.

  • CLEAN_CORE_INSUFFICIENT_INPUTStandard-Schweregrad: InfoKategorie: INPUT_VALIDATION

    Erforderliche Eingabe fehlt

    Behebung: Liefern Sie alle Eingaben, die der Engine-Vertrag als erforderlich kennzeichnet (siehe Eintrag im Engine-Katalog). Es wurde kein Ergebnis erzeugt. Exportieren Sie das Artefakt erneut in einem der von Clean Core Object Guard akzeptierten Formate (ABAP, ZIP, JSON) und starten Sie die Analyse erneut.

Zurück zur Dokumentation
Clean Core Object Guard — ERP Preflight Docs