Production-ready · Defensible · Auditable

SAPMatik

Autonomous·Native·Unified·Brained·Insightful·SAP

The deterministic agent-driven environment for SAP S/4HANA EWM.
Reads requirements. Executes. Verifies. Documents — live on the system.

18.2s
100 HU upload
11.5s
10 bins + sort
0
Hallucinations
28
Toolkit modules
The before and after

Two ways to ship an EWM change. Only one is repeatable.

Most SAP teams ship customising the way they did in 2010 — by hand, by ticket, by hope. SAPMatik keeps the same SAP standards but compresses the loop into a deterministic, audited agent.

The old way

Three specialists, six weeks, brittle handoffs

  • A senior consultant, an ABAP developer and a customising specialist work in parallel for every requirement
  • Critical know-how lives in people, walks out the door with attrition
  • Status messages and dump traces read by hand, slowing every fix
  • Mass data loads are one-off VBScripts nobody can re-run safely
  • Every mistake triggers a full recovery cycle
  • Documentation is the last thing to be written, often never
VS

The SAPMatik way

One agent, one session, one audit trail

  • A single deterministic agent compresses all three roles
  • Knowledge codified in 28 modules + 25 GUI patterns + indexed reference library
  • Every status message captured, long-text auto-fetched, dumps parsed
  • Stock and bin loads as repeatable YAML — pre-checked + live + post-checked
  • Per-run audit folder makes recovery < 30 minutes
  • Word TDS document ships with every ABAP analysis automatically
Three audiences. One platform.

Built for the people who say yes or no.

Commercial leadership sees throughput. Basis sees auditability. Security sees controls. Same toolkit, three answers.

Commercial leadership

Faster engagements · smaller teams · predictable cost
  • Compress senior consultant + ABAP dev + customising specialist into one agent
  • 100 handling units uploaded in 18.2 s, measured live
  • Every change ships with a Word TDS document, ready to hand off
  • Replayable on any landscape: same input, same plan, same artefacts

SAP basis

No service account · standard transports · per-run audit
  • Runs as operator's SSO session — inherits PFCG, never escalates
  • Customising always rides a transport request via save_with_tr
  • ABAP source push refuses to activate if syntax check fails
  • Per-run audit folder: input, sbar, SLG1, RUN.json, screenshots

IT security & compliance

Zero secrets on disk · zero egress · GDPR-aware
  • STRIDE threat model per 8 assets × 8 actors documented
  • 12 controls C1–C12, residuals R1–R6, all verifiable in source
  • 40-question FAQ pre-answers basis / security / DPO concerns
  • Incident runbook with under-30-minute recovery for any single action
How it thinks

The BRAIN loop — six deterministic phases.

Every request flows through six phases. SAPMatik declares the current phase at every response, so the user always knows where in the process they are.

BRAIN METHODOLOGY
1

Decode

Extract actor, object, action, constraints. Ask blocking questions before anything else.

2

Decompose

Split into atomic work-items mapped to UX, process, data, config layers.

3

Map

Triangulate against indexed books, SAP Help, SAP Notes, live verification.

4

Plan

Roadmap card per item — owner, effort, sequence, tests defined first.

5

Execute

Drive the system. Each step wrapped in a tracked phase with sbar capture.

6

Verify

Re-extract changed tables, replay the process, log everything in the audit folder.

What it can do

Seven capability families. 28 modules.

All wired through the same operator session. Modules compose freely under safe_run.phase() for full traceability.

System control & safety

SAP GUI driven via COM. Auto-handles popups + session death. Foreground-attached keystroke injection for the modern ABAP editor.

corepopupssafe_run

Discovery, extract, verify

SE16N tab-delimited exports, multi-select probes, no silent truncation. Pre-check exactly once, post-check exactly once.

extractverifyrepo_browser

Customising & transport

IMG navigation via cached node keys. Per-warehouse TR reuse. FK-aware copy across warehouses.

sprotransport

ABAP reverse-engineering

Any FUGR / PROG / FM / INCLUDE turns into a ready-to-deliver Word TDS document with embedded flow diagrams.

abap_analyzerabap_docxabap_diagrams

Mass data loads

Stock upload + bin mass-create + sort. Verified live: 100 HU in 18.2 s, 10 bins + sort in 11.5 s.

stock_uploadbin_upload

Test & debug loop

Replay recordings, run YAML plans, auto-derive smoke tests. Pluggable patcher (default = grep hints, optional = LLM).

testerdebuggerllm_patcher

Research & knowledge base

Indexed books (929 pp), full /SCWM/ + /LIME/ + /SCDL/ catalog (3.9 K CLAS, 1.6 K INTF, 4.5 K FM, 10 K TABL/VIEW), 35-plugin SAP marketplace, cumulative lessons-learned (25 patterns), per-warehouse state.

libraryweb_research
Architecture

One workstation. One session. One audit trail.

SAPMatik attaches to the operator's already-authenticated SAP GUI session via COM. No service account, no impersonation, no direct database access, no RFC backend.

Operator
SSO authenticated
SAPMatik toolkit
COM events · 28 modules
SAP S/4HANA EWM
Operator's auth · DIAG/SNC
No SAP credentials stored on disk. Zero grep matches for password.
All writes go through standard tcodes — no DDL bypass, no PyRFC backdoor.
Audit trail materialised in KB/<area>/<run_id>/. Filesystem-local by default.
No outbound network — LLM patcher OFF until a key file is explicitly filled.
Live performance

Measured on the live system. Not synthetic.

Every number below comes from a real run on the development landscape. Reproducible from the audit folders in KB/STOCK_UPLOADS/, KB/BIN_UPLOADS/, KB/TESTS/.

The old way (manual)
100 HU stock upload~ 25 min
10 bins mass-create + sort~ 12 min
SE16N multi-bin probe~ 5 min
ABAP source download (1 FUGR)~ 4 min
Build Word TDS doc~ 90 min
The SAPMatik way
100 HU stock upload18.2 s
10 bins mass-create + sort11.5 s
SE16N multi-bin probe~ 7 s
ABAP source download (1 FUGR)~ 60 s
Build Word TDS doc~ 4 s

Per-row throughput on /SCWM/ISU is ~0.18 s / HU. A 1000-HU upload should land near 3 minutes. Bins on /SCWM/SBUP run ~0.7 s / bin; 100 bins are expected in ~ 70 s plus sort. Single-bin floor cost is ~3 s no matter the volume.

By the numbers

Eight stats that tell the story. All verifiable.

Open the repository and run py automation/scripts/security_inventory.py — every number below regenerates from source.

0
Stock upload
18.2 s end-to-end
0
Mass-create
+ sort in 11.5 s
0
SBUP turnaround
Per call
0
Hallucinations
Across every run, ever
0
GUI patterns
Codified A → AN
0
Function modules
Indexed · 4 namespaces
0
Reference pages
Chapter + concept level
0
Pre-answered FAQ
Basis · IT · compliance
Use cases

Four scenarios. All live-verified.

Concrete situations a warehouse operations team faces every week, and how SAPMatik shrinks them.

Initial stock load on a new warehouse

YAML plan → offline validation → online master-data probes → /SCWM/ISU upload → NRIV + SLG1 post-check. Every record audited.

100 HU in 18.2 s live

Mass bin creation + sort

Range expansion → storage-type existence check → bin collision check → /SCWM/SBUP + /SCWM/SBST → verified against /SCWM/LAGP.

10 bins + sort in 11.5 s

ABAP reverse-engineering → Word TDS

One command classifies a FUGR/PROG via TFDIR+TADIR, downloads all sources, regex-mines callgraphs, renders a SAP-grade Word TDS document.

Full FUGR ≈ 60 s

Autonomous bug-fix loop

Tester catches a red sbar → debugger captures short-dump + ABAP context → patcher emits diff → syntax-check + activate → re-test until green.

Dry-run in < 10 s
Watch it move

A live SAPMatik run. No edits, no cuts.

Recorded directly off the dev landscape. From command-line to a verified change on the SAP system.

Toolkit composition

28 modules. 7 families. One package.

A snapshot of where the code lives. The biggest share is data extraction + verification — because every claim SAPMatik makes is cross-checked against the live system.

28
Modules
Discovery, extract, verify
6 mod
ABAP development & reverse-eng
5 mod
System control & safety
4 mod
Mass data loads
4 mod
Test & debug
4 mod
Customising & transport
3 mod
Research & knowledge base
2 mod
Security & risk

Defensible by design. Verifiable in source.

Every claim below points to a control in the codebase that the reviewer can open and verify. Full pack: KB/SECURITY/ + SAPMatik_SECURITY_REVIEW.pdf.

C1
Operator's SSO session is the only auth path. SAPMatik cannot exceed the user's PFCG profile.
C2
No SAP credentials on disk — zero password= / sapconn matches.
C3
No direct table writes — UPDATE/INSERT happen only via standard tcodes.
C4
Customising always rides a transport request via save_with_tr.
C5
Recordings are ground truth — no brute-forcing of unknown GUI flows.
C6
safe_run.phase() wraps every step with sbar + traceback + session-alive check.
C7
Per-run audit folder: input, sbar trace, SLG1, RUN.json, screenshots on failure.
C8
ABAP push enforces syntax_check BEFORE activate; on red, rollback automatically.
C9
Pre-commit hook archives stale artefacts (never deletes) on every commit.
C10
LLM patcher OFF by default — key file ships as a comment-only placeholder.
C11
Popup watchdog operates at OS level — no SAP-side privilege escalation.
C12
All extracts default to local filesystem only. No upload, no cloud.
Privilege escalation

Blocked. SAPMatik runs as the operator. SAP kernel checks every authorization object. No service account, no SAP_ALL.

DDL bypass

Blocked. No UPDATE/INSERT SQL in the codebase. All writes are tcode-driven and go through the same SAP authorisation flow as a manual click.

Credential theft

No SAP password, certificate, or token on disk. No vault to compromise. Operator's session is borrowed for the duration of the Python process.

Malicious LLM diff

Two gates. Syntax_check refuses to activate. Byte-compare refuses no-op diffs. In production the --apply path requires explicit --prod-confirm.

Network exfiltration

Zero outbound by default. The LLM patcher is the only egress path and ships disabled. Customer firewall whitelists api.anthropic.com only if activated.

Audit bypass

The audit folder is created automatically by the toolkit. Skipping requires a code change, which lands in git history.

GDPR

PII scoped to three narrow channels (operator's user-id, ABAP authoring metadata, BP refs in SAP error messages). No HR, no payroll, no banking. Retention defaults documented; right-to-be-forgotten path via cleanup.py --apply --delete.

SOX

All customising + ABAP changes preserve the standard TR + 4-eye chain. SOX evidence is identical to a manual SAP change (TR contents, release approver).

EU AI Act

Default profile (LLM off) does no automated decision-making about people — out of high-risk scope. Enabling LLM for autonomous prod code changes triggers Annex III review.

ISO 27001

Maps to A.8 (access control), A.9 (cryptography), A.12 (operations), A.16 (incident management), A.18 (compliance). Artefacts ready to plug into a customer ISMS.

Does SAPMatik store SAP credentials?

No. It attaches to the operator's already-running SAP GUI session via the COM scripting API. There is no password, certificate, or SAML assertion on disk.

Can SAPMatik escalate privileges on the SAP side?

No. The COM scripting interface is bound to the session. Every action is checked against the user's role at the SAP kernel level. If the operator can't do X manually, SAPMatik can't either.

What audit trail does SAPMatik produce?

Two layers. SAP side: standard sbar, SLG1, STAD, TR contents. SAPMatik side: a per-run folder with input YAML, every captured sbar (JSON), screenshots on failure, before/after extracts, and RUN.json with the final verdict.

Does any data leave the workstation?

No, by default. The single exception is the optional LLM patcher (Anthropic). When off, no outbound HTTPS call is made.

How do we roll back an ABAP source push?

Every write keeps a .bak next to the source. If activation failed, the SAP active version is still the previous one. If activation succeeded but the change is wrong, restore the .bak and push it via the same path.

Is SAPMatik a "high-risk AI system" under the EU AI Act?

Not on the default profile. With the LLM patcher enabled to autonomously change production code it becomes a candidate for Annex III classification.

Can we use SAPMatik for SOX-relevant systems?

Yes. SAPMatik preserves the standard TR + 4-eye chain, so the SOX evidence is identical to a manual SAP change.

Roadmap

Production-ready today. Architected to scale.

Three horizons, each unlocks a new class of customer engagement.

Near-term

Smarter loops

LLM-driven bug-fix loop replaces the patcher stub. Auto-test plans derived from the analysis narrative. Same backbone, more autonomy. Infrastructure ready — switch on when paying customers arrive.

Mid-term

PyRFC backbone

For bulk reads and writes that don't need a GUI screen, switch to PyRFC. Cuts wall-clock by 5–10× on extractions and mass loads. Same Python APIs, faster floor.

Long-term

Beyond EWM

Extend the same architecture to MM, SD, PP. Compose stock + bins + customising + reverse-engineering into a single declarative go-live YAML — one document for an entire customer engagement.

Under the hood

Built on SAP-native primitives.

No exotic dependencies. The stack uses what the SAP workstation already has, plus a thin Python orchestration layer.

Python 3.14 SAP GUI Scripting COM / win32com openpyxl python-docx Typst PyYAML Git No service account No DDL No egress No SAP credentials

Ready to absorb the next requirement.

Two tracks. Pick the one that matches your team's question — or open both.