The 60-second triage
Before opening a single monitor, answer these five. They route you faster than any error message. The third saves more time than the rest combined — “I can't see the invoices” is two completely different investigations depending on whether the menu is missing or the rows are.
The fifth is the one people skip. Of 13,050 indexed articles, 1,288 are confirmed SAP defects — 1,098 Program Errors and 190 Known Errors. Searching that set before you change configuration is free, and it regularly ends the investigation on the spot.
| Question | If the answer is… | Then it's probably… |
|---|---|---|
| Did this ever work? | Never | Configuration or enablement gap — not a fault |
| Did this ever work? | Worked until a date | Something changed: a release, a deployment, a certificate, a config package |
| Who's affected? | One user | Permissions, group membership, or that user's master data |
| Who's affected? | One supplier or purchasing unit | Master data or scoping |
| Who's affected? | Everyone | Integration, certificate, or platform-level config |
| Function visible, no data? | Yes | Visibility — purchasing unit scope, catalog visibility, filters, field config |
| Function visible, no data? | No, the function is missing | Permission — group membership or capability enablement |
| Failed, or absent? | Failed, with an error | Right layer. Read the error |
| Failed, or absent? | Absent | Wrong layer. Go one hop upstream |
| Is it a known defect? | Yes | Stop configuring. Find the Note |
Follow the document, not the error message
The first monitor where the document is absent — rather than failed — is the hop where it died.
| # | Hop | Where you look |
|---|---|---|
| 1 | Business document creates an output in the ERP | Output status on the document itself |
| 2 | ERP serializes it (proxy or IDoc) | SRT_MONI (proxy), WE02 / WE05 (IDoc), SLG1 |
| 3 | ERP reaches the internet | SM59 connection test, SOAMANAGER, STRUST |
| 4 | On-prem crosses into the cloud | Cloud Connector UI and its logs |
| 5 | Gateway validates, maps, routes | Transaction Tracker, Error Message Monitor, Document Validator |
| 6 | Gateway hands off to the Business Network | Transaction Tracker status (FAILED / RETRY) |
| 7 | Network delivers to the supplier | Network transaction log, supplier routing config |
| 8 | Inbound: gateway posts back into the ERP | Forward Error Handling, SAP AIF, SLG1 |
| 9 | Ariba application processes it | Integration Manager, SAP Cloud ALM |
A failed document is good news: it reached that layer, that layer understood it, and it will tell you what it disliked. An absent document never got there. Take HTTP 401 — it appears on at least four hops, which is why asking “why 401?” gets you nowhere and “which side issued the 401?” gets you there in ten seconds.
Two buckets — catalog/gateway and platform/backend — hold ~39% of the corpus: 5,127 of 13,050 articles. BNS-ARI-CI-AN, covering the gateway↔Business Network hop, carries 481 articles, 285 of them critical — around 59% confirmed bugs or corrections. When errors cluster on that path, it is an industry pattern, not local incompetence.
The silent failures
These are the ones that hurt, because nothing alerts. Every monitoring setup alerts on FAILED. None of these say FAILED.
| What you see | What it actually means | How to catch it |
|---|---|---|
| SRT_MONI message in processing | Queued behind a blocked bgRFC scheduler. Not an error, so no error alert fires | Alert on age — anything in processing older than N minutes |
| CPI message shows Completed | An Exception Subprocess ending in a Message End Event overwrites the real error | Audit every iFlow whose exception path ends in a Message End Event |
| Master data export stuck in scheduled | Same class — a status, not an error | Age-based check on the export job |
| Invoice sitting in Reconciling | Waiting on a human who may not know they own it | Age-based exception dashboard; check handler assignment |
| Outbound fine, inbound broken | The two directions fail independently | Test both directions explicitly, every time |
| Exceptions that don't fire | Nobody complains; audit finds it later | Report on high-value invoices that cleared with zero exceptions |
A client boasting a 2% invoice exception rate across a diverse supplier base usually isn't efficient — they're not checking. Healthy controls generate work. Verify the controls are armed before congratulating anyone.
The landmines
- There is no rollback
- Only the most recent deployment can be reverted — there is no full version management. Beyond N−1 it is forward-fix only. Export your configuration before every import.
- Configuration validates the type, not the value
- ICM validates the data type but not the value range. A tolerance of 200 saves and deploys cleanly. “It deployed successfully” is not evidence it is correct.
- Deleting a cross-reference in test breaks production
- Cross-reference parameters are shared instance-wide. Test is not a sandbox here. Make cross-reference deletion a two-person change.
- Cross-reference values don't save unless you Confirm first
- Click Next through every step, then Confirm, then Save. Save alone silently discards the work.
- Three certificate clocks, no single owner
- Cloud Connector subaccount cert, the SSL chain in STRUST, and the gateway client cert expire independently. Expiry notifications are documented as unreliable.
Buying and approvals
In the functional modules, assume it's your configuration, master data or process. In the integration layer, take “it might be SAP” seriously from the start.
| Symptom | What's really happening | Check |
|---|---|---|
| “Approved days ago, supplier never got a PO” | Approved ≠ Ordered ≠ transmitted — three separate failure points | Integration Monitor, then Document Status History |
| “In approval with nobody to approve it” | Status Pending – No Approver Selected. The document is dead, not waiting | Approval Process Test — simulate the same amount, commodity and purchasing unit |
| Things auto-approving that shouldn't | Only one approval process can be Active per document type | Which version shows Active, then the Audit Log for a recent deployment |
| Wrong approver, or the same person twice | Stale approver lookup table, or overlapping rules | Compare the live lookup CSV against the current org chart |
| “The approver never got the email” | No notification and no escalation are different faults | Notification Log — was it sent, or never generated? |
| Approve button missing in Guided Buying | GB renders a subset of approvables, by design | Open the same document in classic Buying. Not permissions |
| Catalog loaded, users can't find items | A catalog must clear three gates — validated, activated, visible to that group | Catalog Manager: imported vs activated, then visibility groups |
What juniors get wrong. They re-submit or clone a stuck requisition, creating a second version and a second problem. They treat Pending – No Approver Selected as a queue that will drain. And they burn days chasing group membership for a Guided Buying gap that is documented product scope.
Two mechanics worth memorising. Rules are evaluated at submission, not creation — fixing the org chart changes nothing until the document is resubmitted. And rules fire in the order they appear in the editor; reordering silently changes outcomes, with no warning and no diff. If a catalog looks correct but search won't return it, reindexing is requested from SAP Support.
Invoicing and payment
Of 727 indexed invoicing articles, only 14 (1.9%) are confirmed SAP defects. Everything else is configuration, master data, integration or process. When AP says “the system is broken,” the odds are overwhelming that it isn't.
| Symptom | What's really happening | Check |
|---|---|---|
| Invoice stuck in Reconciling for weeks | An exception waiting on a human. Unassigned exceptions belong to everyone | The IR, not the invoice: Exceptions page, History tab |
| “That invoice number doesn't exist” | The Invoice Reconciliation is a separate document with its own ID | Search the IR, not the invoice number |
| Exception fired but we're inside tolerance | Each exception type has its own thresholds and CSV overrides | The exception type definition, not just the global parameter |
| Exceptions never fire | Silent leakage — several documented auto-clear behaviours | Report reconciled invoices with zero exceptions |
| Supplier insists they invoiced; AP sees nothing | Three places it can die, only the third visible to AP | Network status first, then gateway, then Ariba |
| IR reconciled, supplier still unpaid | Three more documents and state machines live after Reconciled | Payment Request → Payment Transaction status |
| “Self-billing doesn't generate invoices” | ERS needs four independent prerequisites, all true at once | Supplier flag → location flag → PO flag → approved receipt |
The tolerance insight worth stealing. Both documented baseline configurations set quantity tolerance to 0% while allowing 1–2% on price. A price variance is a commercial negotiation; a quantity variance is a goods-received discrepancy and must never auto-clear. The high-volume recommendation goes further — 1% price tolerance with a $50 cap, because a percentage without a ceiling isn't a control.
The trap. When one exception type gets noisy, the instinct is to loosen the global tolerance — which silently weakens every exception reading from that dimension. And before accepting an impressive compliance number, ask what share of invoice volume arrives with no PO at all.
Suppliers, sourcing and contracts
Nearly every hard supplier problem is an identity problem. Five keys describe one supplier, each owned by a different system. SM Vendor ID is the anchor — ANID binds it to the Network account, ERP Vendor ID binds it to the ERP business partner, and duplicates happen when those bindings drift apart.
| Key | What it is | Owned by |
|---|---|---|
| ANID | Business Network ID, format AN + 10 digits | SAP Business Network |
| ERP Vendor ID | The ERP vendor number | ERP / S/4HANA |
| SM Vendor ID | Ariba's internal supplier key — renders as VDR… | Ariba Supplier Management |
| Tax ID | The de-facto deduplication key at the ERP boundary | ERP |
| DUNS | D&B number | External |
| Symptom | What's really happening | Check |
|---|---|---|
| “We approved them but they never got an invite” | Auto-invitation is a template rule, not a default | Supplier 360° profile → registration status |
| Duplicates the duplicate-check missed | The check is per-question and fuzzy; legacy suppliers sit outside its scope | The flagged question's duplicate-check property |
| “ERP Vendor ID is wrong or missing” | That value is written back by the ERP, not typed in Ariba | Supplier 360° profile → ERP Data tab |
| “They have an account but show as not registered” | ANID mismatch — profile linked to a different ANID | ANID on the 360° profile vs the supplier's own account |
| ERP sync stuck at In Progress | Ariba is waiting for an inbound confirmation that never came | The Integration Status field on the supplier record |
| Invited supplier can't see the event | Inactive Network account, wrong ANID, or event closed | Event participant list; confirm ANID and open/close dates |
| Contract still shows Expired after amendment | An Administrative Amendment changes the date without re-evaluating status | Contract Workspace status |
If the ERP Vendor ID field shows a VDR… value, the ERP never confirmed — typing over it desynchronises the pair permanently. ANID links to the supplier organisation and to supplier users separately. Qualification is held per commodity and region, not globally. And mass invite is documented completing “with no errors” while nobody is actually invited: always reconcile the invited count against your source list.
Your diagnostic toolkit
| Tool | Where | What it tells you |
|---|---|---|
| Import Task Log | Admin Area → Data Import → Task History | Import errors, with the CSV line number |
| Integration Monitor | Admin Area → Integration Manager | ERP integration errors |
| Approval Process Test | Approval Process Editor → Test | Simulate an approval before activating it |
| Notification Log | Admin Area → Notifications | Settles “the approver never got the email” |
| Audit Log | ICM → Audit Information | Who changed what, when, and the previous value |
| “Show differences” | ICM filter | Test vs Production config diff — the highest-value five minutes available |
| Document Status History | On every document | Who touched it and when |
| Connectivity Tool | Managed Gateway UI | Tests the gateway→ERP leg specifically |
If you take one row, take “Show differences.” Most “works in test, fails in production” incidents are answered by a config diff in under five minutes, and almost nobody runs it first.
The import error dictionary
| Error | Fix |
|---|---|
| Required field missing | Add the mandatory field |
| Duplicate unique name | Use Modify, not Add |
| Invalid reference | Import the referenced data first — dependency order matters |
| Invalid date format | ISO 8601: YYYY-MM-DD |
| Encoding error | Save as UTF-8 |
| Task already running | Wait, or cancel the prior task |
| Import succeeded, nothing changed | Wrong operation — Add where you meant Modify |
One subtle trap: an address created manually in the UI gets an internal ID that all future imports must reference. Mismatch there is a classic silent failure.
Escalating to SAP without embarrassing yourself
Search the confirmed-defect set first — especially with stack traces in logs, a regression right after an upgrade, or intermittent behaviour with no pattern. Then validate release and version: Ariba releases use a YYMM format, so 2605 is May 2026.
| Prefix | Owns |
|---|---|
| BNS-ARI-* | The Ariba cloud application (PUR, INV, GB, SS, SLP, CM…) |
| BNS-ARI-CI-* | Cloud Integration Gateway |
| SBN-* | Business Network — supplier-facing, cXML, account admin |
| MM-PUR-*, MM-FIO-PUR | The SAP ERP / S/4 backend |
| S2P-*, CA-GTF-INT-ARI | Cross-component integration |
Pick the component by where the symptom is visible
- Fails inside the Ariba UI → BNS-ARI-<area>.
- Left Ariba and never arrived → BNS-ARI-CI-* or SBN-AN-TX.
- ABAP dump or IDoc → MM-PUR-*.
- Supplier can't act on their side → SBN-AN-*.
- Open the case on the side that can see the failing artefact.
Bring this to the case
- Realm / site ID, affected solution, release version.
- Exact URL where it fails and the affected user ID.
- The full error message text, not a paraphrase.
- Steps to reproduce, screenshots, relevant logs.
- Date and time of first occurrence; business impact in users and processes.
- Any SAP Notes you already ruled out — it short-circuits the first-response loop.
Glossary
- ICM
- Intelligent Configuration Manager — where site parameters live, and where config is deployed test→production
- IR
- Invoice Reconciliation — a separate document from the invoice, with its own ID. The most common wrong-object search
- ANID
- A company's Business Network ID, format AN + 10 digits
- SM Vendor ID
- Ariba's internal supplier key, renders as VDR…. Seeing it where you expect an ERP vendor number means the ERP never confirmed
- Purchasing Unit
- The org unit scoping a user's documents, catalogs and contracts
- ERS
- Evaluated Receipt Settlement — self-billing generated from receipts. Needs four prerequisites true at once
- Multi-ERP
- Multiple ERPs through a parent-child site architecture; PunchOut config takes the child site name as the Realm value
- CIF
- Catalog Interchange Format — SAP Ariba's catalog exchange format
- Parameter grammar
- Application.<Section>.<Setting> — knowing the shape makes parameters searchable
Distilled from SAP Help Portal documentation (release 2605) and an index of 13,050 SAP KBAs and Notes spanning 2013–2026. Statistics describe a corpus, not your landscape, and releases move — verify against your own tenant before acting.