ETZ AI Platform

Run, support, and evolve your SAP landscape with governed AI, from insight to change. Talk to SAP in everyday language, with SAP-grade authorisation, governance and auditability on every action.

What it does

See the platform at work

Keep scrolling.

01

Natural-language diagnostics across the SAP stack

Short dumps with source extracts and call stacks, gateway error logs, system messages, failed IDocs, batch jobs and the security audit log, read through SAP-native interfaces that work under standard authorisations, then explained and correlated in plain language by the AI.

02

Live SAP data answers with in-system aggregation

Read tables, run sums, counts and group-by aggregations pushed down into SAP, and call OData services and RFC function modules, with results returned as plain-language answers that flag what looks unusual. Read-only roles are enforced by a policy engine at the boundary, on every access path.

03

Governed change execution with gates enforced in code

Proposed changes are validated with syntax and ABAP Test Cockpit checks before any write. Applies run a full lock, edit, activate cycle with automatic recovery on activation failure. Transport release and deletions require an explicit human action the AI cannot invoke, and every step lands in the audit trail.

04

From classic Z code to RAP and Fiori

Scaffold the full RAP stack from a classic Z-table or report, with CDS views, behaviour definition and class, and service definition and binding, publish a live OData V4 service, then generate and deploy a Fiori Elements app hardened with SAP’s official UI5 tooling. Weeks of boilerplate become a governed, reviewable starting point.

An audit trail a reviewer can read

Every interaction, read or write, lands in a complete, append-only audit record: the real user’s identity, the parameters, the SAP response, and the decision of every governance gate.

Chat
ETZ AI Platform
Delete chat08:01:52

Ask me anything: explain an object, find custom code for a transaction, analyse dependencies, or propose a change.

Why can’t this user run their app? Analyse the failed authorisationExplain what ZTRADESYNC actually does, in plain EnglishWhich transports contain this class, and where were they imported?Anything suspicious in the security audit log this week?

What went wrong in S4D in the last 24 hours? Short dumps, failed IDocs, cancelled jobs, worst first.

08:02

...thinking
Running 1/3 steps · list_short_dumps
  1. list_short_dumps27 dumps · last 24 h (743ms)
  2. list_failed_idocs0 IDocs in error status (512ms)
  3. list_batch_jobs14 aborts · 1 recurring job (486ms)
agenticclaudesuccess

No business-critical failures overnight. Worst first: a HANA connection drop during a monitoring task (transient, one for Basis only if it repeats), a flood of RFC authorisation dumps from a technical user, and one batch job aborting daily since March. IDoc processing is fully healthy.

Category ABAP programming error
Runtime error DBSQL_SQL_ERROR · SQL code -10807
Connection down: 'send' failed, rc=104:
Connection reset by peer
Program SAPLTASK_VITAL · User SAP_WSRT
PRIOFINDINGOWNER
P1HANA connection reset mid-query (transient)Basis
P2SM_SMP missing RFC auth, dumping every ~5 minSecurity
P3Daily job aborting at 09:00 since MarchBWALKER
OKIDocs: no failures in 24 hn/a

Fastest win: SM_SMP has no roles assigned at all. Assign the existing ZSAP_SOLMAN_READ_702 role in client 110 and the dump flood (about 300 a day) stops.

3 tool calls · 2 rounds · anthropic/claude-opus-4.8

0 in · 0 out · 0 cached · 0% cache hit

Count documents by type and posting period for company code 2300, fiscal 2026, and flag anything unusual.

08:03

...thinking
Running 1/2 steps · query_aggregate
  1. query_aggregateACDOCA · COUNT(*) GROUP BY POPER · pushed down into SAP (1268ms)
  2. query_aggregateCOUNT(*) GROUP BY BLART · periods 1-12 (941ms)
agenticclaudesuccess

Live aggregate from S4D, counted inside SAP with only the totals returned. One thing stands out: 91% of FY 2026 volume sits in period 0 with a blank document type. That is a migration carry-forward load, not real activity. True transactional volume is about 127k lines.

PERIODDOC LINESSHAREFLAG
0 · Carry-fwd1,284,51691.0%Migration load
1 · Jan19,2041.4%
2 · Feb2,8710.2%Low
3 · Mar81,3405.8%Spike
4 · Apr5,5120.4%
5 · May7030.05%Very low
6 · Jun2,9880.2%
2 tool calls · 1 round · anthropic/claude-opus-4.8

0 in · 0 out · 0 cached · 0% cache hit

The partner lookup in ZTRADESYNC never checks sy-subrc, so a missing business partner slips through. Propose a fix, validate it, and apply it.

08:04

...thinking
Running 1/3 steps · propose_section_change
  1. propose_section_changeZTRADESYNC · guard after SELECT SINGLE (1840ms)
  2. run_syntax_check0 errors (512ms)
  3. validate_change_setATC + abaplint · check_subrc finding cleared (2381ms)
agenticclaudesuccess

The result of the partner SELECT SINGLE is used unchecked, so a missing business partner proceeds with stale data. The guard below returns a clear error instead. Syntax, ATC and abaplint checks passed. Review the diff and approve to apply it on S4D.

3 tool calls · 2 rounds · anthropic/claude-opus-4.8
Code change requires approval
ZTRADESYNC

Change

Guard the business-partner lookup: return a clear error when the partner does not exist instead of proceeding with stale fields.

Validation passed· audit d4a1c7f2

Diff (12 lines)

METHOD parse_json_update.
SELECT SINGLE partner FROM but000
INTO @DATA(lv_partner)
WHERE partner = @iv_partner.
+ IF sy-subrc <> 0.
+ es_return-type = 'E'.
+ es_return-message = |Business partner { iv_partner } not found|.
+ RETURN.
+ ENDIF.
" build the $batch PATCH payload

Transport Request

S4DK903117 · Trading-platform BP sync fixes
RejectApprove & Apply
Code change requires approval
ZTRADESYNC

Change

Guard the business-partner lookup: return a clear error when the partner does not exist instead of proceeding with stale fields.

Validation passed· audit d4a1c7f2

Diff (12 lines)

METHOD parse_json_update.
SELECT SINGLE partner FROM but000
INTO @DATA(lv_partner)
WHERE partner = @iv_partner.
+ IF sy-subrc <> 0.
+ es_return-type = 'E'.
+ es_return-message = |Business partner { iv_partner } not found|.
+ RETURN.
+ ENDIF.
" build the $batch PATCH payload
✓ Change applied and activated
✓ Verified: source on SAP matches the proposed change
✓ Activated: runtime now uses the new version
ATC: 0 errors, 0 warnings, 2 info · variant DEFAULT
transport S4DK903117 · audit f7e2a814
Release transport: promotes code toward test/prod
S4DK903117QAS

Trading-platform BP sync fixes

Releasing this transport moves its objects out of DEV toward test/prod and cannot be undone. This is the human signoff, an explicit action the AI cannot invoke.

CancelRelease transport

Custom-code migration

Your customer-namespace ABAP objects, grouped by type. Pick an object and the assistant will analyse it end-to-end: classic-API dependencies, clean-core status, and a suggested path to the modern SAP stack (RAP / CDS / Fiori).

Analysis only. No source is modified until you approve a specific change in chat.

Prefix
Z
Name contains
e.g. INVOICE
Package
e.g. ZFI_
Object types
CLASINTFPROGFUGRTABLSTRUDTELDOMADEVCMSAGDDLSDCLS
Load inventoryResetLast loaded 08:04142 objects
CLAS · Classes · 47 objects
NameDescription
ZTRADESYNCTrading-platform BP integration (SEGW core)
ZCL_ZAPI_TSY_DPC_EXTGateway data provider extension
ZCL_ZAPI_TSY_MPC_EXTGateway model provider extension
PROG · Programs · 38 objects
FUGR · Function groups · 21 objects
TABL · Tables · 36 objects

Audit Log

Every governed action (apply, reject, activation, ATC outcome) recorded with timestamp, request ID, and policy decision.

41 success1 error1 write
TimestampToolStatus
2026-08-24 08:02:14list_short_dumpssuccess
2026-08-24 08:03:22query_aggregatesuccess
2026-08-24 08:04:36validate_change_setsuccess
2026-08-24 08:04:52apply_patch_with_activationsuccess
2026-08-24 08:05:10release_transporterror

Request b9d4517c

Policy: blocked · transport release requires an explicit human action, the AI cannot invoke it
Params
{
  "transport": "S4DK903117",
  "requested_by": "agent"
}
What it does

See the platform at work

01

Natural-language diagnostics across the SAP stack

Short dumps with source extracts and call stacks, gateway error logs, system messages, failed IDocs, batch jobs and the security audit log, read through SAP-native interfaces that work under standard authorisations, then explained and correlated in plain language by the AI.

ETZ AI Platform chat UI diagnosing a failing SAP Gateway service: the AI pinpoints an unimplemented CREATE_ENTITY method, shows the source extract, and proposes the fix
02

Live SAP data answers with in-system aggregation

Read tables, run sums, counts and group-by aggregations pushed down into SAP, and call OData services and RFC function modules, with results returned as plain-language answers that flag what looks unusual. Read-only roles are enforced by a policy engine at the boundary, on every access path.

ETZ AI Platform answering a business question from live SAP data, with aggregations run inside the SAP system and results presented in plain language
03

Governed change execution with gates enforced in code

Proposed changes are validated with syntax and ABAP Test Cockpit checks before any write. Applies run a full lock, edit, activate cycle with automatic recovery on activation failure. Transport release and deletions require an explicit human action the AI cannot invoke, and every step lands in the audit trail.

ETZ AI Platform approval card for a proposed ABAP change: validation passed, a reviewable diff, transport request selection, and explicit Approve and Reject buttons
04

From classic Z code to RAP and Fiori

Scaffold the full RAP stack from a classic Z-table or report, with CDS views, behaviour definition and class, and service definition and binding, publish a live OData V4 service, then generate and deploy a Fiori Elements app hardened with SAP’s official UI5 tooling. Weeks of boilerplate become a governed, reviewable starting point.

ETZ AI Platform scaffolding a classic Z object into a RAP application: generated CDS and behaviour artefacts with a live OData service and Fiori Elements app
GlueData
Sanlam
Wastepro
FINN
Southco
OSIsoft
Sports Basement
SALT Analytics
AME Africa
Lock & Stern
ClearOn
WEG
Savantis
Sanquin
Hua Hai Pharma
Rumpke
GlueData
Sanlam
Wastepro
FINN
Southco
OSIsoft
Sports Basement
SALT Analytics
AME Africa
Lock & Stern
ClearOn
WEG
Savantis
Sanquin
Hua Hai Pharma
Rumpke

AI that sits inside SAP governance, not beside it

Ask why an invoice failed to post, trace an IDoc through the chain, follow an integration message end-to-end, answer a business question from live SAP data, or modernise a legacy Z object, all through one audited platform. People receive clear, human-readable answers covering exactly what their own SAP user is authorised for, and nothing beyond it. Governance is enforced in code, not in prompts.

One platform, three perspectives

Built for the whole SAP team, not just developers

Operations, support & functional teams

Diagnose live issues in minutes: short dumps with source extracts and call stacks, gateway errors, failed IDocs, stuck batch jobs, system messages and integration message logs, all explained and correlated in plain language. No SAPGUI archaeology, no waiting on a developer.

Business users

Safe, self-service answers from live SAP data: did an invoice post, where is a purchase order, what are this year’s totals by account. Aggregations run inside SAP, and a role-based policy engine keeps these users strictly read-only, so self-service never becomes uncontrolled access.

Developers & architects

Understand, validate, change and modernise the custom estate: from explaining undocumented Z code and tracing dependencies, to governed ABAP changes, to scaffolding a classic Z-report into a modern RAP application with a live OData service and a generated Fiori app.

86
governed tools

One audited tool surface for diagnostics, live data, integration and engineering, available from the platform's own chat UI and, via the open Model Context Protocol, from AI tools your team already uses. Identical governance and identical audit entries on every path.

Governed by design

Governance the AI cannot talk its way around

Your authorisations decide, not the AI

Every call is scoped to the individual user’s own SAP authorisations, and the controls are enforced in code, not in prompts. The AI never decides what a user may see or do.

Human sign-off where it matters

Every proposed change is validated with syntax and ABAP Test Cockpit checks before anything is written. Releasing a transport towards test and production, or deleting an object, remains an explicit human action the AI cannot invoke.

An audit trail a reviewer can read

Every interaction, read or write, lands in a complete, append-only audit record: the real user’s identity, the parameters, the SAP response, and the decision of every governance gate.

Your landscape, your AI provider

Customer-hosted on SAP BTP Cloud Foundry, in your own subaccount. SAP data never transits ETZ infrastructure. You bring your own AI provider, so model choice and data residency stay in your hands.

FAQ Questions

Questions about the ETZ AI Platform?

If your question isn't covered here, reach out and our team will get back to you.

Start a Conversation
What is the ETZ AI Platform?

A governed AI runtime for your SAP landscape. People talk to their SAP system in everyday language and receive clear, human-readable answers, covering exactly the information and capabilities their own SAP user is authorised for, and nothing beyond it. It serves the whole SAP team: operations and support, functional consultants, business users, and developers.

How is it different from SAP Joule?

The two are complementary. Joule assists business users inside SAP applications; the ETZ AI Platform is a governed AI runtime for the teams that run, support, build and modernise the SAP landscape itself.

Where does it run, and does our data leave our SAP system?

The platform is customer-hosted on SAP BTP Cloud Foundry. SAP data never transits ETZ infrastructure. The AI provider is your own account (Anthropic, OpenAI, or Azure OpenAI), so model choice and data residency remain yours. Deployment on Kubernetes or Docker is available for demonstrations and proofs of concept, and air-gapped deployment can be scoped as a bespoke arrangement with ETZ.

What can it do today?

Diagnose incidents across the SAP stack, answer questions from live SAP data with in-system aggregation, operate SAP Cloud Integration end-to-end, explain and validate custom ABAP, execute governed changes, and scaffold classic Z objects into the full RAP stack with a live OData service and a generated Fiori Elements app.

Which SAP releases does it work with?

Live-verified against SAP S/4HANA on-premise and private cloud, SAP BTP Cloud Foundry, and SAP Integration Suite (Cloud Integration). The platform talks to SAP through standard ADT, OData and RFC interfaces. Ask us about your specific landscape.

Can the AI make mistakes?

Yes, and the platform is built on that assumption. AI-generated answers and code proposals must be reviewed by a qualified human before being relied on. That is why every change is validated against SAP’s own checks before it can be written, why writes only ever reach development systems, and why promotion to test and production remains an explicit human decision.

You can find us here

We have a strong global presence, marking our commitment to delivering tech excellence in key markets worldwide.

Colorado
14133 Downing Street Brighton,
Colorado 80602
Contact us
Cape Town
Regus Business Center, 1st Floor,
Willowbridge, Cape Town
Contact us
Haarlem
Frame Offices B.V.,
Haarlem, Netherlands
Contact us

See the ETZ AI Platform live

Book a demo and watch governed AI work against a real SAP system: diagnostics, live data, governed change, and the audit trail behind it all.