{"ref":"capability:service-integration","page":"/capabilities/service-integration","json":"/capabilities/service-integration.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"service-integration","name":"Service integration","domain":"integration-and-messaging","ecosystems":["cap"],"universal":true,"description":"Using a service that runs somewhere else as if it were one of your own: its API imported into the model, a proxy that turns a local query into the remote protocol, and a mock that stands in for it on a laptop. Distinct from [destinations](capability:destinations), which is how the address and the credentials are found, and from [replication](capability:replication), which is holding the data locally.","short":"Using a remote service as if it were one of your own","core_coverage":{"state":"core-and-community","assessed_at":"2026-09-27","relationship":"narrow-by-design","what_core_does":"Built in: `cds.connect.to` returns a remote proxy for any service whose API is in the model, imported with `cds import` from an EDMX, OpenAPI or AsyncAPI file or added as a package a provider exported with `cds export`; a query run against the proxy is translated into OData V4, OData V2 or HCQL, a consumption view's columns mapped back to the remote entity; and until a binding says otherwise the imported service is mocked in process with its own data. In Node.js the outbound call goes through the SAP Cloud SDK client when it is installed and through the native fetch client, beta, when it is not. In CAP Java the proxy is the [cds-feature-remote-odata](artifact:cap-java-cds-feature-remote-odata) package, configured with the service definition and a destination or binding. The Calesi plugins for CAP Java run inside a Spring Boot application that has no CDS model at all, exposing a CAP service as a Spring component.","where_it_stops":"At the single remote entity. An expand or a navigation between a local and a remote entity is integration logic the application writes, per the feature matrix in the Consuming Services guide, and transient access cannot filter on local and remote fields in one request: that is where replication begins. The channel itself, authentication, destination and user propagation, is the connectivity component's and is read under [destinations](capability:destinations).","sources":[{"url":"https://cap.cloud.sap/docs/guides/integration/calesi","title":"CAP-Level Service Integration — capire","checked":"2026-09-27","quote":"Remote CAP services can be consumed using the same high-level, uniform APIs as for local services – that is, as if they were local. cds.connect automatically constructs remote proxies, which translate all local requests into protocol-specific ones, sent to remote services."},{"url":"https://cap.cloud.sap/docs/guides/integration/calesi","title":"CAP-Level Service Integration — capire","checked":"2026-09-27","quote":"On the consumer side, like @capire/xtravels in our sample scenario, we import packaged APIs from CAP and non-CAP sources using npm add and cds import respectively."},{"url":"https://cap.cloud.sap/docs/guides/integration/calesi","title":"CAP-Level Service Integration — capire","checked":"2026-09-27","quote":"CAP mocks imported services automatically in-process with mock data in the same in-memory database as our own data."},{"url":"https://cap.cloud.sap/docs/guides/integration/calesi","title":"CAP-Level Service Integration — capire","checked":"2026-09-27","quote":"the generic handlers detect such situations, and automatically translate delegated queries into valid queries targeted to underlying remote entities"},{"url":"https://cap.cloud.sap/docs/guides/services/consuming-services","title":"Consuming Services — capire","checked":"2026-09-27","quote":"You need additional logic, if remote entities are in the game."},{"url":"https://cap.cloud.sap/docs/guides/services/consuming-services","title":"Consuming Services — capire","checked":"2026-09-27","quote":"This chapter shows only techniques for transient access."},{"url":"https://cap.cloud.sap/docs/node.js/remote-services","title":"Remote Services Concept — capire","checked":"2026-09-27","quote":"If the SAP Cloud SDK HTTP client (@sap-cloud-sdk/http-client) is installed, CAP uses it by default. The client provides full support for all SAP BTP Destination service features including on-premise connectivity."},{"url":"https://cap.cloud.sap/docs/node.js/remote-services","title":"Remote Services Concept — capire","checked":"2026-09-27","quote":"CAP provides a built-in remote client that uses the native Node.js fetch API, including support for resolving named destinations from the SAP BTP Destination service."},{"url":"https://cap.cloud.sap/docs/java/cqn-services/remote-services","title":"Remote Services (CAP Java) — capire","checked":"2026-09-27","quote":"To enable Remote Services for OData V2 or V4 APIs in an application, add the following Maven dependency to your project"},{"url":"https://cap.cloud.sap/docs/guides/security/remote-authentication","title":"Outbound Authentication — capire","checked":"2026-09-27","quote":"decouples the protocol level (exchanged content) from the connection level (established connection channel)"},{"url":"https://cap.cloud.sap/docs/java/cap-plugins-in-spring-boot-apps","title":"Use CAP Plugins in Spring Boot Applications without a CDS Model — capire","checked":"2026-09-27","quote":"CAP Java offers a variety of plugins that integrate with SAP BTP services and keep your application free of hard-coded service dependencies. In the CAP ecosystem, this approach is called Calesi (CAP level service integration)."},{"url":"https://cap.cloud.sap/docs/tools/apis/cds-import","title":"CDS Import API — capire","checked":"2026-09-27","quote":"As an application developer, you have the option to convert OData specification (EDMX / XML), OpenAPI specification (JSON) or AsyncAPI specification (JSON) files to CSN from JavaScript API as an alternative to the cds import command."}]},"history":[{"date":"2026-09-27","field":"id","from":"none","to":"service-integration","reason":"Proposed by the capire audit of 2026-09-27 with high confidence: consuming a remote service as a CAP service is what capire calls CAP-level service integration, Calesi, and the nearest capabilities were destinations, the address, and replication, the local copy; neither is the proxy in between. Created by the maintainer's decision, with the core's answer read from the guide and the runtime pages."},{"date":"2026-09-27","field":"core_coverage","from":"without the page","to":"cites the page","reason":"capire audit 2026-09-27: a page this capability owns was cited nowhere."},{"date":"2026-09-27","field":"core_coverage","from":"without the page","to":"cites the page","reason":"capire audit 2026-09-27, link-only pass: the CDS Import API page was cited nowhere; importing an API is the first step of service integration."},{"date":"2026-09-27","field":"facets","from":"no protocols facet","to":"a protocols facet, many, from the shared protocol vocabulary","reason":"A role in a design is filled from evidence that an option speaks what the fixed part exposes, and that join runs over one protocol vocabulary (docs/concepts/design-roles-and-interfaces.md, P2). Declared here so options can state it; absent stays \"does not say\"."}],"drafted_with_ai":true,"facets":[{"key":"protocols","label":"Protocols","kind":"many","vocabulary":"protocol","group":"Reach"}]},"sap_delivery":{"door":"cap","all":{"built_in":[{"ref":"artifact:sap-cds","name":"@sap/cds","json":"/artifacts/sap-cds.json"}],"documented_pattern":[],"announced":[],"packages":[{"ref":"artifact:sap-cds-dk","name":"@sap/cds-dk","json":"/artifacts/sap-cds-dk.json"},{"ref":"artifact:capire-s4","name":"capire/s4","json":"/artifacts/capire-s4.json"},{"ref":"artifact:cap-java-cds-feature-remote-odata","name":"com.sap.cds:cds-feature-remote-odata","json":"/artifacts/cap-java-cds-feature-remote-odata.json"}]},"by_flavor":{"node":{"built_in":[{"ref":"artifact:sap-cds","name":"@sap/cds","json":"/artifacts/sap-cds.json"}],"documented_pattern":[],"announced":[],"packages":[{"ref":"artifact:sap-cds-dk","name":"@sap/cds-dk","json":"/artifacts/sap-cds-dk.json"}]},"java":{"built_in":[],"documented_pattern":[],"announced":[],"packages":[{"ref":"artifact:cap-java-cds-feature-remote-odata","name":"com.sap.cds:cds-feature-remote-odata","json":"/artifacts/cap-java-cds-feature-remote-odata.json"}]}}},"edges":{"use_cases":[{"id":"receive-document-ai-results-in-an-application","name":"Receive SAP Document AI's extraction results in an application","capability":"capability:service-integration","ecosystem":"cap","outcome":"The fields [SAP Document AI](artifact:btp-document-ai) extracted from a document reach an application of the reader's own, pushed by an outbound channel when the document reaches a step, so the application can map them and post them on.","boundary":"Ends at the results in the application's hands. Posting them to SAP S/4HANA or another system is the application's or the flow's own work and is not assessed here. The service posting directly to a target system's REST API involves no application of the reader's and is the design's first route, not a contribution. Sending the document in the first place is the sending use case, assessed on its own.","origin":"Editorial, from SAP's reference architecture for the service (docs/concepts/design-roles-and-interfaces.md §4.1): its posting page leaves the receiver open, and a use case is how the atlas assesses who can fill that role.","requirement_dimensions":["Where the results go next: SAP S/4HANA Cloud over OData, an on-premise system through the [Cloud Connector](artifact:sap-cloud-connector), a third-party system","Whether error handling, retries and monitoring are the application's own or a middleware's"],"needs":[{"interface":{"protocol":"http","direction":"in"}}],"paths":[{"key":"cap-application","name":"A CAP service notified by an outbound channel","sources":[{"url":"https://raw.githubusercontent.com/SAP/architecture-center/main/docs/ref-arch/RA0030/3-posting/readme.md","title":"RA0030 3-posting/readme.md in SAP/architecture-center","checked":"2026-09-27","quote":"A CAP service receives extraction notifications from Document AI, performs field mapping and posts to SAP S/4HANA Cloud (via OData APIs), on-premise S/4HANA (via Cloud Connector and OData/RFC), Business ByDesign..."}]},{"key":"integration-flow","name":"An integration flow that receives the extraction payload","sources":[{"url":"https://raw.githubusercontent.com/SAP/architecture-center/main/docs/ref-arch/RA0030/3-posting/readme.md","title":"RA0030 3-posting/readme.md in SAP/architecture-center","checked":"2026-09-27","quote":"An integration flow (iFlow) receives the Document AI extraction payload, converts to target system protocols (IDoc, SOAP, REST), applies error handling and retry logic, and posts to cloud or on-premise target systems."}]}],"contributions":[{"ref":"artifact:sap-cds","role":"the service an outbound channel notifies","state":"conditional","paths":["cap-application"],"description":"The posting page's third route: a CAP service receives the extraction notification, maps the fields and posts on, to SAP S/4HANA Cloud over OData or to an on-premise system through the [Cloud Connector](artifact:sap-cloud-connector).","remaining_work":"The endpoint that receives the notification, the field mapping and the posting call are the application's own code; the runtime serves the endpoint over HTTP and no package for Document AI is in the graph.","remaining_kinds":["application-code"],"conditions":["An outbound channel in Document AI set to notify the application when documents reach the step, with the extraction results."],"sources":[{"url":"https://raw.githubusercontent.com/SAP/architecture-center/main/docs/ref-arch/RA0030/3-posting/readme.md","title":"RA0030 3-posting/readme.md in SAP/architecture-center","checked":"2026-09-27","quote":"[Outbound channels](https://help.sap.com/docs/document-ai/sap-document-ai/outbound-channels?locale=en-US&version=LATEST) in SAP Document AI can notify external systems when documents are on a specific step, and can include the extraction results:"},{"url":"https://raw.githubusercontent.com/SAP/architecture-center/main/docs/ref-arch/RA0030/3-posting/readme.md","title":"RA0030 3-posting/readme.md in SAP/architecture-center","checked":"2026-09-27","quote":"A CAP service receives extraction notifications from Document AI, performs field mapping and posts to SAP S/4HANA Cloud (via OData APIs), on-premise S/4HANA (via Cloud Connector and OData/RFC), Business ByDesign..."}],"flavors":["node"]},{"ref":"artifact:cap-java-cds-services-bom","role":"the service an outbound channel notifies","state":"conditional","paths":["cap-application"],"description":"The posting page's third route: a CAP service receives the extraction notification, maps the fields and posts on, to SAP S/4HANA Cloud over OData or to an on-premise system through the [Cloud Connector](artifact:sap-cloud-connector).","remaining_work":"The endpoint that receives the notification, the field mapping and the posting call are the application's own code; the runtime serves the endpoint over HTTP and no package for Document AI is in the graph.","remaining_kinds":["application-code"],"conditions":["An outbound channel in Document AI set to notify the application when documents reach the step, with the extraction results."],"sources":[{"url":"https://raw.githubusercontent.com/SAP/architecture-center/main/docs/ref-arch/RA0030/3-posting/readme.md","title":"RA0030 3-posting/readme.md in SAP/architecture-center","checked":"2026-09-27","quote":"[Outbound channels](https://help.sap.com/docs/document-ai/sap-document-ai/outbound-channels?locale=en-US&version=LATEST) in SAP Document AI can notify external systems when documents are on a specific step, and can include the extraction results:"},{"url":"https://raw.githubusercontent.com/SAP/architecture-center/main/docs/ref-arch/RA0030/3-posting/readme.md","title":"RA0030 3-posting/readme.md in SAP/architecture-center","checked":"2026-09-27","quote":"A CAP service receives extraction notifications from Document AI, performs field mapping and posts to SAP S/4HANA Cloud (via OData APIs), on-premise S/4HANA (via Cloud Connector and OData/RFC), Business ByDesign..."}],"flavors":["java"]},{"ref":"artifact:btp-cloud-integration","role":"the flow that receives the extraction payload","state":"conditional","paths":["integration-flow"],"description":"The posting page's second route: an integration flow receives the extraction payload, converts it to the target's protocol, handles errors and retries and posts to a cloud or an on-premise system. [Cloud Integration](artifact:btp-cloud-integration) is the service the page lists for that orchestration.","remaining_work":"The flow itself: its sender endpoint, the mapping and the receiver adapter for the target.","remaining_kinds":["own-component"],"conditions":["An outbound channel in Document AI set to notify the flow when documents reach the step, with the extraction results."],"sources":[{"url":"https://raw.githubusercontent.com/SAP/architecture-center/main/docs/ref-arch/RA0030/3-posting/readme.md","title":"RA0030 3-posting/readme.md in SAP/architecture-center","checked":"2026-09-27","quote":"[Outbound channels](https://help.sap.com/docs/document-ai/sap-document-ai/outbound-channels?locale=en-US&version=LATEST) in SAP Document AI can notify external systems when documents are on a specific step, and can include the extraction results:"},{"url":"https://raw.githubusercontent.com/SAP/architecture-center/main/docs/ref-arch/RA0030/3-posting/readme.md","title":"RA0030 3-posting/readme.md in SAP/architecture-center","checked":"2026-09-27","quote":"An integration flow (iFlow) receives the Document AI extraction payload, converts to target system protocols (IDoc, SOAP, REST), applies error handling and retry logic, and posts to cloud or on-premise target systems."}]}],"readings":[{"ref":"content:ac-sap-document-ai","relevance":"SAP's reference architecture for the service. Its posting page lays out the three routes the results take out of the service, the direct API, an integration flow and a CAP application, each reached through an outbound channel; it shows no receiver end to end."}],"unknowns":["Whether the outbound channel's payload is the same for a CAP service and an integration flow, which the page does not say and SAP's Help page on outbound channels would."],"assessed_at":"2026-09-27","drafted_with_ai":true,"omitted_contributions":0,"assessment_kind":"documented-contributions"},{"id":"send-a-document-to-document-ai","name":"Send a document to SAP Document AI","capability":"capability:service-integration","ecosystem":"cap","outcome":"A document that arrived somewhere an application or a flow can reach is uploaded to [SAP Document AI](artifact:btp-document-ai) for classification and extraction.","boundary":"Ends at the upload. What the service's own intake does, an inbox or a folder it reads itself, its workspace UI and the [SAP Joule Work mobile app](artifact:sap-joule), is the service's interface and not a contribution. The extraction is [document extraction](capability:document-extraction), and what happens to the results afterwards is the receiving use case, assessed on its own.","origin":"Editorial, from SAP's reference architecture for the service (docs/concepts/design-roles-and-interfaces.md §4.1): its ingestion page leaves the sender open where a source is not one the service reads itself, and a use case is how the atlas assesses who can fill that role.","requirement_dimensions":["Which channel the documents arrive through: an inbox or a folder Document AI reads itself, the workspace, the mobile app, or a source only code reaches","Whether documents need routing or transformation before the upload","Whether the application keeps its own record of what was processed, which the page names for the CAP route"],"needs":[{"key":"protocols","value":"HTTP"}],"paths":[{"key":"cap-application","name":"From a CAP application, through the upload API","sources":[{"url":"https://raw.githubusercontent.com/SAP/architecture-center/main/docs/ref-arch/RA0030/1-ingestion/readme.md","title":"RA0030 1-ingestion/readme.md in SAP/architecture-center","checked":"2026-09-27","quote":"SAP Cloud Application Programming (CAP) model application: Keep track on the documents processed and offer custom UIs using databases and Fiori Elements"}]},{"key":"integration-flow","name":"From an integration flow, through the upload API","sources":[{"url":"https://raw.githubusercontent.com/SAP/architecture-center/main/docs/ref-arch/RA0030/1-ingestion/readme.md","title":"RA0030 1-ingestion/readme.md in SAP/architecture-center","checked":"2026-09-27","quote":"SAP Integration Suite: Leverage the adapters and enterprise-grade flows to bring documents from different sources"}]}],"contributions":[{"ref":"artifact:sap-cds","role":"the application that uploads through the API","state":"conditional","paths":["cap-application"],"description":"The ingestion page places a CAP application on the API route: it uploads documents the service's own channels do not reach, keeps track of what was processed and offers its own UIs. Its example is a CAP service that subscribes to Ariba invoice events, fetches the PDFs and uploads them.","remaining_work":"The upload call against the Document AI API, the record of processed documents and any UI are the application's own code; no CAP package for Document AI is in the graph, and the page names no client.","remaining_kinds":["application-code","own-component"],"conditions":["A document source the service's own intake channels do not cover, or routing and transformation the channels cannot do; the page places the API route there."],"sources":[{"url":"https://raw.githubusercontent.com/SAP/architecture-center/main/docs/ref-arch/RA0030/1-ingestion/readme.md","title":"RA0030 1-ingestion/readme.md in SAP/architecture-center","checked":"2026-09-27","quote":"For document sources that are not supported out of the box, or to support complex routing and transformation scenarios, the API can be used to upload documents:"},{"url":"https://raw.githubusercontent.com/SAP/architecture-center/main/docs/ref-arch/RA0030/1-ingestion/readme.md","title":"RA0030 1-ingestion/readme.md in SAP/architecture-center","checked":"2026-09-27","quote":"SAP Cloud Application Programming (CAP) model application: Keep track on the documents processed and offer custom UIs using databases and Fiori Elements"},{"url":"https://raw.githubusercontent.com/SAP/architecture-center/main/docs/ref-arch/RA0030/1-ingestion/readme.md","title":"RA0030 1-ingestion/readme.md in SAP/architecture-center","checked":"2026-09-27","quote":"A CAP service subscribes to Ariba invoice events, retrieves invoice PDFs via Ariba API, and uploads to Document AI."}],"flavors":["node"]},{"ref":"artifact:cap-java-cds-services-bom","role":"the application that uploads through the API","state":"conditional","paths":["cap-application"],"description":"The ingestion page places a CAP application on the API route: it uploads documents the service's own channels do not reach, keeps track of what was processed and offers its own UIs. Its example is a CAP service that subscribes to Ariba invoice events, fetches the PDFs and uploads them.","remaining_work":"The upload call against the Document AI API, the record of processed documents and any UI are the application's own code; no CAP package for Document AI is in the graph, and the page names no client.","remaining_kinds":["application-code","own-component"],"conditions":["A document source the service's own intake channels do not cover, or routing and transformation the channels cannot do; the page places the API route there."],"sources":[{"url":"https://raw.githubusercontent.com/SAP/architecture-center/main/docs/ref-arch/RA0030/1-ingestion/readme.md","title":"RA0030 1-ingestion/readme.md in SAP/architecture-center","checked":"2026-09-27","quote":"For document sources that are not supported out of the box, or to support complex routing and transformation scenarios, the API can be used to upload documents:"},{"url":"https://raw.githubusercontent.com/SAP/architecture-center/main/docs/ref-arch/RA0030/1-ingestion/readme.md","title":"RA0030 1-ingestion/readme.md in SAP/architecture-center","checked":"2026-09-27","quote":"SAP Cloud Application Programming (CAP) model application: Keep track on the documents processed and offer custom UIs using databases and Fiori Elements"},{"url":"https://raw.githubusercontent.com/SAP/architecture-center/main/docs/ref-arch/RA0030/1-ingestion/readme.md","title":"RA0030 1-ingestion/readme.md in SAP/architecture-center","checked":"2026-09-27","quote":"A CAP service subscribes to Ariba invoice events, retrieves invoice PDFs via Ariba API, and uploads to Document AI."}],"flavors":["java"]},{"ref":"artifact:btp-cloud-integration","role":"the flow that uploads through the API","state":"conditional","paths":["integration-flow"],"description":"The ingestion page places an Integration Suite flow on the API route, for bringing documents from sources its adapters reach, and lists [Cloud Integration](artifact:btp-cloud-integration) among the services for complex transformations and protocol conversions. Its example is a flow that receives EDI messages, converts them to PDF and uploads them.","remaining_work":"The flow itself: the sender adapter for the source, the conversion and the HTTP call to the upload API.","remaining_kinds":["own-component"],"conditions":["A document source the service's own intake channels do not cover, or routing and transformation the channels cannot do; the page places the API route there."],"sources":[{"url":"https://raw.githubusercontent.com/SAP/architecture-center/main/docs/ref-arch/RA0030/1-ingestion/readme.md","title":"RA0030 1-ingestion/readme.md in SAP/architecture-center","checked":"2026-09-27","quote":"For document sources that are not supported out of the box, or to support complex routing and transformation scenarios, the API can be used to upload documents:"},{"url":"https://raw.githubusercontent.com/SAP/architecture-center/main/docs/ref-arch/RA0030/1-ingestion/readme.md","title":"RA0030 1-ingestion/readme.md in SAP/architecture-center","checked":"2026-09-27","quote":"SAP Integration Suite: Leverage the adapters and enterprise-grade flows to bring documents from different sources"},{"url":"https://raw.githubusercontent.com/SAP/architecture-center/main/docs/ref-arch/RA0030/1-ingestion/readme.md","title":"RA0030 1-ingestion/readme.md in SAP/architecture-center","checked":"2026-09-27","quote":"Integration Suite flow receives EDI 810 (invoice) or 850 (purchase order) messages from trading partners, converts them to PDF for archival compliance, and uploads to Document AI."},{"url":"https://raw.githubusercontent.com/SAP/architecture-center/main/docs/ref-arch/RA0030/1-ingestion/readme.md","title":"RA0030 1-ingestion/readme.md in SAP/architecture-center","checked":"2026-09-27","quote":"- [SAP Cloud Integration](https://discovery-center.cloud.sap/serviceCatalog/integration-suite) - Complex transformations and protocol conversions"}]}],"readings":[{"ref":"content:ac-sap-document-ai","relevance":"SAP's reference architecture for the service. Its ingestion page names the service's own intake channels first and then the API route, with a CAP application and an Integration Suite flow as the two things that upload through it; it shows no upload end to end."}],"unknowns":["Whether a Document AI client for CAP exists as a package. None is in the graph, so the CAP route is the application's own code, which is the honest state and not a gap the page fills."],"assessed_at":"2026-09-27","drafted_with_ai":true,"omitted_contributions":0,"assessment_kind":"documented-contributions"}],"shared_tasks":[],"related_tasks":[{"task":{"id":"access-external-system-through-mcp-service","name":"Access an external system through an application MCP service","outcome":"An AI agent queries external system data or invokes selected external operations through an application-owned service contract exposed over MCP.","boundary":"The application integrates the target system and selects the data and operations exposed to an agent. This connects [Agent access to your systems](capability:agent-systems-access), [Service integration](capability:service-integration) and [Serve your application over MCP](capability:mcp-servers); direct agent access to an external endpoint without the application layer is a separate design. Cross-system atomic transactions and development-assistance tools are outside this outcome.","origin":"Maintainer-requested CAP bridge use case after acceptance of the complementary MCP capability boundaries (ADR-0066).","aliases":["CAP as a bridge to an external system","wrap an external service in CAP and expose it through MCP","give an AI agent access to remote data through CAP","CAP MCP facade"],"requirement_dimensions":["target API family and permitted use","external protocol","allowed read/write operations","runtime","transport","client and backend authorization","deployment","tenancy"],"primary_capability":"capability:mcp-servers","drafted_with_ai":true,"related_capabilities":[{"ref":"capability:agent-systems-access","role":"Reach external system data and operations through the application."},{"ref":"capability:service-integration","role":"Connect the application service to the external system."}]},"assessment_home":"capability:mcp-servers","assessments":[{"ref":"usecase:access-external-system-through-mcp-service-cap-java-custom-api","ecosystem":"cap","flavors":["java"]},{"ref":"usecase:access-external-system-through-mcp-service-cap-java-sap-api","ecosystem":"cap","flavors":["java"]},{"ref":"usecase:access-external-system-through-mcp-service-cap-node-custom-api","ecosystem":"cap","flavors":["node"]},{"ref":"usecase:access-external-system-through-mcp-service-cap-node-sap-api","ecosystem":"cap","flavors":["node"]}]}],"options":[{"ref":"artifact:sap-cds","name":"@sap/cds","json":"/artifacts/sap-cds.json","ecosystem":"cap","origin_ring":"sap-official"},{"ref":"artifact:sap-cds-dk","name":"@sap/cds-dk","json":"/artifacts/sap-cds-dk.json","ecosystem":"cap","origin_ring":"sap-official"},{"ref":"artifact:capire-s4","name":"capire/s4","json":"/artifacts/capire-s4.json","ecosystem":"cap","origin_ring":"sap-official"},{"ref":"artifact:mikezaschka-cds-data-federation","name":"cds-data-federation","json":"/artifacts/mikezaschka-cds-data-federation.json","ecosystem":"cap","origin_ring":"independent"},{"ref":"artifact:cap-java-cds-feature-remote-odata","name":"com.sap.cds:cds-feature-remote-odata","json":"/artifacts/cap-java-cds-feature-remote-odata.json","ecosystem":"cap","origin_ring":"sap-official"}],"samples":[{"ref":"artifact:miyasuta-auth-samples","name":"auth-samples","json":"/artifacts/miyasuta-auth-samples.json"},{"ref":"artifact:miyasuta-cap-external-northwind","name":"cap-external-northwind","json":"/artifacts/miyasuta-cap-external-northwind.json"},{"ref":"artifact:miyasuta-cap-java-resilience","name":"cap-java-resilience","json":"/artifacts/miyasuta-cap-java-resilience.json"},{"ref":"artifact:miyasuta-cap-openai","name":"cap-openai","json":"/artifacts/miyasuta-cap-openai.json"},{"ref":"artifact:miyasuta-cap-principal-propagation","name":"cap-principal-propagation","json":"/artifacts/miyasuta-cap-principal-propagation.json"},{"ref":"artifact:capire-xflights","name":"xflights","json":"/artifacts/capire-xflights.json"},{"ref":"artifact:capire-xtravels","name":"xtravels","json":"/artifacts/capire-xtravels.json"}],"explained_by":[{"ref":"content:devtoberfest-2026-ecc-to-cap-starter-kit","name":"The ECC-to-CAP Starter Kit","json":"/content/devtoberfest-2026-ecc-to-cap-starter-kit.json"},{"ref":"content:btp-sapcap-quirky-nuggets-n05-n06","name":"#BTP #SAPCAP: Quirky Nuggets (N05-N06)","json":"/content/btp-sapcap-quirky-nuggets-n05-n06.json"},{"ref":"content:cap-service-to-fetch-create-sales-order-in-s4-hana-public-cloud","name":"CAP Service to Fetch + Create Sales Order in S4 HANA Public Cloud","json":"/content/cap-service-to-fetch-create-sales-order-in-s4-hana-public-cloud.json"},{"ref":"content:extend-sap-successfactors-on-sap-btp-with-cap-create-the-cap-service","name":"Extend SAP SuccessFactors on SAP BTP with CAP - Create the CAP Service","json":"/content/extend-sap-successfactors-on-sap-btp-with-cap-create-the-cap-service.json"},{"ref":"content:extend-sap-successfactors-on-sap-btp-with-cap-import-sap-successfactors-odata-se","name":"Extend SAP SuccessFactors on SAP BTP with CAP - Import SAP SuccessFactors OData Services definitions","json":"/content/extend-sap-successfactors-on-sap-btp-with-cap-import-sap-successfactors-odata-se.json"},{"ref":"content:sap-cap-consume-sap-api-hub-sandbox-data-as-an-external-service-part-1","name":"SAP CAP: Consume SAP API Hub Sandbox Data as an external service Part- 1","json":"/content/sap-cap-consume-sap-api-hub-sandbox-data-as-an-external-service-part-1.json"},{"ref":"content:sap-cap-adapter-to-expose-odata-as-custom-rest-service","name":"SAP CAP Adapter to expose OData as custom REST Service","json":"/content/sap-cap-adapter-to-expose-odata-as-custom-rest-service.json"},{"ref":"content:event-driven-extensions-for-sap-successfactors-on-sap-btp-connecting-the-dots","name":"Event-driven Extensions for SAP SuccessFactors on SAP BTP – Connecting the Dots","json":"/content/event-driven-extensions-for-sap-successfactors-on-sap-btp-connecting-the-dots.json"},{"ref":"content:cap-consume-external-service-part-1","name":"CAP: Consume External Service - Part 1","json":"/content/cap-consume-external-service-part-1.json"}],"normative_context":[]}}