Lesson 2 of 5
Common side-by-side patterns
10 min
Listen to this lesson
Once a requirement is placed side-by-side, the next question is which pattern fits. Most side-by-side extensions fall into a handful of shapes. Naming the pattern early helps everyone: the architect knows which BTP services to entitle, the developer knows which framework to start from, and the test lead knows which kinds of test will be needed.
UI extensions
A UI extension gives a user group an app that SAP does not deliver. Contoso's fleet order status app is one: a CAP service on Cloud Foundry reads sales orders and deliveries from SAP S/4HANA through released OData APIs, stores its own data (fleet inquiries and notes) in SAP HANA Cloud, and shows an SAP Fiori elements UI in SAP Build Work Zone. The app owns its data model and its users; SAP S/4HANA stays the system of record for orders. Low-code teams can build simpler apps of the same shape in SAP Build Apps.
Process and workflow extensions
A process extension adds steps around an SAP process: an approval, a data collection form, a decision table, or automation of a repetitive task. SAP Build Process Automation combines workflows, forms, decisions and automations. A typical shape is: an event or API call starts a process instance, people act on tasks in their inbox, and the process writes the result back to SAP S/4HANA through an API. Note that approvals that are part of a standard SAP document, such as Contoso's purchase order approval over $25,000, often run in the SAP S/4HANA flexible workflow on-stack; side-by-side processes suit steps that SAP does not model.
Event-driven extensions
An event-driven extension reacts after something happens in SAP S/4HANA. SAP S/4HANA publishes business events in the CloudEvents format to an event broker, either the Event Mesh capability of SAP Integration Suite (formerly the standalone SAP Event Mesh service) or SAP Integration Suite, advanced event mesh. A subscriber on SAP BTP receives the event and acts. Many standard events are notification events: they carry little more than the key, such as the business partner number, and the subscriber calls an API to read the details. Because the publisher does not wait for subscribers, the pattern decouples timing and load, at the price of eventual consistency.
- Change in SAP S/4HANAMaria changes the requested delivery date on a fleet sales order in CMP
- Event raisedA sales order changed event is published in CloudEvents format through the configured channel
- BrokerThe event broker routes it to the queue the fleet app subscribes to
- SubscriberThe CAP app receives the event with the sales order key only
- Read detailsThe app calls the released Sales Order API for the current data
- ActThe app updates its inquiry record and notifies the fleet desk
Data extensions
A data extension brings SAP S/4HANA data together with other sources for analysis or planning without adding reporting load or custom tables to the core. SAP Datasphere, which SAP now delivers as part of SAP Business Data Cloud together with SAP Analytics Cloud, can federate or replicate data, model it in business terms and serve it to SAP Analytics Cloud; SAP Business Data Cloud also offers SAP-managed data products for SAP S/4HANA data, so check what already exists before building your own replication. Contoso's margin analysis, which joins billing data with warranty claims from a non-SAP warranty system, follows this pattern.
| Pattern | Main risk | What testing must add |
|---|---|---|
| UI extension | API changes or wrong stage pairing break the screens | Service tests with mocked APIs, contract checks, UI tests, E2E in test |
| Process and workflow | Wrong routing, missed deadlines, write-back failures | Path coverage of each decision branch and the write-back |
| Event-driven | Lost, duplicate or out-of-order events | Duplicate and replay tests, idempotent handling, monitoring checks |
| Data extension | Totals that do not reconcile with the source | Reconciliation of key figures against SAP S/4HANA reports |
Each pattern brings its own failure modes, and so its own tests.
What would you do?
Dan wants the fleet desk to be told whenever a fleet customer's sales order is changed in SAP S/4HANA, so they can call the customer. A developer proposes a job on SAP BTP that reads all sales orders every five minutes and compares them with a copy. What should the architect suggest?
- UI extensions add apps for user groups SAP does not serve; CAP and SAP Fiori elements or SAP Build Apps are typical.
- Process extensions add approvals, forms and automation with SAP Build Process Automation; standard document approvals often stay on-stack.
- Event-driven extensions react to SAP S/4HANA business events via the Event Mesh capability of SAP Integration Suite or advanced event mesh; many events carry only keys.
- Data extensions combine SAP and non-SAP data in SAP Datasphere and SAP Analytics Cloud.
- Each pattern has its own failure modes and therefore its own tests.
Check your understanding · not graded
Lesson check
1. What does a notification event from SAP S/4HANA usually contain?
2. Which SAP BTP service is the usual home for approvals, forms and automations around an SAP process?
3. Which risk is specific to the event-driven pattern?
4. Which pattern fits margin analysis that joins ERP billing data with a non-SAP warranty system?