BrowseAll ecosystems
Everything in the atlas
253 of 2341
Domain
Signals
Content: 2
More: 3
Group by: Capability
Source SAP Help PortalSource SAP Developer CenterSource SAP CommunityPublished 2020Published 2025Clear all
EntryBySignalsLast activity
Basic code's of ABAPBasic code's of ABAPNine standalone ABAP reports built around REUSE_ALV_GRID_DISPLAY and CL_SALV_TABLE, covering display, screen validation, spool creation, Excel upload and table maintenance without SM30. One report raises and catches a custom exception class with RAISE EXCEPTION and TRY/CATCH, the class-based mechanism error handling names for ABAP; another submits a job to spool, converts it to PDF with CONVERT_ABAPSPOOLJOB_2_PDF and exports a CL_SALV_TABLE result to Excel before mailing both, producing document output from spool rather than Form Builder.RakeshZore, published 2025-09-30
Beginners Guide to Advanced Event MeshBeginners Guide to Advanced Event MeshA scenario-by-scenario walkthrough of Advanced Event Mesh, run through Cloud Integration iFlows: publishing and consuming queue messages, dead message queue setup with retry counts and acknowledgment modes, direct messages, durable topic endpoints and selectors, time-to-live, REST Delivery Points, replay by replication group message ID, parallel consumers with partition keys, and the request-reply pattern. Each scenario is built and verified step by step against a Solace trial account standing in for AEM.PriyankaChak, published 2025-07-24
Effective Axios Error Logging for Robust SAP IntegrationsEffective Axios Error Logging for Robust SAP IntegrationsTwo logged failures printed side by side, and the point is made by looking at them: one tells you what went wrong and one does not. Axios buries the useful part of an HTTP error, and this is what to unwrap before logging it from a CAP service.Sahil2508, published 2025-08-31
How to create a Purchase Order through BAPI in the SAP through program ( SE38 ) T-CODE .How to create a Purchase Order through BAPI in the SAP through program ( SE38 ) T-CODE .Walks through creating a purchase order from an ABAP report (SE38) by filling the BAPIMEPOHEADER/BAPIMEPOITEM structures and their X-indicator counterparts, then calling BAPI_PO_CREATE1 within the same session. Its error handling centres on the BAPIRET2 return table: looping over entries typed E or A, skipping BAPI_TRANSACTION_COMMIT when one is found, and displaying the returned message text rather than assuming success once the function module returns.chandu_kumar_badukuri, published 2025-12-18
How to subscribe or fetch data from solace to CPI using AEM Adapter : part-5How to subscribe or fetch data from solace to CPI using AEM Adapter : part-5Closes a series on event-driven architecture with Solace by detailing the subscriber side of an iFlow in Cloud Integration: an advanced event mesh adapter feeds an exception subprocess, and a Groovy step classifies each failure as recoverable, left to Solace's own retry, or non-recoverable, answered with a custom property that tells Solace to stop retrying before the message reaches an escalation layer. The escalation layer names email, ServiceNow and Loggly as destinations without explaining any of them.pavanKolla, published 2025-08-03
Making the Case for Enhanced REST Adapter in SAP Integration SuiteMaking the Case for Enhanced REST Adapter in SAP Integration SuiteCatalogues what SAP Integration Suite's native HTTP adapter supports for authentication (Basic, OAuth 2.0 client credentials and client certificates on the sender; OAuth 2.0 client credentials and SAML bearer assertion on the receiver) and for error handling (retry on HTTP failure only, with no pattern-based retry, failure queues or dead-letter queues), and that it has no OpenAPI import or export. Three worked scenarios, FedEx shipment tracking, Avalara AvaTax and SAP Ariba's operational reporting API, name what that leaves to Groovy scripting: the other OAuth 2.0 flows, gzip and multipart payloads, and pagination that chains a nextPageToken by JSONPath, which is the case the piece makes for the third-party Advantco REST Adapter.peter_ha3, published 2025-07-14
Migration Journey from MuleSoft to SAP Integration Suite (CI)Migration Journey from MuleSoft to SAP Integration Suite (CI)Maps MuleSoft Anypoint's error handling onto SAP Integration Suite: the Global Error Handler and MuleSoft's built-in retries become Exception Subprocesses with scripted Groovy retry logic or JMS-based retry, since Cloud Integration has no automatic equivalent. MuleSoft's searchable logger text becomes Content Modifier headers and Groovy-scripted Message Log entries, correlated by application message ID and correlation ID for traceability across complex interfaces. The mapping is drawn from the author's own migration project across assessment, development and validation phases, and is explicitly flagged as not an SAP- or MuleSoft-approved design.Shailaja, published 2025-09-21
New tutorial for UI5 Middleware FE MockserverNew tutorial for UI5 Middleware FE MockserverA step-by-step tutorial accompanying a Devtoberfest session walks through @sap-ux/ui5-middleware-fe-mockserver across nine exercises: zero-config mock data generated from OData metadata, custom JSON datasets with consistent IDs and referential keys, JavaScript actions, multi-service and cross-service scenarios, tenant isolation through sap-client, returning 400/404/422/500/501 responses for UI error-handling tests, and offline end-to-end tests run with wdi5. A companion tool, ui5-middleware-odata-recorder, captures real backend OData traffic to generate the mock datasets used for offline replay.published 2025-10-14
Parallel Data Filtering and Dropbox Integration Using SAP Cloud IntegrationParallel Data Filtering and Dropbox Integration Using SAP Cloud IntegrationA step-by-step build of an integration flow in Cloud Integration: a Start Timer triggers the flow, a Parallel Multicast splits student records by gender through XPath filters, and each branch uploads its file to Dropbox over a Receiver Adapter authorized against a Dropbox app's OAuth2 credentials. An Exception Subprocess captures the error message and a Mail Adapter sends it over SMTP, centralizing error handling and an email notification for the whole flow.Vurumind03, published 2025-12-10
Calling the Sales Order (A2X) OData V2 API from BTP Using a Service Consumption ModelCalling the Sales Order (A2X) OData V2 API from BTP Using a Service Consumption ModelWalks through ABAP's Service Consumption Model for OData V2 in ABAP Development Tools for Eclipse: generating a client proxy from the Sales Order (A2X) API's downloaded EDMX, then using it from an ABAP console class to create a deep sales order with items, texts, partners and pricing elements, read it back and patch a field. The client itself is built the way HTTP clients describes for SAP BTP ABAP environment: a communication arrangement resolved through cl_http_destination_provider=>create_by_comm_arrangement, handed to cl_web_http_client_manager=>create_by_http_destination, reaching the inbound SAP_COM_0109 scenario configured on the SAP S/4HANA Cloud Public Edition side.Katsiaryna_Darapeika, published 2025-02-04
Calling the Sales Order (A2X) OData V4 API from BTP Using a Service Consumption ModelCalling the Sales Order (A2X) OData V4 API from BTP Using a Service Consumption ModelWalks through calling SAP S/4HANA Cloud Public Edition's Sales Order (A2X) OData V4 API from an ABAP class on SAP BTP ABAP environment: a communication arrangement on each side, a Service Consumption Model built in ADT from the API's downloaded EDMX, and a client proxy wired through cl_http_destination_provider=>create_by_comm_arrangement and cl_web_http_client_manager=>create_by_http_destination, the same HTTP clients pattern for ABAP for Cloud Development. The sample class creates a deep sales order with an item, a text, a partner and a pricing element, reads it back, then updates a field guarded by its ETag.Katsiaryna_Darapeika, published 2025-02-06
Invoking Business Agent Foundation Agents from ABAP: A Step-by-Step GuideInvoking Business Agent Foundation Agents from ABAP: A Step-by-Step GuideWalks through calling a Business Agent Foundation agent's chat endpoint from an on-premise ABAP report: an OAuth 2.0 client profile configured in SE80/SOAUTH2_CLIENT with client-credentials grant against the service key, an HTTP (type G) RFC destination in SM59 bound to that profile, and an ABAP report using CL_HTTP_CLIENT=>CREATE_BY_DESTINATION to POST a JSON message to the agent's sendMessage endpoint and extract the reply by splitting the response string. The destination and client code are the same shape as any outbound REST call from ABAP; nothing here is specific to the agent service beyond the request body and URL.tanmay_0117, published 2025-11-26
Outbound Integration from SAP BTP, ABAP to SAP S/4HANA Cloud via Service Consumption ModelOutbound Integration from SAP BTP, ABAP to SAP S/4HANA Cloud via Service Consumption ModelWalks through ABAP's Service Consumption Model for OData in ABAP Development Tools for Eclipse: generating a V4 client proxy from a remote service's EDMX metadata, then calling one of its bound actions by hand because the 2311 release's ADT tooling does not yet generate that code. The client itself is built the way HTTP clients describes for SAP BTP, ABAP Environment — a communication arrangement resolved through cl_http_destination_provider=>create_by_comm_arrangement, handed to cl_web_http_client_manager=>create_by_http_destination to create the client.Pramathesh_t_s, published 2025-10-28
How to use reserved words as property names in your OData service?How to use reserved words as property names in your OData service?Setting a CDS view alias to a reserved OData word, such as Number, fails compilation with 'NUMBER is a reserved word'. The fix for a RAP-based OData service is the @odata.property.name annotation: it lets the underlying CDS view keep a compiler-safe name (NumberInStock) while the $metadata EntityType still exposes the field as Number, shown against a products view and its generated EDMX.Andre_Fischer, published 2025-11-10
Create CDS Views and expose through OData service in CAPMCreate CDS Views and expose through OData service in CAPMViews defined in CDS and then exposed, which is the whole of what a small CAP service is. Written step by step from cds init onward in Business Application Studio.VenkateshMundru, published 2025-08-11
Generating Adobe Form Using RAP framework OData ServicesGenerating Adobe Form Using RAP framework OData ServicesModels a RAP root view entity and consumption view over a custom sales-order table, built with ABAP CDS, and exposes it through a service definition and an OData V2 UI service binding. A separate SEGW project implements GET_STREAM to call an Adobe Form driver class and stream the rendered PDF back as the response, with a computed link field added to the CDS view so the UI can open it. The PDF is generated in the backend and returned to the calling program rather than sent straight to a printer.Megastar, published 2025-03-18
How to add OData v2 adapter proxy to your CAP projectHow to add OData v2 adapter proxy to your CAP projectThe problem is stated in one line — a UI5 application that only speaks OData v2 in front of a CAP service that speaks v4 — and the answer is a proxy in the middle rather than a rewrite of either end. Written while v4 support in the UI5 stack was still patchy, which is the whole reason the adapter exists.published 2020-06-30
How to add OData v2 adapter proxy to your CAP project
OData changed in @cap-js-community/odata-v2-adapter 1.10.0, 2023-04-05. Affects Runnable code.
How to Perform Initial Loads from S/4HANA to Advanced Event Mesh with Odata PollHow to Perform Initial Loads from S/4HANA to Advanced Event Mesh with Odata PollWalks through building a Cloud Integration flow that polls the S/4HANA Business Partner OData API on a timer, splits the response into individual records, and publishes each as an event to Advanced Event Mesh through its adapter, with the topic set dynamically from a grouping property. Selects fields and expands associations with $select/$expand against an EDMX from the API Business Hub, and works around the OData V2 adapter's lack of JSON support by falling back to the HTTP adapter with an XML-to-JSON converter. Flags the trade-off: the pattern needs no backend change beyond activating the API, but the polled payload has to stay aligned with whatever event format the ERP pushes on change.AlexPfeil, published 2025-04-04
OData Deep Insert: Implementation and Real-Life ExamplesOData Deep Insert: Implementation and Real-Life ExamplesWalks through implementing OData Deep Insert on classic SAP Gateway: two entity types joined by an association in SEGW, and a redefined CREATE_DEEP_ENTITY method in the DPC_EXT class that unpacks the header and item payload and calls BAPI_SALESORDER_CREATEFROMDAT2 to create a sales order with its line items in one request instead of separate calls per item. Gives a sample JSON payload to test with Postman or /IWFND/GW_CLIENT and names the usual failure points — an unmapped association, a method that was never redefined, or a commit left out after the BAPI call.SRSATAPATHY, published 2025-09-15
Resolving date serialization issues when using an external OData v2 service with CAPResolving date serialization issues when using an external OData v2 service with CAPDates coming out of an external OData v2 service in a shape CAP does not expect, and what to do about it. A narrow bug report with a fix, and the kind of thing that costs an afternoon if nobody has written it down.pieterjanssens, published 2020-07-09
S/4HANA公有云版的内部ABAP拓展S/4HANA公有云版的内部ABAP拓展Argues that S/4HANA Cloud public edition's in-app ABAP extensibility is still real ABAP development, just under stricter rules: developer extensions require ABAP Development Tools rather than SAP GUI transactions, data models are defined as CDS views instead of SE11 tables, business logic is a RAP behavior definition instead of a function module, and service exposure is an auto-generated OData service from a Service Definition instead of a hand-built RFC/BAPI. The piece walks a worked example — a Fiori app that triggers the Purchase Requisition API — through CDS, RAP, OData activation on SAP Gateway, and authorization via business catalogues, and frames the whitelist of released APIs and CDS views as upgrade-safety rather than a restriction.ArthurYang, published 2025-11-24
SAP HANA XSA pt. 2 – Smart variants, OData v4 -> v2SAP HANA XSA pt. 2 – Smart variants, OData v4 -> v2Smart tables and smart variants against an OData v4 service, with the v4-to-v2 conversion that the smart controls needed at the time. The second part of an XSA series, written from Tokyo in a summer the author mentions.Gunter, published 2020-08-27
Step-by-Step Guide to Display System Details on SAP Fiori Launchpad ShellStep-by-Step Guide to Display System Details on SAP Fiori Launchpad ShellA step-by-step build of a plugin for the SAP Fiori launchpad shell that shows the system ID and client on every app it hosts: an OData service modelled in SAP Gateway Service Builder (SEGW), its GetEntitySet method redefined to call the function module RSAPI_CTC_GET_SYSTEM_DETAILS, then consumed from a project in SAP Business Application Studio with the Component.js and manifest.json changes a shell plugin needs instead of a standalone app. It covers the registration step a plugin needs beyond a normal Fiori app: a Catalog and Target Mapping with Semantic Object Shell and Action Plugin, deployed on-premise and assigned to roles.RahulManchala, published 2025-07-30
The Complete Guide to Calling Actions in UI5 with Custom CodeThe Complete Guide to Calling Actions in UI5 with Custom CodeWritten because the documentation is thin and the samples sparse, and openly as a note to the author's future self — hand-coding an action call has become a rare task for anyone mostly working in Fiori elements, which is exactly why it is hard to look up when it comes round. Comes with a CAP sample project, so the service half is there too.published 2025-07-21
Adding a Swagger UI to Your SAP Cloud Application Programming Model / Node.js ServiceAdding a Swagger UI to Your SAP Cloud Application Programming Model / Node.js ServiceThe problem stated from the other side of the wire: a CAP and HANA backend consumed by frontend developers with no SAP background, who said in the first meeting that they could not work from what the service offered. A browsable API page is the answer, and this is the post the Swagger UI plugin indexed here exists to serve.published 2020-01-23
Adding a Swagger UI to Your SAP Cloud Application Programming Model / Node.js Service
cds-swagger-ui-express has been through 11 major lines since this was published, most recently 0.9 (2024-07), 0.10 (2024-10), 0.11 (2026-02). Affects Runnable code.
Making the Case for Enhanced REST Adapter in SAP Integration SuiteMaking the Case for Enhanced REST Adapter in SAP Integration SuiteCatalogues what SAP Integration Suite's native HTTP adapter supports for authentication (Basic, OAuth 2.0 client credentials and client certificates on the sender; OAuth 2.0 client credentials and SAML bearer assertion on the receiver) and for error handling (retry on HTTP failure only, with no pattern-based retry, failure queues or dead-letter queues), and that it has no OpenAPI import or export. Three worked scenarios, FedEx shipment tracking, Avalara AvaTax and SAP Ariba's operational reporting API, name what that leaves to Groovy scripting: the other OAuth 2.0 flows, gzip and multipart payloads, and pagination that chains a nextPageToken by JSONPath, which is the case the piece makes for the third-party Advantco REST Adapter.peter_ha3, published 2025-07-14
New SAP Cloud Application Programming Model Sample for Many-to-Many Relationships and Fiori AnnotationsNew SAP Cloud Application Programming Model Sample for Many-to-Many Relationships and Fiori AnnotationsIntroduces SAP-samples/cloud-cap-hana-swapi, a CAP sample rebuilding the abandoned Star Wars API as a six-entity data model (Films, People, Planets, Species, Starships, Vehicles) chosen for its many-to-many, bi-directional relationships and its use as a Fiori Draft deep-editing test case. The author used CAP's OpenAPI functionality to generate both the Swagger UI test tool and entity diagrams for the data model, alongside the OData services and Fiori preview UI.published 2020-12-21
A Practical Real-Time CTI Widget for SAP Sales Cloud V2A Practical Real-Time CTI Widget for SAP Sales Cloud V2A small CAP backend, a WebSocket channel and a UI5 widget in an iframe — enough to get telephony events into Sales Cloud without any custom backend inside the CRM. The smallness is the design.gizemsoylutr, published 2025-11-28
Communicate from a Java Application to ABAP via WebSocket RFC using JCo - Migration GuideCommunicate from a Java Application to ABAP via WebSocket RFC using JCo - Migration GuideWalks a JCo setup from classic CPIC-based RFC to WebSocket RFC: swap the application- or message-server logon properties for jco.client.wshost and jco.client.wsport, and implement DestinationDataProvider's getSSLContext (and, for mTLS, getClientCertificate) since the new connection runs over TLS. It covers building the PKI trust on both sides — a local PKCS12 keystore for the Java side, STRUST's SSL-Server Standard certificate exported and imported for mutual trust on the ABAP side — and notes that on BTP, JCo paired with the Destination service already implements this via the Connectivity service, so the custom SSLContext work can be skipped there.simon_luser, published 2025-01-21
Streaming LLM Output with CAP and WebSocketsStreaming LLM Output with CAP and WebSocketsTokens arriving from the AI SDK's orchestration module, forwarded to the browser as they come rather than after the model finishes. Covers all four pieces — enabling WebSocket support in CAP, a service with actions and events, the streaming itself, and a frontend on the native WebSocket API — which is what makes it the clearest case for why a CAP service would want a socket at all.RobinP, published 2025-11-18
Streaming LLM Output with CAP and WebSockets
LLM integration changed in @cap-js/ai 1.0.0, 2026-04-28. Affects A recipe, Runnable code.
E2E: SAP Cloud Platform Internet of Things to SAP Analytics CloudE2E: SAP Cloud Platform Internet of Things to SAP Analytics CloudDevice data from ingestion to chart, with CAP occupying the middle: a CDS-defined persistence on HANA Cloud, and an OData service published from it for Analytics Cloud to consume live. The interesting choice is that CAP is used for the model rather than for business logic — there is barely any.Gunter, published 2020-08-31
Building an Attachment Upload and Download Solution Using UploadSetwithTable ControlBuilding an Attachment Upload and Download Solution Using UploadSetwithTable ControlThe successor control to UploadSet posts the file in one request by default, and against CAP that is wrong: the record has to be created first and the content put to it afterwards. The author states the two-step shape plainly and notes it may not apply to an ABAP backend, which is the kind of boundary that usually goes unsaid. Written during a proof of concept for a reusable attachment component, and it carries the problem they hit with the control.published 2025-03-13
Configure Journal Entry Posting Approval from Store Template in Build Process AutomationConfigure Journal Entry Posting Approval from Store Template in Build Process AutomationWalks through deploying SAP's Journal Entry Posting Approval template from the SAP Build Process Automation Store against an on-premise S/4HANA system that has no Secure Network Connection: destinations for S/4HANA via Cloud Connector, for SAP Document Management service, integration option to hold the approval's supporting documents, and for the BPA service and its SMTP mail. It then swaps the template's SNC action groups for basic-connection BAPI calls and deploys the approval's UI5 applications so the task lands in My Inbox, with a Desktop Agent registered to run the unattended document-check and document-post automations.published 2025-01-28
Major updates to the Attachments plugin – multi-cloud support, malware scanning and moreMajor updates to the Attachments plugin – multi-cloud support, malware scanning and moreMulti-cloud storage and malware scanning added to the official plugin, framed through CAP's Calesi pattern — the argument being that a service interface is what lets the storage underneath change without the application noticing. The post that a triage bug hid: "attachment" had stopped matching "Attachments".published 2025-12-02
Major updates to the Attachments plugin – multi-cloud support, malware scanning and more
@cap-js/attachments 3.4.0, now 4.0.0, com.sap.cds:cds-feature-attachments 1.2.2. Affects A recipe, Runnable code.
Uploading attachment with cap-js/attachment plugins but via External App/PostmanUploading attachment with cap-js/attachment plugins but via External App/PostmanThe plugin is written for a Fiori elements front end; this is the case where the caller is neither — Postman and a React app. Short, and it exists because the request shape is not obvious from outside the generated UI: what to POST, what to PUT, and in which order.published 2025-07-24
Use SAP Document Management Service Plugin In CAP NODEJS Step by Step GuidanceUse SAP Document Management Service Plugin In CAP NODEJS Step by Step GuidanceThe official plugin is documented in capire; this is somebody who set it up anyway and wrote down where it went wrong. The author says as much — the point is to spare customers the troubles, so the value is in the order of the steps and the prerequisites, not in the API.Jacky_Liu1, published 2025-03-06
Boosting performance in SAP Cloud Application Programming Model (CAP) applications with cds-cachingBoosting performance in SAP Cloud Application Programming Model (CAP) applications with cds-cachingThe plugin's introduction post: what cds-caching is for, how it is put together and the cases it was written against. The edge holds because the plugin's README still points here as the piece to read first, so this is where a reader arriving at the plugin is sent. It predates version 1.0 and the API has moved since: the read-through calls it shows as cache.run() and cache.send() are the ones the README now lists as deprecated in favour of cache.rt.*, which returns the cache key and hit/miss metadata alongside the result, and 1.0 made user, tenant and locale awareness opt-in under keyManagement rather than folding them into request-based keys by default. Metrics and monitoring, the OData API and full TypeScript definitions arrived with 1.0 and are described in CAP just got faster: What's new in cds-caching 1.0 instead. The reasoning about when a CAP service wants a cache still reads true; the call sites need translating.published 2025-06-25
Boosting performance in SAP Cloud Application Programming Model (CAP) applications with cds-caching
cds 9, maintenance until 2027-06, cds-caching 0.x, now 3.1.1. Affects A recipe.
CAP just got faster: What's new in cds-caching 1.0CAP just got faster: What's new in cds-caching 1.0What changed in cds-caching at 1.0, announced at reCAP 2025 by the plugin's own maintainer. The substantive change is the read-through API: cache.rt.run(), send(), exec() and wrap() replace the bare cache.run() and cache.send(), and each returns the cache key and hit-or-miss metadata beside the result rather than the value alone. The second is quieter and easier to miss on an upgrade: user, tenant and locale stopped being folded into request-based cache keys by default and became opt-in through keyManagement, or per operation through a key template. Both of those still describe 3.x. What does not is the second half of the post: the metrics configuration it shows was reshaped at 2.0 and the statistics and dashboard settings were removed at 3.0, so take the monitoring and dashboard sections from the README instead. Read it as the successor to the introduction post, which still shows the deprecated calls.published 2025-07-15
CAP just got faster: What's new in cds-caching 1.0
cds-caching 1.0, now 3.1.1, cds 9, maintenance until 2027-06. Affects A reference.
Performance Boost and Caching Strategy for Faster Data Access using "cds-caching" in SAP CAPPerformance Boost and Caching Strategy for Faster Data Access using "cds-caching" in SAP CAPSomebody else's account of using the plugin, which is the useful counterpart to its documentation. The case is specific: a master-data entity of more than a million rows, rarely written and constantly read, where the read-heavy shape is what makes caching worth the complexity rather than a general performance wish. Walks through integrating cds-caching into that application and what it changed.NaveenChandar, published 2025-03-04
Performance Boost and Caching Strategy for Faster Data Access using "cds-caching" in SAP CAP
cds-caching has been through 4 major lines since this was published, most recently 1 (2025-07), 2 (2026-07), 3 (2026-08). Affects A recipe, Runnable code.
A CAP Plugin for Flexible Number Range Management: cds-numberrange-pluginA CAP Plugin for Flexible Number Range Management: cds-numberrange-pluginThe author's own plugin, and the reason given for writing it is about plugins rather than about number ranges: a year of using them convinced them that this was the way to extend CAP without leaving marks on the application. Sequential document numbers are the thing it does; keeping the host project clean is the thing it argues for.abdulbasit, published 2025-06-17
Building an Enterprise Application Using Fiori Elements and CAP - Part 1Building an Enterprise Application Using Fiori Elements and CAP - Part 1Part one of three, and it is all backend: the CAP service the UI will sit on. The author states the constraint the series works under — simple enough for someone new to the stack, without departing from the standard project layout.Farooq, published 2025-12-10
Create CDS Views and expose through OData service in CAPMCreate CDS Views and expose through OData service in CAPMViews defined in CDS and then exposed, which is the whole of what a small CAP service is. Written step by step from cds init onward in Business Application Studio.VenkateshMundru, published 2025-08-11
Developing Business Services with Cloud Application Programming(CAP) Model in SAP Business StudioDeveloping Business Services with Cloud Application Programming(CAP) Model in SAP Business StudioA step-by-step build of a CAP Node.js service in SAP Business Application Studio: a CDS schema for banks, customers, accounts and transactions using compositions, associations, enumerated types and the @assert.unique constraint, followed by authorization layered on with @restrict and @requires annotations and mock users assigned the authenticated-user and Manager roles in .cdsrc.json. Custom event handlers registered through @sap/cds (srv.before/srv.after) and sample HTTP requests round out the example.Ranjith, published 2020-05-27
First Java Cap ApplicationFirst Java Cap ApplicationA step-by-step walkthrough of a first CAP Java project: com.sap.cds:cds-services-archetype scaffolds the initial Maven project, and the domain model is then rewritten in the db folder with entities, the cuid and managed aspects, associations, compositions and a CodeList, so a hand-coded event handler serving a single entity gives way to a service that CAP's generic persistence handling serves without custom code. It deploys that model to SQLite for local development — cds deploy --to sqlite, then a Spring profile pointing at the generated database file — and ends by adding an index.cds so the model and service can be published as a reusable npm module.bruce_wang3, published 2020-12-08
Generating Adobe Form Using RAP framework OData ServicesGenerating Adobe Form Using RAP framework OData ServicesModels a RAP root view entity and consumption view over a custom sales-order table, built with ABAP CDS, and exposes it through a service definition and an OData V2 UI service binding. A separate SEGW project implements GET_STREAM to call an Adobe Form driver class and stream the rendered PDF back as the response, with a computed link field added to the CDS view so the UI can open it. The PDF is generated in the backend and returned to the calling program rather than sent straight to a printer.Megastar, published 2025-03-18
Understanding Projections in CAPM: Select Only What You Need!Understanding Projections in CAPM: Select Only What You Need!One concept, explained by someone who had just learned it and says so — what a projection is, why it matters, and an analogy. The register is unusual here and suits the subject: projections are the first thing that makes CDS feel different from a table.Avisek_, published 2025-06-10
Accelerating Your Analytics with Delta Table Replication into SAP HANA CloudAccelerating Your Analytics with Delta Table Replication into SAP HANA CloudStarting with QRC 04/2025, SAP HANA Cloud can replicate a Delta Lake table from an external Delta Sharing source directly into a native HANA table, rather than only querying it live through a virtual table. The post walks through creating a remote subscription, running a chunk-based initial load, and setting up change data capture on a schedule or on demand, each with the SQL statements and monitoring views involved, plus the simpler virtual-table-toggling and HANA Cloud Central UI alternatives.SeungjoonLee, published 2025-12-22
CAPM Basics - Part 2CAPM Basics - Part 2Walks through deploying a CAP application to SAP BTP, Cloud Foundry Runtime: provisioning a SAP HANA Cloud instance and HDI container, then running cds add hana and cds add xsuaa --for production, cds build --production, and an MTA build and deploy. Tests the deployed service in Postman with an OAuth 2.0 client credentials token from the XSUAA binding (SAP Authorization and Trust Management service), explicitly leaving out any role templates or scopes.archisman92, published 2025-02-28
Create a CAP Application with SAP HANA Cloud from Scratch and Deploy to Cloud FoundryCreate a CAP Application with SAP HANA Cloud from Scratch and Deploy to Cloud FoundryThe whole lifecycle in one post rather than a series — model, service, HANA binding, build, deploy. Useful as a single reference for the order things have to happen in, which is the part that is easy to get wrong when it is spread over six posts.MaheshSirsat1708, published 2025-11-19
Create a CAP Application with SAP HANA Cloud from Scratch and Deploy to Cloud Foundry
Database connectors changed in @sap/cds 10.1.0, 2026-09-07. Affects A recipe.
Creating a Hybrid CAP (Node.js) Profile with PostgreSQL on BTP from Business Application StudioCreating a Hybrid CAP (Node.js) Profile with PostgreSQL on BTP from Business Application StudioHybrid testing is documented for HANA; this is the same profile against a PostgreSQL instance on BTP, driven from a BAS dev space rather than a laptop. Proposed under editor support because of where it runs, but the subject is the binding: what cds bind writes, and what has to be true of the service instance and the tunnel for a local process to reach it.valentincadart, published 2025-10-02
Creating a Hybrid CAP (Node.js) Profile with PostgreSQL on BTP from Business Application Studio
Database connectors changed in @sap/cds 10.1.0, 2026-09-07. Affects Runnable code.
First Java Cap ApplicationFirst Java Cap ApplicationA step-by-step walkthrough of a first CAP Java project: com.sap.cds:cds-services-archetype scaffolds the initial Maven project, and the domain model is then rewritten in the db folder with entities, the cuid and managed aspects, associations, compositions and a CodeList, so a hand-coded event handler serving a single entity gives way to a service that CAP's generic persistence handling serves without custom code. It deploys that model to SQLite for local development — cds deploy --to sqlite, then a Spring profile pointing at the generated database file — and ends by adding an index.cds so the model and service can be published as a reusable npm module.bruce_wang3, published 2020-12-08
Getting started with CAP on PostgreSQL (Node.js)Getting started with CAP on PostgreSQL (Node.js)Running CAP on PostgreSQL locally in 2020, when doing so meant the community packages cds-pg and cds-dbm. It now opens with a banner the author added later: @sap/cds 7.0.0 has native PostgreSQL support, use @cap-js/postgres instead, with a pointer to a step-by-step guide for it. Worth having for that banner as much as for the content — a post that tells you not to follow it is a dated fact about where the answer moved.published 2020-11-16
Getting started with CAP on PostgreSQL (Node.js)
cds-pg. Affects Runnable code.
Lets Talk to the Database - CAP & SQLite Powered by Google Gemini-2.5-ProLets Talk to the Database - CAP & SQLite Powered by Google Gemini-2.5-ProNatural language against a CAP service on SQLite, with a non-SAP model doing the translation. Written as a learning exercise rather than a pattern, and the choice of Gemini over anything in the AI hub is the interesting part of it.ShivamShuklaSAP, published 2025-04-16
PostgreSQL persistence adapter for CAP (Node.js)PostgreSQL persistence adapter for CAP (Node.js)The contradiction the adapter was built to resolve, stated plainly in 2020: CAP's core is open, non-intrusive and platform-agnostic, which is what would let it run outside SAP's world — except that HANA was the only officially supported production persistence and HANA exists only inside BTP. cds-pg is the answer to that, and this is the post that argues for it. Read now as the front end of a story whose other end is the 2023 post recording cds-pg's deprecation in favour of @cap-js/postgres.published 2020-08-20
PostgreSQL persistence adapter for CAP (Node.js)
cds-pg is archived. @cap-js/postgres answers the same capability. Affects Runnable code.
Run and Deploy CAP with PostgreSQL on SAP BTP Cloud Foundry (Node.js)Run and Deploy CAP with PostgreSQL on SAP BTP Cloud Foundry (Node.js)The deployment half of the pair, two weeks after the local one, and superseded the same way: it carries the same banner directing readers to @cap-js/postgres and the official documentation. The two together are the community PostgreSQL path as it stood before the core absorbed it.published 2020-11-30
Run and Deploy CAP with PostgreSQL on SAP BTP Cloud Foundry (Node.js)
cds-dbm. Affects Runnable code.
SAP CAP Lessons Learned: SQLite is single threaded, HANA is notSAP CAP Lessons Learned: SQLite is single threaded, HANA is notA page long, and one of the more useful pages here: the local database serialises what the deployed one runs in parallel, so concurrency bugs are invisible until they are not. Filed by the author as something the tutorials do not make clear.LucasMagriniRigo, published 2025-01-22
SAP CAP With Prostgres Serice in BTPSAP CAP With Prostgres Serice in BTPA step-by-step walkthrough of a CAP bookshop project on @cap-js/postgres, provisioning PostgreSQL on SAP BTP, hyperscaler option's trial plan through mta.yaml, building the MTA archive and deploying it to Cloud Foundry by hand, then inspecting the deployed database with pgAdmin over an SSH tunnel. It updates an earlier post by Mike Zaschka on the same topic to the package CAP now ships by default, though the manual build-and-deploy sequence it shows predates cds up folding those steps into one command by a day.satya-dev, published 2025-03-30
SAP Cloud Application Programming Model(CAP):概要およびデモ - Part 1SAP Cloud Application Programming Model(CAP):概要およびデモ - Part 1Introduces SAP Cloud Application Programming Model as an open, opinionated framework that shoulders OData plumbing and database-specific code so a domain is modelled once in CDS, then builds a small bookshop project to show it: @sap/cds-dk's cds init scaffolds the project, cds watch serves it locally with live reload against an in-memory SQLite database, and a CatalogService projects a CDS domain model seeded from CSV files. The result is read as an OData service in the browser and exercised further through a Postman collection, with the optional @sap/vscode-cds extension noted for CDS syntax highlighting and completion in VS Code.rasai, published 2020-12-31
Using HANA Cloud’s "VECTOR_EMBEDDING" Function in CAPUsing HANA Cloud’s "VECTOR_EMBEDDING" Function in CAPEmbeddings generated inside the database rather than fetched from AI Core or an external model — a Q4 2024 HANA Cloud function, used from CAP. The shift it describes is where the embedding step lives, which changes what has to be deployed and what has to be called.published 2025-03-02
Getting started with CAP on PostgreSQL (Node.js)Getting started with CAP on PostgreSQL (Node.js)Running CAP on PostgreSQL locally in 2020, when doing so meant the community packages cds-pg and cds-dbm. It now opens with a banner the author added later: @sap/cds 7.0.0 has native PostgreSQL support, use @cap-js/postgres instead, with a pointer to a step-by-step guide for it. Worth having for that banner as much as for the content — a post that tells you not to follow it is a dated fact about where the answer moved.published 2020-11-16
Getting started with CAP on PostgreSQL (Node.js)
cds-pg. Affects Runnable code.
HANA Database Migration: Handling Incompatible Changes to Existing TablesHANA Database Migration: Handling Incompatible Changes to Existing TablesThe question schema evolution exists for, asked plainly: how do you restructure a table in a production system that already holds live data. Incompatible changes are the ones CAP's own alter path will not make, which is where this starts.Sekar Somasundaram, published 2025-04-16
Run and Deploy CAP with PostgreSQL on SAP BTP Cloud Foundry (Node.js)Run and Deploy CAP with PostgreSQL on SAP BTP Cloud Foundry (Node.js)The deployment half of the pair, two weeks after the local one, and superseded the same way: it carries the same banner directing readers to @cap-js/postgres and the official documentation. The two together are the community PostgreSQL path as it stood before the core absorbed it.published 2020-11-30
Run and Deploy CAP with PostgreSQL on SAP BTP Cloud Foundry (Node.js)
cds-dbm. Affects Runnable code.
Semantic search in CAP (Node.js): vector embeddings and cosine similaritySemantic search in CAP (Node.js): vector embeddings and cosine similarityFinding the best semantic match for a prompt inside an entity, using local vector embeddings and cosine similarity — and the finding the author leads with is that it works without a vector database at all. Reported as experiments rather than as a pattern, which is the honest register for it: the interesting claim is how little infrastructure the simple case needs.published 2025-12-09
A simple example of a SAP RAP Application based on Legacy API without UUID keysA simple example of a SAP RAP Application based on Legacy API without UUID keysWalks through building a managed RAP business object over the Flight Reference Scenario's Travel and Booking entities with unmanaged save and late numbering, so CRUD operations route through the legacy /DMO/FLIGHT_TRAVEL_CREATE, _UPDATE and _DELETE function modules instead of generated persistence, a worked case of ABAP's transactional model. Covers the ADJUST_NUMBERS and SAVE_MODIFIED saver methods that map preliminary draft keys to the legacy-assigned travel and booking IDs, and a GetDefaultsForBookings action that proposes the next booking ID during draft handling.cseijas, published 2025-09-01
BEHAVIOR_ILLEGAL_STATEMENT dump | Technical workaroundsBEHAVIOR_ILLEGAL_STATEMENT dump | Technical workaroundsThe BEHAVIOR_ILLEGAL_STATEMENT dump fires in SAP RAP when an explicit COMMIT WORK or ROLLBACK WORK, or a direct database write, collides with RAP's own transactional model: a Logical Unit of Work split into an interaction phase, where changes sit in a transactional buffer, and a save sequence that validates and persists them. The post then names four ways to move the offending statement into a separate task instead — the Background Processing Framework, parallel processing, Application Jobs, or, on-premise only, a wrapper RFC function module called with DESTINATION 'NONE' — pointing to further reading for each rather than working through any of them here.PranayGaroo, published 2025-08-11
BO Interface APIs : An alternative to BAPIs and traditional FMsBO Interface APIs : An alternative to BAPIs and traditional FMsWalks through updating an S/4HANA Purchase Order's line items through a released BO interface instead of a BAPI, using EML against the underlying CDS entity and a COMMIT ENTITIES statement because the call sits outside a behavior class. Argues the BO interface route avoids a RAP behavior class's restriction against calling COMMIT WORK directly, and covers finding a released interface's CRUD operations on api.sap.com and extending the same approach to a custom field or a custom RAP-based Fiori app's own BO.Sudhan_Nagarajan, published 2025-07-02
ABAP code to wait for the end of "inbound bgRFC type Q" unitsABAP code to wait for the end of "inbound bgRFC type Q" unitsWalks through inbound bgRFC type Q — ABAP's queue-based flavor of async processing built on background remote function calls — and gives a helper ABAP class that polls cl_qrfc_client_inbound for each unit's and queue's state until every unit submitted across a set of parallel qRFC queues has finished. The method assumes no single unit spans more than one inbound queue, and the author flags the classes it relies on, cl_qrfc_client_inbound=>get_unit_state and get_queue_state, as unverified for this use.Sandra_Rossi, published 2025-10-07
Beginners Guide to Advanced Event MeshBeginners Guide to Advanced Event MeshA scenario-by-scenario walkthrough of Advanced Event Mesh, run through Cloud Integration iFlows: publishing and consuming queue messages, dead message queue setup with retry counts and acknowledgment modes, direct messages, durable topic endpoints and selectors, time-to-live, REST Delivery Points, replay by replication group message ID, parallel consumers with partition keys, and the request-reply pattern. Each scenario is built and verified step by step against a Solace trial account standing in for AEM.PriyankaChak, published 2025-07-24
Cloud-Native with ABAP Cloud – The Transactional Outbox PatternCloud-Native with ABAP Cloud – The Transactional Outbox PatternImplements the transactional outbox pattern in ABAP Cloud's background processing framework (bgPF): a RAP business object's save sequence registers a bgPF handler implementing IF_BGMC_OP_SINGLE, and the RAP runtime runs it, and only then emits the message, after the database commit succeeds, so a rolled-back transaction emits nothing. The post walks through the full working example published as SAP-samples/abap-platform-rap-transactional-outbox-with-bgpf.published 2025-11-12
DIY JDBC Sender Adapter for SAP Integration SuiteDIY JDBC Sender Adapter for SAP Integration SuiteSimulates the JDBC Sender Adapter that SAP Integration Suite dropped from SAP PO by polling a source database with a Request/Reply step, triggered by a configurable scheduler or a manual HTTP call, and writing the result to a DataStore or JMS Queue to decouple polling from mapping and insertion. Retries run against a configured maximum, a failed batch escalates to a Dead Letter Queue once they are exhausted, and a mapping failure skips retries and escalates straight away from its own local subprocess. The author reports migrating several SAP PO scenarios onto this flow design and offers a reusable template on request.lanza, published 2025-10-21
Quick tip: event/task scheduling in CAP Node.js (in alpha state)Quick tip: event/task scheduling in CAP Node.js (in alpha state)A note on something spotted in capire's May 2025 release notes rather than a technique: CAP Node.js is to support scheduling events — actions and functions included — with callbacks, currently alpha and explicitly subject to change. Useful as a dated marker of the core moving into ground the community has been covering, and the alpha caveat is the point rather than a footnote.published 2025-10-30
Completing the B2B migration into SAP Integration Suite visionCompleting the B2B migration into SAP Integration Suite visionWalks through migrating SAP PI's B2B integrations — EDIFACT, X12 and other partner formats — into Trading Partner Management in SAP Integration Suite: recording test messages from SAP PI, creating partner profiles, and filling a Self Partner Agreement template that references the MIG and MAG guidelines SAP's own migration path builds on. The author's migration tool, Figaf, turns each Operation Mapping into a Process Direct flow, carrying its UDFs to Groovy or SAP's Cloud Integration Function Libraries, then reruns the recorded test cases against the result.DG, published 2025-09-09
CAP: Consume External Service – Part 3CAP: Consume External Service – Part 3Built to work around CAP limitations at the time — OData-only external services, no custom headers, no complex OData queries — the post walks through cdse, the author's own module that resolves a named destination from the CAP project's configuration and calls axios directly, so a handler reads the same way whether it is tested locally against a raw URL or deployed against SAP Cloud Platform's Destinations service. A 2022 update at the top of the post calls it obsolete, since the CAP framework has since addressed the limitations it set out to work around. The walkthrough of cdse resolving a destination and switching between a local credentials.url and an SCP destination, including pulling credentials from VCAP_SERVICES when the lookup fails locally, still holds as a worked example.published 2020-07-27
Configure Journal Entry Posting Approval from Store Template in Build Process AutomationConfigure Journal Entry Posting Approval from Store Template in Build Process AutomationWalks through deploying SAP's Journal Entry Posting Approval template from the SAP Build Process Automation Store against an on-premise S/4HANA system that has no Secure Network Connection: destinations for S/4HANA via Cloud Connector, for SAP Document Management service, integration option to hold the approval's supporting documents, and for the BPA service and its SMTP mail. It then swaps the template's SNC action groups for basic-connection BAPI calls and deploys the approval's UI5 applications so the task lands in My Inbox, with a Desktop Agent registered to run the unattended document-check and document-post automations.published 2025-01-28
Configuring SAP Cloud Integration for an IBP to S/4HANA (on prem / private cloud) integrationConfiguring SAP Cloud Integration for an IBP to S/4HANA (on prem / private cloud) integrationWalks through creating the two BTP destinations an Cloud Integration iflow needs for an IBP-to-S/4HANA integration: one of type RFC with a WebSocket RFC server host and port for the IBP tenant, and one of type RFC with the on-premise proxy type, a Cloud Connector location ID and a virtual host for the S/4HANA system. It then has the reader copy SAP's prebuilt IBP integration packages into the Design workspace and deploy every reusable iflow in them before a business iflow can call the S/4HANA extractor through SAP Connectivity service.SofianePebre, published 2025-08-27
Connect to Public Cloud API in Node.js via Authorisation CodeConnect to Public Cloud API in Node.js via Authorisation CodeThe authorisation code flow rather than client credentials, which is the harder half: a service key, an XSUAA instance bound to the CAP app, and a destination, with the author saying plainly that this was challenging and they hope it saves somebody the same time.Egan, published 2025-07-22
Consuming data from SAP Datasphere in SAP BTP CAP ApplicationsConsuming data from SAP Datasphere in SAP BTP CAP ApplicationsDatasphere as the source a CAP application reads from — the case for it being that Datasphere already unified the SAP and non-SAP data, so the application does not have to. From a real project.sudheer-tammana, published 2025-06-03
Developing Mobile Apps with SAP BuildDeveloping Mobile Apps with SAP BuildA tutorial that builds a cross-platform mobile app with the Mobile Development Kit on top of the CAP-based data service from the author's earlier posts, using the mobile Dev Space in SAP Business Application Studio to configure and deploy the app to SAP Mobile Services. It sets up the mobile destination against SAP Destination service two ways — reusing the BTP destination already created for the CAP service, or an Internet Destination with OAuth2 User Token Exchange and a manually retrieved client secret — and turns on Cross Context SSO so a token issued in the browser carries into the generic SAP Mobile Services Client app on the phone.published 2025-05-22
Establishing connectivity between a local CAP runtime and on-premise systemsEstablishing connectivity between a local CAP runtime and on-premise systemsReaching S/4HANA, an on-premise HANA or any HTTP service from a CAP process running on your laptop — the case where the connectivity proxy the platform provides is not there and the tunnel has to be arranged.vLeonkev, published 2025-10-15
Exposing SAP S4 Onprem data to external System || Odata Service || BTP || Destination-ConnectivityExposing SAP S4 Onprem data to external System || Odata Service || BTP || Destination-ConnectivityA walkthrough that wraps an IDOC-reprocessing function module in a RAP OData service on S/4HANA on-premise, then reaches it from a Python app on Cloud Foundry by looking the on-premise system up through the Destinations service and calling it through SAP Connectivity service proxies behind Cloud Connector. It walks through the destination and connectivity service keys, resolving the destination's URL and credentials, and the connectivity-service token and proxy call needed to reach the on-premise OData endpoint, noting the app must run on Cloud Foundry since destination and connectivity lookups do not work from a local machine.Ace_D, published 2025-07-24
Extending SAP Sales and Service Cloud V2 Using CAPExtending SAP Sales and Service Cloud V2 Using CAPAn extension target that does not run on BTP at all — Sales and Service Cloud V2 sits directly on hyperscalers — so the separation between core and extension is enforced rather than encouraged. That constraint is what makes the post worth reading.Quablab, published 2025-07-09
From REST to Datasphere: A CAP-based Integration ApproachFrom REST to Datasphere: A CAP-based Integration ApproachThe reverse direction and a second attempt: the authors had already written data into Datasphere with a small FastAPI service on the OPEN SQL schema, and this is what changed when they rebuilt it on CAP.christian_willi, published 2025-09-30
How to Access On-premise OData from the Business Application Studio - CAPM DevelopmentHow to Access On-premise OData from the Business Application Studio - CAPM DevelopmentA destination-naming constraint found the hard way and then corrected in public: the post carries its own update saying that with a CAPM app, a standard destination works through the studio's proxy as long as the name matches [a-z0-9-]. The update credits a comment on the post, so the correction and its source are both in the record.laszlo_kajan2, published 2020-06-02
How to Access On-premise OData from the Business Application Studio - CAPM Development
Destinations changed in @sap-cloud-sdk/connectivity 4.0.0, 2025-03-04. Affects A recipe, Runnable code.
How to Call a Remote OData API from Your Local CAP Java ProjectHow to Call a Remote OData API from Your Local CAP Java ProjectThe Business Accelerator Hub sandbox called from a CAP Java project on a laptop, with a concrete finish line — a localhost URL that returns business partners. Everything needed to get there is listed, Maven and JDK versions included.Umezuki, published 2025-08-11
Part 1: How to build an extension application for SAP S/4HANA Cloud using CAP, SAP Cloud SDK and SAP Fiori elementsPart 1: How to build an extension application for SAP S/4HANA Cloud using CAP, SAP Cloud SDK and SAP Fiori elementsThe substantial part of a side-by-side extensibility series: CAP Node.js, Cloud SDK and Fiori elements against S/4HANA Cloud. Eighteen thousand characters, and the one to read if you only read one.former_member748, published 2020-12-01
Part 1: How to build an extension application for SAP S/4HANA Cloud using CAP, SAP Cloud SDK and SAP Fiori elements
Fiori annotations changed in @sap/cds-dk 9.6.0, 2025-12-17. Affects A recipe, Runnable code.
Part 2: Architecting SaaS Resilience Against S/4HANA VariancePart 2: Architecting SaaS Resilience Against S/4HANA VarianceThe unspoken problem it names is a good one: a multitenant SaaS application faces not one S/4HANA but every customer's, each at a different release with different extensions. What resilience means when the backend varies per tenant.michal_majer, published 2025-10-20
Part 2: How to build an extension application for SAP S/4HANA Cloud using CAP, SAP Cloud SDK and SAP Fiori elementsPart 2: How to build an extension application for SAP S/4HANA Cloud using CAP, SAP Cloud SDK and SAP Fiori elementsThe second part, continuing the same extension. Opens with a recap of the stack rather than of the steps, which makes it readable on its own.former_member748, published 2020-12-20
Part 2: How to build an extension application for SAP S/4HANA Cloud using CAP, SAP Cloud SDK and SAP Fiori elements
Fiori annotations changed in @sap/cds-dk 9.6.0, 2025-12-17. Affects A recipe, Runnable code.
Sending Emails from SAP CAP Applications with Any SMTP ProviderSending Emails from SAP CAP Applications with Any SMTP ProviderWalks through sending mail from a CAP application with no dedicated mail service: create an SMTP destination for a Gmail account in the SAP BTP cockpit, bind it to the Cloud Foundry app, and call the sap-cf-mailer npm package from a CAP service handler naming that destination. The SAP Destination service holds the SMTP host, port and app password so the handler code names only the destination, and the same handler sends plain text, an HTML body, or a message with a base64-encoded attachment.MaheshSirsat1708, published 2025-08-19
Set up the SAP Cloud Connector: Integrating On‑Premise Systems with Cloud ServicesSet up the SAP Cloud Connector: Integrating On‑Premise Systems with Cloud ServicesA step-by-step walkthrough of installing Cloud Connector, adding a subaccount, managing identity and trust certificates in STRUST, and mapping cloud-to-on-premise paths for an SAP HANA backend. It ends by creating a Destinations entry in SAP BTP with proxy type OnPremise and basic authentication, then testing it from SAP Business Application Studio.Thijn_Grilis, published 2025-06-12
Use SCP CF Destination service in NodeJs locallyUse SCP CF Destination service in NodeJs locallyReading a destination from a laptop, where the environment variable the destination service normally provides does not exist. A small gap with a real cost, since the alternative is deploying to test every change to a remote call.WouterLemaire, published 2020-05-28
Use SCP CF Destination service in NodeJs locally
Destinations changed in @sap-cloud-sdk/connectivity 4.0.0, 2025-03-04. Affects Runnable code.
A cross application Fiori APP to print Adobe FormsA cross application Fiori APP to print Adobe FormsWalks through building a custom Fiori app that turns an existing Adobe print form (purchase orders, billing documents) into a downloadable PDF: a function module calls the standard form-data-provider interface to render the form, a SEGW OData service streams the result through a media entity's GET_STREAM, and a parameterised CDS view feeds a Fiori elements list with a download link per document. Two custom Z-tables supply the name-value pairs the form template needs, which the author flags as a stopgap for values that could be derived at runtime instead.padchalingam, published 2025-07-22
Basic code's of ABAPBasic code's of ABAPNine standalone ABAP reports built around REUSE_ALV_GRID_DISPLAY and CL_SALV_TABLE, covering display, screen validation, spool creation, Excel upload and table maintenance without SM30. One report raises and catches a custom exception class with RAISE EXCEPTION and TRY/CATCH, the class-based mechanism error handling names for ABAP; another submits a job to spool, converts it to PDF with CONVERT_ABAPSPOOLJOB_2_PDF and exports a CL_SALV_TABLE result to Excel before mailing both, producing document output from spool rather than Form Builder.RakeshZore, published 2025-09-30
Generating Adobe Form Using RAP framework OData ServicesGenerating Adobe Form Using RAP framework OData ServicesModels a RAP root view entity and consumption view over a custom sales-order table, built with ABAP CDS, and exposes it through a service definition and an OData V2 UI service binding. A separate SEGW project implements GET_STREAM to call an Adobe Form driver class and stream the rendered PDF back as the response, with a computed link field added to the CDS view so the UI can open it. The PDF is generated in the backend and returned to the calling program rather than sent straight to a printer.Megastar, published 2025-03-18
How to Merge Two Separate Smart Forms into a Single PDF in SAPHow to Merge Two Separate Smart Forms into a Single PDF in SAPWalks through generating two separate Smart Forms as OTF, converting each to PDF with CONVERT_OTF, then combining them into one file with cl_rspo_pdf_merge before downloading the result to the frontend. The whole flow runs inside the ABAP system that holds the data, from SMARTFORMS-built forms to a single merged PDF on the local device.chandu_kumar_badukuri, published 2025-12-17
Merge multiple PDF forms into a single document for download or printing.Merge multiple PDF forms into a single document for download or printing.Faced with bundling several Adobe-Forms-generated PDFs into one file, where FP_JOB_OPEN could not handle the parameters a bundled FP_GET_PDF_TABLE output needed and the forms themselves could not be changed, the author merges the individual PDFs at runtime with the CL_RSPO_PDF_MERGE class instead. Walks through opening the spool job with FP_JOB_OPEN, generating each form via its FP_FUNCTION_MODULE_NAME-resolved function module, adding each result's xstring to the merger with add_document, then calling merge_documents and converting the result for GUI_DOWNLOAD or printing.MiljanDjuric, published 2025-06-17
Beginners Guide to Advanced Event MeshBeginners Guide to Advanced Event MeshA scenario-by-scenario walkthrough of Advanced Event Mesh, run through Cloud Integration iFlows: publishing and consuming queue messages, dead message queue setup with retry counts and acknowledgment modes, direct messages, durable topic endpoints and selectors, time-to-live, REST Delivery Points, replay by replication group message ID, parallel consumers with partition keys, and the request-reply pattern. Each scenario is built and verified step by step against a Solace trial account standing in for AEM.PriyankaChak, published 2025-07-24
Complete Guide: Setting Up CAP Plugin for Advanced Event Mesh with OAuth AuthenticationComplete Guide: Setting Up CAP Plugin for Advanced Event Mesh with OAuth AuthenticationWritten because the plugin's own documentation stops short of the prerequisites and the author had to assemble them from three other sources and a help chapter. It joins them: the OIDC application in Identity Authentication, the OAuth profile in Broker Manager, the token checked before anything is wired, and only then the plugin. The author says plainly it came out of trial and error and was going to be a README.rpagni, published 2025-11-10
Enhancing SAP Business Events with Custom Payload Fields using RAPEnhancing SAP Business Events with Custom Payload Fields using RAPWalks through enriching an outbound Business Partner event for Event Mesh that by default carries only the partner ID: a derived RAP business event, raised from a behaviour definition with RAISE ENTITY EVENT and bound through SWE2 event linkage to a receiver function module, adds first and last name to the payload. The custom event is defined on a root view entity over BUT000 and verified in /IWXBE/EVENT_MONITOR, where the enriched JSON payload shows the extra fields reaching subscribers without an additional callback to the source system.BramhaniG, published 2025-10-27
Event enabling SAP Data Replication Framework with Advanced Event Mesh & AIFAEMEvent enabling SAP Data Replication Framework with Advanced Event Mesh & AIFAEMWalks through connecting SAP's ABAP-side Data Replication Framework to Advanced Event Mesh by way of the AIFAEM add-on, bypassing SAP Cloud Integration: a custom ABAP class maps business-partner replication data into AIF, which publishes it to AEM in CloudEvents format. The author's own disclaimer favours the standard pattern instead — a Standard DRF Replication through an Integration Suite iFlow with the AEM adapter — and presents this direct, custom-ABAP route only as a documented alternative.AlexPfeil, published 2025-08-21
Event-driven Extensions for SAP SuccessFactors on SAP BTP – Connecting the DotsEvent-driven Extensions for SAP SuccessFactors on SAP BTP – Connecting the DotsWalks through an event-driven extension for SAP SuccessFactors: Automated Configurations registers the SuccessFactors system against an SAP BTP account with an integration token, and a SuccessFactors custom integration then pushes events, such as an employee joining or leaving, to a topic in Event Mesh that a CAP application subscribes to. The SuccessFactors APIs themselves are downloaded as EDMX files from SAP API Business Hub and imported into the CAP project, the same EDMX-import path behind service integration, so CAP generates the client used to call them. A reference application, RunSmooth, ties Automated Configurations, Event Mesh and CAP together end to end.Former Member, published 2020-08-12
Getting Started with SAP Event Mesh: Concepts, Setup, and Best PracticesGetting Started with SAP Event Mesh: Concepts, Setup, and Best PracticesExplains SAP Event Mesh as SAP's managed messaging service and works through its core concepts: queues versus topics, publish-subscribe versus point-to-point delivery, and direct versus guaranteed messaging. A hands-on half wires a Solace event broker to SAP Cloud Platform Integration, with two iFlows publishing to and consuming from a queue and a topic over AMQP and HTTP REST.vvinay_kumar, published 2025-10-15
How to Perform Initial Loads from S/4HANA to Advanced Event Mesh with Odata PollHow to Perform Initial Loads from S/4HANA to Advanced Event Mesh with Odata PollWalks through building a Cloud Integration flow that polls the S/4HANA Business Partner OData API on a timer, splits the response into individual records, and publishes each as an event to Advanced Event Mesh through its adapter, with the topic set dynamically from a grouping property. Selects fields and expands associations with $select/$expand against an EDMX from the API Business Hub, and works around the OData V2 adapter's lack of JSON support by falling back to the HTTP adapter with an XML-to-JSON converter. Flags the trade-off: the pattern needs no backend change beyond activating the API, but the polled payload has to stay aligned with whatever event format the ERP pushes on change.AlexPfeil, published 2025-04-04
How to subscribe or fetch data from solace to CPI using AEM Adapter : part-5How to subscribe or fetch data from solace to CPI using AEM Adapter : part-5Closes a series on event-driven architecture with Solace by detailing the subscriber side of an iFlow in Cloud Integration: an advanced event mesh adapter feeds an exception subprocess, and a Groovy step classifies each failure as recoverable, left to Solace's own retry, or non-recoverable, answered with a custom property that tells Solace to stop retrying before the message reaches an escalation layer. The escalation layer names email, ServiceNow and Loggly as destinations without explaining any of them.pavanKolla, published 2025-08-03
How to use a CAP application to manage DMQ messages on SAP Advanced Event MeshHow to use a CAP application to manage DMQ messages on SAP Advanced Event MeshA CAP application built for the failure path rather than the happy one. Messages that land in a Dead Message Queue are deleted for good when their TTL expires, so this pulls them out first and holds them in quarantine, where a Fiori elements UI lets someone inspect a payload, correct it and reinject it. An operations tool, and a rare write-up of what to do after delivery has already failed.stefan-keuker, published 2025-12-31
How to use a CAP application to manage DMQ messages on SAP Advanced Event Mesh
Event Mesh changed in @sap/cds 10.0.3, 2026-07-02. Affects Runnable code.
Implementing Event-Driven Architecture in CAP Java using SAP Event MeshImplementing Event-Driven Architecture in CAP Java using SAP Event MeshPublish and consume from the Java stack, which most of the Event Mesh writing on the community does not cover. The MTA declaration and the credentials come first, then the emit and the handler, then the two sections that make it worth keeping: error handling with retries, and securing the events with OAuth.Soumya-Pirlamarla, published 2025-11-26
Implementing Event-Driven Architecture in CAP Java using SAP Event Mesh
Event Mesh changed in @sap/cds 10.0.3, 2026-07-02. Affects A recipe.
SAP EHS Public Cloud: Extending Your Existing Landscape Side-by-Side - Guidebook (Part 4)SAP EHS Public Cloud: Extending Your Existing Landscape Side-by-Side - Guidebook (Part 4)Two custom iFlows in SAP Integration Suite subscribe over AMQP to Event Mesh queues, triggered by SAP S/4HANA On-Premise's Enterprise Event Enablement channels publishing Equipment and Functional Location changes; each flow calls the on-premise OData API, maps the result, and pushes it into SAP S/4HANA Cloud Public Edition through the SAP_COM_0395 communication scenario. The synchronized Plant Maintenance data feeds SAP EHS Public Cloud's risk management, incident management and emissions management processes, which otherwise have no asset master data of their own.duynguyendeloitte, published 2025-11-28
SAP Event Mesh Architecture PatternsSAP Event Mesh Architecture PatternsNine architectural patterns for wiring producers and consumers through queues, topics and webhooks: single-subscriber point-to-point delivery, fan-out to multiple subscribers, filtering several event types into one subscriber, domain-scoped topic subscriptions, an aggregator that bundles related events, a multi-stage enrichment pipeline, scatter-gather over parallel requests, a dead-letter queue for poison messages, and pushing events to an HTTP webhook. Each pattern states its motivation, a pros-and-cons pair, when to use it and example queue or topic names.vbalko-claimate, published 2025-05-16
Using Apache Kafka for messaging in the SAP Cloud Application Programming Model (CAP) – Part 1/2Using Apache Kafka for messaging in the SAP Cloud Application Programming Model (CAP) – Part 1/2The theory half of a pair introducing cds-kafka: what the plugin is for and what it can do, with event-driven architecture set up as the reason rather than assumed. Nothing is deployed here — the running application is part two — so this is the post to read if the question is whether Kafka belongs in the picture at all rather than how to wire it.published 2025-01-02
Using Apache Kafka for messaging in the SAP Cloud Application Programming Model (CAP) – Part 2/2Using Apache Kafka for messaging in the SAP Cloud Application Programming Model (CAP) – Part 2/2The practical half: concrete use cases for cds-kafka, running locally and on BTP. It opens by placing the plugin among SAP's own event-driven offerings rather than beside them, which is the part that decides whether you reach for this or for Event Mesh — a comparison a plugin's own README rarely makes about itself.published 2025-01-13
Automating iFlow Documentation with SAP Integration Suite and Gemini AIAutomating iFlow Documentation with SAP Integration Suite and Gemini AIAn integration flow built from Cloud Integration's own steps — timer start, parallel multicast, process calls, join and gather, and a data store write — retrieves another iFlow's design-time metadata and resources (Groovy scripts, XSLT mappings, EDMX schemas) through the IntegrationDesigntimeArtifacts OData API on SAP Integration Suite. The walkthrough gives each flow step's configuration, the OData endpoints and sample request/response payloads, and an exception subprocess for error logging, before assembling the retrieved XML and posting it to Google's Gemini API to generate a technical specification document stored back in a datastore.Andrew-Fawzy, published 2025-07-18
Beyond REST: Exploring GraphQL API Integration in SAP BTP Integration SuiteBeyond REST: Exploring GraphQL API Integration in SAP BTP Integration SuiteBecause Cloud Integration in SAP Integration Suite ships no native GraphQL adapter, the author builds a GraphQL integration flow on the standard HTTP adapter: a Groovy script assembles the query or mutation payload and sets the JSON content type, and a JSON-to-XML converter turns the response into something message mapping can consume. The walkthrough uses the public Countries API to stand in for a real order-synchronisation flow between an e-commerce platform and SAP S/4HANA.Avinash_Vaidya, published 2025-11-11
Cloud Integration with Document AICloud Integration with Document AIWalks through connecting Cloud Integration to SAP Document AI: an iFlow posts a prescription PDF to Document AI's job API, polls the job endpoint until it completes, and a groovy script reads back the result, keeping only the fields above a stated 60% confidence threshold. The scenario is a hospital extracting a new patient's past illnesses, allergies and blood group from uploaded prescriptions, matched against a custom extraction schema.PriyankaChak, published 2025-08-10
Designing Scalable Integration Flows in SAP BTP Using Pallets and AdaptersDesigning Scalable Integration Flows in SAP BTP Using Pallets and AdaptersExplains two building blocks of integration flows in SAP Integration Suite: a pallet, a reusable group of flow steps built as its own integration flow and called from another over the ProcessDirect adapter for loose coupling, with logging, transformation, error-handling, notification and security pallets as examples; and the adapters Cloud Integration ships to reach other systems — REST, SOAP, OData, IDoc, JDBC, ProcessDirect and SFTP — each with the protocols and authentication it supports. Written as a design pattern for reuse across flows rather than a single worked example.Saksham-Mutneja, published 2025-10-16
DIY JDBC Sender Adapter for SAP Integration SuiteDIY JDBC Sender Adapter for SAP Integration SuiteSimulates the JDBC Sender Adapter that SAP Integration Suite dropped from SAP PO by polling a source database with a Request/Reply step, triggered by a configurable scheduler or a manual HTTP call, and writing the result to a DataStore or JMS Queue to decouple polling from mapping and insertion. Retries run against a configured maximum, a failed batch escalates to a Dead Letter Queue once they are exhausted, and a mapping failure skips retries and escalates straight away from its own local subprocess. The author reports migrating several SAP PO scenarios onto this flow design and offers a reusable template on request.lanza, published 2025-10-21
End-to-End Error Handling with General Splitter and Local FlowsEnd-to-End Error Handling with General Splitter and Local FlowsA Cloud Integration iFlow splits an incoming XML payload with the General Splitter, calls an OData service in parallel for each part and gathers the results, then hands a failed call to an Exception Subprocess, where a Process Call reaches a Local Integration Process that calls a separate exception-handling iFlow over ProcessDirect. In that second flow a Content Modifier puts the interface ID and the stack trace into message headers and the tenant, flow and message ID into exchange properties, a Groovy script saves the message as a plain-text log attachment, and the Mail adapter sends the stack trace as an email; the failure itself is provoked by removing the https prefix from the OData URL. Each step is given with its own configuration, from the splitter's XPath and batch size to the ProcessDirect address format and the headers the exception handler sets.NaveenReddy_06, published 2025-07-02
Exploring SAP Salesforce Adapter - retry mechanism with JMS queueExploring SAP Salesforce Adapter - retry mechanism with JMS queueBuilds a retry design for Salesforce update failures in Cloud Integration on SAP Integration Suite: a Parent iFlow triggered by a Salesforce push topic calls a Child iFlow, whose Exception Subprocess routes specific Salesforce errors to a separate JMS Retry PD iFlow over a ProcessDirect target address. The retry iFlow stores the failed payload in a JMS queue (Enterprise Edition), retries up to five times with exponential backoff, moves exhausted messages to the dead-letter queue, and mails the Application Maintenance team; the author notes the queue's 10 GB size limit and that polling may pause under load.Shailaja, published 2025-09-05
Generation of Message Processing logs report for EDI transactions using SAP CI.Generation of Message Processing logs report for EDI transactions using SAP CI.Walks through building an integration flow in Cloud Integration that calls SAP's standard MessageProcessingLogs OData API, plus a second request for custom headers, and converts the combined result to a CSV report of order, order-acknowledgement and invoice status by trading partner for EDI transactions. Getting the trading partner number into that report first requires a Groovy script and exchange property added to each EDI I-Flow so the value is captured as a custom header in message monitoring.NagurBabu, published 2025-03-13
Handling File Routing and Alerts in SAP CPI Based on File TypeHandling File Routing and Alerts in SAP CPI Based on File TypeWalks through building a Cloud Integration flow that pulls files from one SFTP server, captures the name and extension with a Content Modifier's ${file:ext} expression, and uses a Router to send XML files on to a second SFTP server while any other extension, or a missing XML file, triggers an alert. The alert is a Mail adapter step authenticated against Gmail's SMTP server with an app password, so the piece covers an adapter, a router condition and a mail step as parts of one flow.harsh__chauhan, published 2025-04-03
How to Configure Retry Mechanism in SAP BTP CI/IS to Handle Only Connectivity Errors when using AEMHow to Configure Retry Mechanism in SAP BTP CI/IS to Handle Only Connectivity Errors when using AEMShows how to configure a Cloud Integration iFlow with an AEM sender so only connectivity errors trigger a retry: a Groovy script reads the CamelHttpResponseCode header and looks it up in a value map, and a router then sends a transient failure such as a 408 timeout down the retry path, where the retry limit set in AEM applies, and an error needing manual intervention, such as a 401, down a path that ends the flow at once and emails the team. It applies only to receiver adapters that return CamelHttpResponseCode, among them HTTP, SOAP, IDoc and OData. It builds on an earlier post of the author's, which this one does not name, where an email goes out after the final retry attempt.Jayabalaji_Sakthivel, published 2025-01-21
how to create and expose OData APIshow to create and expose OData APIsA step-by-step walkthrough of building an OData API artifact in Cloud Integration: import a service's EDMX metadata, select an entity type, wire an ODATA receiver adapter into an integration flow with a response mapping, then deploy the artifact. The example targets the public Northwind service rather than an SAP backend, and the deployed ProductSet endpoint is tested in Postman with basic auth.SaiPrudhviRajTaduva, published 2025-02-26
How to Perform Initial Loads from S/4HANA to Advanced Event Mesh with Odata PollHow to Perform Initial Loads from S/4HANA to Advanced Event Mesh with Odata PollWalks through building a Cloud Integration flow that polls the S/4HANA Business Partner OData API on a timer, splits the response into individual records, and publishes each as an event to Advanced Event Mesh through its adapter, with the topic set dynamically from a grouping property. Selects fields and expands associations with $select/$expand against an EDMX from the API Business Hub, and works around the OData V2 adapter's lack of JSON support by falling back to the HTTP adapter with an XML-to-JSON converter. Flags the trade-off: the pattern needs no backend change beyond activating the API, but the polled payload has to stay aligned with whatever event format the ERP pushes on change.AlexPfeil, published 2025-04-04
Improving Exception Handling using Generative AI in SAP Cloud Integration (SAP CI/CPI)Improving Exception Handling using Generative AI in SAP Cloud Integration (SAP CI/CPI)Wires an Exception Subprocess in Cloud Integration to send a failed iFlow's caught exception text to Google Gemini's generateContent endpoint over the HTTP adapter, then parses the response in Groovy for a user-friendly error message, the likely causes, the steps to try and an HTTP status code to return to the sender. A Content Modifier holds the API key and the prompt as externalised properties, which the post says is what lets another model be put in their place, and a closing Groovy script writes the extracted fields to custom headers and log attachments and rebuilds them as an XML error response. The exception-subprocess wiring is given step by step and so is the Gemini call with its request format, which is why the piece sits on integration flows and on LLM integration.AdarshRao, published 2025-07-20
Integration Suite: Automating Email Alerts for Failed Interfaces in SAP CPIIntegration Suite: Automating Email Alerts for Failed Interfaces in SAP CPIWalks through building a Cloud Integration iFlow on SAP Integration Suite that polls the Message Processing Logs OData V2 API for failed messages on a timer, groups them by interface with value mapping, and batches the results into one scheduled email per interface instead of an alert per failure. Covers routing recipients per interface, splitting a batch once it passes a configured record count, and excluding interfaces flagged with a custom status so they raise their own real-time alert outside the consolidated flow.Daggolu_PremSai, published 2025-02-18
LeanIX Adapter for SAP Integration SuiteLeanIX Adapter for SAP Integration SuiteA walkthrough configures the LeanIX Adapter for SAP Integration Suite's Cloud Integration runtime, wiring its Receiver Adapter with an Address, API Token Alias and LeanIX OAuth authentication inside an integration flow. It demonstrates a REST scenario that creates a FactSheet and fetches one by ID, and a GraphQL scenario that updates a FactSheet through the adapter's Advanced Query operation.Swati_Singh1, published 2025-04-29
Lessons Learned: Fetching Learning History from SuccessFactors LMS Using OData APIsLessons Learned: Fetching Learning History from SuccessFactors LMS Using OData APIsA walkthrough of pulling SuccessFactors LMS Learning History records through its OData V4 API: the mandatory criteria/targetUserID filter, the errors that appear without it, and the $metadata endpoint used to confirm entity names, since the API returns one student at a time and never in bulk. Builds the integration flow in Cloud Integration as a Groovy script that loops over a list of student IDs, calls the API with a bearer token per student and aggregates the JSON responses into one payload.aayushaggarwal, published 2025-09-17
Microsoft GRAPH API - Read and extract attachments of Outlook email from Cloud IntegrationMicrosoft GRAPH API - Read and extract attachments of Outlook email from Cloud IntegrationBuilds an integration flow in Cloud Integration that authenticates to the Microsoft Graph API with an OAuth2 Client Credentials credential and an HTTP Receiver Adapter, then calls the Outlook inbox by MessageID to retrieve an email's attachment. A Groovy script using the pdfbox and fontbox libraries extracts the text from a PDF attachment, as an alternative to placing the attachment on SFTP unchanged or fetching the whole message with its attachment through the $value query.ChaithraShanmugam, published 2025-12-09
New CI Pipeline Restart Extension features: supporting new Pipeline package and improved Restart JobNew CI Pipeline Restart Extension features: supporting new Pipeline package and improved Restart JobA restart extension for Cloud Integration pipelines, in version 1.0.1: a Value Mapping or a technical-ID prefix check resolves which pipeline stage a failed message belongs to, so a custom receiver IFlow copy can be linked to the right stage even when its ID does not follow the standard naming, and a Generic Job Profile restarts every scenario resolved through the Alternative Partner approach instead of only the interfaces named in a fixed list. A new RestartJobLog parameter stores each run's log as a Message Processing Log attachment, in the database, or via a custom IFlow, and a companion "Pipeline API – Restart Job Log" Integration Flow retrieves that log or the Restart Job's own MPL details. The walkthrough is concrete about the Integration Flows, Value Mapping and Script Collection that make up the package, which is why it explains Integration flows rather than only the restart feature riding on top of them.slava_kuzyakin, published 2025-10-02
New Pipeline Concept features: integrated runtimes and supporting landscape stagesNew Pipeline Concept features: integrated runtimes and supporting landscape stagesDescribes version 1.0.9 of the Pipeline Concept package for Cloud Integration in SAP Integration Suite, which the post says can be taken from the SAP Business Accelerator Hub: a new integrated messaging runtime step merges inbound conversion with receiver and interface determination, cutting the JMS queues a scenario needs from four to two, or eight to four counting dead-letter queues, and a synchronous variant replaces queues with the ProcessDirect adapter for Content-Based-Router scenarios. It also maps a sender's actual business system name to an alias held in the Partner Directory, so the same XI and IDoc scenario definitions run across DEV, QA and PRD stages without converting names when transporting between them.alex_bundschuh, published 2025-01-29
New Pipeline for Cloud Integration features with version 1.0.11New Pipeline for Cloud Integration features with version 1.0.11Version 1.0.11 of the Process Integration Pipeline package for Cloud Integration changes two defaults the post says require attention. The "tilde option", which built a partner ID by joining the sender system and interface names, is now switched off: a message whose partner ID cannot be resolved through an alternative partner goes into an error that is resolved by fixing the Partner Directory entry and restarting the message, instead of being constructed under an ID that may not exist there and left on the first JMS queue with no way to correct its partner ID header. Keeping the old behaviour means setting the externalised parameter CustomXPid_SwitchOffTilde to false in the five generic flows that call the partner-ID script; the default inbound processing queue also moves from PIPQ01 to PIPX01 in the generic XI and IDoc inbound flows, so those messages go to the integrated messaging runtime rather than the fully decoupled pipeline.alex_bundschuh, published 2025-05-07
Optimized IDoc Routing in SAP CI with Value Mapping and Groovy-Based Receiver DeterminationOptimized IDoc Routing in SAP CI with Value Mapping and Groovy-Based Receiver DeterminationShreyasShenoy07 replaces SAP PI/PO's single shared IDoc destination with a receiver-determination pattern built in Cloud Integration: a generic iFlow reads the IDoc's EDI_DC40 header, looks up the sender identifier and the receiver list in two Value Mapping tables keyed by sender system and IDoc type, and a Groovy script evaluates each receiver's XPath condition before routing the message to a receiver-specific iFlow over the ProcessDirect adapter. Adding or changing a receiver becomes a Value Mapping edit instead of an iFlow redeployment, and the same IDoc can fan out to several receivers when more than one condition matches.ShreyasShenoy07, published 2025-08-08
Parallel Data Filtering and Dropbox Integration Using SAP Cloud IntegrationParallel Data Filtering and Dropbox Integration Using SAP Cloud IntegrationA step-by-step build of an integration flow in Cloud Integration: a Start Timer triggers the flow, a Parallel Multicast splits student records by gender through XPath filters, and each branch uploads its file to Dropbox over a Receiver Adapter authorized against a Dropbox app's OAuth2 credentials. An Exception Subprocess captures the error message and a Mail Adapter sends it over SMTP, centralizing error handling and an email notification for the whole flow.Vurumind03, published 2025-12-10
Process Integration Pipeline Extension - Restart via Data StoreProcess Integration Pipeline Extension - Restart via Data StoreOn SAP Cloud Integration's Process Integration Pipeline, a message that exhausts its JMS retries lands in a Dead Letter Queue with no API to query or move it, and the JMS broker carries a hard size limit. This package, published on SAP Business Accelerator Hub, replaces that path with Data Store entries written through the pipeline's custom exception-handling exit, a scheduled Restart Job Integration Flow, and two optional HTTP APIs for on-demand restarts and Data Store management. Entry names encode the partner ID, the pipeline stage, the message ID and a retry count, so messages can be filtered and restarted by scenario instead of moved one by one in the queue monitor.mate_moricz, published 2025-07-23
SAP EHS Public Cloud: Extending Your Existing Landscape Side-by-Side - Guidebook (Part 4)SAP EHS Public Cloud: Extending Your Existing Landscape Side-by-Side - Guidebook (Part 4)Two custom iFlows in SAP Integration Suite subscribe over AMQP to Event Mesh queues, triggered by SAP S/4HANA On-Premise's Enterprise Event Enablement channels publishing Equipment and Functional Location changes; each flow calls the on-premise OData API, maps the result, and pushes it into SAP S/4HANA Cloud Public Edition through the SAP_COM_0395 communication scenario. The synchronized Plant Maintenance data feeds SAP EHS Public Cloud's risk management, incident management and emissions management processes, which otherwise have no asset master data of their own.duynguyendeloitte, published 2025-11-28
SAP Neo Retires – Integration Developers Must Know Before Migrating from Neo to CFSAP Neo Retires – Integration Developers Must Know Before Migrating from Neo to CFWalks through what changes when Cloud Integration moves from the Neo environment to Cloud Foundry under SAP Integration Suite: custom adapters move from an Eclipse-plugin deployment to Integration Adapter artifacts managed in Cloud Integration's Design and Monitor applications, Neo's environment variables (HC_APPLICATION, HC_HOST, HC_REGION and others) map to Cloud Foundry's TENANT_NAME, VCAP_SERVICES and PORT, and OAuth clients for API access move from Neo administration tools to XSUAA under Integration Suite. Covers the same shift for security materials, transport management and monitoring, ahead of Neo's end of maintenance on 31 December 2028.SivaS, published 2025-12-03
SAP SOAP Sender & Receiver Adapters: Your Integration Game ChangersSAP SOAP Sender & Receiver Adapters: Your Integration Game ChangersA step-by-step build of two integration flows in Cloud Integration: a SOAP Sender Adapter, bound to an uploaded WSDL, that extracts an order number from an inbound SOAP request via XPath and enriches it with a shipment date fetched from the public Northwind OData service before mapping the result back into the SOAP response. A second flow's SOAP Receiver Adapter takes the reverse path, converting an inbound JSON request to XML and forwarding it to that first flow's SOAP backend, authenticated with Basic auth against a WSDL-derived operation name.Rishikasairi, published 2025-06-24
SAP集成套件中的Cloud Integration云集成功能概况介绍SAP集成套件中的Cloud Integration云集成功能概况介绍An overview of Cloud Integration within SAP Integration Suite: it positions Cloud Integration as the execution engine that processes and moves messages between systems, working alongside Integration Advisor, Trading Partner Management and API Management. It walks through building an integration flow in the low-code editor — connecting over HTTP/OData or RFC with built-in connectors and prebuilt content, transforming and mapping messages, then deploying and monitoring the flow — and closes by naming PI/PO Move, SAP's tooling to assess and migrate existing PI/PO integration content into the suite.ArthurYang, published 2025-10-28
Service Interfaces and ABAP Proxy generation support in SAP Integration SuiteService Interfaces and ABAP Proxy generation support in SAP Integration SuiteWalks through importing Service Interface artifacts from an on-premise ES Repository into Cloud Integration in SAP Integration Suite: configuring Cloud Connector and the ES Repository connection, then a wizard that lists and imports the repository's interfaces with their dependent resources. It also covers generating ABAP Proxies so an SAP R/3 or S/4HANA system can reach the Integration Suite tenant, pointing to a companion post for the SM59 destination side of that setup.radhika_javvaji, published 2025-09-18
SFTP Authentication Setup in SAP BTP Integration Suite: A Step-by-Step Guide.SFTP Authentication Setup in SAP BTP Integration Suite: A Step-by-Step Guide.A walkthrough of configuring the SFTP adapter's three authentication modes in Cloud Integration — username/password, public key and dual — each set up through Security Material and a Known Hosts entry generated from an SSH key pair. The sender and receiver integration flows it builds convert an OData response to CSV and move the file over SFTP, exercising the adapter and message-conversion steps the flow editor provides.NaveenReddy_06, published 2025-06-24
Stop Building From Scratch: Unlocking SAP Cloud Integration’s Standard ContentStop Building From Scratch: Unlocking SAP Cloud Integration’s Standard ContentArgues against building integrations from scratch by pointing to the Discover space of Cloud Integration: over 700 prebuilt integration packages and nearly 4000 iFlows, covering common scenarios such as S/4HANA-to-Salesforce business-partner and order sync, included at no extra cost under an SAP Integration Suite licence. Walks through where to find and copy a package, and the support trade-off it creates: SAP keeps supporting the standard baseline, but once a flow is directly modified the customer owns the lifecycle of that change, which the author sets against patterns like overlay mappings and wrapper orchestrators that preserve support.Punith_Oswal, published 2025-12-19
Use Datastore to avoid too many duplicate MPL attachments in exception retriesUse Datastore to avoid too many duplicate MPL attachments in exception retriesWalks through an Integration flows design on Cloud Integration: an exception subprocess that writes the source and in-flight payloads to a DataStore entry, keyed by the message's correlation header and overwritten on each retry, instead of a Groovy script attaching both payloads to the message processing log on every run. With unrestricted retries left in place, one interface the author retried 14 times produced two DataStore entries instead of up to 28 message processing log attachments; the post also notes that deleting the DataStore entry for a retrying message marks it Cancelled in monitoring without stopping the retries.pdimri, published 2025-11-26
Using SAP managed iFlows for Time series data Integration in SAP IBP – Part 2 - Writing dataUsing SAP managed iFlows for Time series data Integration in SAP IBP – Part 2 - Writing dataWalks through building a custom integration flow in Cloud Integration that writes time-series and master data into SAP IBP by calling the SAP-managed reusable iFlows behind communication scenario SAP_COM_0931, which consume RFC function modules through a communication user. It details the BTP destination needed to reach them (Type RFC, Proxy Type Internet, and the jco.client.* properties), and the main-flow and local-integration-process design — payload validation in a Groovy script, batch creation, then the XML attributes and payloads for posting master data and key-figure values and for triggering post-processing.Domnic, published 2025-07-18
AWS Mail configuration for SAP ABAP SystemsAWS Mail configuration for SAP ABAP SystemsWalks through routing an SAP ABAP system's outbound mail through Amazon SES instead of an on-premises mail server or a dedicated EC2 SMTP instance: verifying a sender address and generating SMTP credentials in SES, creating the SMTP node in transaction SCOT, importing the SES endpoint's certificate into the SSL client via STRUST, and testing delivery through SO01 and SOST. It covers the SMTP relay underneath ABAP's mail delivery, the layer Notifications marks as where the core stops and where a channel like this is written on top.brijesh_tripath, published 2025-03-04
Developing a Shell Plugin for SAP Build Work Zone to Display Custom NotificationsDeveloping a Shell Plugin for SAP Build Work Zone to Display Custom NotificationsThe rendering end of a notification rather than the publishing end: a shell plugin that changes what Work Zone shows, for the cases the standard notification card does not cover.Mykhaylo, published 2025-07-17
How To Implement Alert Notification Service in Cloud Application ProgrammingHow To Implement Alert Notification Service in Cloud Application ProgrammingA click-by-click setup of BTP's Alert Notification service against a CAP application. Operational alerting rather than business notification — the audience is whoever is on call, not the user — which is the distinction the Work Zone plugin here does not cover.Aditya12, published 2025-05-27
Parallel Data Filtering and Dropbox Integration Using SAP Cloud IntegrationParallel Data Filtering and Dropbox Integration Using SAP Cloud IntegrationA step-by-step build of an integration flow in Cloud Integration: a Start Timer triggers the flow, a Parallel Multicast splits student records by gender through XPath filters, and each branch uploads its file to Dropbox over a Receiver Adapter authorized against a Dropbox app's OAuth2 credentials. An Exception Subprocess captures the error message and a Mail Adapter sends it over SMTP, centralizing error handling and an email notification for the whole flow.Vurumind03, published 2025-12-10
Sending Emails from SAP CAP Applications with Any SMTP ProviderSending Emails from SAP CAP Applications with Any SMTP ProviderWalks through sending mail from a CAP application with no dedicated mail service: create an SMTP destination for a Gmail account in the SAP BTP cockpit, bind it to the Cloud Foundry app, and call the sap-cf-mailer npm package from a CAP service handler naming that destination. The SAP Destination service holds the SMTP host, port and app password so the handler code names only the destination, and the same handler sends plain text, an HTML body, or a message with a base64-encoded attachment.MaheshSirsat1708, published 2025-08-19