Document Detail Page
What you can see and do on a single document — delivery state, retry timeline, and SAP business metadata.
The document detail page (/documents/{id}) is the per-document inspector. It shows the document's identity, where it came from, where it's been delivered, the retry/delivery timeline, and — when enrichers are configured — the SAP business metadata attached to it.
Identity & source
The top section shows the document's FileRelay id, original filename, MIME type, size, content repository, SAP object id / type (when present), archive date, and ingest timestamp.
Delivery
A timeline showing each destination the document was forwarded to, with status (pending, processing, processed, failed), attempt count, and the most recent error if any. Retry attempts collapse under a single destination — click to expand.
SAP Metadata
This section only appears if the document's repository has at least one enricher bound. It is always rendered when present — even if no enrichments have run yet — so the absence of metadata is itself a visible state.
The section renders one card per bound enricher, each with:
- Header — a chevron to collapse/expand the card, a colored status dot (green = fetched, red = failed, gray = not yet run), the enricher name, and the BAPI module beneath it.
- Body — depends on status:
- Fetched — the response rendered as a recursive key:value JSON tree (with a Raw toggle for the underlying JSON).
- Failed — red error block with the message and timestamp.
- Pending — spinner + "Enriching…" while the job is in flight.
- Not yet run — italic "Not yet run on this document." text.
Per-card actions
- Fetch — re-runs the enricher against SAP without persisting. The result lands in a preview panel below.
- If the preview matches the stored row → "Latest fetch matches what's saved" — no action needed.
- If it differs → an Override button writes the new result, overwriting the stored row.
- Dismiss clears the preview without saving.
- Raw / Fields — toggles between the JSON tree view and a raw JSON
<pre>block.
Deleted enrichers
If an enricher was deleted from the library after it ran on this document, the stored row survives. You'll see a card with:
- The function name with a strike-through and a Deleted badge.
- The fetched fields still rendered (read-only).
- No Fetch button — there's no function to call.
This is intentional — historical metadata you've already captured shouldn't disappear just because the producing function was retired.
No enrichers configured
If the repository has no enricher bound at all, the section shows a single empty-state message with a link to /data-enrichment where you can bind one.
Export
The Export JSON button at the top includes successful enrichments under a metadata key, keyed by enricher name:
{
"doc_id": "01KT...",
"filename": "invoice_4500001234.pdf",
"metadata": {
"Invoice header lookup": { "DOC_HEADER": { "VENDOR": "ACME", "AMOUNT": "12345" } },
"Material line items": { "ITEMS": [ { "MATERIAL": "M-100" } ] }
}
}
Pending/failed enrichments are omitted from the export.
See also
- Data Enrichment Overview — what an enricher is and the ingest-time flow
- Data Enrichment Page — bind functions to repositories
- RFC Console — build and save BAPI calls