Lesson 4 of 5
Reconciliation
9 min
Listen to this lesson
Monitoring shows the messages that failed. Reconciliation finds the messages that never existed, were filtered out, or arrived but did not post. It compares counts, and where it matters amounts, between what the sender meant to send and what the receiver processed, per interface and per period. It is the only reliable defense against silent losses.
Three numbers per interface
| Number | Where it comes from | Contoso example, one day |
|---|---|---|
| Expected | The business documents that should have produced a message | 212 POs for Lakeside with output due |
| Sent | The sender's interface layer and middleware | 212 IDocs created; 212 messages Completed in the flow |
| Received and processed | The receiver's report or acknowledgments | 211 order confirmations from Lakeside |
Expected versus sent catches the silent failure from lesson 1: output that never triggered. Sent versus processed catches losses in transit or rejections at the partner that nobody reported. In Contoso's example, one order is unconfirmed. It might be a late confirmation or a rejection; either way somebody now knows to look, today, rather than when the rotor shortage shows up in production planning.
Counts and control totals
For financial interfaces, counts are not enough. A payment file to the bank with the right number of payments and the wrong total is still wrong. Reconcile control totals as well: the sum of amounts, the number of items, sometimes a hash of key fields. The bank's acknowledgment of Contoso's daily payment run should confirm the same count and total that the payment run produced in CMP, in USD, per company code.
- Pick the period and the cut-off time, such as yesterday 00:00 to 23:59 in plant time.
- Count expected documents in S/4HANA, using a report or analytics query filtered to the interface's scope.
- Count sent messages by status in the interface monitor and in SAP Cloud ALM for the same period.
- Get the receiver's processed count and, for money, the total, from acknowledgments or a partner report.
- Explain every difference: timing at the cut-off, a known failure being reprocessed, or an unexplained gap.
- Record the result and open a ticket for every unexplained gap.
- Do expected and sent match?Yes → next question · No → find documents with no message: output not triggered, filtered or stuck before sending
- Do sent and processed match?Yes → next question · No → find messages with no receipt: failed in transit, rejected or still queued
- For money, do the totals match?Yes → reconciled; record it · No → stop and escalate to the finance process owner before the next run
- Is every difference explained?Yes → record with explanations · No → ticket for each unexplained gap
Making it routine
Reconciliation that depends on someone remembering to run three reports does not survive hypercare. Automate what you can: a scheduled analytics query for expected documents, monitor counts from SAP Cloud ALM, a partner report delivered daily. Agree tolerances with the process owner: zero for payments and orders, perhaps a small timing window for high-volume status updates. And reconcile volumes over time too: a sudden drop of 30% in a daily feed is a signal even if every message that was sent succeeded.
What would you do?
Contoso's payment run on Thursday produced 418 payments totaling USD 2,734,118.52. The bank's acknowledgment confirms 418 payments totaling USD 2,733,618.52. Every message in the interface is Completed. What should Dan's team do?
- Reconcile expected, sent and processed counts per interface and period.
- For money, reconcile control totals, not only counts.
- Explain every difference; open a ticket for every unexplained gap.
- Automate the inputs, agree tolerances, and watch volume trends.
Check your understanding · not graded
Lesson check
1. Which comparison catches output that never triggered?
2. Why are counts alone not enough for a bank payment interface?
3. What should happen with a difference that has no explanation?
4. A daily feed's volume drops 30% with no failed messages. What does that suggest?