Architecture & Data Flow
Four zones, one control plane: SAP system, BTP, AWS data handler, Bilendo — documented in the IMS.
The Four Zones
| Zone | What's there | Role |
|---|---|---|
| SAP S/4HANA Utilities | FI-CA, business partner, contract account, budget billing plans | Source. Read-only. |
| SAP BTP | API Management proxy per OData service, destination + Cloud Connector | The single door into the customer system. The Cloud Connector's tunnel ends in BTP; the facade makes it callable from the outside (OAuth 2.0 Client Credentials). |
| AWS · data handler per customer project | EventBridge schedule, Step Functions, Lambda (Collector, Transform, Deliver, Report), S3 raw data, DynamoDB watermark, Secrets Manager | Reads page by page, transforms according to the mapping from the IMS, delivers delta batches, reports every run. |
| Bilendo | Loader (API POST or SFTP), debtors, journal entries, dunning runs per dunning area | Target. Updates known items, sends dunning notices, and resolves open items. |
The Control Plane
The Bilendo IMS describes the data handler (target state, schedule, company codes, objects, secret names) and sees its runs; it does not operate it. A pipeline reads the target state and creates the stack. At runtime, the collector reads the field mapping from the IMS and reports every run back with counters (read, stored, rejected). In the IMS, secrets appear only as names in the customer's secret store.
A Run
Read the target state and watermark, and assign a run ID.
For each object, in a fixed order — debtors before items — read page by page with a delta filter; store raw data unchanged in S3.
Transform into the columns of the Bilendo header template according to the variant's mapping; apply clearing and budget billing rules; batches of at most 5,000 rows each.
Deliver debtor batches, then journal batches; each part carries an idempotency key.
Report the manifest to the IMS; advance the watermark to the run's start time only after confirmed delivery.
A failed run leaves the watermarks where they are. The next run delivers the same window again — Bilendo updates, and no duplicate is created.
Cadence
One to three times a day. The last run of the day takes place before the Bilendo dunning run, so that a payment posted in SAP in the morning doesn't trigger a dunning notice in the afternoon.