Demo · Z_MM_PO_APPROVAL — Analyze
23 findings at 26 places in the code, from the engine that ships with this release — and no signed run, because a demo may not produce one.
Clean Core Score
40of 100
Far from clean core· band 5–59
What moves it
Every deduction of the score’s table, the largest first. A line chip opens the source at that line.
The deductions of the Clean Core Score: 100 minus every row below gives 40.
- Direct writes to SAP standard tables−20 points
- Batch input to transactions−10 points
- File transfers through the SAP GUI−5 points
- Direct reads of SAP standard tables−5 points
- Writes to the program’s own Z/Y tables0 points
- What the code does — 100 − 4060 points
- Statements the engine could not assessNot determined−20 points
- Clean Core Score of the demo40 points
The largest single deduction: direct writes to sap standard tables (EBAN), 20 points. Settling the 7 places that could not be assessed (open questions) can move the score either way — the 20 points come off, findings may come in.
- Findings
- 23
- Clean core levels
- No level: a statement, not an SAP objectThese findings are about ABAP statements themselves — AUTHORITY-CHECK, COMMIT WORK, native SQL (EXEC SQL or ADBC), CALL SCREEN or a screen MODULE. A clean core level belongs to an SAP object that SAP's release or classification file lists, and a statement is not one — so they have no level, rather than an unknown one.No level: no SAP object namedThe engine records no SAP object for these findings — the statement names none it can read (a name held in a variable, a literal value, a check the program does not make) — so there is nothing to look up in SAP's data.
- Recommended route
- ABAP Cloud on-stack
- Not determined
- 7
Look here firstReconstructed· by severity and kind
3 of 23 findings, picked by fixed rules.
- CriticalD
Direct write to SAP standard table EBAN
Directly modifying standard SAP tables destroys system integrity, invalidates SAP guarantees, and blocks upgrades completely.
241 WHERE banfn = p_banfn242 AND bnfpo = p_bnfpo.Successor:API_PURCHASEREQUISITION_SRVImported· Clean-Core.io curated mapping, compiled for 2024.FPS02 - HighC
Legacy batch data communication (BDC) to TCode ME21N
BDC relies on traditional SAP GUI screen flows. These are highly unstable, prone to breaking during upgrades, and do not work in SAP Fiori or Cloud environments.
516 MODE 'N'517 UPDATE 'S'No released successor named
- HighB
Direct write to custom table ZMM_PO_APPR
Direct DB access bypasses the application layer and encapsulation: no business object guards the rows it changes. Writing to a table that is not SAP's is not itself a clean core violation, but ABAP Cloud needs the table exposed through a RAP business object or moved side-by-side.
No released successor named
Where in the program
Every finding at its source line, one row per kind; a bigger dot is a more severe finding. Pick a dot to open the source at that line.
Direct write to an SAP standard table
Writes to custom tables
Batch input to a transaction
Direct reads of SAP standard tables
Calls of classic APIs not released for ABAP Cloud
Decision on the server's date or time
Explicit transaction control
File transfer through the SAP GUI
Table accesses
Security review task
Authorization check
Findings by kind (23)
| Line | Severity | What | Level | Successor |
|---|---|---|---|---|
| SeverityCritical | WhatEBAN | LevelLevel D: Not recommended — replaceNot-recommended objects & technologies — modifications, implicit enhancements, direct table writes, non-released access. Not clean; replace before upgrade.ATC (our reading): Priority 1 · errorThe level is this product's reading of SAP's published data - an orientation to confirm with ABAP Test Cockpit, and never part of a signed audit pack.Scheme: SAP’s clean core level concept (ABAP extensibility guide) | Successor |
| Line | Severity | What | Level | Successor |
|---|---|---|---|---|
| SeverityHigh | WhatZMM_PO_APPR | LevelLevel B: Classic SAP APIs — SAP-recommendedClassic SAP APIs and extension points that follow SAP recommendations — used where no Level A path is available.ATC (our reading): Priority 3 · infoThe level is this product's reading of SAP's published data - an orientation to confirm with ABAP Test Cockpit, and never part of a signed audit pack.Scheme: SAP’s clean core level concept (ABAP extensibility guide) | Successor | |
| SeverityHigh | WhatZMM_PO_ATTACH | LevelLevel B: Classic SAP APIs — SAP-recommendedClassic SAP APIs and extension points that follow SAP recommendations — used where no Level A path is available.ATC (our reading): Priority 3 · infoThe level is this product's reading of SAP's published data - an orientation to confirm with ABAP Test Cockpit, and never part of a signed audit pack.Scheme: SAP’s clean core level concept (ABAP extensibility guide) | Successor |
| Line | Severity | What | Level | Successor |
|---|---|---|---|---|
| SeverityHigh | WhatME21N | LevelLevel C: Internal SAP APIs — conditionalUses internal SAP objects/APIs — conditionally clean if verified via the changelog-for-SAP-objects approach before each upgrade.ATC (our reading): Priority 2 · warningThe level is this product's reading of SAP's published data - an orientation to confirm with ABAP Test Cockpit, and never part of a signed audit pack.Scheme: SAP’s clean core level concept (ABAP extensibility guide) | Successor |
| Line | Severity | What | Level | Successor |
|---|---|---|---|---|
| SeverityMedium | WhatEBAN | LevelLevel C: Internal SAP APIs — conditionalUses internal SAP objects/APIs — conditionally clean if verified via the changelog-for-SAP-objects approach before each upgrade.ATC (our reading): Priority 2 · warningThe level is this product's reading of SAP's published data - an orientation to confirm with ABAP Test Cockpit, and never part of a signed audit pack.Scheme: SAP’s clean core level concept (ABAP extensibility guide) | Successor | |
| SeverityMedium | WhatPA0105 | LevelLevel C: Internal SAP APIs — conditionalUses internal SAP objects/APIs — conditionally clean if verified via the changelog-for-SAP-objects approach before each upgrade.ATC (our reading): Priority 2 · warningThe level is this product's reading of SAP's published data - an orientation to confirm with ABAP Test Cockpit, and never part of a signed audit pack.Scheme: SAP’s clean core level concept (ABAP extensibility guide) | Successor | |
| SeverityMedium | WhatLFA1 | LevelLevel C: Internal SAP APIs — conditionalUses internal SAP objects/APIs — conditionally clean if verified via the changelog-for-SAP-objects approach before each upgrade.ATC (our reading): Priority 2 · warningThe level is this product's reading of SAP's published data - an orientation to confirm with ABAP Test Cockpit, and never part of a signed audit pack.Scheme: SAP’s clean core level concept (ABAP extensibility guide) | Successor | |
| SeverityMedium | WhatLFM1 | LevelLevel C: Internal SAP APIs — conditionalUses internal SAP objects/APIs — conditionally clean if verified via the changelog-for-SAP-objects approach before each upgrade.ATC (our reading): Priority 2 · warningThe level is this product's reading of SAP's published data - an orientation to confirm with ABAP Test Cockpit, and never part of a signed audit pack.Scheme: SAP’s clean core level concept (ABAP extensibility guide) | Successor | |
| SeverityMedium | WhatCSKS | LevelLevel C: Internal SAP APIs — conditionalUses internal SAP objects/APIs — conditionally clean if verified via the changelog-for-SAP-objects approach before each upgrade.ATC (our reading): Priority 2 · warningThe level is this product's reading of SAP's published data - an orientation to confirm with ABAP Test Cockpit, and never part of a signed audit pack.Scheme: SAP’s clean core level concept (ABAP extensibility guide) | Successor |
| Line | Severity | What | Level | Successor |
|---|---|---|---|---|
| SeverityMedium | WhatSAP_WAPI_CREATE_EVENT | LevelLevel B: Classic SAP APIs — SAP-recommendedClassic SAP APIs and extension points that follow SAP recommendations — used where no Level A path is available.ATC (our reading): Priority 3 · infoThe level is this product's reading of SAP's published data - an orientation to confirm with ABAP Test Cockpit, and never part of a signed audit pack.Scheme: SAP’s clean core level concept (ABAP extensibility guide) | Successor | |
| SeverityMedium | WhatBAPI_PO_CREATE1 | LevelLevel B: Classic SAP APIs — SAP-recommendedClassic SAP APIs and extension points that follow SAP recommendations — used where no Level A path is available.ATC (our reading): Priority 3 · infoThe level is this product's reading of SAP's published data - an orientation to confirm with ABAP Test Cockpit, and never part of a signed audit pack.Scheme: SAP’s clean core level concept (ABAP extensibility guide) | Successor |
| Line | Severity | What | Level | Successor |
|---|---|---|---|---|
| SeverityMedium | WhatThe server's date or time decides (sy-datum) | LevelNo level: no SAP object namedThe engine records no SAP object for this finding — the statement names none it can read (a name held in a variable, a literal value, a check the program does not make) — so there is nothing to look up in SAP's data. | Successor |
| Line | Severity | What | Level | Successor |
|---|---|---|---|---|
| SeverityMedium | WhatExplicit transaction boundary (COMMIT WORK) | LevelNo level: a statement, not an SAP objectThis finding is about the ABAP statement COMMIT WORK itself. A clean core level belongs to an SAP object that SAP's release or classification file lists, and a statement is not one — so there is no level here, rather than an unknown one. | Successor |
| Line | Severity | What | Level | Successor |
|---|---|---|---|---|
| SeverityMedium | WhatGUI_UPLOAD | LevelLevel B: Classic SAP APIs — SAP-recommendedClassic SAP APIs and extension points that follow SAP recommendations — used where no Level A path is available.ATC (our reading): Priority 3 · infoThe level is this product's reading of SAP's published data - an orientation to confirm with ABAP Test Cockpit, and never part of a signed audit pack.Scheme: SAP’s clean core level concept (ABAP extensibility guide) | Successor |
| Line | Severity | What | Level | Successor |
|---|---|---|---|---|
| SeverityLow | WhatZMM_VEND_BLOCK | LevelLevel not determined: Insufficient evidenceNot enough evidence to assign a clean-core level. Provide risk/criticality or import ATC results to classify — shown honestly instead of a guessed grade.The level is this product's reading of SAP's published data - an orientation to confirm with ABAP Test Cockpit, and never part of a signed audit pack.Scheme: SAP’s clean core level concept (ABAP extensibility guide) | Successor | |
| SeverityLow | WhatZMM_DEPT_HEAD | LevelLevel not determined: Insufficient evidenceNot enough evidence to assign a clean-core level. Provide risk/criticality or import ATC results to classify — shown honestly instead of a guessed grade.The level is this product's reading of SAP's published data - an orientation to confirm with ABAP Test Cockpit, and never part of a signed audit pack.Scheme: SAP’s clean core level concept (ABAP extensibility guide) | Successor | |
| SeverityLow | WhatZMM_NOTIFY_CFG | LevelLevel not determined: Insufficient evidenceNot enough evidence to assign a clean-core level. Provide risk/criticality or import ATC results to classify — shown honestly instead of a guessed grade.The level is this product's reading of SAP's published data - an orientation to confirm with ABAP Test Cockpit, and never part of a signed audit pack.Scheme: SAP’s clean core level concept (ABAP extensibility guide) | Successor |
| Line | Severity | What | Level | Successor |
|---|---|---|---|---|
| SeverityLow | WhatSecurity review: CALL TRANSACTION ME21N without WITH or WITHOUT AUTHORITY-CHECK | LevelNo level: no SAP object namedThe engine records no SAP object for this finding — the statement names none it can read (a name held in a variable, a literal value, a check the program does not make) — so there is nothing to look up in SAP's data. | Successor |