{"ref":"capability:document-extraction","page":"/capabilities/document-extraction","json":"/capabilities/document-extraction.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"document-extraction","name":"Document extraction","domain":"ai-and-agents","ecosystems":["btp","cap","ui5"],"universal":true,"description":"Getting structured data out of a document somebody sent you — an invoice, a purchase order, a scanned form — instead of having a person key it in. The mirror image of document output, and a different problem from reading a service: the input is a file, the shape is unknown until something reads it, and the answer arrives with a confidence rather than a guarantee.","short":"Getting structured data out of incoming documents","core_coverage":{"state":"core-only","assessed_at":"2026-09-09","what_core_does":"Document AI extracts header fields and line items from invoices, payment advices and purchase orders, and from custom document types you define, as structured data over a REST API.","sources":[{"url":"https://github.com/SAP-samples/btp-service-metadata/blob/main/v1/developer/sap-document-information-extraction.json","title":"SAP Document AI — SAP btp-service-metadata v1","checked":"2026-09-09"}]},"coverage_by_ecosystem":{"cap":{"state":"core-only","assessed_at":"2026-09-07","where_it_stops":"SAP ships the service — Document Information Extraction, latterly Document AI — and [SAP Document AI](artifact:btp-document-ai) serves CAP, but the CAP runtime has no aspect or control that knows what a document is, so an application uploads a file to a destination, polls a job and maps the result itself.","note":"The presence is the BTP service that serves CAP. [SAP-samples/btp-cap-dox-invoice-validation](artifact:sap-samples-btp-cap-dox-invoice-validation) is SAP's sample of a CAP application doing that sequence."},"ui5":{"state":"unmapped","assessed_at":"2026-09-14","where_it_stops":"SAPUI5's own upload controls — UploadCollection, and its successor sap.m.plugins.UploadSetwithTable — move a file to the backend and list it as an attachment; neither reads what is inside one. Reaching [SAP Document AI](artifact:btp-document-ai) from a UI5 app is a manual sequence built on top of that: upload, poll the job, map the returned fields onto the screen.","sources":[{"url":"https://ui5.sap.com/docs/topics/124ee13b03664b14b455630fb8171996.html","title":"Upload Collection (deprecated) — SAPUI5 Documentation","checked":"2026-09-14","quote":"UploadCollection is a list control for attachment management that provides the ability to upload, edit or delete attachments."}],"note":"Unmapped rather than core-only: [SAP Document AI](artifact:btp-document-ai) has ecosystem btp and lists cap, not ui5, in serves_ecosystems. [Integrate Document Information Extraction into UI5 application](content:integrate-document-information-extraction-into-ui5-application), a 2022 post, documents the upload-poll-map sequence as something the app author wrote, not a control or plugin."}},"coverage_by_flavor":{"web-components":{"state":"unmapped","assessed_at":"2026-09-14","where_it_stops":"Web Components' own upload control, [ui5-file-uploader](https://ui5.github.io/webcomponents/components/FileUploader/), opens a file picker and exposes the selection through its read-only files property; it moves a file into the page and reads nothing inside it, the same boundary SAPUI5's UploadCollection draws for the door as a whole. Reaching [SAP Document AI](artifact:btp-document-ai) from a Web Components app is the same manual sequence as elsewhere on the door: upload, poll the job, map the returned fields onto the screen.","sources":[{"url":"https://ui5.github.io/webcomponents/components/FileUploader/","title":"FileUploader | UI5 Web Components","checked":"2026-09-14","quote":"The ui5-file-uploader opens a file explorer dialog and enables users to upload files."}],"note":"Unmapped rather than not-applicable: the concern is not excluded by the layer's architecture the way routing or OData binding are, it is simply unbuilt here too. [SAP Document AI](artifact:btp-document-ai) has ecosystem btp, serves cap and carries no flavors, so it states no web-components."}},"history":[{"date":"2026-09-14","field":"ecosystems","from":"cap, ui5, btp","to":"btp, cap, ui5","reason":"Its only providers are BTP services that serve CAP and UI5, so BTP is the door whose own answer this is (docs/DOORS.md D9.3). The BTP reading becomes the core reading; the CAP assessment moves to coverage_by_ecosystem.cap unchanged."},{"date":"2026-09-14","field":"coverage_by_ecosystem.ui5","from":null,"to":"unmapped","reason":"The ui5 map was borrowing core_coverage, now the BTP reading for [SAP Document AI](artifact:btp-document-ai) after today's ecosystems reorder. Grep of data/artifacts for capability:document-extraction finds only that one artifact, whose own ecosystem is btp and whose serves_ecosystems names cap, not ui5 — this door has no own or serving provider. SAPUI5's own upload controls move and list a file without reading it, so the ui5 door's own state is unmapped rather than the inherited BTP reading."},{"date":"2026-09-14","field":"coverage_by_flavor.web-components","from":null,"to":"unmapped","reason":"Grep of data/artifacts for capability:document-extraction finds only [SAP Document AI](artifact:btp-document-ai), ecosystem btp, serving cap and carrying no flavors — no UI5 provider, own or serving, states web-components, so core-only and not-applicable are both closed. Checked ui5.github.io/webcomponents: the ui5-file-uploader control opens a file picker and exposes selected files through a read-only property, moving a file the same way SAPUI5's UploadCollection does without reading it, so the flavor's own position is the same unmapped reading as the door's rather than not-applicable."},{"date":"2026-10-26","field":"coverage_by_ecosystem.cap.state, coverage_by_ecosystem.cap.where_it_stops, coverage_by_ecosystem.cap.note","from":"unmapped; \"nothing in the CAP or UI5 core reaches it. There is no plugin on capire's list ...\"; \"Assessed by searching capire ... the graph holds no artifact answering it either\"","to":"core-only; the service serves CAP, the runtime has no document-aware aspect or control; the note names the SAP sample","reason":"Reassessed against the graph (check:capabilities): SAP Document AI is sap-official and lists cap in serves_ecosystems, so the core is present on this door; the old note's premise that the graph holds no artifact no longer holds. The sample is not counted as a presence."},{"date":"2026-10-26","field":"coverage_by_ecosystem.ui5.note, coverage_by_flavor.web-components.note","from":"\"the only provider found ... so no UI5 provider exists\"; \"The only provider found ...\"","to":"States SAP Document AI's ecosystem and serves_ecosystems without counting providers","reason":"Reassessed against the graph (check:capabilities): removed the provider-count and absence claims (docs/WRITING.md §3); the states are unchanged."}],"drafted_with_ai":true},"sap_delivery":{"door":"btp","all":{"built_in":[],"documented_pattern":[],"announced":[],"packages":[{"ref":"artifact:btp-document-ai","name":"SAP Document AI","json":"/artifacts/btp-document-ai.json"}]},"by_flavor":{}},"edges":{"use_cases":[],"shared_tasks":[],"related_tasks":[],"options":[{"ref":"artifact:btp-document-ai","name":"SAP Document AI","json":"/artifacts/btp-document-ai.json","ecosystem":"btp","origin_ring":"sap-official"}],"samples":[{"ref":"artifact:sap-samples-btp-cap-dox-invoice-validation","name":"SAP-samples/btp-cap-dox-invoice-validation","json":"/artifacts/sap-samples-btp-cap-dox-invoice-validation.json"}],"explained_by":[{"ref":"content:devtoberfest-2026-n8n-for-agentic-integrations","name":"How to Use n8n for Agentic Integrations and Cool Insights","json":"/content/devtoberfest-2026-n8n-for-agentic-integrations.json"},{"ref":"content:why-our-first-document-ai-exercise-was-a-r-sum-not-an-invoice","name":"Why Our First Document AI Exercise Was a Résumé, Not an Invoice","json":"/content/why-our-first-document-ai-exercise-was-a-r-sum-not-an-invoice.json"},{"ref":"content:what-a-second-document-ai-workshop-taught-me-about-governance","name":"What a Second Document AI Workshop Taught Me About Governance","json":"/content/what-a-second-document-ai-workshop-taught-me-about-governance.json"},{"ref":"content:connecting-sap-integration-suite-with-sap-document-ai-and-sap-business-ai","name":"Connecting SAP Integration Suite with SAP Document AI and SAP Business AI","json":"/content/connecting-sap-integration-suite-with-sap-document-ai-and-sap-business-ai.json"},{"ref":"content:ac-sap-document-ai","name":"SAP Document AI","json":"/content/ac-sap-document-ai.json"},{"ref":"content:integrate-cap-as-outbound-channel-for-sap-document-ai","name":"Integrate CAP application as outbound channel for SAP Document AI","json":"/content/integrate-cap-as-outbound-channel-for-sap-document-ai.json"},{"ref":"content:integrating-sap-document-information-extraction-with-cap","name":"Integrating SAP Document Information Extraction (Document AI) with SAP CAP – Step by Step","json":"/content/integrating-sap-document-information-extraction-with-cap.json"},{"ref":"content:cloud-integration-with-document-ai","name":"Cloud Integration with Document AI","json":"/content/cloud-integration-with-document-ai.json"},{"ref":"content:sap-ai-services-dox-gen-ai-with-sap-cap-plugin-part-3","name":"SAP AI Services - DOX - Gen AI with SAP CAP Plugin - Part 3","json":"/content/sap-ai-services-dox-gen-ai-with-sap-cap-plugin-part-3.json"},{"ref":"content:integrate-document-information-extraction-into-ui5-application","name":"Integrate Document Information Extraction into UI5 application","json":"/content/integrate-document-information-extraction-into-ui5-application.json"},{"ref":"content:teched-2026-ra106","name":"How SAP Document AI brings agentic intelligence to business documents","json":"/content/teched-2026-ra106.json"},{"ref":"content:teched-2026-ra164","name":"Hands on SAP Document AI: Next-generation intelligent document processing","json":"/content/teched-2026-ra164.json"}],"normative_context":[]}}