How it works
The Boidra Interface Assistant is a native Joule capability, built with Joule's design time artifacts (YAML): scenarios that Joule matches to your question, and dialog functions that call SAP and draw the answer. Nothing runs outside SAP Joule and your SAP system.
Joule user ──> SAP Joule ──> scenario ──> dialog function
│ api-request
v
BTP destination AIF_SRV_JOULE
(principal propagation)
│ Cloud Connector
v
S/4HANA: AIF OData V4 service AIF_SRV- Joule picks a scenario from your words, for example AIF message list, and fills its slots: period, status, interface.
- The dialog function turns the slots into an OData query, for example the errors of today, newest first, 30 per page, with the total count.
- The destination sends it to SAP as you, so AIF's authorizations apply.
- Joule draws the answer as a list, a card or a chart, with buttons for the next step.
- The capability context keeps the last list and the last message, so "show #2" and "restart it" work in the next question.
What it reads and writes in AIF
| Data | AIF OData entity set or operation |
|---|---|
| Interfaces and their business keys | IfKeySet, KeyFieldsSet |
| Counts per interface and status | InterfaceStatistics(p_datetime_from, p_datetime_to) |
| The message index: status, process date, last log text | IndexTableGenericSet |
| Log entries | MessageLogSet |
| Business key values | KeyFieldValueSet |
| Payload | PayloadFieldvalueSet |
| Restart one message | RestartMessage |
| Cancel one message, with a reason | CancelMessage |
Reads use $filter, $orderby, $top, $skip and $count. Every write goes through a Joule confirmation first and sends a correlation ID, which you find again in the AIF log.
Restart and cancel are in preview on S/4HANA
The restart and cancel operations follow Boidra's AIF service contract; SAP's own restart and cancel API is still being confirmed per S/4HANA release. Test them on a test message in a non-production system before you let users restart or cancel in production. Reads are not affected.
Security
- No technical user, no copy of data. Every request runs as the Joule user through principal propagation; nothing is stored outside SAP, apart from the GUIDs of the last list in the Joule conversation.
- Your AIF authorizations decide. Interfaces, messages, restart and cancel follow AIF's authorization objects and recipient assignments.
- Every change is confirmed. Restart and cancel show what will happen and wait for an explicit Yes. A cancel needs a reason, which is written to the AIF log.
Limits
| Limit | Why |
|---|---|
| 30 messages per page | Joule's list limit; ask for the next page |
| 200 payload fields | Keeps the answer readable; the full payload is in the AIF Fiori app |
| One restart or cancel at a time | Each change has its own confirmation |
| No payload editing, alerts, notes, hints or recipient assignment | Not offered by the AIF OData service |
| No root causes or fix proposals | That is the Boidra Interface Resolution Agent |
