An ABAP scan produces three different things for three different readers: a finding view for the developer who has to change the code, a per-object report that states what was looked at before it states what was found, and machine-readable exports for a build pipeline or another security tool.
They are three views of one run, and which one to hand over depends entirely on who is asking. A developer wants the line and the path. An auditor wants the denominator. A pipeline wants a file it can fail a build on.
The finding itself, with everything needed to confirm or reject it without opening SAP:
When the code has been changed, a retest reads the object's current source out of the SAP system and analyses it again, so the answer is about the code as it stands rather than the copy the scan stored.
A per-object report over the whole run. Its ordering is the point: it states the number of objects the run covered first, then how many carried nothing, then how many carried findings, then the per-object table with the severity counts.
That order matters because it puts the denominator in front of the result. "One program carried a finding" and "one program of one carried a finding" are different statements, and only the second is evidence. The table below it lists each object with its type, its status, its total, and the count in each severity band.
The report puts the denominator in front of the result, which is what turns a count of findings into evidence.
The report is available as a screen and as a workbook, so it can be attached to an audit file as it stands.
| Format | Shape | Typical use |
|---|---|---|
| XLSX workbook | per-object report, multiple sheets | audit file, management reporting |
| CSV | one row per finding | spreadsheets, ticket import |
| JSON | one record per finding, full fields | custom tooling, dashboards |
| XML | one element per finding | older toolchains and reporting stacks |
| SARIF | the standard static analysis interchange format | pushing results into an application security platform that ingests SARIF |
| Source archive | the stored ABAP of every object in the run | offline review, evidence retention |
One run, several outputs, so the developer, the auditor and the build pipeline each get the shape they can use.
SARIF is the one to reach for when ABAP findings need to sit beside the rest of an organisation's application security results rather than in a separate SAP silo. The scanner builds SARIF from a run and can post it to an external application security platform that accepts it.
Two decisions, and it is worth making them explicitly rather than by default:
Through the CSV or JSON export, which carry one record per finding with the object, line range, severity, description and recommendation. There is no built-in ticket integration.
Yes, through SARIF, which is what that format exists for. The scanner can also post a run's SARIF results directly to an external platform that ingests them.
The run records the profile it used. Carry that reference with any result you hand on, because a result screen or an exported file on its own does not restate the scope it was produced under.
Yes, as an archive of the source the scan read. It is the code as it stood at scan time, not as it stands in SAP now, and it should be handled with the same care as any source export.
As long as the installation keeps them. Scan history and findings live in the customer's own deployment, so retention is the customer's decision rather than a vendor setting.