“What if a business user could pull live ERP data without touching ABAP or an API key?”
Introduction
As SAP Business Data Cloud (BDC) becomes the strategic direction for governed data consumption. Absolutely. But what if you want to test something faster, with what you already have? What if you're curious? what if an AI agent like Joule needs live ERP data on demand that not a replicated dataset or remote table but the actual current state of stock, supply, and demand in the system to support a real-time decision?
What if you're curious?
This post documents an experiment exploring exactly that, using SAP Build Process Automation (SBPA) as a live data bridge between Joule and an S/4HANA Private Cloud instance.
Use Case: Supply Chain Risk Management
The scenario is a Joule-driven Supply Chain Risk Management flow when a Risk signal is raised (e.g a Storm is about to hit your Mfg Plant, a sudden raise of Raw material price …) causing a Supply Disruption, a Logistic delay, Joule is expected that does not just flag a Risk Event but explains the impact it could be which precisely linkage to Stock On Hand, Demands, Supply data of impacted Material or Planning folks always use the common term is MD04 data where contains Open Sales Order, Purchasing Schedule Lines, Available Stock, Reservation, … but in real-time. Then Joule surfaces contextualised insights to buyers either upstream or downstream so they can actually do something about it.
Process flow
High level of flow
Main Ingredient
1. A BTP Account that provisioned SBPA (of course)
2. A predefined Destination points to application / ERP system that need to pull data from
3. A cloud connector virtual host (required for S/4HANA OP, PCE )
A few key design decisions
1. Joule controls the interval: The final result from SBPA workflow setup is a Workflow API with structure inside. e.g
URL
URL: https://spa-api-gateway-xxx-xx-test.tuan.eu10.hana.ondemand.com/workflow/rest/v1/workflow-instances?environmentId=tuanPayload:
{“definitionId”: “eu10.xxx-r-abcxzyz8123.tuandemoreadmaterialcoverage.readMaterialStock”,
“context”: {
“plant”: “”,
“material”: “”
}
}
And here we go, Joule calls it anytime it needs data. Which means no background job for polling, no “we run this every 15 minutes to get most up-to-date data”.
2. Core execution on your hand: the basically core of the SBPA is helping create an Action, the execution layer inside is your choice, it could be a CAP Program that you invented, or an ABAP RAP program, or a custom API – you have option to upload the spec, or a BAPI that we Consultant get familiar, or as my experiment chose the most easiest is using Standard API published by SAP.
Whatever It is, the RFC user with SAP_ALL power will do the rest in the background.
3. Cloud Connector virtual host: Cloud Connector has to be in between, that's policy, no choice. The BTP Destination points to a virtual hostname mapped in Cloud Connector to actual S/4HANA PCE tenant. Standard, secure, no surprises.
4. No BDC: Of course.
Result
Data accuracy: excellent. The structured JSON response matched exactly what a planner would see in the system. SBPA execution logs showed clean completions. And the execution is under standard SAP API logic which is so much of safe.
The on-demand, event-triggered model worked as intended: Joule asks, SBPA fetches, data returns, Joule reasons. Clean loop.
Limitations
1. This is not a firehose: If you're planning to run this against thousand of materials simultaneously or trigger it ever few seconds, you might need to consult a development expert carefully about performance. This way of practice might fit with the case of contextual reads to support AI Agent making mid-reasoning answers against specific questions, not for bulk extraction or analytical aggregations at scale.
Applicable use cases
- Joule supports Business Users to make change on specific objects e.g let's reschedule of impacted Purchase Order by 5 days.
- Joule analyzes on Impacted Materials to list out Class A material, Critical Part.
Source link
