Lesson 2 of 5
Observability
10 min
Listen to this lesson
A test can only verify what it can see. So can a support engineer at 2 a.m. Observability is the property that lets both answer "what happened to this order?" without guessing. In SAP landscapes, observability comes from application logs, business keys carried across systems, status information on documents and messages, and operations monitoring that ties it together.
Logs that answer business questions
SAP's application log is the standard reuse facility for recording what a process did, with messages that have a type, class, number and variables. SAP's ABAP environment documentation describes the Application Logs reuse library as a clearly structured overview of errors that occurred at runtime, with filtering by severity and searching by message text. Custom developments should write to it, under their own log object, rather than inventing private log tables. The architecture decision is what to log: every significant business step, with the business key (order, delivery, PO number, portal reference) and enough context to reconstruct the outcome.
| Weak log entry | Strong log entry |
|---|---|
| "Error in processing" | Message class and number for "credit check failed", with customer and order number as variables |
| Free text in a custom table | Application log under a defined log object and subobject, searchable by business key |
| Logged only on failure | Key steps logged on success too, so a test can confirm the path taken |
| Technical IDs only | Business key plus technical message ID, so users and support can both search |
What makes an SAP log entry useful for testing and support.
Correlation across systems
A Contoso customer order passes through the portal, the integration platform and S/4HANA. Observability across that path needs a correlation key that every hop records: the portal reference travels in the message, is stored on the sales order and appears in logs. SAP Cloud ALM's Integration and Exception Monitoring can then search messages by business context, such as an order number, if the component exposes that context with the message. Designing those attributes in is an architecture task.
- PortalCreates order request with portal reference P-2025-0042
- IntegrationMessage header carries P-2025-0042; flow monitored end to end
- S/4HANASales order stores P-2025-0042 in a reference field; application log records it
- ConfirmationOrder number returns to the portal, linked to P-2025-0042
- ObserveTests, support and monitoring all search by P-2025-0042
Operations monitoring as a test asset
SAP Cloud ALM for Operations offers business process monitoring, integration and exception monitoring, job and automation monitoring, health monitoring, real user monitoring and synthetic user monitoring, among others. Architects usually think of these as production tools, but they serve quality earlier too: setting them up in CMQ during integration and cutover rehearsals tests the monitoring itself and gives testers a view of failures they would otherwise miss, such as a background job that silently did nothing.
Observability has a cost too. Logging every detail of every step slows processing, fills the database and buries the useful entries. Agree log levels per process (key business steps always, technical detail only when switched on for analysis), set retention so logs are deleted on schedule, and make sure personal data in log variables follows the same privacy rules as the business data itself.
What would you do?
During the second mock conversion, the nightly billing job in CMQ shows status "finished" but creates no invoices. Nobody notices until Maria's team checks the next morning. What is the best architectural improvement?
- Observability answers "what happened to this business object?" for tests and support alike.
- Log key steps to the application log with message IDs and business keys.
- Carry a correlation key through every hop; design business context into interfaces.
- Set up operations monitoring in test systems; check outcomes, not only completion.
Check your understanding · not graded
Lesson check
1. What should custom developments use instead of private log tables?
2. What is a correlation key?
3. Why set up operations monitoring in test systems before go-live?
4. A job finishes but does nothing. What should monitoring check?