https://raw.githubusercontent.com/ajmaradiaga/feeds/main/scmt/topics/Cloud-Integration-blog-posts.xmlSAP Community - Cloud Integration2026-02-20T18:00:13.312253+00:00python-feedgenCloud Integration blog posts in SAP Communityhttps://community.sap.com/t5/technology-blog-posts-by-members/integration-suite-in-2025-amp-2026/ba-p/14320912Integration Suite in 2025 & 20262026-02-03T18:16:06.981000+01:00Sookriti_Mishrahttps://community.sap.com/t5/user/viewprofilepage/user-id/173946<P><SPAN>Watched this beautiful session by<STRONG> </STRONG><a href="https://community.sap.com/t5/user/viewprofilepage/user-id/8446">@UdoPaltzer</a>: <A href="https://www.youtube.com/watch?v=kFynsigf99o" target="_blank" rel="noopener nofollow noreferrer">https://www.youtube.com/watch?v=kFynsigf99o</A></SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2026-02-03 at 10.44.47 PM.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/368644i925C54038A8D0FFF/image-size/large?v=v2&px=999" role="button" title="Screenshot 2026-02-03 at 10.44.47 PM.png" alt="Screenshot 2026-02-03 at 10.44.47 PM.png" /></span></P><P>In case you wanted a quick summary, here you go:</P><P><STRONG>Modernize Integrations:</STRONG></P><UL><LI><SPAN>Use standard content as much as you can</SPAN></LI><LI><SPAN>Try to replace your RFCs and IDOCs with OData, Rest, and SOAP.</SPAN></LI><LI><SPAN>Leverage Event-driven Integration pattern (for real-time scenarios)</SPAN></LI><LI><SPAN>Use Side-by-side extensions to leverage API-centric integrations (with Build)</SPAN></LI><LI>Leverage monitoring and error resolution capabilities by using SAP AIF (for Business Users), and Cloud ALM (for technical users)</LI></UL><P> </P><P><STRONG>End of maintenance. Time is ticking!</STRONG></P><UL><LI><SPAN>2027 - SAP PO | Standard Maintenance sunset</SPAN></LI><LI><SPAN>2030 - SAP PO | Extended maintenance sunset</SPAN></LI><LI><SPAN>2028 - Cloud Platform Integration Neo | Services sunset</SPAN></LI></UL><P><SPAN>As far as your migration support is concerned, SAP provides Migration guides, documentation, and community content, which you are already aware of. What is additionally provided is:</SPAN></P><UL><LI><SPAN>SAP Migration Factory | a free 2-3 weeks program to help you assess and plan your migration from PI/PO to Integration Suite</SPAN></LI><LI><SPAN>Evolve Neo Program | free access to SAP experts who will help you plan and prepare your migration to Cloud Foundry</SPAN></LI><LI><SPAN>SAP Service and Support | quick migration assistance with short duration, low cost engagements</SPAN></LI></UL><P><STRONG>Edge Integration Cell </STRONG></P><UL><LI><SPAN>The latest kid in the block is now flexible to run hybrid integration runtime, which is offered as an optional extension to Integration Suite, which will help customer-managed private landscape to leverage the capabilities of Integration Suite. </SPAN></LI><LI><SPAN>The landscapes it supports are: Microsoft AKS, Amazon EKS, Red Hat OpenShift, SUSE Rancher, Google GKE. </SPAN></LI></UL><P><STRONG>Cloud ALM<BR /></STRONG></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Sookriti_Mishra_0-1770190773748.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/368816iADE0F96757DC6FD8/image-size/medium?v=v2&px=400" role="button" title="Sookriti_Mishra_0-1770190773748.png" alt="Sookriti_Mishra_0-1770190773748.png" /></span></P><UL><LI><SPAN>Your one stop for end-to-end </SPAN><STRONG>technical </STRONG><SPAN>health monitoring for: SAP BTP, S/4HANA, S/4HANA Cloud, SuccessFactors, Integration Suite, Customer Experience, Business Network, Concur, Fieldglass.</SPAN></LI><LI><SPAN>You can configure the Oubound Channels like: email alerts, on chat-based apps like MS Teams/ Slack, Ticketing System like Service Now, Tasks like JIRA, APIs like SAP Analytics Cloud/ Grafana, and Operation Automations like Build Process Automation, and SAP iRPA, etc.</SPAN></LI><LI><SPAN>For us Integration Suite guys, you can use it for Cloud Integratio, API Management and Event Mesh as well.</SPAN></LI><LI><SPAN>Specifically for Integration Suite, you can now monitor Tenant Availability, Certificate Validity, Database and Resource consumption, Content, Exhaustion status of JMS queue. So, no more building custom iflows to trigger alerts. Please know that CALM pulls data every 5 mins, and persists data for 30 days. I wonder if they have a feature to display the trace only for failed messages. SAP, are you listening?</SPAN></LI></UL><P><STRONG>Innovations in 2025</STRONG></P><UL><LI><STRONG>Artificial Intelligence<BR /></STRONG><SPAN><SPAN>- </SPAN>Joule copilot-based discovery and reuse of artifacts were made available in Business Accelerator Hub<BR /></SPAN><SPAN>- Generation of Integration flow steps <BR /></SPAN><SPAN>- Groovy script optimization<BR /></SPAN><SPAN>- API anomaly detection<BR /></SPAN><SPAN>- API traffic prediction for usage and trend<BR /></SPAN><SPAN>- AI adapter</SPAN></LI><LI><STRONG>Business Accelerators<BR /></STRONG><SPAN><SPAN>- </SPAN>Additional non-SAP adaptors like, AI, Google, BigQuery, IBM MQ (JMS), BigQuery, Microsoft Azure Service Bus, Microsoft OneNote, Mongo DB, Salesforce Pub/ Sub, Shopify, etc<BR /></SPAN><SPAN>- New design guidelines to ensure upgrade readiness of Groovy Scripts (Camel 3 to Camel 4)</SPAN></LI><LI><STRONG>Migration & Modernization<BR /></STRONG><SPAN><SPAN>- </SPAN>Generate ABAP proxy in the backend without any dependency on PI<BR /></SPAN><SPAN>- Edge Integration Cell: Local OData API access, HANA DB, Shared Kubernetes, Basis Authentication during offline mode <BR /></SPAN><SPAN>- Alerting of failed B2B messages in CALM<BR /></SPAN><SPAN>- Automatic B2B interface creation based on Payload</SPAN></LI><LI><STRONG>API-centric & Event-driven integration<BR /></STRONG><SPAN><SPAN>- </SPAN>Lightweight adapter in the context of Advanced Event Mesh for small, light-weight, event-driven integration with non-SAP applications<BR /></SPAN><SPAN>- Migration support from EM to AEM</SPAN></LI></UL><P><STRONG>Agent-ready Application: IPaaS & AI Market Evolution & Trends</STRONG></P><UL><LI><SPAN>Agent iPaaS</SPAN></LI><LI><SPAN>Agent Integrations</SPAN></LI><LI><SPAN>Agent Orchestration</SPAN></LI><LI><SPAN>AI TRiSm (trusted relationship governance of the AI agents</SPAN></LI></UL><P><STRONG>SAP Integration Suite to become the trusted AI Integration Fabric: </STRONG><SPAN>IS is evolving to become a trusted AI Integration fabric</SPAN></P><P><STRONG>Some of the use cases are:</STRONG></P><UL><LI><SPAN><STRONG>Integration for AI</STRONG> (to make agentic interactions & orchestration to make applications agent-ready)</SPAN></LI><UL><LI><SPAN>MCP Gateway</SPAN></LI><LI><SPAN>Agent Orchestration</SPAN></LI><LI><SPAN>AI Gateway</SPAN></LI><LI><SPAN>Agent Identity Verification</SPAN></LI><LI><SPAN>LLM connector</SPAN></LI></UL><LI><SPAN><STRONG>AI for Integration</STRONG> (features in IS)</SPAN></LI><UL><LI><SPAN>Joule</SPAN></LI><LI><SPAN>Anomaly detection</SPAN></LI><LI><SPAN>API traffic predictions</SPAN></LI><LI><SPAN>Script Optimization</SPAN></LI><LI><SPAN>Configuration Agent</SPAN></LI></UL></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Sookriti_Mishra_1-1770190833178.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/368817i3AB2BA3AD00E953F/image-size/medium?v=v2&px=400" role="button" title="Sookriti_Mishra_1-1770190833178.png" alt="Sookriti_Mishra_1-1770190833178.png" /></span></P><P> </P><P><STRONG>2026 SAP Integration Suite Strategic Outlook:</STRONG></P><UL><LI><SPAN>Leveraging Joule for building Integration flows</SPAN></LI><LI><SPAN>MCP enablement for APIs</SPAN></LI><LI><SPAN>Migration Agents for Java Mappings & adapter modules</SPAN></LI><LI><SPAN>AEM events in developer hub</SPAN></LI><LI><SPAN>15+ new third-party adapters including Adobe Sign, Google Suite, Oracle, OFTP2, Salesforce Service & Marketing, Cloud, Oracle Eloqua</SPAN></LI><LI><SPAN>Joule Skills & AI Agents in SAP Business Accelerator Hub</SPAN></LI><LI><SPAN>B2B capabilities in Edge Integration Cell</SPAN></LI></UL><P><STRONG>Roadmap for SAP Integration Suite:</STRONG></P><UL><LI><STRONG>Artificial Intelligence<BR /></STRONG><SPAN>- Integration flow design validation<BR /></SPAN><SPAN>- Joule based generation of iflows<BR /></SPAN><SPAN>- MCP for agentic AI<BR /></SPAN><SPAN>- Migration agent for adapter modules, Java mapping<BR /></SPAN><SPAN>- Configuration Agent<BR /></SPAN><SPAN>- Payload-size anomaly detection</SPAN></LI><LI><STRONG>Business Accelerators<BR /></STRONG><SPAN>- More connectivity options, meaning, more adapters like Google Drive & Sheets Microsoft Excel & Outlook, OFTP2, RosettaNet, Salesforce Service Cloud, etc<BR /></SPAN><SPAN>- Support for publications of Joule Skills & Agents in Business Accelerator Hub<BR />- </SPAN><SPAN>Commercial module for Partner Content. Consumers/Customers with a licence to Partner Content can now use it. Currently, customers can copy and use it for free, but from now on, the IP rights are protected, so you can use it only if you have a licence.</SPAN></LI><LI><STRONG>Migration & Modernization<BR /><SPAN>- </SPAN></STRONG><SPAN>Mass migration from PO to IS<BR /><SPAN>- </SPAN></SPAN><SPAN>Edge Integration Cell: customer-managed cloud connectors, offline mode support for 48 hours, B2B capabilities, multiple instances of EIC per Kubernetes Cluster<BR />- </SPAN><SPAN>SAP IS data centers in Australia, Germany, India, Japan, US.</SPAN></LI><LI><STRONG>API-Centric & Event-driven integrations<BR /><SPAN>- </SPAN></STRONG><SPAN>AEM health monitoring in SAP Cloud ALM<BR /><SPAN>- </SPAN></SPAN><SPAN>Auto discovery and publications of events from AEM to Developer Hub as single catalog for APIs and Events<BR />- </SPAN><SPAN>Consumption of events through Developer Hub</SPAN></LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Sookriti_Mishra_3-1770191000785.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/368818iE7540309A7D5036B/image-size/large?v=v2&px=999" role="button" title="Sookriti_Mishra_3-1770191000785.png" alt="Sookriti_Mishra_3-1770191000785.png" /></span></P><P> </P><P><BR /><BR /></P><P> </P>2026-02-03T18:16:06.981000+01:00https://community.sap.com/t5/technology-blog-posts-by-sap/integrating-ibm-mq-on-premise-with-sap-cloud-integration-using-the-ibm-mq/ba-p/14321396Integrating IBM MQ On-Premise with SAP Cloud Integration Using the IBM MQ Adapter2026-02-04T11:07:45.573000+01:00Shashank_Khttps://community.sap.com/t5/user/viewprofilepage/user-id/1555850<P><ul =""><li style="list-style-type:square; margin-left:15px; margin-bottom:1px;"><a href="https://community.sap.com/t5/technology-blog-posts-by-sap/integrating-ibm-mq-on-premise-with-sap-cloud-integration-using-the-ibm-mq/ba-p/14321396#toc-hId-1789493601">Connectivity Options for IBM MQ On-Premise Integration</a></li><li style="list-style-type:square; margin-left:30px; margin-bottom:1px;"><a href="https://community.sap.com/t5/technology-blog-posts-by-sap/integrating-ibm-mq-on-premise-with-sap-cloud-integration-using-the-ibm-mq/ba-p/14321396#toc-hId-1722062815">1. Connectivity Using Edge Integration Cell (EIC)</a></li><li style="list-style-type:square; margin-left:30px; margin-bottom:1px;"><a href="https://community.sap.com/t5/technology-blog-posts-by-sap/integrating-ibm-mq-on-premise-with-sap-cloud-integration-using-the-ibm-mq/ba-p/14321396#toc-hId-1525549310">2. Connectivity from Cloud Integration Using One-Way SSL</a></li><li style="list-style-type:square; margin-left:30px; margin-bottom:1px;"><a href="https://community.sap.com/t5/technology-blog-posts-by-sap/integrating-ibm-mq-on-premise-with-sap-cloud-integration-using-the-ibm-mq/ba-p/14321396#toc-hId-1329035805">3. Connectivity from Cloud Integration Using Two-Way SSL</a></li><li style="list-style-type:square; margin-left:30px; margin-bottom:1px;"><a href="https://community.sap.com/t5/technology-blog-posts-by-sap/integrating-ibm-mq-on-premise-with-sap-cloud-integration-using-the-ibm-mq/ba-p/14321396#toc-hId-1132522300">Common Connection Errors and How to Resolve them</a></li><li style="list-style-type:square; margin-left:45px; margin-bottom:1px;"><a href="https://community.sap.com/t5/technology-blog-posts-by-sap/integrating-ibm-mq-on-premise-with-sap-cloud-integration-using-the-ibm-mq/ba-p/14321396#toc-hId-1065091514">1. Possible Reasons for MQRC 2397 – JSSE Error</a></li><li style="list-style-type:square; margin-left:45px; margin-bottom:1px;"><a href="https://community.sap.com/t5/technology-blog-posts-by-sap/integrating-ibm-mq-on-premise-with-sap-cloud-integration-using-the-ibm-mq/ba-p/14321396#toc-hId-868578009">2. Validation Checklist</a></li><li style="list-style-type:square; margin-left:30px; margin-bottom:1px;"><a href="https://community.sap.com/t5/technology-blog-posts-by-sap/integrating-ibm-mq-on-premise-with-sap-cloud-integration-using-the-ibm-mq/ba-p/14321396#toc-hId-542981785">Checking IBM MQ Error Logs</a></li><li style="list-style-type:square; margin-left:45px; margin-bottom:1px;"><a href="https://community.sap.com/t5/technology-blog-posts-by-sap/integrating-ibm-mq-on-premise-with-sap-cloud-integration-using-the-ibm-mq/ba-p/14321396#toc-hId-475550999">1. Queue Manager Error Logs (AMQERR01.LOG)</a></li><li style="list-style-type:square; margin-left:45px; margin-bottom:1px;"><a href="https://community.sap.com/t5/technology-blog-posts-by-sap/integrating-ibm-mq-on-premise-with-sap-cloud-integration-using-the-ibm-mq/ba-p/14321396#toc-hId-279037494">2. MQ System Error Logs</a></li></ul></P><P><SPAN>SAP Cloud Integration offers a wide range of adapters to enable seamless connectivity between business applications. Among these is the </SPAN><STRONG>IBM MQ Adapter</STRONG><SPAN>, specifically engineered for messaging scenarios within IBM MQ environments. Notably, this adapter maintains </SPAN><STRONG>strong feature parity</STRONG><SPAN> with its predecessor in SAP Process Orchestration (PO), making it an ideal solution for customers planning a migration to the </SPAN><STRONG>SAP Integration Suite</STRONG><SPAN>. </SPAN>The IBM MQ adapter is available as part of your Standard license for SAP Integration Suite. For more information, see <A href="https://me.sap.com/notes/3188446" target="_self" rel="noopener noreferrer"><U>SAP Note</U></A>. </P><P><SPAN>Let us first understand how the two variants of IBM MQ adapter interact with SAP Cloud Integration:</SPAN></P><UL><LI><STRONG><SPAN>JMS (Java Message Service):</SPAN></STRONG><SPAN> This adapter uses the native IBM MQ JMS. It is designed for high-performance, stateful connections, supporting features like transacted sessions, message headers (MQMD), and complex correlation IDs.</SPAN></LI><LI><STRONG><SPAN>REST API:</SPAN></STRONG><SPAN> This adapter can also interact with IBM MQ using its provided REST APIs.</SPAN></LI></UL><P><SPAN>This blog further discusses the IBM MQ Adapter within the context of the JMS. Furthermore, the adapter supports two connectivity types:</SPAN></P><UL><LI><STRONG><SPAN>Internet</SPAN></STRONG><SPAN> – for connecting to <STRONG>IBM MQ Cloud</STRONG></SPAN></LI><LI><STRONG><SPAN>On-Premise</SPAN></STRONG><SPAN> – for connecting to <STRONG>IBM MQ servers hosted within a customer’s network (via Cloud Connector)</STRONG></SPAN></LI></UL><P><SPAN>In this blog, we focus exclusively on the <STRONG>On-Premise integration scenario</STRONG> and the available connectivity options to help you integrate your IBM MQ on-premise server with SAP Cloud Integration.</SPAN></P><P> </P><H2 id="toc-hId-1789493601"><STRONG><SPAN>Connectivity Options for IBM MQ On-Premise Integration</SPAN></STRONG></H2><P><SPAN>You can connect SAP Cloud Integration to an on-premise IBM MQ server using any of the following approaches:</SPAN></P><OL><LI><STRONG><SPAN>Using EIC (Edge Integration Cell)</SPAN></STRONG></LI><LI><STRONG><SPAN>Directly from Cloud Integration using One-Way SSL</SPAN></STRONG></LI><LI><STRONG><SPAN>Directly from Cloud Integration using Two-Way SSL</SPAN></STRONG></LI></OL><P><SPAN>Below, we discuss each approach in detail.</SPAN></P><H3 id="toc-hId-1722062815"><STRONG>1. Connectivity Using Edge Integration Cell (EIC)</STRONG></H3><P><SPAN>SAP’s <STRONG>Edge Integration Cell (EIC)</STRONG> allows you to run Cloud Integration capabilities within your own network. When using EIC, you do <STRONG>not</STRONG> need a Cloud Connector because the runtime is already deployed in your on-premise environment.</SPAN></P><P><STRONG>Prerequisites for Edge Integration Cell <SPAN>Connectivity</SPAN></STRONG></P><P><SPAN>The only prerequisite for this setup is that your </SPAN><SPAN><STRONG>IBM MQ on-premise server must be reachable from the EIC runtime</STRONG> (via internal network routes).</SPAN></P><P><SPAN>In this scenario, you configure the IBM MQ adapter using the <STRONG>Internet proxy type</STRONG>, even though you are connecting to an on-premise MQ server. </SPAN><SPAN>For more details, see <A href="https://help.sap.com/docs/integration-suite/sap-integration-suite/setting-up-and-managing-edge-integration-cell" target="_self" rel="noopener noreferrer">SAP Documentation.</A> </SPAN><SPAN>You can establish No SSL, One-Way SSL, or Two-Way SSL connectivity when using EIC. For One-Way and Two-Way SSL setup details, you can refer to the sections below. The only part that does not apply in the EIC scenario is the Cloud Connector configuration.</SPAN></P><H3 id="toc-hId-1525549310"><STRONG>2. Connectivity from Cloud Integration Using One-Way SSL</STRONG></H3><P><SPAN>When integrating directly from Cloud Integration (CI) to an on-premise IBM MQ server, the traffic flows via <STRONG>SAP Cloud Connector</STRONG>. To establish a secure connection, <STRONG>you must enable at least One-Way SSL</STRONG> on your MQ channel. </SPAN><SPAN>Below are the prerequisites and steps for a successful setup.</SPAN></P><P><STRONG><SPAN>Prerequisites for One-Way SSL Connectivity</SPAN></STRONG></P><P><STRONG><SPAN>1. Use IBM MQ Adapter Version 1.4.1 or Above</SPAN></STRONG></P><P><SPAN>Ensure the IBM MQ adapter version <STRONG>1.4.1+</STRONG> is installed in both:</SPAN></P><UL><LI><SPAN>Cloud Integration <STRONG>Design Time</STRONG>, and</SPAN></LI><LI><SPAN>Cloud Integration <STRONG>Runtime</STRONG></SPAN></LI></UL><P><SPAN><STRONG>Note:</STRONG> This version contains critical SSL enhancements required for secure on-premise connectivity.</SPAN></P><P><STRONG>2. Create TCP Connectivity in SAP Cloud Connector</STRONG></P><P><SPAN>Before Cloud Integration can reach your IBM MQ server, you must configure <STRONG>TCP connectivity</STRONG> in the SAP Cloud Connector:</SPAN></P><UL><LI><SPAN>Create a <STRONG>TCP Resource</STRONG> in Cloud Connector for the MQ host and port.</SPAN></LI><LI><SPAN>Ensure that the <STRONG>IBM MQ on-premise server is reachable from Cloud Connector</STRONG> (network routing must be open)</SPAN></LI></UL><P><SPAN>This step is mandatory because Cloud Connector acts as the secure tunnel that bridges SAP Cloud Integration with your internal MQ network.</SPAN></P><P><SPAN><STRONG>3. Enable One-Way SSL on the IBM MQ Channel</STRONG></SPAN></P><P><SPAN>Your IBM MQ server must have <STRONG>SSL CipherSpec</STRONG> enabled for the specific channel used by Cloud Integration. </SPAN></P><P><SPAN>To configure this:</SPAN></P><OL><LI><SPAN>Open <STRONG>IBM MQ Explorer.</STRONG></SPAN></LI><LI><SPAN>Navigate to your <STRONG>Queue Manager.</STRONG></SPAN></LI><LI><SPAN>Select the <STRONG>Channel</STRONG> used for Cloud Integration.</SPAN></LI><LI>Open <STRONG>Properties → SSL.</STRONG></LI><LI><SPAN>Choose a <STRONG>CipherSpec</STRONG> from the supported list.</SPAN></LI></OL><P><SPAN><STRONG>IMPORTANT:</STRONG> </SPAN><SPAN>If other applications are connecting to the same channel, they must also support the newly configured CipherSpec. Otherwise, their connections will fail.</SPAN></P><P><SPAN><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ibm mq connectivity blog.png" style="width: 417px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/368481iC9A12DFC4A2178AA/image-size/large?v=v2&px=999" role="button" title="ibm mq connectivity blog.png" alt="ibm mq connectivity blog.png" /></span></SPAN></P><P><SPAN><STRONG>4. Upload the Queue Manager Root Certificate to Cloud Integration</STRONG></SPAN></P><P><SPAN>SAP Cloud Integration must trust the IBM MQ server. For this:</SPAN></P><OL><LI><SPAN>Extract the <STRONG>root certificate</STRONG> from the Queue Manager's <STRONG>KDB (Key Database) file</STRONG></SPAN></LI><LI><SPAN>Upload this certificate to the <STRONG>Cloud Integration Keystore</STRONG></SPAN></LI></OL><P><SPAN>The certificate may be:</SPAN></P><UL><LI><STRONG><SPAN>Self-signed</SPAN></STRONG><SPAN>, or</SPAN></LI><LI><STRONG><SPAN>Signed by a trusted Certificate Authority (CA)</SPAN></STRONG></LI></UL><P><SPAN>You can select either of the two options as long as Cloud Integration trusts it.</SPAN></P><P><STRONG>5. Configure Authentication in the IBM MQ Adapter</STRONG></P><P><SPAN>Depending on the Channel Authentication (CHLAUTH) configuration on the MQ server, you may need to assign:</SPAN></P><UL><LI><STRONG><SPAN>Authentication Type = None</SPAN></STRONG><SPAN>, or</SPAN></LI><LI><STRONG><SPAN>Authentication Type = Basic (username/password)</SPAN></STRONG></LI></UL><P><SPAN>Because this is a <STRONG>one-way SSL setup</STRONG>, certificate-based client authentication is <EM>not required</EM>.</SPAN></P><P>When using the Cloud Connector, the connection often appears to MQ as coming from the OS-level user of the SAP environment. If MQ has MQSNOAUT (Security) disabled, the channel might reject the connection if vcap isn't a recognized user on the MQ host. In which case , you might need to enable the vcap user in your IBM MQ Server.</P><H3 id="toc-hId-1329035805"><STRONG>3. Connectivity from Cloud Integration Using Two-Way SSL</STRONG></H3><P><SPAN>Two-Way SSL (also known as Mutual SSL) provides an enhanced level of security where <STRONG>both</STRONG> Cloud Integration and the IBM MQ server authenticate each other using certificates. This setup is recommended for environments with stricter security requirements.</SPAN></P><P><SPAN>Below are the prerequisites and configuration steps for enabling two-way SSL between Cloud Integration and your IBM MQ on-premise server.</SPAN></P><P><STRONG><SPAN>Prerequisites for Two-Way SSL Connectivity</SPAN></STRONG></P><P><STRONG><SPAN>1. </SPAN></STRONG><STRONG><SPAN>Enable SSL CipherSpec and Require Client Authentication on the MQ Channel for Two-Way SSL:</SPAN></STRONG></P><UL><LI><SPAN>The IBM MQ channel used by Cloud Integration must have an SSL CipherSpec enabled</SPAN></LI><LI><SPAN>The channel’s SSL configuration must be set to Require SSL client authentication </SPAN></LI></UL><P>This ensures that MQ validates the certificate presented by Cloud Integration.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-left" image-alt="ibm mq connectivity blog-2.png" style="width: 421px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/368489i3516AB5AD20AF2F3/image-size/large?v=v2&px=999" role="button" title="ibm mq connectivity blog-2.png" alt="ibm mq connectivity blog-2.png" /></span></P><P> </P><P> </P><P> </P><P> </P><P> </P><P> </P><P> </P><P><STRONG>2. Upload the Queue Manager Root Certificate to Cloud Integration</STRONG></P><P><SPAN>As with One-Way SSL:</SPAN></P><UL><LI><SPAN>Extract the root certificate from the Queue Manager’s KDB file</SPAN></LI><LI><SPAN>Upload it into the Cloud Integration Keystore</SPAN></LI></UL><P><SPAN>This allows Cloud Integration to trust the server certificate presented by IBM MQ. </SPAN></P><P><STRONG>3. Trust the Cloud Integration Root Certificate in IBM MQ</STRONG></P><P><SPAN>For mutual SSL to work, IBM MQ must also trust the certificate used by Cloud Integration:</SPAN></P><UL><LI><SPAN>Obtain the root/intermediate certificate of the client certificate used by Cloud Integration</SPAN></LI><LI><SPAN>Import this certificate chain into the MQ Queue Manager’s KDB keystore</SPAN></LI><LI><SPAN>Restart the channel or refresh SSL configuration (REFRESH SECURITY TYPE(SSL)) if needed</SPAN></LI></UL><P><SPAN>This step ensures that MQ can validate the client certificate sent from Cloud Integration during the SSL handshake.</SPAN></P><P><STRONG><SPAN>4. Upload the Client Certificate + Private Key to Cloud Integration</SPAN></STRONG></P><P><SPAN>Cloud Integration must present a certificate to authenticate itself:</SPAN></P><UL><LI><SPAN>Create or obtain a client certificate (self-signed or CA-signed).</SPAN></LI><LI><SPAN>Combine the certificate and private key into a PKCS#12 (.p12) file.</SPAN></LI><LI><SPAN>Upload it to the Cloud Integration Keystore.</SPAN></LI><LI>Upload the certificate part in IBM MQ.</LI></UL><P><SPAN>You will reference this key pair in the IBM MQ adapter.</SPAN></P><P><STRONG>5. Configure the IBM MQ Adapter for Certificate-Based Authentication</STRONG></P><P><SPAN>Within the IBM MQ adapter:</SPAN></P><UL><LI><SPAN>Set Authentication Type = Client Certificate</SPAN></LI><LI><SPAN>Select the correct Key Pair Alias (the uploaded .p12 file)</SPAN></LI><LI><SPAN>Ensure the alias name matches the certificate expected by the MQ server</SPAN></LI></UL><P><STRONG><SPAN> 6. </SPAN></STRONG><STRONG>Validate Channel Authentication (CHLAUTH) Rules</STRONG></P><P><SPAN>IBM MQ channel authentication rules should:</SPAN></P><UL><LI><SPAN>Allow connections from the certificate’s DN (Distinguished Name)</SPAN></LI><LI><SPAN>Map the DN to the correct MQ user (if required)</SPAN></LI></UL><DIV class="">Incorrect CHLAUTH rules are one of the most common causes of Two-Way SSL connection failures.</DIV><DIV class=""><H3 id="toc-hId-1132522300"><STRONG><SPAN>Common Connection Errors and How to Resolve them</SPAN></STRONG></H3><P><SPAN>When configuring connectivity between SAP Cloud Integration and an IBM MQ on-premise server, SSL or channel-level issues may cause the connection to fail. </SPAN>One of the most frequently encountered errors is mentioned below:</P></DIV><PRE>org.apache.camel.CamelException: Error message: An error occurred while starting or stopping JMS Connection.
Reason: JMSCMQ0001: IBM MQ call failed with compcode '2' ('MQCC_FAILED')
reason '2397' ('MQRC_JSSE_ERROR')</PRE><P><SPAN>This error typically indicates an issue at the <STRONG>SSL/TLS layer</STRONG> during the MQ connection handshake. Below are the most common root causes and how to troubleshoot them.</SPAN></P><H4 id="toc-hId-1065091514"><STRONG><SPAN>1. Possible Reasons for MQRC 2397 – JSSE Error</SPAN></STRONG></H4><P><STRONG>1. Keystore / Truststore Misconfiguration</STRONG></P><P><SPAN>This occurs when:</SPAN></P><UL><LI><SPAN>Cloud Integration does not trust the MQ server certificate</SPAN></LI><LI><SPAN>MQ server does not trust Cloud Integration’s client certificate (in Two-Way SSL)</SPAN></LI><LI><SPAN>Wrong certificate file (or wrong alias) is used</SPAN></LI><LI><SPAN>Certificate chain is incomplete</SPAN></LI></UL><P><STRONG><SPAN>2. CipherSpec Mismatch</SPAN></STRONG></P><P>The CipherSpec configured in t<SPAN>he <STRONG>IBM MQ channel </STRONG></SPAN><SPAN>must match exactly with the </SPAN><SPAN> CipherSpec configured in the <STRONG>IBM MQ adapter</STRONG> in Cloud Integration. </SPAN><SPAN>A mismatch will cause SSL handshake failure.</SPAN></P><H4 id="toc-hId-868578009"><STRONG><SPAN>2. Validation Checklist</SPAN></STRONG></H4><P><SPAN>Before attempting connection again, verify the following:</SPAN></P><P><STRONG>1. IBM MQ Adapter Version</STRONG></P><P><SPAN>Ensure that the adapter version is <STRONG>1.4.1 or above</STRONG> in both design and runtime.<BR />This version or later is required for on-prem SSL connectivity.</SPAN></P><P><STRONG>2. TCP Connectivity in Cloud Connector</STRONG></P><P><SPAN>A <STRONG>TCP connection must be configured</STRONG> in SAP Cloud Connector, and the MQ server must be reachable from it.<BR />If Cloud Connector cannot reach MQ, SSL negotiation will never start.</SPAN></P><P><STRONG>3. Correct Certificate Uploads</STRONG></P><P><SPAN>Verify that the correct certificates are uploaded based on the SSL model:</SPAN></P><UL><LI><STRONG><SPAN>One-Way SSL</SPAN></STRONG></LI><UL><LI><SPAN>Cloud Integration must trust the MQ Queue Manager certificate</SPAN></LI></UL><LI><STRONG><SPAN>Two-Way SSL</SPAN></STRONG></LI><UL><LI><SPAN>MQ Queue Manager must also trust the Cloud Integration client certificate</SPAN></LI><LI><SPAN>Cloud Integration must upload the client certificate + private key (.p12)</SPAN></LI></UL></UL><P><SPAN>Ensure that the certificate aliases are correctly referenced in the MQ adapter.</SPAN></P><P><STRONG>4. CipherSpec Alignment</STRONG></P><P><SPAN>Confirm that the same CipherSpec is configured in:</SPAN></P><UL><LI><SPAN>The MQ Channel → SSL properties</SPAN></LI><LI><SPAN>The IBM MQ adapter → SSL settings</SPAN></LI></UL><P><SPAN>CipherSpecs must match exactly (e.g., TLS_RSA_WITH_AES_256_CBC_SHA256). It is worth noting that IBM MQ and Java (SAP CI) often use different naming conventions for the same Cipher. </SPAN></P><P><SPAN>For more information about CipherSpecs, see </SPAN><SPAN><A href="https://www.ibm.com/docs/en/ibm-mq/9.3.x?topic=java-tls-cipherspecs-ciphersuites-in-mq-classes" target="_blank" rel="noopener nofollow noreferrer">https://www.ibm.com/docs/en/ibm-mq/9.3.x?topic=java-tls-cipherspecs-ciphersuites-in-mq-classes</A></SPAN></P><P><STRONG>TIP:</STRONG> In order to troubleshoot the issue, please check the error logs on the IBM MQ server. The server logs provide much deeper insights and often reveal the exact root cause of the SSL or connection failure.</P><H3 id="toc-hId-542981785"><STRONG>Checking IBM MQ Error Logs</STRONG></H3><P>When diagnosing SSL/TLS or channel-level connection issues, the IBM MQ server logs provide the most reliable insight into what went wrong. These logs often reveal precise errors such as certificate validation failures, CipherSpec mismatches, expired certificates, CHLAUTH rejections, or handshake-level SSL alerts.</P><P>Below are the primary MQ logs and how to access them.</P><H4 id="toc-hId-475550999"><STRONG>1. Queue Manager Error Logs (AMQERR01.LOG)</STRONG></H4><P>Every Queue Manager maintains a set of rotating error log files. These are the most important logs for SSL troubleshooting.</P><P><STRONG>Location (Linux/Unix):</STRONG></P><PRE>/var/mqm/qmgrs//errors/AMQERR01.LOG
/var/mqm/qmgrs//errors/AMQERR02.LOG
/var/mqm/qmgrs//errors/AMQERR03.LOG</PRE><P><STRONG>Location (Windows):</STRONG></P><PRE>C:\ProgramData\IBM\MQ\qmgrs\<QMGR_NAME>\errors\AMQERR01.LOG</PRE><P><STRONG>What you will find there:</STRONG></P><UL><LI>SSL handshake failure details</LI><LI>Certificate DN mismatch</LI><LI>Unsupported or mismatched CipherSpec</LI><LI>Channel authentication (CHLAUTH) errors</LI><LI>Missing or untrusted certificates</LI><LI>Key repository (KDB) issues</LI></UL><P>Look for messages like:</P><UL><LI>AMQ9637: Channel is lacking a certificate.</LI><LI>AMQ9620: Internal error on SSL handshake.</LI><LI>AMQ9645: SSL connection closed due to a protocol error.</LI></UL><P>These messages directly point to what needs fixing.</P><H4 id="toc-hId-279037494"><STRONG>2. MQ System Error Logs</STRONG></H4><P>MQ also maintains system-level logs that may show additional information:</P><P><STRONG>Location (Linux/Unix):</STRONG></P><PRE>/var/mqm/errors/AMQERR01.LOG</PRE><P>These logs can contain:</P><UL><LI>Global SSL warnings</LI><LI>CHLAUTH or authorization errors</LI><LI>System-level key repository failures</LI></UL>2026-02-04T11:07:45.573000+01:00https://community.sap.com/t5/enterprise-resource-planning-blog-posts-by-members/sap-integration-suite-agentic-testing-is-available-now-with-int4-suite/ba-p/14322864SAP Integration Suite - Agentic Testing is available now with Int4 Suite2026-02-06T10:13:21.141000+01:00MichalKrawczykhttps://community.sap.com/t5/user/viewprofilepage/user-id/45785<P><SPAN>The SAP BTP Integration Suite AI roadmap for 2026 showcases a massive shift toward Agentic AI, focusing on making the platform not just a tool for developers, but an orchestrator of autonomous agents. While SAP is actively building these capabilities, Int4 Suite is already delivering on several of these "future" promises today, particularly in the realm of Test Agents.</SPAN></P><H2 id="toc-hId-1789528102"><SPAN>The SAP BTP Integration Suite AI Roadmap (2026)</SPAN></H2><P><SPAN>According to the SAP Community update, the roadmap is divided into two major pillars: AI for Integration (productivity) and Integration for AI (orchestration).</SPAN></P><UL><LI><SPAN><STRONG>MCP (Model Context Protocol) Gateway:</STRONG> SAP is betting heavily on MCP as the standard for connecting and governing AI agents. This will allow the Integration Suite to act as a "control plane" for agents.</SPAN></LI><LI><SPAN><STRONG>Joule-Driven Development</STRONG> : SAP is moving beyond simple prompts to full iFlow generation and design validation using Joule, SAP’s digital assistant.</SPAN></LI><LI><SPAN><STRONG>Specialized AI Agents</STRONG> (Future Roadmap):</SPAN><UL><LI><SPAN>Migration Agent: To convert Java mappings and adapter modules into Groovy scripts.</SPAN></LI><LI><SPAN>Configuration Agent: To suggest iFlow configurations based on historical data.</SPAN></LI><LI><SPAN>Test Agents (Planned): SAP explicitly mentions the plan to develop Test Agents that provide test data and test cases during the development of an iFlow to allow for immediate testing.</SPAN></LI></UL></LI></UL><P><div class="video-embed-center video-embed"><iframe class="embedly-embed" src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FkFynsigf99o%3Fstart%3D199%26feature%3Doembed%26start%3D199&display_name=YouTube&url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DkFynsigf99o&image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FkFynsigf99o%2Fhqdefault.jpg&type=text%2Fhtml&schema=youtube" width="600" height="337" scrolling="no" title="SAP Integration Suite in 2026✨" frameborder="0" allow="autoplay; fullscreen; encrypted-media; picture-in-picture;" allowfullscreen="true"></iframe></div></P><H2 id="toc-hId-1593014597"><SPAN>Int4 Suite: SAP Integration Suite Test Agents are available today </SPAN></H2><P><SPAN>While SAP’s own Test Agents are currently on the roadmap for future development, Int4 Suite already provides a functional testing engine that automates the most time-consuming parts of SAP integration.</SPAN></P><H3 id="toc-hId-1525583811"><SPAN>1. Natural Language Test Creation</SPAN></H3><P><SPAN>SAP’s roadmap envisions using Joule for iFlow testing. Int4 Suite already utilizes advanced AI models to allow users to create and manage test cases through natural language.</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="new_ways.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/369508i7446F6FD9D862794/image-size/large?v=v2&px=999" role="button" title="new_ways.png" alt="new_ways.png" /></span></P><P><SPAN>Figure 1 - Int4 Suite Test Agents can create, change, and run any tests on the SAP Integration Suite. </SPAN></P><UL><LI><SPAN>The Chatbot Experience: Instead of navigating complex technical menus, users interact with an AI "Testing Agent."</SPAN></LI><LI><SPAN>Semantic Intelligence: Built on a Business Knowledge Graph, the system understands the relationship between technical messages and business data. You don't need a Message ID; you can simply ask the assistant to find or create test cases based on specific business criteria, like "Sales Orders for US-based customers."</SPAN></LI><LI><SPAN>Autonomous Execution: The agent doesn't just suggest a case; it handles the setup, injection, and execution of that test into your landscape (e.g., from Dev to QA) automatically.</SPAN></LI></UL><P><div class="video-embed-center video-embed"><iframe class="embedly-embed" src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FmsbnCupiKPk%3Ffeature%3Doembed&display_name=YouTube&url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DmsbnCupiKPk&image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FmsbnCupiKPk%2Fhqdefault.jpg&type=text%2Fhtml&schema=youtube" width="600" height="337" scrolling="no" title="Int4 Suite Test Agents for SAP Integration Suite" frameborder="0" allow="autoplay; fullscreen; encrypted-media; picture-in-picture;" allowfullscreen="true"></iframe></div></P><H3 id="toc-hId-1329070306"><SPAN>2. Automated Test Case Generation from Historical Data</SPAN></H3><P><SPAN>A key goal of SAP's future roadmap is providing "test data and test cases" automatically. Int4 Suite fulfills this today through two innovative modules:</SPAN></P><UL><LI><SPAN>The Robotic Crawler: This tool acts as a "search and capture" engine. It scans historical electronic messages and business documents directly from production environments of SAP Integration Suite or legacy middleware (like SAP PI/PO), extracting the full payload of real transactions.</SPAN></LI><LI><SPAN>The Repeater Module: This module "replays" captured production messages through your new integration scenarios. For example, during a migration to SAP BTP Integration Suite, Int4 Suite takes a real Production Sales Order and runs it through your new iFlow to ensure the resulting S/4HANA document matches the original exactly.</SPAN></LI><LI><SPAN>Secure Anonymization: To ensure GDPR compliance, Int4 Suite includes a data scrambling engine that anonymizes sensitive information before the test case is created, making real-world data safe for use in non-productive environments.</SPAN></LI></UL><H2 id="toc-hId-1003474082"><SPAN>Bridging the Gap: Why Agentic Testing Matters Now</SPAN></H2><P><SPAN>As SAP moves toward "Agentic IPaaS", where autonomous agents like Quote Creation or Receipt Creation Agents operate within your system—verification becomes the primary challenge. While SAP focuses on the orchestration of these agents, Int4 Suite focuses on the validation.</SPAN></P><P><SPAN>Because SAP BTP Integration Suite updates are automatic and frequent, Int4 Suite acts as a "continuous insurance policy." It validates the "logic under the hood", confirming that business documents are created correctly in SAP S/4HANA, rather than just checking if a technical message was "sent." </SPAN></P>2026-02-06T10:13:21.141000+01:00https://community.sap.com/t5/integration-blog-posts/jms-mastery-series-part-1-the-async-awakening/ba-p/14319670JMS Mastery Series Part 1 - The Async Awakening2026-02-06T10:32:09.582000+01:00MateuszPiotrowskihttps://community.sap.com/t5/user/viewprofilepage/user-id/1161523<H1 id="toc-hId-1659728504">The Async Awakening: Why Synchronous Integration is Holding You Back</H1><P><I>Or: How I Learned to Stop Worrying and Love Asynchronous Processing (Part 1 of 3)</I></P><H2 id="toc-hId-1592297718">Introduction</H2><P>If you asked me a few years ago whether most integrations should be asynchronous, I would have said: "It depends - many scenarios require synchronous processing."</P><P>Today, after many production integrations and troubleshooting sessions, my answer is more opinionated: <STRONG>Most point-to-point integrations default to synchronous unnecessarily</STRONG>.</P><P>The real operational challenges in SAP Cloud Integration (CPI/CI) don't come from implementation errors like bad mappings or misconfigured adapters - those are straightforward to diagnose and fix. They come from <STRONG>architectural decisions</STRONG>: interfaces that block on every timeout, messages that vanish when processing fails, and systems so tightly coupled that one component's downtime brings down the entire chain.</P><P>This three-part series explains:</P><UL><LI><STRONG>Part 1 (this article):</STRONG> Why synchronous is overused and async is underutilized</LI><LI><STRONG>Part 2:</STRONG> <A href="https://community.sap.com/t5/integration-blog-posts/jms-mastery-series-part-2-the-jms-revolution/ba-p/14319644" target="_blank">Why JMS queues are essential for reliable async processing</A></LI><LI><STRONG>Part 3:</STRONG> <A href="https://community.sap.com/t5/integration-blog-posts/jms-mastery-series-part-3-jms-in-production/ba-p/14300416" target="_blank">How to implement this in production with confidence</A></LI></UL><P><STRONG>Important context:</STRONG> This series focuses on <STRONG>point-to-point integrations with transformation and orchestration needs</STRONG> - scenarios where CI provides value beyond simple routing. For S/4HANA business events and pub-sub patterns, Event Brokers (like Event Mesh/AEM) are often the right choice. Both patterns coexist in modern SAP landscapes.</P><P> </P><H2 id="toc-hId-1395784213">Key Takeaways</H2><UL><LI><STRONG>SAP CPI / CI behaves synchronously by default for HTTP-based integrations</STRONG><BR />True decoupling must be designed explicitly.</LI><LI><STRONG>Asynchronous ≠ Guaranteed Delivery</STRONG><BR />Non-blocking sender adapters alone do not make an interface reliable.</LI><LI><STRONG>JMS is the main answer for reliable asynchronous processing in CI</STRONG><BR />Without persistence, retries, and DLQ, messages can be lost from automated recovery paths.</LI><LI><STRONG>EO and EOIO are design patterns, not free platform features</STRONG><BR />They require idempotency, ordering discipline, and end-to-end design.</LI></UL><P> </P><H2 id="toc-hId-1199270708">The Synchronous Trap: When Defensive Design Hurts</H2><P>Walk into any SAP integration landscape and you'll find the same pattern: most point-to-point integrations are synchronous by default.</P><P>Why? Not because business requires it, but because it feels safer:</P><UL><LI>"Let's wait for confirmation so we know it worked"</LI><LI>"The user should see the result immediately"</LI><LI>"Async is more complex, let's keep it simple"</LI><LI>"That's how we've always done it"</LI></UL><P>These sound reasonable in isolation. But they create hidden fragility, even when only a single synchronous call is involved:</P><UL><LI><STRONG>Availability coupling:</STRONG> The caller is unavailable as long as the receiver is unavailable</LI><LI><STRONG>Performance coupling:</STRONG> The receiver's latency directly becomes the caller's latency</LI><LI><STRONG>Blocked capacity:</STRONG> Threads, connections, and work processes are held while waiting</LI><LI><STRONG>Poor scalability:</STRONG> Traffic spikes amplify blocking and quickly overwhelm synchronous paths</LI></UL><P>In synchronous chains, these effects compound.</P><P>Even with API-first principles - reusable services, proper APIM layers, well-tested microservices - we often build synchronous interactions that trade apparent simplicity for hidden operational risk, without applying resilience patterns to absorb delay, failure, or burst load.</P><P>The real question isn't "Should this be async?" but rather: <STRONG>"What specifically requires the caller to wait for completion?"</STRONG></P><P>Answer honestly, and you'll find synchronous requirements are narrower than your default patterns suggest.</P><P> </P><H2 id="toc-hId-1002757203">Common Async Candidates</H2><P>These integration patterns rarely need synchronous processing:</P><UL><LI><STRONG>Master data synchronization:</STRONG> CRM customer updates don't need to wait for S/4HANA confirmation</LI><LI><STRONG>Document archival:</STRONG> Invoice posting shouldn't block on DMS storage completion</LI><LI><STRONG>Notifications and emails:</STRONG> Order creation shouldn't fail if email service is down</LI><LI><STRONG>Batch processing:</STRONG> High-volume operations benefit from queuing and parallel processing</LI><LI><STRONG>External system updates:</STRONG> Downstream systems can receive updates asynchronously</LI></UL><P><STRONG>Pattern recognition:</STRONG> If the user doesn't need the result to proceed with their next action, it's probably an async candidate.</P><P> </P><H2 id="toc-hId-806243698">When Synchronous IS the Right Choice</H2><P>Not everything should be asynchronous. Synchronous is correct when:</P><UL><LI><STRONG>Immediate validation required:</STRONG> Credit limit check before order submission</LI><LI><STRONG>Transactional integrity:</STRONG> Operations that must succeed or fail together atomically</LI><LI><STRONG>User expects immediate result:</STRONG> Price calculation, inventory availability check</LI><LI><STRONG>Fast, stable operations:</STRONG> Reference data lookups from highly available systems</LI></UL><TABLE border="1" cellpadding="10"><TBODY><TR><TD><STRONG><span class="lia-unicode-emoji" title=":warning:">⚠️</span></STRONG>These scenarios are <STRONG>narrower than our habits suggest</STRONG>. Many integrations default to sync out of caution, not requirement.</TD></TR></TBODY></TABLE><P> </P><H2 id="toc-hId-609730193">The Hidden Costs</H2><P><STRONG>Simple to understand ≠ simple to operate reliably at scale.</STRONG></P><P>What works smoothly in development often becomes problematic in production:</P><TABLE border="1" cellpadding="8"><TBODY><TR><TD><STRONG>Aspect</STRONG></TD><TD><STRONG>Synchronous Costs</STRONG></TD><TD><STRONG>Asynchronous Costs</STRONG></TD></TR><TR><TD><STRONG>User Impact</STRONG></TD><TD>User-facing failures, slow performance, downtime</TD><TD>Delayed feedback, eventual consistency</TD></TR><TR><TD><STRONG>Operational</STRONG></TD><TD>Cascading failures, availability coupling</TD><TD>Queue monitoring, message tracking</TD></TR><TR><TD><STRONG>Development</STRONG></TD><TD>Faster initially, harder to scale later</TD><TD>Slower initially, easier to scale later</TD></TR><TR><TD><STRONG>Debugging</STRONG></TD><TD>Simpler traces, immediate errors</TD><TD>Distributed traces, correlation needed</TD></TR><TR><TD><STRONG>Resilience</STRONG></TD><TD>Manual recovery, lost messages</TD><TD>Automatic retry, guaranteed delivery</TD></TR></TBODY></TABLE><P>For <STRONG>point-to-point integrations where users don't need immediate completion</STRONG>, async costs are typically more manageable than sync costs at scale.</P><TABLE border="1" cellpadding="10"><TBODY><TR><TD><STRONG><span class="lia-unicode-emoji" title=":warning:">⚠️</span></STRONG>Async without ops discipline and organisational maturity can be worse than sync (read part 2 & 3 to get more details). This series assumes production-grade operations, not ad-hoc integration development. Async-first is not a technical preference - it's an organizational maturity decision.</TD></TR></TBODY></TABLE><P> </P><H2 id="toc-hId-413216688">A Practical Decision Framework</H2><P>Instead of defaulting to sync, use this framework:</P><H3 id="toc-hId-345785902">Question 1: Can the user/system proceed without waiting?</H3><UL><LI><STRONG>YES →</STRONG> Strong async candidate → Go to Q2</LI><LI><STRONG>NO →</STRONG> Likely sync → Validate with Q3</LI></UL><H3 id="toc-hId-149272397">Question 2: Is this high-volume OR could backend be slow/unavailable?</H3><UL><LI><STRONG>YES →</STRONG> Async strongly recommended (resilience + scalability)</LI><LI><STRONG>NO →</STRONG> Async still beneficial for decoupling, but lower urgency</LI></UL><H3 id="toc-hId--122472477">Question 3: What specific part of the result does the caller actually need?</H3><UL><LI><STRONG>Just acknowledgment ("we got it") →</STRONG> Async</LI><LI><STRONG>Business validation only →</STRONG> Consider hybrid (validate sync, process async)</LI><LI><STRONG>Complete result with details →</STRONG> Likely sync</LI></UL><P> </P><H2 id="toc-hId--25582975">A Note on Advanced Hybrid Patterns</H2><P>Modern high-scale platforms (Amazon, Shopify, Uber) use sophisticated hybrid patterns that combine synchronous and asynchronous processing:</P><UL><LI><STRONG>Synchronous:</STRONG> Critical validations (inventory, pricing, payment authorization)</LI><LI><STRONG>Asynchronous:</STRONG> Backend processing (ERP order creation, warehouse notification, analytics)</LI></UL><P>This gives users instant feedback on what matters (order accepted, payment confirmed) while backend processing happens reliably in background.</P><P><STRONG>However,</STRONG> implementing these patterns requires significant infrastructure:</P><UL><LI>Local staging/tracking databases</LI><LI>Dual numbering schemes (platform ID vs. SAP document number)</LI><LI>Order lifecycle management</LI><LI>Reconciliation processes</LI><LI>Status synchronization workflows</LI></UL><P>These patterns are powerful but complex. For this introduction, we focus on <STRONG>clear-cut async scenarios</STRONG> that don't require hybrid complexity.</P><TABLE border="1" cellpadding="10"><TBODY><TR><TD><STRONG><span class="lia-unicode-emoji" title=":warning:">⚠️</span></STRONG>Hybrid patterns deserve their own detailed discussion. The key learning here is that "synchronous vs. asynchronous" isn't always binary - you can decompose processes to identify which parts truly need to be synchronous.</TD></TR></TBODY></TABLE><P> </P><H2 id="toc-hId--222096480">Architect's Note: Even Synchronous Can Be Loosely Coupled</H2><P>An interesting nuance: even synchronous communication can achieve <STRONG>significant decoupling</STRONG> when routed through middleware layers rather than direct point-to-point calls.</P><P>When sender systems connect to receivers through <STRONG>CI, API Management, or SAP Open Connectors</STRONG>, these intermediary layers provide important benefits:</P><UL><LI><STRONG>Message structure mapping, format conversion:</STRONG> Most visible role of middleware</LI><LI><STRONG>Protocol translation:</STRONG> Sender doesn't know receiver's protocol</LI><LI><STRONG>Version management:</STRONG> Changes to receiver API don't break sender</LI><LI><STRONG>Rate limiting:</STRONG> Protection from burst traffic</LI><LI><STRONG>Security layers:</STRONG> Authentication/authorization centralized</LI><LI><STRONG>Routing flexibility:</STRONG> Redirect to different endpoints without sender changes</LI></UL><P>This provides <STRONG>looser coupling than direct integration</STRONG>, even in synchronous mode.</P><H3 id="toc-hId--712012992">Synchronous Patterns with some Async Benefits</H3><P>With some adapters we can achieve <STRONG>higher decoupling</STRONG>:</P><P><STRONG>CI HTTP Adapter with Retry:</STRONG></P><UL><LI>✓ Automatic retry on receiver failures (HTTP errors configurable, up to 3 attempts)</LI><LI>⚠ Very limited compared to JMS possibilities (for details check part 2 and 3)</LI></UL><P><STRONG>CI SuccessFactors OData V2 adapter with Retry:</STRONG></P><UL><LI>✓ Automatic retry on receiver failures (5 retries, 3 min intervals)</LI><LI>⚠ Fixed settings (only HTTP 429, 502, 504 errors)</LI></UL><P><STRONG>Bottom line:</STRONG> Middleware-mediated synchronous is better than direct synchronous. Patterns like HTTP adapter retry can achieve some Async decoupling. But for point-to-point integrations where users don't need immediate response, <STRONG>full async with JMS</STRONG> provides the most mature operational model with guaranteed delivery, sophisticated retry, and production-grade monitoring.</P><P> </P><H2 id="toc-hId--615123490">Conclusion: Rethinking the Default</H2><P>The goal of this article isn't to convince you that "everything should be async." That would be as dogmatic as "everything should be sync."</P><P>The goal is to challenge the <STRONG>unexamined default</STRONG> toward synchronous patterns.</P><P><STRONG>Key takeaways:</STRONG></P><OL><LI>Many integrations are synchronous <STRONG>out of habit, not requirement</STRONG></LI><LI>Scenarios like <STRONG>master data sync, archival, and notifications should almost never be synchronous</STRONG></LI><LI>Synchronous is correct when <STRONG>user must wait for specific result to proceed</STRONG></LI><LI>Ask: <STRONG>"What specifically requires the caller to wait?"</STRONG> - the answer is often "nothing"</LI><LI>Async has costs (monitoring, correlation, complexity) that are often more manageable at scale</LI><LI>Choose based on business requirements and operational model, not convenience</LI></OL><P>Decoupling isn't just a technical choice; it's a <STRONG>customer experience strategy</STRONG> and a <STRONG>business continuity decision</STRONG>.</P><P>But simply switching to async SOAP or other non-blocking adapters isn't enough to guarantee delivery. As we'll discover in Part 2, there's an uncomfortable truth many integration consultants overlook...</P><P> </P><TABLE border="1" cellpadding="10"><TBODY><TR><TD><STRONG>Coming up in <A href="https://community.sap.com/t5/integration-blog-posts/jms-mastery-series-part-2-the-jms-revolution/ba-p/14319644" target="_blank">Part 2: The JMS Revolution</A></STRONG><BR /><BR />We've identified why synchronous defaults hold us back and which scenarios clearly benefit from async. But here's the critical gap: <STRONG>Asynchronous ≠ Guaranteed Delivery</STRONG>.<BR /><BR />In Part 2, we'll discover why non-blocking adapters alone aren't enough. I'll show you why <STRONG>JMS is the game-changer</STRONG> that transforms SAP CI from a web service mediator into a reliable message broker, and how Quality of Service levels (EO, EOIO) actually work in production.</TD></TR></TBODY></TABLE>2026-02-06T10:32:09.582000+01:00https://community.sap.com/t5/integration-blog-posts/jms-mastery-series-part-2-the-jms-revolution/ba-p/14319644JMS Mastery Series Part 2 - The JMS Revolution2026-02-06T10:57:33.324000+01:00MateuszPiotrowskihttps://community.sap.com/t5/user/viewprofilepage/user-id/1161523<H1 id="toc-hId-1659728415">The JMS Revolution: Achieving Guaranteed Delivery in SAP Integration Suite</H1><P><I>Confessions of a JMS Advocate (Part 2 of 3)</I></P><TABLE border="1" cellpadding="10"><TBODY><TR><TD><STRONG>Recap from <A href="https://community.sap.com/t5/integration-blog-posts/jms-mastery-series-part-1-the-async-awakening/ba-p/14319670" target="_blank">Part 1</A>:</STRONG> We challenged the synchronous default and discovered that most integration scenarios don't actually require the sender to wait for complete processing. We identified the hidden costs of "simple" synchronous patterns and established that true business requirements for sync communication are narrower than our habits suggest. Now we'll explore the technical solution - but with a critical caveat.</TD></TR></TBODY></TABLE><P> </P><H2 id="toc-hId-1592297629">Why Asynchronous Alone is Not Enough</H2><P>Suppose we convince stakeholders that the sender doesn't need to wait 8 seconds for all operations to complete. A quick technical acknowledgment of receipt is sufficient. The rest happens in the background, with asynchronous feedback on subsequent steps.</P><P>We're ready to build our first truly asynchronous iFlow.</P><H3 id="toc-hId-1524866843">Understanding CI's Default Behavior</H3><P>CI works in <STRONG>synchronous mode by default</STRONG> when using common web service sender adapters - the pattern used in most modern integrations, unless explicitly designed otherwise:</P><UL><LI><STRONG>HTTP adapter:</STRONG> Sender waits until all steps complete (End Message, End Error, or End Escalation event)</LI><LI><STRONG>OData adapter:</STRONG> Synchronous by nature (RESTful protocol)</LI><LI><STRONG>SOAP adapter:</STRONG> in most situations synchronous</LI></UL><P>...but we have asynchronous option:</P><P><STRONG>SOAP adapter</STRONG> can be configured also for fully async operation:</P><UL><LI>SOAP 1.x with Message Exchange Pattern = One-way - WS Standard</LI></UL><P>We run a proof of concept with async SOAP. Success! The sender receives an immediate HTTP 202 Accepted response. No blocking while our integration logic executes. We can see it in the trace (probably using CPI Helper).</P><P><STRONG>Victory, right?</STRONG></P><H3 id="toc-hId-1328353338">The Critical Gap: What Happens When Things Go Wrong?</H3><P>Not so fast. We've achieved <STRONG>non-blocking behavior</STRONG>, but we haven't achieved <STRONG>middleware-managed guaranteed delivery.</STRONG>.</P><P>Here's what we're still missing:</P><P><STRONG>Scenario:</STRONG> Your async SOAP integration receives a message, sends immediate acknowledgment, then encounters an error during processing:<BR />- validation failure in step 5 of 7,<BR />- runtime error in groovy script,<BR />- network timeout due to receiver system down,<BR />- API response with error,<BR />- tenant restart or worker node crash during message processing</P><P><STRONG>What happens?</STRONG></P><UL><LI>✗ Message is NOT persisted in any <STRONG>recoverable queue</STRONG></LI><LI>✗ No automatic retry mechanism</LI><LI>✗ Message is effectively LOST from automatic processing perspective</LI><LI>✗ Recovery requires manual intervention (if possible, download initial payload from DataStore, MPL attachment or Persist Step, and resubmit)</LI></UL><P>You've made the sender's life easier (no blocking), but you haven't made the integration reliable.</P><TABLE border="1" cellpadding="10"><TBODY><TR><TD><STRONG>This is the uncomfortable truth many integration consultants forget: Asynchronous ≠ Guaranteed Delivery</STRONG></TD></TR></TBODY></TABLE><TABLE border="1" cellpadding="10"><TBODY><TR><TD><span class="lia-unicode-emoji" title=":warning:">⚠️</span>Actually, there is also one more variant for the SOAP One-Way Message Exchange Pattern, which is the "Robust" processing type. This provides a very interesting kind of behavior which is described in the last section of this blog.</TD></TR></TBODY></TABLE><P> </P><H2 id="toc-hId-1002757114">The Holy Grail of Integration: Guaranteed Delivery</H2><P>What's missing is a <STRONG>persistence layer</STRONG> that saves the message from the sender. If something goes wrong, we don't need to bother the sender - we handle it ourselves. We're mature enough to take responsibility once we accept a message. Fire and forget.</P><TABLE border="1" cellpadding="10"><TBODY><TR><TD><span class="lia-unicode-emoji" title=":warning:">⚠️</span>Guaranteed delivery served by middleware means: once CI accepts responsibility, delivery will be retried automatically until success or explicit DLQ handling - without sender involvement</TD></TR></TBODY></TABLE><P>Unfortunately, SOAP has no built-in message persistence.</P><P>Even Idoc (over HTTP with SOAP envelope), which many assume is "reliable," doesn't have built-in persistence in CI (as opposed to PI).</P><P><STRONG>Only two adapters have persistence built into their configuration:</STRONG></P><OL><LI><STRONG>XI</STRONG> - ABAP proxy, used with SAP PI and also available in CI (great for lift-and-shift migrations)</LI><LI><STRONG>AS2</STRONG> - Common EDI protocol</LI></OL><P>If you're not using XI or AS2, you need another way to persist messages.</P><P><STRONG>Enter the star of our show: JMS (Java Message Service) - The Missing Piece</STRONG></P><P> </P><H2 id="toc-hId-806243609">Why JMS Is the Game-Changer</H2><P>JMS provides what async SOAP or IDOC cannot: a durable queue that guarantees your message will be delivered, even if the receiver is temporarily unavailable, even if your tenant restarts, even if processing fails the first three times.</P><P><STRONG>The game-changer:</STRONG> JMS works with ANY sender adapter (if async behaviour expected).<BR />You are not limited to SOAP or IDOC. You can utilize obviously our favourite HTTP adapter (again - if it is not handled in RESTful way - not expecting synchronous response).</P><P>You can also add JMS queue after any polling adapter like SFTP or Mail.</P><P>For all polling adapters, message stays at source in case of error and retried in next poll, but still JMS is very useful in specific scenarios like Granular retry after split (e.g File → split → every record send in separate message to receiver via JMS queue).</P><P><STRONG>Bottomline:</STRONG> Sender adapter + JMS receiver adapter = Async with guaranteed delivery</P><H3 id="toc-hId-738812823">JMS Is CI's Internal Queueing Engine</H3><P>JMS can persist messages and guarantee delivery with <STRONG>At Least Once (ALO)</STRONG> semantics. This single adapter transforms CI into a message broker-like engine capable of reliable, resilient, scalable message delivery with high data quality.</P><P>However:</P><UL><LI>JMS messages cannot cross tenant boundaries</LI><LI>JMS adapter does not support connectivity to any other, customer-provided message brokers via JMS protocol (name here most popular: IBM MQ, Apache ActiveMQ, RabbitMQ). If you need to connect with external message broker use corresponding available adapters in CI like: IBM MQ (also with JMS Variant). Most will work with AMQP adapter.</LI></UL><H3 id="toc-hId-542299318">JMS Leverages SAP Event Mesh</H3><P>JMS adapter in CI uses SAP Event Mesh as the underlying messaging infrastructure. While the interfaces are not event-driven, they adopt event-architecture characteristic - <STRONG>Guaranteed message delivery</STRONG> through:</P><UL><LI><STRONG>Resilience via retry patterns:</STRONG> If something breaks, it automatically retries and eventually delivers the message to the receiver</LI><LI><STRONG>Message queueing:</STRONG> Buffer messages during spikes/bursts when sender and receiver operate at different paces</LI></UL><H3 id="toc-hId-345785813">Important Caveat on "Guaranteed Delivery"</H3><P>Even with guaranteed delivery configured, certain scenarios can prevent message delivery (or result in what could be termed "guaranteed non-delivery"):</P><P><STRONG>Permanent data errors</STRONG> (fail fast, no retry):</P><UL><LI>Non-existent product in order line item</LI><LI>Completely wrong message format or structure</LI><LI>Schema validation failures</LI></UL><P><STRONG>Temporary/connectivity errors</STRONG> (retry appropriate):</P><P>After several retries, if the receiver remains unavailable (extended maintenance windows or unexpected downtime), messages (if well designed) end up in the Dead Letter Queue (DLQ).</P><P>In this situation messages may not be delivered if:</P><UL><LI>TTL (Time To Live) expires and the message becomes stale. In such cases, it may be preferable not to deliver the outdated message, or implement logic to refresh the data if reprocessing occurs after an extended period.</LI><LI>DLQ messages are not reprocessed: This occurs due to the absence of an automatic retry mechanism combined with missed manual intervention.</LI></UL><H3 id="toc-hId-149272308">Clarifying Responsibility Layers</H3><P>An important distinction: JMS doesn't replace sender-side retry logic - it complements it.</P><P><STRONG>Layer 1 - Transmission (Sender → CI):</STRONG><BR />Senders can implement retry for network failures and CI unavailability. If the sender doesn't receive HTTP 202 acknowledgment, it retries sending. This is the sender's responsibility and works the same whether CI uses JMS or not.</P><P><STRONG>Layer 2 - Processing (CI → Receiver):</STRONG><BR />After the sender receives HTTP 202, it stops retrying. Now the message is CI's responsibility. Without JMS persistence, if processing fails (mapping error, receiver down, timeout), <STRONG>the message is lost</STRONG> from CI’s perspective. Sender will not retry after receiving HTTP 202 and CI has no persistent copy.</P><P><STRONG>With JMS, the workflow becomes:</STRONG></P><OL><LI>Sender sends message</LI><LI>CI persists to JMS queue</LI><LI>CI returns HTTP 202 (sender is done)</LI><LI>CI processes from queue and calls receiver</LI><LI><STRONG>If processing fails:</STRONG> JMS automatically retries without sender involvement</LI><LI><STRONG>If retries exhausted:</STRONG> Message moves to DLQ</LI></OL><P>This creates <STRONG>true fire-and-forget for senders</STRONG> while ensuring <STRONG>guaranteed delivery by middleware</STRONG>. The sender's responsibility ends at getting acknowledgment; CI's responsibility continues until successful receiver delivery.</P><TABLE border="1" cellpadding="10"><TBODY><TR><TD><span class="lia-unicode-emoji" title=":warning:">⚠️</span><STRONG>Without JMS, there's a dangerous gap</STRONG> where the sender thinks delivery succeeded (got 202) but the message was never delivered (processing failed). This gap is what JMS eliminates.</TD></TR></TBODY></TABLE><P>If you are working with SAP S/4HANA or ECC, SOAP with SAP RM (Reliable Messaging) is a powerful option for reliable asynchronous communication. It provides:</P><UL><LI>True non-blocking asynchronous processing</LI><LI>Sender-side and receiver-side <STRONG>at-least-once</STRONG> delivery with built-in persistence in ABAP runtime</LI><LI>Protocol-level duplicate detection</LI><LI>Message sequencing (EOIO – Exactly Once In Order within queue sequences)</LI></UL><P>When combined with JMS for downstream processing, SOAP SAP RM enables a robust end-to-end integration pattern.</P><P> </P><H2 id="toc-hId-170930441">The Real Superpower: Quality of Service Levels</H2><P>Guaranteed delivery is excellent, but we can go further.</P><H3 id="toc-hId--318986071">Exactly Once (EO) Processing</H3><P>Sometimes we cannot tolerate duplicate messages at receivers (sending the same order twice is unacceptable). Deduplication can be handled by the sender, middleware, or receiver.</P><P>When middleware needs to handle it, use <STRONG>Idempotent Process Call Step with a unique business key</STRONG>.</P><P><STRONG>JMS + Idempotent Process Call Step</STRONG> achieves QoS = <STRONG>Exactly Once (EO)</STRONG> processing *</P><P>Your interface is now both resilient with guaranteed delivery and idempotent. *</P><TABLE border="1" cellpadding="10"><TBODY><TR><TD><span class="lia-unicode-emoji" title=":warning:">⚠️</span><STRONG>*Warning:</STRONG> If guaranteeing zero duplicates is a critical requirement, middleware-based idempotency may not be sufficient in edge cases involving timeouts and acknowledgment failures.<BR /><BR />SAP Help states: <I>"There might still be problems if the call runs into a timeout or the target application doesn't acknowledge the call. In this case, it isn't clear if the message is successfully processed by the application and duplicates can't be completely ruled out."</I><BR /><A href="https://help.sap.com/docs/cloud-integration/sap-cloud-integration/define-idempotent-process-call" target="_blank" rel="noopener noreferrer">Define Idempotent Process Call</A></TD></TR></TBODY></TABLE><P><STRONG>Mitigation strategies:</STRONG></P><UL><LI><STRONG>Receiver-side idempotency:</STRONG> The most reliable approach. The receiver must implement its own duplicate detection using unique business keys.</LI><LI><STRONG>Extended timeout configuration:</STRONG> Increase timeout values to reduce the likelihood of premature timeout during processing.</LI><LI><STRONG>Acknowledge before processing:</STRONG> In some patterns, the receiver can acknowledge receipt immediately, then process asynchronously with its own retry logic. However, this shifts the reliability burden to the receiver.</LI><LI><STRONG>Accept "at least once" semantics:</STRONG> If business logic is naturally idempotent (e.g., "set customer status to Active" vs. "increment counter"), duplicates may be acceptable.</LI></UL><P><STRONG>Bottom line:</STRONG> True "exactly once" delivery is impossible in distributed systems without receiver cooperation. Middleware can reduce duplicates significantly, but cannot eliminate them entirely in failure scenarios. Design your receiver systems to handle potential duplicates gracefully.</P><H3 id="toc-hId--515499576">Exactly Once In Order (EOIO) Processing</H3><P>Sometimes, additionally message sequence must be preserved (common in financial transactions or warehouse operations) - strict FIFO (First In, First Out) behavior.</P><P>This is achievable using the JMS sender adapter's <STRONG>Exclusive access type</STRONG> (introduced in 2025). With this setting, only one tenant node processes messages from the queue sequentially. If any message fails, all subsequent messages wait in the queue for resolution.</P><TABLE border="1" cellpadding="10"><TBODY><TR><TD><span class="lia-unicode-emoji" title=":warning:">⚠️</span><STRONG>Warning:</STRONG> This requirement is operationally demanding. You need quick, solid resolution of failed messages to prevent blocking the entire queue. If the first message in an EOIO queue fails, the other 999 messages behind it are stuck until the retry does its work or a human intervenes. This is the biggest "hidden cost" of EOIO. My strong advice: Avoid EOIO unless absolutely required<BR /><A href="https://community.sap.com/t5/integration-blog-posts/ensuring-exactly-once-in-order-quality-of-service-in-cloud-integration/ba-p/14180026" target="_blank">SAP Community: Ensuring Exactly Once In Order Quality of Service</A></TD></TR></TBODY></TABLE><P>We've now jumped from EO to <STRONG>EOIO (Exactly Once In Order)</STRONG>. Your interface is serialized as well.</P><TABLE border="1" cellpadding="10"><TBODY><TR><TD><span class="lia-unicode-emoji" title=":warning:">⚠️</span><STRONG>Critical consideration:</STRONG> JMS with Exclusive mode alone isn't sufficient for truly ordered delivery. The sender system and receiver system must also ensure order. It requires end-to-end design because failures can occur anywhere. Only when all components preserve order you can claim QoS = EOIO.</TD></TR></TBODY></TABLE><TABLE border="1" cellpadding="10"><TBODY><TR><TD><span class="lia-unicode-emoji" title=":warning:">⚠️</span><STRONG>Critical limitation:</STRONG> The standard SAPJMSRetries header - mandatory for retry handling - is unavailable for Exclusive access type. This is a critical limitation requiring workarounds like persisting retry counts in a DataStore per Message ID. SAP dev team: this gap needs to be fixed.</TD></TR></TBODY></TABLE><P>For high-volume scenarios requiring ordered processing, consider Partitioned Queues in SAP Advanced Event Mesh (AEM). Unlike standard Exclusive Queues, which limit processing to a single consumer and create a performance bottleneck, Partitioned Queues allow for parallel processing while still guaranteeing order within each partition. Scalable ordered processing only in AEM !</P><P><STRONG>Note:</STRONG> XI and SOAP (SAP RM) adapters ensure EOIO end-to-end for ECC and S/4HANA.</P><P><STRONG>XI adapter:</STRONG> Watch out for the XI adapter - it cannot use built-in JMS temporary persistence and requires a separate JMS step with Exclusive access type. In XI sender adapter set "Handled by Integration Flow" delivery assurance setting.</P><P>For the Pipeline Concept, the generic iFlow for inbound XI processing doesn't support EOIO yet. <A href="https://hub.sap.com/integrationflow/com.sap.integration.cloud.pipeline.v2.generic.step01.inbound.processing.xi" target="_blank" rel="noopener noreferrer"><BR />SAP Integration Hub: Pipeline XI Processing</A></P><P> </P><H2 id="toc-hId--418610074">Additional JMS Capabilities</H2><P>JMS offers several very powerful features:</P><H3 id="toc-hId--908526586">Scalability</H3><P>By defining multiple Concurrent Processes in the JMS sender adapter, you can significantly increase throughput. The actual parallel processing power is a product of your environment's scale:</P><P><STRONG>Total Parallelism = Number of Worker Nodes × Concurrent Processes.</STRONG></P><P>This allows you to process high-volume backlogs much faster or design specific "priority queues" to ensure business-critical messages aren't stuck behind bulk data loads.</P><TABLE border="1" cellpadding="10"><TBODY><TR><TD><span class="lia-unicode-emoji" title=":warning:">⚠️</span><STRONG>Watch out for Resource Limits</STRONG>: Each concurrent process consumes a JMS connection (consumer). Increasing this number too aggressively can exhaust your tenant’s available JMS resource quota, potentially preventing other iFlows from connecting to the messaging infrastructure. Always balance your need for speed with the shared limits of your subaccount</TD></TR></TBODY></TABLE><H3 id="toc-hId--1105040091">Transactional Behavior</H3><P>All JMS operations can participate in transactions inside Iflow - commit all or none (rollback).</P><P>Two common use cases:</P><P><STRONG>Scenario 1:</STRONG> Start with JMS sender adapter and include JMS receiver adapter in the iFlow (fired from SEND steps). With transaction enabled, if an error occurs after a Send step, the entire transaction rolls back (JMS call is rollbacked).</P><P><STRONG>Scenario 2:</STRONG> (without a JMS sender adapter) Delivering messages after Splitting/Multicasting via JMS receiver adapters (multiple JMS calls). Set JMS transaction on the iFlow. If any JMS call fails, all others roll back.</P><P><STRONG>Pro-tip:</STRONG> message is visible in queue only after processing is finished.</P><P>For the JMS sender adapter (or XI / AS2 using JMS as temporary storage) - no transaction handler is required.</P><P>For the JMS receiver adapter (or XI / AS2 using JMS as temporary storage) - no transaction handler is required if the adapter is not used in a sequential multicast or in a split scenario</P><P><STRONG>General guideline:</STRONG> To minimize resource consumption, configure transactions to be as short as possible. You can enforce it by moving related tasks into a subprocess so that the transaction can be limited to the subprocess and the main process can be kept nontransactional.</P><H3 id="toc-hId--1301553596">Flexibility</H3><P>Create queue names dynamically, passing them via headers or properties. This applies to JMS receiver adapters (JMS sender adapter queue name must still be provided statically as it is created at Iflow deployment). This enables creation of highly generic JMS consumers driven by the runtime logic.</P><H3 id="toc-hId--1498067101">Operations in queue monitoring</H3><P>Extensive monitoring UI options: move messages between queues, delete entire queues or specific messages, manually retry queues or individual messages, download messages for analysis.</P><P><STRONG>RECENT UPDATE: </STRONG>Better filtering has arrived! Beyond Standard Message and Correlation IDs, you can now filter by:</P><UL><LI>Standard Headers: Sender, Receiver, Application Message ID, Application Message Type</LI><LI>JMS Message ID</LI><LI>Status</LI></UL><P><STRONG>Why it matters:</STRONG> You no longer need to rely on DataStore just to get flexible "Entry ID" style searching. Finding specific messages is now faster and more intuitive.</P><P> </P><H2 id="toc-hId--1401177599">The Curious Case of SOAP One-Way Robust</H2><P>Earlier we mentioned that the SOAP adapter offers an asynchronous option using the <STRONG>"One-Way - WS Standard"</STRONG> Message Exchange Pattern. However, there is a closely related variant that deserves special attention due to the confusion it frequently causes: <STRONG>SOAP 1.x One-Way Robust</STRONG>.</P><P>This processing type introduces a subtle but important distinction between <STRONG>guaranteed delivery</STRONG> and <STRONG>decoupling</STRONG> - two concepts that are often (incorrectly) treated as the same thing.</P><H3 id="toc-hId--1891094111">The Paradox: “Asynchronous” That Blocks</H3><P>When SOAP 1.x is configured with <STRONG>Message Exchange Pattern = One-Way</STRONG> and <STRONG>Processing Type = Robust</STRONG>, the runtime behavior looks like this:</P><UL><LI>✓ The sender <STRONG>waits</STRONG> until the entire iFlow completes</LI><LI>✓ The HTTP connection <STRONG>remains open</STRONG> until the End Message event</LI><LI>✓ HTTP 202 is returned only after successful processing</LI><LI>✓ Any processing error is returned immediately as a SOAP fault</LI></UL><P><STRONG>Wait - isn’t this synchronous behavior?</STRONG></P><P>From a runtime and performance perspective: <STRONG>yes</STRONG>. The sender is blocked exactly as it would be in a synchronous interface.</P><P>However, according to SOAP/WSDL semantics, this pattern is still classified as <STRONG>“asynchronous”</STRONG> because:</P><UL><LI>No business response payload is defined or returned</LI><LI>The interface follows the SOAP <EM>In-Only</EM> message exchange pattern</LI><LI>The HTTP 202 response is a technical acknowledgment, not a business result</LI></UL><H3 id="toc-hId--1919423925">What “Robust” Actually Adds</H3><P>The key difference between <STRONG>One-Way - WS Standard</STRONG> and <STRONG>One-Way - Robust</STRONG> is <STRONG>error visibility</STRONG>.</P><P>Robust processing guarantees that the sender is explicitly informed whether the message was accepted or rejected. This allows the sender to react immediately and - if implemented - retry failed messages.</P><TABLE border="1" cellpadding="8"><TBODY><TR><TD><STRONG>Characteristic</STRONG></TD><TD><STRONG>One-Way - WS Standard</STRONG></TD><TD><STRONG>One-Way - Robust</STRONG></TD></TR><TR><TD>Sender blocking</TD><TD><STRONG>No</STRONG> – immediate response</TD><TD><STRONG>Yes</STRONG> – waits for full iFlow</TD></TR><TR><TD>Error visibility</TD><TD>None</TD><TD>Immediate SOAP fault</TD></TR><TR><TD>Retry capability</TD><TD>No</TD><TD>Yes, implemented by sender</TD></TR><TR><TD>Guaranteed delivery</TD><TD>No</TD><TD><STRONG>Yes</STRONG>, if sender persists and retries messages</TD></TR><TR><TD>Decoupling</TD><TD>Yes</TD><TD><STRONG>No</STRONG></TD></TR></TBODY></TABLE><H3 id="toc-hId--2115937430">Guaranteed Delivery - But Not Decoupled</H3><P>This is the most important takeaway:</P><P><STRONG>SOAP One-Way Robust can provide guaranteed delivery</STRONG> - but only by shifting responsibility to the sender.</P><P>If the sender:</P><UL><LI>persists outgoing messages</LI><LI>detects SOAP faults or timeouts</LI><LI>retries failed deliveries</LI></UL><P>then robust one-way processing enables <STRONG>at-least-once delivery semantics</STRONG>.</P><P>What it does <STRONG>not</STRONG> provide is decoupling:</P><UL><LI>The sender remains blocked until CPI finishes processing</LI><LI>Sender throughput is directly tied to CPI performance</LI><LI>Availability of CPI impacts sender availability</LI></UL><TABLE border="1" cellpadding="10"><TBODY><TR><TD><span class="lia-unicode-emoji" title=":warning:">⚠️</span><STRONG>Important distinction:</STRONG> One-Way Robust improves reliability, not scalability or decoupling. It guarantees delivery by protocol semantics and sender retries, not by durable middleware boundaries.</TD></TR></TBODY></TABLE><H3 id="toc-hId-1982516361">When Is One-Way Robust a Valid Choice?</H3><P>One-Way Robust is appropriate when:</P><UL><LI>The sender must immediately know whether processing failed</LI><LI>No business response should ever be returned</LI><LI>The sender is capable of persisting and retrying messages</LI><LI>Runtime coupling is acceptable</LI><LI>Legacy SOAP contracts mandate one-way robust semantics</LI></UL><H3 id="toc-hId-1786002856">Why JMS Is Still Essential</H3><P>If you need both:</P><UL><LI>Guaranteed delivery <STRONG>and</STRONG></LI><LI>True asynchronous decoupling</LI></UL><P>then SOAP One-Way Robust alone is insufficient.</P><P>JMS introduces a durable acceptance boundary inside CPI, transferring reliability and retry responsibility from the sender to the integration platform. This enables non-blocking behavior, back-pressure handling, and operational replay - capabilities that robust one-way processing does not provide.</P><TABLE border="1" cellpadding="10"><TBODY><TR><TD><span class="lia-unicode-emoji" title=":warning:">⚠️</span><STRONG>Best practice:</STRONG> Combine One-Way Robust with an early JMS handoff. Robust handling protects the inbound interface, while JMS provides true asynchronous decoupling and platform-managed reliability.</TD></TR></TBODY></TABLE><P> </P><TABLE border="1" cellpadding="10"><TBODY><TR><TD><STRONG>Coming up in <A href="https://community.sap.com/t5/integration-blog-posts/jms-mastery-series-part-3-jms-in-production/ba-p/14300416" target="_blank">Part 3: JMS in Production</A> </STRONG><BR /><BR />We've covered the "what" and "why" of JMS. Now comes the practical reality. Part 3 delivers battle-tested best practices, real production considerations, and the architectural decision framework you need to choose between JMS and Event Broker patterns.</TD></TR></TBODY></TABLE>2026-02-06T10:57:33.324000+01:00https://community.sap.com/t5/integration-blog-posts/jms-mastery-series-part-3-jms-in-production/ba-p/14300416JMS Mastery Series Part 3 - JMS in Production2026-02-06T10:57:49.669000+01:00MateuszPiotrowskihttps://community.sap.com/t5/user/viewprofilepage/user-id/1161523<H1 id="toc-hId-1658534762">JMS in Production: Best Practices, Limitations, and When to Use Event Broker</H1><P>Confessions of a JMS Advocate (Part 3 of 3)</P><TABLE border="1" cellpadding="10"><TBODY><TR><TD><STRONG>Recap from <A href="https://community.sap.com/t5/integration-blog-posts/jms-mastery-series-part-1-the-async-awakening/ba-p/14319670" target="_blank">Part 1</A> & <A href="https://community.sap.com/t5/integration-blog-posts/jms-mastery-series-part-2-the-jms-revolution/ba-p/14319644" target="_blank">Part 2</A>:</STRONG> We challenged the synchronous default (Part 1) and discovered that JMS transforms non-blocking behavior into true guaranteed delivery through persistence, retries, and Quality of Service levels (Part 2). Now we address the practical realities: limitations, best practices, and when Event Broker is the better choice.</TD></TR></TBODY></TABLE><P> </P><H2 id="toc-hId-1591103976">Considerations and Limitations</H2><P><STRONG>Is JMS perfect for all use cases?</STRONG> Of course, not.</P><H3 id="toc-hId-1523673190">Queue Limits</H3><P><A href="https://help.sap.com/docs/integration-suite/sap-integration-suite/jms-resource-limits-and-optimizing-their-usage" target="_blank" rel="noopener noreferrer">SAP Help: JMS Resource Limits and Optimizing Their Usage</A></P><UL><LI>Default tenant limit: 30 JMS queues</LI><LI>Easily increased to 100 (self-service)</LI><LI>Above 100 via SAP ticket (with valid justification)</LI></UL><P>Is this a serious limitation? If you're enthusiastic about asynchronous interfaces like me, possibly. However:</P><UL><LI>You can share the same queue across multiple interfaces (group them by Sender, Receiver, business domain etc)</LI><LI>For PI migrations, leverage the Pipeline concept to optimize queue management by reusing a minimal set of queues across all asynchronous integrations. Using Integrated Async Processing results in 2 active queues and 2 corresponding DLQs - keeping the total at a bare minimum of 4 queues.</LI></UL><P><BR />Other limits are generous and should not require workarounds:</P><UL><LI>Default 90-day, maximum 180-day retention period. However note that JMS is <STRONG>transient</STRONG> storage, do not treat it like a database!</LI><LI>9.3 GB storage size (in addition to the 32 GB tenant database), expandable to 30 GB</LI></UL><TABLE border="1" cellpadding="10"><TBODY><TR><TD><span class="lia-unicode-emoji" title=":warning:">⚠️</span>While the theoretical maximum message size is very high (1280 MB - 256 × 5 MB chunks), pushing large attachments (e.g. 20MB+ PDFs) into JMS is an architectural anti-pattern. If a high-volume interface with large payloads hits a downstream bottleneck over a weekend, it can exhaust the entire storage pool (and memory during serialization). The result is catastrophic: every other JMS-based interface on your tenant will fail.<BR /><BR /><STRONG>The Expert's Recipe</STRONG>: Implement the Claim Check pattern (store large files in an Object Store/DMS and pass only the reference via JMS) and/or enforce strict payload size validation at the sender adapter to reject oversized requests. Implement monitoring alerts in CALM to check storage capacity.</TD></TR></TBODY></TABLE><H3 id="toc-hId-1327159685">Dead Letter Queue Handling</H3><P>I highly recommend using DataStore for DLQ management - you have complete control over automatic retry frequency via Timer steps (beyond manual retry).</P><P>However, for standard retry scenarios, JMS is superior and much more performant than DataStore (which is a database, not designed for high-throughput messaging).</P><H3 id="toc-hId-1130646180">API Operations</H3><P>No OData APIs for operations on JMS queue / queue messages (unlike for DataStore / DataStore entries). This prevents operating on JMS from external applications (beside access from Iflow)</P><P> </P><H2 id="toc-hId-805049956">Best Practices and Recommendations</H2><H3 id="toc-hId-737619170">Common Misconception: Exception Subprocess Pattern</H3><P>I frequently see developers using JMS receiver adapter in the Exception subprocess to retry failed messages. Is this correct?<BR />For error handling purpose only: Definitely Yes.<BR />For asynchronous processing: No - the sender still waits for complete iFlow execution</P><H3 id="toc-hId-541105665">Keep Initial iFlow Simple</H3><P>Keep the "decoupling" sender iFlow (sender adapter + JMS receiver adapter) as simple as possible.</P><P>While you can add steps to save headers, properties, or log messages for audit purposes, be cautious: each additional step increases the risk of failure before the message is safely queued - which would then require exception handling or sender retries (if possible). This essentially defeats the purpose of decoupling. Also remember that your sender must wait through every step before receiving acknowledgment.</P><H3 id="toc-hId-344592160">Queue Architecture for Complex Flows</H3><P>How many queues for a long, complex flow?</P><P>For resource-intensive logic, split your iFlow with multiple JMS queues. Then each iFlow does ONE thing well and:</P><UL><LI>Reuse is natural</LI><LI>Failures are isolated</LI><LI>Monitoring is crystal clear (which stage failed?)</LI><LI>Reprocessing is surgical (restart from the failed stage)</LI></UL><P><STRONG>But balance it:</STRONG> Consider the JMS queue limit constraint.</P><H3 id="toc-hId-148078655">Retry Strategy</H3><P>Retry only temporary errors, not permanent ones (requires careful assessment):</P><UL><LI><STRONG>Temporary:</STRONG> Connectivity issues, receiver unavailability, timeouts</LI><LI><STRONG>Permanent:</STRONG> Invalid data, validation failures, business rule violations, authentication/authorization issues</LI></UL><P><STRONG>No universal rule exists</STRONG> for categorizing errors - it depends on receiver implementation.</P><P><STRONG>My personal opinion:</STRONG> In most cases better to retry unnecessarily than fail and ask the sender to reprocess. Initially configure data errors you're certain should not retry (e.g. HTTP 400, 403, 405 or internal errors within iFlow coming from mapping, groovy script logic etc). Everything else triggers retry. After gaining operational experience, add other permanent errors to externalized parameters for filtering.</P><P><STRONG>Remark:</STRONG> Not all data errors are permanent. Some can be resolved on the receiver side, such as:</P><UL><LI>Missing master data that may be created shortly</LI><LI>Configuration issues that can be corrected</LI></UL><P>Unlike errors caused by invalid sender data, these are suitable for retry. Determine whether your integration scenario includes such recoverable errors and configure your retry strategy accordingly.</P><H3 id="toc-hId--123666219">Retry configuration best practices</H3><UL><LI>Retry only a few times (never indefinitely)</LI><LI>Use short breaks (few minutes) with exponential backoff</LI></UL><P>Temporary issues often resolve quickly. If not, move messages to DLQ (designed for longer pauses: hours or days) to handle extended receiver unavailability or data/configuration issues on Receiver side.</P><H3 id="toc-hId--320179724">Leverage Adapter-Level Retries</H3><P>Use retry capabilities of adapters (HTTP, SuccessFactors) <STRONG>in addition to</STRONG> JMS, never alone. Adapter features are limited and cannot replace JMS richness.</P><P>Think of it this way: When connectivity issues arise, let the adapter try first (HTTP: max 3 retries, no backoff configuration). If insufficient (more retries needed, undefined HTTP status), JMS catches it - messages always end up in queue or DLQ. You don't want to see Failed status too often or too quickly.</P><P> </P><H2 id="toc-hId--223290222">Event-Driven Architecture (EDA) vs. JMS</H2><P>Using JMS, we've built fully decoupled, resilient interfaces with guaranteed delivery. So why would we need Event Broker at all?</P><P><STRONG>Does EDA still provide benefits? Do we still need an Event Bus like Event Mesh or AEM?</STRONG></P><P>Yes, but for different reasons than you might think.</P><TABLE border="1" cellpadding="10"><TBODY><TR><TD><span class="lia-unicode-emoji" title=":warning:">⚠️</span>And let's be clear: "event-driven sounds impressive in architecture reviews" is not one of them. Neither is "it'll look good on my CV". Event Broker earns its place through actual technical advantages.</TD></TR></TBODY></TABLE><H3 id="toc-hId--713206734">When JMS Excels: Point-to-Point with CI Orchestration</H3><P>For <STRONG>point-to-point</STRONG> and async request-reply where a sender communicates with a single receiver, JMS is the ideal choice when CI already provides necessary mediation and orchestration beyond the basic routing and queueing capabilities of an event broker.</P><H3 id="toc-hId--909720239">When Event Broker Excels: Pub-Sub Patterns</H3><P>For <STRONG>Pub-Sub broadcasting through topics</STRONG> (Publish-Subscribe pattern: one sender, potentially many receivers), an Event Broker is always the correct choice.</P><P>Yes, you can technically replicate pub-sub in CI. You can successfully create a Recipient List pattern using dynamic routing to many receivers based on varied content (payload, headers/properties, HTTP path/query parameters...). For this, use Partner Directory and XSLTs while maintaining decoupled flows with independent queues per every receiver. Advantages: Partner Directory does not require redeployment, directly configurable on target tenant (no transport), therefore very flexible ... and dangerous tool.</P><P>Generally the question becomes: Better to force one tool (CI) to handle everything (doing pub-sub gymnastics) or use specialized tools for specific use cases (CI for mediation/orchestration, Event Broker for pub-sub)? If this isn't obvious, check ISA-M.</P><P><STRONG>EDA's decisive advantage:</STRONG> True decoupling through dynamic subscription. Receivers add themselves to topics without touching the middleware. This flexibility - not just guaranteed delivery - is what separates event-driven architectures from traditional message-oriented middleware.</P><H3 id="toc-hId--1106233744">The Gray Zone: Event Broker for Point-to-Point?</H3><P>Even for point-to-point, Event Broker can be the better choice when:</P><UL><LI><STRONG>Enterprise EDA strategy</STRONG> mandates routing all async through Event Broker for consistency</LI><LI><STRONG>No CI mediation needed</STRONG> (pure routing, minimal transformation)</LI><LI><STRONG>JMS limitations become constraining</STRONG></LI></UL><TABLE border="1" cellpadding="10"><TBODY><TR><TD><span class="lia-unicode-emoji" title=":warning:">⚠️</span>But stop cargo-culting Event Broker. 'It might become pub-sub!' is not architecture - it's hedging your bets with someone else's budget. Yes, requirements change. Yes, some point-to-point flows become pub-sub. But when only 1 in 10 integrations actually needs that second subscriber, deploying Event Broker for all 10 is waste. Design for today's reality, refactor for tomorrow's actuality. YAGNI applies to infrastructure too.</TD></TR></TBODY></TABLE><H3 id="toc-hId--1302747249">Cost Considerations</H3><P>For high-throughput interfaces, Event Brokers are more cost-effective, as they are charged by data volume (GB) rather than by egress like Integration Suite (charged per outbound messages).<BR />Note: Messages sent out through JMS receiver adapter are not considered as outbound messages because JMS adapter is internal adapter (like ProcessDirect) which makes usage of JMS "free of charge"</P><H3 id="toc-hId--1499260754">SAP S/4HANA Integration</H3><P>For utilizing standard S/4HANA events, Event Mesh with its CI AMQP adapter is the best match.</P><H3 id="toc-hId--1695774259">Advanced EDA Requirements</H3><P>For sophisticated EDA needs Advanced Event Mesh (AEM) is the answer</P><P>Example use cases:</P><UL><LI>Event streaming with replay capabilities (Kafka-like)</LI><LI>Request-reply with Reply-To destination for long running processes</LI><LI>Non-exclusive access type with partitioned queues for order ensurance and scalability</LI><LI>Direct point to point - direct messaging without persistent endpoint for performance over reliability</LI><LI>Persistent topic endpoint - as an alternative to queue endpoint, example use case: JMS durable subscribers</LI><LI>Very demanding high-volume integrations</LI></UL><P> </P><H2 id="toc-hId--1598884757">JMS: The King of CI Workflow Async Processing</H2><P><STRONG>Central thesis:</STRONG> JMS is the king of <STRONG>point-to-point async processing within CI workflows</STRONG>. This single adapter - available freely in all CI editions (except Basic) - converts synchronous flows into fully decoupled, reliable processing when CI provides necessary mediation and/or orchestration.</P><P>This single adapter brings CI close to PI/PO in decoupling capabilities. While PI provides these qualities through configuration, CI achieves them through BPMN freestyle design - a respected successor with modern look and feel.</P><P><STRONG>Stop treating SAP CI only as a web service mediator and orchestrator. With its built-in JMS message broker, CI supports high-throughput, reliable, asynchronous messaging</STRONG></P><P>But recognize its domain: JMS excels at async processing <STRONG>within CI's orchestration scope</STRONG>. For pub-sub patterns and enterprise-wide event distribution, Event Broker wears the crown.</P><P><STRONG>Know which kingdom you're in:</STRONG></P><UL><LI><STRONG>Point-to-point with CI mediation/orchestration:</STRONG> JMS is king</LI><LI><STRONG>Pub-sub and enterprise EDA:</STRONG> Event Broker is king</LI><LI><STRONG>Both exist in healthy integration landscapes</STRONG></LI></UL><P> </P><H2 id="toc-hId--1627214571">Final Thoughts</H2><P>Many colleagues argue that synchronous interfaces are superior because the sender quickly learns operation results - nothing remains on the middleware side, clean hands for us. This is true if our goal is to minimize responsibility and simplify our lives short-term.</P><P>When considering what's best for the project and customer overall:</P><P><STRONG>For point-to-point integrations with CI orchestration:</STRONG> Incorporate "ASYNC-first" and "JMS-first" alongside "API-first."</P><P><STRONG>For business events and pub-sub patterns:</STRONG> Embrace "EDA-first" with Event Broker from day one.</P><P><STRONG>These aren't competing philosophies - they're complementary patterns for different integration scenarios.</STRONG> Master both. Use each where it excels.</P><P> </P><H2 id="toc-hId--1823728076">Share your thoughts</H2><P>What are your experiences with JMS and asynchronous processing? I'd love to hear your stories and challenges in the comments below.</P><P>If I missed something important or you do not agree - feel free to comment as well, happy to discuss <span class="lia-unicode-emoji" title=":slightly_smiling_face:">🙂</span></P>2026-02-06T10:57:49.669000+01:00https://community.sap.com/t5/technology-blog-posts-by-sap/setting-up-document-grounding-with-cloud-integration-automation-service/ba-p/14323963Setting Up Document Grounding with Cloud Integration Automation service: Making Joule context-aware2026-02-09T08:07:07.162000+01:00abhyarthanahttps://community.sap.com/t5/user/viewprofilepage/user-id/731998<P>While Document Grounding has been used to make <STRONG>Joule</STRONG> context-aware with specific business data, the <STRONG>latest development</STRONG> is that <STRONG>integrating Document Grounding</STRONG> <STRONG>with Joule</STRONG> is now fully automated by <STRONG>Cloud Integration Automation service</STRONG>.</P><P>In this blog you will find how Cloud Integration Automation service completely automates the integration of <STRONG>Document Grounding with Joule and SharePoint as the data source, hence making Joule context aware.</STRONG></P><P>For more information regarding Document Grounding refer the blogpost : <A href="https://community.sap.com/t5/technology-blog-posts-by-sap/joule-getting-started-with-document-grounding-setup-guide-1/ba-p/13739501" target="_blank">Joule – Getting Started with Document Grounding</A></P><H2 id="toc-hId-1789558853">Setting up Document Grounding using Cloud Integration Automation service</H2><P>To set up Document Grounding, you would need to configure many steps as explained in <A href="https://community.sap.com/t5/technology-blog-posts-by-sap/joule-getting-started-with-document-grounding-setup-guide-1/ba-p/13739501" target="_blank">Blog</A>, however, lets now discover how Cloud Integration Automation service can simplify the whole process.</P><P><STRONG>Prerequisites:</STRONG></P><OL><LI>Joule instance should be available in one of the SAP BTP subaccounts</LI><LI>You have prepared SharePoint as mentioned in this <A href="https://community.sap.com/t5/technology-blog-posts-by-sap/joule-getting-started-with-document-grounding-setup-guide-1/ba-p/13739501" target="_blank">Blog</A> <SPAN>step “</SPAN><U>6. Prepare SharePoint Integration</U><STRONG> <SPAN>“. </SPAN></STRONG></LI></OL><P><STRONG>Note: You will use SharePoint details later in the Cloud Integration Automation service workflow</STRONG></P><P><STRONG>Step 1: </STRONG>Subscribe Cloud Integration Automation service via BTP service marketplace. More details can be found : <A href="https://help.sap.com/docs/cloud-integration-automation/user-guide/overview" target="_blank" rel="noopener noreferrer">What is Cloud Integration Automation Service? | SAP Help Portal</A>.</P><P><STRONG>Step 2:</STRONG> Once subscribed, launch Cloud Integration Automation service application and click on “<STRONG>Plan for Integration</STRONG>”</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Image 1" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/370104iD9C21BA530EE7603/image-size/large?v=v2&px=999" role="button" title="SS1.png" alt="Image 1" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Image 1</span></span></P><P><STRONG>Step 3:</STRONG> Search for “<STRONG>Document Grounding”</STRONG> scenario</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Image 2" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/370105i0B74D6C5252B91D1/image-size/large?v=v2&px=999" role="button" title="SS2.png" alt="Image 2" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Image 2</span></span></P><P>You can view scenario related details such as “Description”, “Scenario Entities”, “Scenario Tasks”.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Image 3" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/370106i57E4A2EE17DAAE87/image-size/large?v=v2&px=999" role="button" title="SS3.png" alt="Image 3" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Image 3</span></span></P><P><STRONG>Step 4:</STRONG> Click on “<STRONG>Select Systems</STRONG>”.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Image 4" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/370109i8561120605B8CEE1/image-size/large?v=v2&px=999" role="button" title="SS4.png" alt="Image 4" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Image 4</span></span></P><P><STRONG>Step 5:</STRONG> Provide system details and “Generate Workflow”</P><OL><LI>Provide SAP BTP system details</LI></OL><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Image 5" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/370111i14775BC73CB87DB9/image-size/large?v=v2&px=999" role="button" title="SS5.png" alt="Image 5" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Image 5</span></span></P><P> 2. Click on Generate workflow ->Background Execution</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Image 6" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/370113iA345C037AEE00668/image-size/large?v=v2&px=999" role="button" title="SS6.png" alt="Image 6" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Image 6</span></span></P><P><STRONG>Note:</STRONG> In the above step, Cloud Integration Automation service will generate a fully automated workflow, and users just need to provide few information to complete the integration.</P><P>Click on <STRONG>Next step</STRONG></P><P><STRONG><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ss7.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/370115iA10F28E161434985/image-size/large?v=v2&px=999" role="button" title="ss7.png" alt="ss7.png" /></span></STRONG></P><P>Select <STRONG>SharePoint</STRONG> as the data source as highlighted in the below screen shot.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Image 8" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/370116i6044111F03DFA5EE/image-size/large?v=v2&px=999" role="button" title="SS8.png" alt="Image 8" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Image 8</span></span></P><P>Click on <STRONG>Next Step</STRONG></P><P><STRONG><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Image 9" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/370118i717D0245E64BF044/image-size/large?v=v2&px=999" role="button" title="SS9.png" alt="Image 9" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Image 9</span></span></STRONG></P><P><STRONG>Note:</STRONG> In this step Cloud Integration Automation service will create Share point destination, hence you will use share point information such as Share Point client ID, Share Point Client Secrete, SharePoint Tenant ID, Site URL from the Share Point application that you are using as the data source. You can fetch SharePoint details by referring to the screen shots.</P><P>Client ID:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Image 10" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/370119i08D2D24CCC928A8C/image-size/large?v=v2&px=999" role="button" title="SS10.png" alt="Image 10" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Image 10</span></span></P><P>Client Secrete:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Image 11" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/370120iC4E7BE57AE0386B8/image-size/large?v=v2&px=999" role="button" title="SS11.png" alt="Image 11" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Image 11</span></span></P><P>Tenant ID:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Image 12" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/370121i6A531120EB9FF614/image-size/large?v=v2&px=999" role="button" title="SS12.png" alt="Image 12" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Image 12</span></span></P><P>SharePoint URL:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Image 13" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/370122i78D67B9964EBFFC6/image-size/large?v=v2&px=999" role="button" title="SS13.png" alt="Image 13" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Image 13</span></span></P><P>Once you provide all the task parameters click on <STRONG>Next step</STRONG></P><P><STRONG><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Image 14" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/370123iAE520D4EB677B61D/image-size/large?v=v2&px=999" role="button" title="SS14.png" alt="Image 14" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Image 14</span></span></STRONG></P><P>Click on <STRONG>Confirm</STRONG></P><P><STRONG><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Image 15" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/370124iEDF6226677A77441/image-size/large?v=v2&px=999" role="button" title="SS15.png" alt="Image 15" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Image 15</span></span></STRONG></P><P><STRONG><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Image 16" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/370125i6056F466255498B9/image-size/large?v=v2&px=999" role="button" title="SS16.png" alt="Image 16" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Image 16</span></span></STRONG></P><P><STRONG>Step 7</STRONG>: Navigate to <STRONG>Scenario Monitoring</STRONG> to check the workflow status.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Image 17" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/370127iCD6F0B4D4B88BB10/image-size/large?v=v2&px=999" role="button" title="SS17.png" alt="Image 17" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Image 17</span></span></P><P>Here you can observe that all the tasks that are needed for this integration are listed and implemented sequentially.</P><P> Task list<SPAN>:</SPAN></P><TABLE><TBODY><TR><TD width="386.991px" height="50px"><P><STRONG>Task Name</STRONG></P></TD><TD width="213.993px" height="50px"><P><STRONG>Task Status</STRONG></P></TD></TR><TR><TD width="386.991px" height="77px"><P><BR />Assign Entitlement for Document Grounding Service</P></TD><TD width="213.993px" height="77px"><P>Automated</P></TD></TR><TR><TD width="386.991px" height="50px"><P>Create Grounding Service Instance with a Service Key</P></TD><TD width="213.993px" height="50px"><P>Automated</P></TD></TR><TR><TD width="386.991px" height="77px"><P>Create Cloud Identity Service Instance with a Service Key</P></TD><TD width="213.993px" height="77px"><P>Automated</P></TD></TR><TR><TD width="386.991px" height="77px"><P>Create Destination Service Instance with a Service Key</P></TD><TD width="213.993px" height="77px"><P>Automated</P></TD></TR><TR><TD width="386.991px" height="50px"><P>Create Destination in BTP for Existing SharePoint</P></TD><TD width="213.993px" height="50px"><P>Automated</P></TD></TR><TR><TD width="386.991px" height="77px"><P>Create Destination in BTP for Existing SAP Document Management Service</P></TD><TD width="213.993px" height="77px"><P>Automated</P></TD></TR><TR><TD width="386.991px" height="50px"><P>Create Pipeline for SharePoint</P></TD><TD width="213.993px" height="50px"><P>Automated</P></TD></TR><TR><TD width="386.991px" height="77px"><P>Create Pipeline for SAP Document Management Service</P></TD><TD width="213.993px" height="77px"><P>Automated</P></TD></TR></TBODY></TABLE><P> </P><P>Upon implementation of all the tasks, Document Grounding is fully integrated with Joule and is context aware with SharePoint as the data source.</P><P><STRONG>Step 8:</STRONG> Go to BTP subaccount to check the following:</P><P>1. Instances (groundigcli, grounding Des, identityService) are created along with their service keys</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="SS18.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/370129iDB83F67C5B9A7689/image-size/large?v=v2&px=999" role="button" title="SS18.png" alt="SS18.png" /></span>2. Document Grounding destination (docu-grounding-dest-sh) is created</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Image 19" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/370132i59860B898E17D8DA/image-size/large?v=v2&px=999" role="button" title="SS19.png" alt="Image 19" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Image 19</span></span></P><P><STRONG>Step 9</STRONG>: Launch Joule and ask Joule questions. You can now get context-aware answers and with links to its document sources.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Image 20" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/370135i9A02CD8C82F1FEDB/image-size/large?v=v2&px=999" role="button" title="SS20.png" alt="Image 20" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Image 20</span></span></P><P> </P><H2 id="toc-hId-1593045348">Useful Links</H2><P> <A href="https://help.sap.com/docs/cloud-integration-automation/user-guide/overview" target="_blank" rel="noopener noreferrer">What is Cloud Integration Automation Service? | SAP Help Portal</A></P><P><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/joule-provisioning-with-sap-s-4hana-cloud-private-edition-using-cloud/ba-p/14202777" target="_blank">Joule provisioning with SAP S/4HANA Cloud Private using Cloud Integration Automation service</A></P>2026-02-09T08:07:07.162000+01:00https://community.sap.com/t5/integration-blog-posts/announcement-register-to-the-new-cei-project-for-sap-integration-suite-in/ba-p/14321718Announcement: Register to the new CEI project for SAP Integration Suite in 20262026-02-09T08:33:34.010000+01:00alex_bundschuhhttps://community.sap.com/t5/user/viewprofilepage/user-id/45178<P>Like in the previous years, we will run a <STRONG>Global Customer Engagement Initiative (CEI) for SAP Integration Suite</STRONG> also in 2026.</P><P>Last year, we had 180+ registered customers and partners from over 20 countries worldwide. We ran multiple feedback sessions covering various capabilities and strategic investment topics of SAP Integration Suite such as "SAP Process Orchestration move" (ABAP proxy generation, mass migration, migration assessment, migration agent, etc.), AI & gen AI in the context of SAP Integration Suite in general and for B2B in particular, monitoring and operations, new adapters and adapter enhancements, reusable APIs and governance of API key access, event driven architecture, etc.</P><P>In 2026, we will continue collaborating with our customers and partners to gather feedback on product improvements, enhancements and new developments to validate the planned enhancements at an early stage, and ensuring that what we build will meet your business needs.</P><P>This will include open discussion about our current product backlog from the <A href="https://roadmaps.sap.com/board?PRODUCT=000D3A47875C1EDB98A8A910864AC24B" target="_blank" rel="noopener noreferrer">roadmap explorer</A> as well as addressing pain points and topics that we collected in last year's CEI project such as more on Edge Integration Cell, AI, SAP PI/PO to SAP Integration Suite migration, Event Driven Architecture, ISA-M, best practices and guidelines, developer experience, etc. </P><P data-unlink="true">If you like to join the upcoming SAP Integration Suite influence project for providing feedback and shaping the SAP Integration Suite product, please<SPAN> </SPAN><A href="https://influence.sap.com/sap/ino/#campaign/4124" target="_blank" rel="noopener noreferrer">register here</A><SPAN> (link leads to the </SPAN>customer influence page).</P><P><STRONG>Registration is open from 9th of February 2026 until 13th of March 2026.</STRONG></P><P>Once, the registration closes, we will invite you for an initial call where we go through the scope and the prerequisites of the feedback project. This will be around end of March/ begin of April so that we are able to start the project latest in April this year.</P><P>We will run monthly feedback sessions through the end of the year and hold a closing call to summarize our learnings, review the feedback collected, and discuss next steps.</P><P>Register today to ensure you do not miss this opportunity to influence and contribute to shaping <STRONG>SAP Integration Suite</STRONG> to meet your business needs. </P><P>We look forward to your active participation and valuable feedback.</P><P> </P>2026-02-09T08:33:34.010000+01:00https://community.sap.com/t5/integration-blog-posts/how-to-get-started-with-pipeline-for-cloud-integration/ba-p/14325267How to Get Started with Pipeline for Cloud Integration2026-02-10T16:02:09.566000+01:00LorenaHanserhttps://community.sap.com/t5/user/viewprofilepage/user-id/1471152<P>This blog is a beginner’s blog for getting started with Pipeline for Cloud Integration, for integration developers having experience in Cloud Integration in general. The Pipeline was introduced beginning of 2024, when it was a concept (referred to as Pipeline Concept) as part of the migration guide for migrating from SAP Process Orchestration / SAP Process Integration to SAP Integration Suite. In the last months and years, the Pipeline has been evolved from a concept to a solution, being regularly enhanced with new features and customer requirements. That’s why there is a lot of Pipeline-related content available. As a central starting point, this blog aims to shed light on what the Pipeline is about and how to initially set it up in Cloud Integration.</P><H1 id="toc-hId-1660528993"> </H1><P><ul =""><li style="list-style-type:disc; margin-left:0px; margin-bottom:1px;"><a href="https://community.sap.com/t5/integration-blog-posts/how-to-get-started-with-pipeline-for-cloud-integration/ba-p/14325267#toc-hId-1464015488">Motivation</a></li><li style="list-style-type:disc; margin-left:0px; margin-bottom:1px;"><a href="https://community.sap.com/t5/integration-blog-posts/how-to-get-started-with-pipeline-for-cloud-integration/ba-p/14325267#toc-hId-1267501983">Use Cases</a></li><li style="list-style-type:disc; margin-left:0px; margin-bottom:1px;"><a href="https://community.sap.com/t5/integration-blog-posts/how-to-get-started-with-pipeline-for-cloud-integration/ba-p/14325267#toc-hId-1070988478">Architecture</a></li><li style="list-style-type:disc; margin-left:0px; margin-bottom:1px;"><a href="https://community.sap.com/t5/integration-blog-posts/how-to-get-started-with-pipeline-for-cloud-integration/ba-p/14325267#toc-hId-874474973">Initial Setup of the Pipeline</a></li><li style="list-style-type:disc; margin-left:30px; margin-bottom:1px;"><a href="https://community.sap.com/t5/integration-blog-posts/how-to-get-started-with-pipeline-for-cloud-integration/ba-p/14325267#toc-hId-807044187">Point-to-point scenario (sample 5)</a></li><li style="list-style-type:disc; margin-left:60px; margin-bottom:1px;"><a href="https://community.sap.com/t5/integration-blog-posts/how-to-get-started-with-pipeline-for-cloud-integration/ba-p/14325267#toc-hId-739613401">Copy standard packages from SAP Business Accelerator Hub</a></li><li style="list-style-type:disc; margin-left:60px; margin-bottom:1px;"><a href="https://community.sap.com/t5/integration-blog-posts/how-to-get-started-with-pipeline-for-cloud-integration/ba-p/14325267#toc-hId-543099896">Deploy generic Integration Flows</a></li><li style="list-style-type:disc; margin-left:60px; margin-bottom:1px;"><a href="https://community.sap.com/t5/integration-blog-posts/how-to-get-started-with-pipeline-for-cloud-integration/ba-p/14325267#toc-hId-346586391">Create and deploy scenario-specific Integration Flows</a></li><li style="list-style-type:disc; margin-left:60px; margin-bottom:1px;"><a href="https://community.sap.com/t5/integration-blog-posts/how-to-get-started-with-pipeline-for-cloud-integration/ba-p/14325267#toc-hId-150072886">Setup Partner Directory entries</a></li><li style="list-style-type:disc; margin-left:60px; margin-bottom:1px;"><a href="https://community.sap.com/t5/integration-blog-posts/how-to-get-started-with-pipeline-for-cloud-integration/ba-p/14325267#toc-hId--121671988">Run your first scenario</a></li><li style="list-style-type:disc; margin-left:30px; margin-bottom:1px;"><a href="https://community.sap.com/t5/integration-blog-posts/how-to-get-started-with-pipeline-for-cloud-integration/ba-p/14325267#toc-hId--24782486">Scenario with XSLT for content-based routing (sample 1A)</a></li><li style="list-style-type:disc; margin-left:60px; margin-bottom:1px;"><a href="https://community.sap.com/t5/integration-blog-posts/how-to-get-started-with-pipeline-for-cloud-integration/ba-p/14325267#toc-hId--711212503">Copy standard packages from SAP Business Accelerator Hub</a></li><li style="list-style-type:disc; margin-left:60px; margin-bottom:1px;"><a href="https://community.sap.com/t5/integration-blog-posts/how-to-get-started-with-pipeline-for-cloud-integration/ba-p/14325267#toc-hId--1104239513">Deploy generic Integration Flows</a></li><li style="list-style-type:disc; margin-left:60px; margin-bottom:1px;"><a href="https://community.sap.com/t5/integration-blog-posts/how-to-get-started-with-pipeline-for-cloud-integration/ba-p/14325267#toc-hId--1497266523">Create and deploy scenario-specific Integration Flows</a></li><li style="list-style-type:disc; margin-left:60px; margin-bottom:1px;"><a href="https://community.sap.com/t5/integration-blog-posts/how-to-get-started-with-pipeline-for-cloud-integration/ba-p/14325267#toc-hId--1693780028">Setup Partner Directory entries</a></li><li style="list-style-type:disc; margin-left:60px; margin-bottom:1px;"><a href="https://community.sap.com/t5/integration-blog-posts/how-to-get-started-with-pipeline-for-cloud-integration/ba-p/14325267#toc-hId--1890293533">Run your second scenario</a></li><li style="list-style-type:disc; margin-left:0px; margin-bottom:1px;"><a href="https://community.sap.com/t5/integration-blog-posts/how-to-get-started-with-pipeline-for-cloud-integration/ba-p/14325267#toc-hId--1331817333">Accelerator Tool</a></li><li style="list-style-type:disc; margin-left:0px; margin-bottom:1px;"><a href="https://community.sap.com/t5/integration-blog-posts/how-to-get-started-with-pipeline-for-cloud-integration/ba-p/14325267#toc-hId--1528330838">Link Collection</a></li></ul></P><P> </P><H1 id="toc-hId-1464015488">Motivation</H1><P>The Pipeline is a framework designed to ease setting up integration scenarios. Instead of starting from scratch each time, it uses a <STRONG>standard design</STRONG> provided by SAP. This <STRONG>saves time</STRONG> and <STRONG>reduces complexity</STRONG> because you can reuse the same building blocks for different scenarios. It works by handling tasks asynchronously, which helps keep systems running smoothly. The Pipeline offers strong <STRONG>error-handling</STRONG> and <STRONG>retry options</STRONG>, both automatic and manual, to keep messages flowing. Plus, it allows <STRONG>content-based routing</STRONG> based on the message content during processing. It ensures that messages are processed <STRONG>Exactly Once</STRONG> and supports <STRONG>idempotency</STRONG>, keeping data accurate and consistent.</P><P>The Pipeline <STRONG>simplifies complex integration setups</STRONG>, like content-based routing and recipient lists, and helps in cases of <STRONG>receivers and interfaces splits</STRONG>. Generic integration flows can be <STRONG>reused</STRONG> across scenarios, cutting down on effort and complexity. It works well for the <STRONG>migration of SAP PI/PO to Cloud Integration</STRONG>, with support from the migration tool, while keeping necessary processing features intact. You can also use the Pipeline to create new scenarios, whether they are <STRONG>asynchronous or synchronous</STRONG>. It efficiently uses <STRONG>limited resources</STRONG> in Cloud Integration, like JMS queues, by sharing them across several scenarios. By using the standard, this framework is <STRONG>flexible</STRONG>, allowing for <STRONG>customization and extension </STRONG>to fit specific use cases.</P><P> </P><H1 id="toc-hId-1267501983">Use Cases</H1><P>The Pipeline for Cloud Integration is suited for but not primarily restricted to companies <STRONG>transitioning from SAP PI/PO</STRONG> to Cloud Integration. It provides a smooth migration process leveraging the migration tool. Beyond migrations, the Pipeline is a solution for designing new integration scenarios in a <STRONG>uniform structure</STRONG>, making it easier for <STRONG>maintenance and monitoring</STRONG>. It can use generic inbound integration flows as single entry points for both <STRONG>XI proxy and IDoc scenarios</STRONG>, streamlining message processing, and has an option for generic XI or IDoc outbound flows. Additionally, the Pipeline supports <STRONG>extended receiver determination</STRONG>, enabling more precise routing than usual XSLT mappings.</P><P>For simpler uses, <STRONG>point-to-point scenarios</STRONG> are supported, where you can bypass receiver and interface determination steps for faster runtime and simpler configuration, relying on string parameters from the Partner Directory instead of XSLT mappings. For special situations, the Pipeline supports the use of <STRONG>receiver-specific JMS queues</STRONG>, although the default is a generic outbound queue to keep operations straightforward. It also accommodates combined receiver and interface determinations in a single XSLT, as well as <STRONG>sender wildcard</STRONG> scenarios. Altogether, the Pipeline allows to stay in standard while supporting a variety of use cases.</P><P> </P><H1 id="toc-hId-1070988478">Architecture</H1><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="LorenaHanser_1-1770713250310.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/370786iDBD66C4B3349D878/image-size/large?v=v2&px=999" role="button" title="LorenaHanser_1-1770713250310.png" alt="LorenaHanser_1-1770713250310.png" /></span></P><P>The Pipeline works with multiple Integration Flows using a limited number of JMS queues for asynchronous scenarios. There are generic and scenario-specific Integration Flows: generic Integration Flows are developed and enhanced by SAP, being published in SAP Business Accelerator Hub (see next chapter “Initial Setup of Pipeline”). The scenario-specific Integration Flows do not contain lots of complexity and are either generated by the migration tool, or you can create them manually. For different scenarios, messages share the generic Integration Flows as well as the JMS queues – the latter one is important as it targets the reuse of limited resources in Cloud Integration.</P><P>For content-based routing and dynamic message processing behavior, the Pipeline relies on the Partner Directory, from which it reads the required information at runtime. Based on the sender system and the sender interface, the Pipeline looks up the Partner ID (Pid) in the Partner Directory. The Pid is the name of your integration scenario, which holds together the scenario, containing string parameters for dynamic message processing behavior as well as receiver and interface determination, either as binary parameters for content-based routing using XSLT mappings, or as string parameters for point-to-point scenarios (which have exactly one receiver system and one receiver interface).</P><P>The architectural diagram almost shows the bare minimum required for Cloud Integration: 4 Integration Flows (2 generic Integration Flows, 2 scenario-specific Integration Flows), 2 JMS queues, and the Partner Directory (with minimum 2 entries per scenario being 1 alternative partner and 1 binary parameter for content-based routing with combined receiver determination). From this architecture, the Pipeline can be highly extended with more Integration Flows, JMS queues, and Partner Directory entries, to implement a variety of different scenarios and use cases by using the standard framework.</P><P> </P><H1 id="toc-hId-874474973">Initial Setup of the Pipeline</H1><P>To set up the Pipeline for the first time, you can follow the steps below to run your first working scenarios. In this blog post, two scenarios are described with a step-by-step guide which you can follow along to set up the Pipeline in your tenant. You can use a development tenant or even setup a <A href="https://developers.sap.com/tutorials/cp-starter-isuite-onboard-subscribe..html" target="_blank" rel="noopener noreferrer">trial tenant</A> to follow along.</P><P> </P><H2 id="toc-hId-807044187">Point-to-point scenario (<A href="https://github.com/peasantsboot/ProcessIntegrationPipelineSampleScenarios/tree/main/scenarios/scenario5" target="_blank" rel="noopener nofollow noreferrer">sample 5</A>)</H2><P>From our experience, most of the integration scenarios are point-to-point, meaning that, for a combination of sender system and sender interface, these scenarios have exactly one receiver system with one receiver interface. These scenarios bypass the content-based routing and therefore are easier to setup by using string parameters in the Partner Directory for receiver and interface determination.</P><P>The following example is <A href="https://github.com/peasantsboot/ProcessIntegrationPipelineSampleScenarios/tree/main/scenarios/scenario5" target="_blank" rel="noopener nofollow noreferrer">sample scenario 5</A> (PID: PIP_Samples_Scenario_5) of the <A href="https://github.com/peasantsboot/ProcessIntegrationPipelineSampleScenarios" target="_blank" rel="noopener nofollow noreferrer">sample scenarios</A> by <a href="https://community.sap.com/t5/user/viewprofilepage/user-id/45178">@alex_bundschuh</a>. As explained above, you need 4 Integration Flows for that, as well as 2 (automatically created) JMS queues and some Partner Directory entries. The following table shows how this fits together (in order of occurrence at runtime):</P><TABLE border="1" width="100%"><TBODY><TR><TD width="12.473572938689218%" height="77px"><P><STRONG>Type</STRONG></P></TD><TD width="39.74630021141649%" height="77px"><P><STRONG>Technical name in standard</STRONG></P></TD><TD width="19.556025369978858%" height="77px"><P><STRONG>Name in picture of architecture</STRONG></P></TD><TD width="28.118393234672308%" height="77px"><P><STRONG>Purpose</STRONG></P></TD></TR><TR><TD width="12.473572938689218%" height="105px"><P>Integration Flow scenario-specific</P></TD><TD width="39.74630021141649%" height="105px"><P>PIPSamplesScenario5_Step01<BR />(custom name)</P></TD><TD width="19.556025369978858%" height="105px"><P>Inbound (scenario-specific)</P></TD><TD width="28.118393234672308%" height="105px"><P>This Integration Flow receives the incoming message and puts it to the generic JMS queue for decoupling.</P></TD></TR><TR><TD width="12.473572938689218%" height="132px"><P>JMS queue</P></TD><TD width="39.74630021141649%" height="132px"><P>PIPX01</P></TD><TD width="19.556025369978858%" height="132px"><P>Inbound X queue</P></TD><TD width="28.118393234672308%" height="132px"><P>The JMS queue holds the message until it is taken by the next Integration Flow and eventually handles retries.</P></TD></TR><TR><TD width="12.473572938689218%" height="187px"><P>Integration Flow generic</P></TD><TD width="39.74630021141649%" height="187px"><P>Pipeline v2 Generic Step02 – Integrated Messaging Runtime Async</P></TD><TD width="19.556025369978858%" height="187px"><P>Integrated Messaging Async (generic)</P></TD><TD width="28.118393234672308%" height="187px"><P>After looking up the Pid from the Partner Directory, this Integration Flow covers both receiver and interface determination, covering special cases such as point-to-point scenarios.</P></TD></TR><TR><TD width="12.473572938689218%" height="132px"><P>Partner Directory entry – alternative partner</P></TD><TD width="39.74630021141649%" height="132px"><P>PIP_Samples_Scenario_5</P></TD><TD width="19.556025369978858%" height="132px"><P>Partner Directory</P></TD><TD width="28.118393234672308%" height="132px"><P>By looking up the combination of sender system and sender interface, the PID is determined as name of the scenario.</P></TD></TR><TR><TD width="12.473572938689218%" height="132px"><P>Partner Directory entry – string parameter</P></TD><TD width="39.74630021141649%" height="132px"><P>PIP_Samples_Scenario_5</P></TD><TD width="19.556025369978858%" height="132px"><P>Partner Directory</P></TD><TD width="28.118393234672308%" height="132px"><P>For the PID, this entry holds the string parameters needed for point-to-point receiver and interface determination.</P></TD></TR><TR><TD width="12.473572938689218%" height="132px"><P>JMS queue</P></TD><TD width="39.74630021141649%" height="132px"><P>PIPQ04</P></TD><TD width="19.556025369978858%" height="132px"><P>Outbound queue</P></TD><TD width="28.118393234672308%" height="132px"><P>The JMS queue holds the message until it is taken by the next Integration Flow and eventually handles retries.</P></TD></TR><TR><TD width="12.473572938689218%" height="132px"><P>Integration Flow generic</P></TD><TD width="39.74630021141649%" height="132px"><P>Pipeline v2 Generic Step06 – Outbound Processing</P></TD><TD width="19.556025369978858%" height="132px"><P>Outbound (generic)</P></TD><TD width="28.118393234672308%" height="132px"><P>This Integration Flow prepares the message to be sent out and calls the scenario-specific ProcessDirect address.</P></TD></TR><TR><TD width="12.473572938689218%" height="187px"><P>Integration Flow scenario-specific</P></TD><TD width="39.74630021141649%" height="187px"><P>PIPSamplesScenario5_Step07_RCV1_IF1<BR />(custom name)</P></TD><TD width="19.556025369978858%" height="187px"><P>Outbound (scenario-specific)</P></TD><TD width="28.118393234672308%" height="187px"><P>This Integration Flow is called via ProcessDirect adapter. If necessary, scenario-specific conversion can be done here for the receiver system, before the message is sent out of Cloud Integration.</P></TD></TR></TBODY></TABLE><P> </P><P>You might be wondering why the Integration Flows cover step01, step02, step06, and step07. This is due to historical reasons, steps 02, 04, and 05 are now all covered by Integration Flow “Pipeline v2 Generic Step02 – Integrated Messaging Runtime Async” and step03 is an optional scenario-specific Integration Flow if inbound conversion like JSON to XML or CSV to XML is needed (the latter one is shown in the picture of architecture with the name “Inbound Conversion (scenario-specific)”). With that, let’s start step by step with setting up the Pipeline in your tenant.</P><P> </P><H3 id="toc-hId-739613401">Copy standard packages from SAP Business Accelerator Hub</H3><P>In total, there are <A href="https://hub.sap.com/search?searchterm=pipeline%20for%20cloud%20integration&tab=All&refinedBy=true" target="_blank" rel="noopener noreferrer">four active packages related to the Pipeline</A>. For the initial setup, however, you only need to copy two of these packages to your Cloud Integration tenant:</P><UL><LI><A href="https://hub.sap.com/package/CloudIntegrationPipelineGenericPipelines/integrationflow" target="_blank" rel="noopener noreferrer">Cloud Integration Pipeline – Generic Pipelines</A></LI><LI><A href="https://hub.sap.com/package/CloudIntegrationPipelineGenericOutbound/integrationflow" target="_blank" rel="noopener noreferrer">Cloud Integration Pipeline – Generic Outbound</A></LI></UL><P>For that, find the packages in the “Discover > Integrations” area of your tenant and simply copy both packages to the tenant.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="LorenaHanser_0-1770713888657.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/370790i879C3DF9DB51A7F2/image-size/large?v=v2&px=999" role="button" title="LorenaHanser_0-1770713888657.png" alt="LorenaHanser_0-1770713888657.png" /></span></P><H3 id="toc-hId-543099896">Deploy generic Integration Flows</H3><P>From these packages, only two Integration Flows need to be deployed to get started.</P><UL><LI><A href="https://hub.sap.com/integrationflow/com.sap.integration.cloud.pipeline.v2.generic.step02.integrated.messaging.async" target="_blank" rel="noopener noreferrer">Pipeline v2 Generic Step02 – Integrated Messaging Runtime Async</A> from package “Cloud Integration Pipeline – Generic Pipelines”</LI><LI><A href="https://hub.sap.com/integrationflow/com.sap.integration.cloud.pipeline.v2.generic.step06.outbound.processing" target="_blank" rel="noopener noreferrer">Pipeline v2 Generic Step06 – Outbound Processing</A> from package “Cloud Integration Pipeline – Generic Outbound”</LI></UL><P>This can be done in the “Design > Integrations and APIs” area of the same tenant. The default configuration of the Integration Flows is sufficient; you can just deploy them both without any changes.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="LorenaHanser_0-1770730606297.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/370986i05C2926D509C8BDF/image-size/large?v=v2&px=999" role="button" title="LorenaHanser_0-1770730606297.png" alt="LorenaHanser_0-1770730606297.png" /></span></P><P>Once these Integration Flows are deployed, you can check which JMS queues have been created in the background. For that, go to “Monitor > Integrations and APIs > Message Queues”. The default queues are “PIPX01” and “PIPQ04”, both come with a dead letter queue “PIPX01_DLQ” and “PIPQ04_DLQ” in which the message ends up if the number of retries have been exceeded. (Additionally, you might see “PIP<STRONG>Q</STRONG>01”, which used to be the old default queue. When using Integration Flow “Pipeline v2 Generic Step02 – Integrated Messaging Runtime Async”, the default queue is “PIP<STRONG>X</STRONG>01”.)</P><P> </P><H3 id="toc-hId-346586391">Create and deploy scenario-specific Integration Flows</H3><P>Generally, these scenario-specific Integration Flows would either be generated by the migration tool, or you would copy them from the <A href="https://hub.sap.com/package/CloudIntegrationPipelineTemplates/integrationflow" target="_blank" rel="noopener noreferrer">templates package</A>, or you would create them manually, as they usually don’t contain too much logic.</P><P>For this sample, you can import the <A href="https://github.com/peasantsboot/ProcessIntegrationPipelineSampleScenarios/raw/refs/heads/main/download/PIP%20Samples%20-%20Scenario%205.zip" target="_blank" rel="noopener nofollow noreferrer">sample package for scenario 5</A> to your tenant. In “Design > Integrations and APIs”, import the package from your local device. Without any modification needed, deploy the following artifacts:</P><UL><LI>PIPSamplesScenario5_Step01</LI><LI>PIPSamplesScenario5_Step07_RCV1_IF1</LI></UL><P>Additionally, there is a <A href="https://github.com/peasantsboot/ProcessIntegrationPipelineSampleScenarios/raw/refs/heads/main/download/PIP%20Samples%20-%20Little%20Helpers.zip" target="_blank" rel="noopener nofollow noreferrer">little helpers package</A> which you can import to your tenant to deploy this Integration Flow simulating a receiver system:</P><UL><LI>PIP_Mocked_Receiver</LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="LorenaHanser_2-1770714026532.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/370792i2F051CB86A83AE3E/image-size/large?v=v2&px=999" role="button" title="LorenaHanser_2-1770714026532.png" alt="LorenaHanser_2-1770714026532.png" /></span></P><P> </P><H3 id="toc-hId-150072886">Setup Partner Directory entries</H3><P>To setup the Partner Directory entries required for your first scenario, you can use the <A href="https://help.sap.com/docs/cloud-integration/sap-cloud-integration/managing-partner-directory-entries" target="_blank" rel="noopener noreferrer">Partner Directory UI</A>. To access it, select “Monitor > Integrations and APIs > Partner Directory” in your tenant. In addition, there is a Pipeline-specific accelerator tool which helps you to set up your Partner Directory entries. You can learn more about this tool in the upcoming chapter.</P><P>You’ll see that all Partner Directory entries (no matter if it’s alternative partners, string parameters, or binary parameters) have the same partner ID, which holds together the scenario. For a point-to-point scenario, we need two string parameters for receiver and interface determination, all others (like MaxJMSRetries in that case) are optional and can be used to influence the message processing behavior at runtime.</P><P><STRONG>Alternative partner:</STRONG></P><pre class="lia-code-sample language-json"><code>{
"Pid": "PIP_Samples_Scenario_5",
"Agency": "Sender_51",
"Scheme": "SenderInterface",
"Id": "SalesOrder.Create"
}</code></pre><P><STRONG>String parameters:</STRONG></P><pre class="lia-code-sample language-json"><code>{
"Pid": "PIP_Samples_Scenario_5",
"Id": "MaxJMSRetries",
"Value": "2"
}</code></pre><pre class="lia-code-sample language-json"><code>{
"Pid": "PIP_Samples_Scenario_5",
"Id": "receiverDetermination",
"Value": "Receiver_51"
}</code></pre><pre class="lia-code-sample language-json"><code>{
"Pid": "PIP_Samples_Scenario_5",
"Id": "interfaceDetermination_Receiver_51",
"Value": "/PIP/Step07/Samples/Scenario_5/Receiver_51/IfIdx1"
}</code></pre><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="LorenaHanser_3-1770714764272.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/370800i1EBF23F24572716B/image-size/large?v=v2&px=999" role="button" title="LorenaHanser_3-1770714764272.png" alt="LorenaHanser_3-1770714764272.png" /></span></P><P> </P><H3 id="toc-hId--121671988">Run your first scenario</H3><P>With this setup, you’re able to run your first scenario through Pipeline for Cloud Integration. For that, prepare an HTTP message in the HTTP client of your choice, e.g. Postman or Bruno.</P><pre class="lia-code-sample language-markup"><code>### trigger sample scenario 5
POST https://{{host}}/http/PIP/Step01/Samples/Scenario_5
Authorization: usual authentication to call an Integration Flow, e.g. basic authentication or OAuth using a service key from SAP BTP
Content-Type: application/xml
SAP_Sender: Sender_51
SAP_SenderInterface: SalesOrder.Create
xPipeline: true
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:pi="http://pi-elevation.bootcamp.com">
<soapenv:Header/>
<soapenv:Body>
<pi:MT_SalesOrder_0001>
<salesOrder>
<orderNumber>50001</orderNumber>
<orderDate>10/01/2023</orderDate>
<customer>
<firstName>Amruta</firstName>
<lastName>Kamble</lastName>
<street>Hauptstrasse</street>
<number>89</number>
</customer>
<items>
<itemNumber>Test</itemNumber>
<material>Test_material</material>
<quantity>5</quantity>
<price>550</price>
</items>
</salesOrder>
</pi:MT_SalesOrder_0001>
</soapenv:Body>
</soapenv:Envelope></code></pre><P>Under “Monitor > Integrations and APIs > Monitor Message Processing”, you can check how your message was processed at runtime. There, you should see 5 new messages with status “Completed”. They all have the same correlation ID; you can filter by this correlation ID to only display the messages corresponding to the last run of your scenario. With that, you can see that the steps 01, 02, 06, and 07 of the Pipeline were called. At runtime, your Partner Directory entries have been accessed by step02. For each entry, there are details on the right-hand side such as sender and receiver as well as custom headers set by the Pipeline.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="LorenaHanser_4-1770717723697.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/370831i1B7DCC4583F461C4/image-size/large?v=v2&px=999" role="button" title="LorenaHanser_4-1770717723697.png" alt="LorenaHanser_4-1770717723697.png" /></span></P><P>Congratulation, your first scenario is running! This is almost the simplest option of running the Pipeline, yet it is heavily used in practice. To build on that, you can take a look at the next scenario using content-based routing. Since you have now initially set up the pipeline, new scenarios will be set up with even fewer steps.</P><P> </P><H2 id="toc-hId--24782486">Scenario with XSLT for content-based routing (<A href="https://github.com/peasantsboot/ProcessIntegrationPipelineSampleScenarios/tree/main/scenarios/scenario1A" target="_blank" rel="noopener nofollow noreferrer">sample 1A</A>)</H2><P>The following example is <A href="https://github.com/peasantsboot/ProcessIntegrationPipelineSampleScenarios/tree/main/scenarios/scenario1A" target="_blank" rel="noopener nofollow noreferrer">sample scenario 1A</A> (PID: PIP_Samples_Scenario_1A) of the <A href="https://github.com/peasantsboot/ProcessIntegrationPipelineSampleScenarios" target="_blank" rel="noopener nofollow noreferrer">sample scenarios</A> by <a href="https://community.sap.com/t5/user/viewprofilepage/user-id/45178">@alex_bundschuh</a>. As explained above, you need 4 Integration Flows for that, as well as 2 (automatically created) JMS queues and some Partner Directory entries. The following table shows how this fits together (in order of occurrence at runtime):</P><TABLE border="1" width="100%"><TBODY><TR><TD width="12.579281183932348%"><P><STRONG>Type</STRONG></P></TD><TD width="39.53488372093023%"><P><STRONG>Technical name in standard</STRONG></P></TD><TD width="19.556025369978858%"><P><STRONG>Name in picture of architecture</STRONG></P></TD><TD width="28.224101479915433%"><P><STRONG>Purpose</STRONG></P></TD></TR><TR><TD width="12.579281183932348%"><P>Integration Flow scenario-specific</P></TD><TD width="39.53488372093023%"><P>PIPSamplesScenario1_Step01<BR />(custom name)</P></TD><TD width="19.556025369978858%"><P>Inbound (scenario-specific)</P></TD><TD width="28.224101479915433%"><P>This Integration Flow receives the incoming message and puts it to the generic JMS queue for decoupling.</P></TD></TR><TR><TD width="12.579281183932348%"><P>JMS queue</P></TD><TD width="39.53488372093023%"><P>PIPX01</P></TD><TD width="19.556025369978858%"><P>Inbound X queue</P></TD><TD width="28.224101479915433%"><P>The JMS queue holds the message until it is taken by the next Integration Flow and eventually handles retries.</P></TD></TR><TR><TD width="12.579281183932348%"><P>Integration Flow generic</P></TD><TD width="39.53488372093023%"><P>Pipeline v2 Generic Step02 – Integrated Messaging Runtime Async</P></TD><TD width="19.556025369978858%"><P>Integrated Messaging Async (generic)</P></TD><TD width="28.224101479915433%"><P>After looking up the Pid from the Partner Directory, this Integration Flow covers both receiver and interface determination, covering special cases such as point-to-point scenarios.</P></TD></TR><TR><TD width="12.579281183932348%"><P>Partner Directory entry – alternative partner</P></TD><TD width="39.53488372093023%"><P>PIP_Samples_Scenario_1A</P></TD><TD width="19.556025369978858%"><P>Partner Directory</P></TD><TD width="28.224101479915433%"><P>By looking up the combination of sender system and sender interface, the PID is determined as name of the scenario.</P></TD></TR><TR><TD width="12.579281183932348%"><P>Partner Directory entry – string parameter</P></TD><TD width="39.53488372093023%"><P>PIP_Samples_Scenario_1A</P></TD><TD width="19.556025369978858%"><P>Partner Directory</P></TD><TD width="28.224101479915433%"><P>Based on the Pid, the Pipeline checks if a strung parameter with Id InboundConversionEndpoint is set in the Partner Directory, which is done for this scenario.</P></TD></TR><TR><TD width="12.579281183932348%"><P>Integration Flow scenario-specific</P></TD><TD width="39.53488372093023%"><P>PIPSamplesScenario1_Step03 (custom name)</P></TD><TD width="19.556025369978858%"><P>Inbound conversion (scenario-specific)</P></TD><TD width="28.224101479915433%"><P>Based on the ProcessDirect address set in the Partner Directory, a custom Integration Flow is called for inbound conversion. In this scenario, this is done by a JSON to XML converter.</P></TD></TR><TR><TD width="12.579281183932348%"><P>Partner Directory entry – binary parameter</P></TD><TD width="39.53488372093023%"><P>PIP_Samples_Scenario_1A</P></TD><TD width="19.556025369978858%"><P>Partner Directory</P></TD><TD width="28.224101479915433%"><P>For the PID, this entry holds the corresponding XSLT mapping for content-based routing.</P></TD></TR><TR><TD width="12.579281183932348%"><P>JMS queue</P></TD><TD width="39.53488372093023%"><P>PIPQ04</P></TD><TD width="19.556025369978858%"><P>Outbound queue</P></TD><TD width="28.224101479915433%"><P>The JMS queue holds the message until it is taken by the next Integration Flow and eventually handles retries.</P></TD></TR><TR><TD width="12.579281183932348%"><P>Integration Flow generic</P></TD><TD width="39.53488372093023%"><P>Pipeline v2 Generic Step06 – Outbound Processing</P></TD><TD width="19.556025369978858%"><P>Outbound (generic)</P></TD><TD width="28.224101479915433%"><P>This Integration Flow prepares the message to be sent out and calls the scenario-specific ProcessDirect address.</P></TD></TR><TR><TD width="12.579281183932348%"><P>Integration Flow scenario-specific</P></TD><TD width="39.53488372093023%"><P>PIPSamplesScenario1_Step07_RCVx_IFx<BR />(custom name)</P></TD><TD width="19.556025369978858%"><P>Outbound (scenario-specific)</P></TD><TD width="28.224101479915433%"><P>This Integration Flow is called via ProcessDirect adapter. If necessary, scenario-specific conversion can be done here for the receiver system, before the message is sent out of Cloud Integration.</P></TD></TR></TBODY></TABLE><H3 id="toc-hId--514698998"> </H3><H3 id="toc-hId--711212503">Copy standard packages from SAP Business Accelerator Hub</H3><P>As these packages are reused and we have already done this for our first scenario, we don’t need to do anything in this step.</P><H3 id="toc-hId--907726008"> </H3><H3 id="toc-hId--1104239513">Deploy generic Integration Flows</H3><P>These are the same Integration Flows which we have deployed earlier for the first scenario, so no action required for now.</P><H3 id="toc-hId--1300753018"> </H3><H3 id="toc-hId--1497266523">Create and deploy scenario-specific Integration Flows</H3><P>For this sample, you can import the <A href="https://github.com/peasantsboot/ProcessIntegrationPipelineSampleScenarios/raw/refs/heads/main/download/PIP%20Samples%20-%20Scenario%201.zip" target="_blank" rel="noopener nofollow noreferrer">sample package for scenario 1A</A> to your tenant. In “Design > Integrations and APIs”, import the package from your local device. Without any modification needed, deploy the following artifacts (in this scenario, step07 relies on a message mapping, which also needs to be deployed):</P><UL><LI>PIPSamplesScenario1_Step01</LI><LI>PIPSamplesScenario1_Step03</LI><LI>PIPSamplesScenario1_Step07_RCV2_IF1</LI><LI>mm_item_to_order</LI></UL><P> </P><H3 id="toc-hId--1693780028">Setup Partner Directory entries</H3><P>This time, for content-based routing, we need an XSLT as binary parameter for receiver and interface determination in addition to alternative partners and string parameters. These entries can again be created in the Partner Directory UI or with the accelerator tool.</P><P><STRONG>Alternative partner:</STRONG></P><pre class="lia-code-sample language-json"><code>{
"Pid": "PIP_Samples_Scenario_1A",
"Agency": "Sender_1A",
"Scheme": "SenderInterface",
"Id": "PurchaseOrderItem.Create"
}</code></pre><P><STRONG>String parameters:</STRONG></P><pre class="lia-code-sample language-json"><code>{
"Pid": "PIP_Samples_Scenario_1A",
"Id": "MaxJMSRetries",
"Value": "1"
}</code></pre><pre class="lia-code-sample language-json"><code>{
"Pid": "PIP_Samples_Scenario_1A",
"Id": "InboundConversionEndpoint",
"Value": "/PIP/Step03/Samples/Scenario_1"
}</code></pre><P><STRONG>Binary parameters:</STRONG></P><P>You can save the following XSLT as .xsl file on your local device and then upload it in the Partner Directory UI. Especially when dealing with Binary parameters, the recommendation is to use the accelerator tool, as this aims to simplify your interaction with the Partner Directory for the Pipeline. Using this tool as described in the chapter below, you don’t have to create the XSLT from scratch on your own, but the tool can generate it for you based on a tabular input – make sure to check the tool out!</P><pre class="lia-code-sample language-json"><code>{
"Pid": "PIP_Samples_Scenario_1A",
"Id": "receiverDetermination"
"ContentType": "xsl",
"Value": upload the following XSLT from your local device
}</code></pre><pre class="lia-code-sample language-markup"><code><?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="3.0">
<xsl:param name="dc_country" />
<xsl:template match="/">
<ns0:Receivers xmlns:ns0="http://sap.com/xi/XI/System">
<ReceiverNotDetermined>
<Type>Error</Type>
<DefaultReceiver />
</ReceiverNotDetermined>
<xsl:if test="/*:Item/Category = 'Keyboards'">
<Receiver>
<Service>Receiver_11</Service>
<Interfaces>
<xsl:if test="/*:Item/Quantity = '10'">
<Interface>
<Index>1</Index>
<Service>/PIP/Step07/Samples/Scenario_1/Receiver_11/IfIdx1</Service>
</Interface>
</xsl:if>
<xsl:if test="/*:Item/CurrencyCode = 'EUR'">
<Interface>
<Index>2</Index>
<Service>/PIP/Step07/Samples/Scenario_1/Receiver_11/IfIdx2</Service>
</Interface>
</xsl:if>
<xsl:if test="/*:Item/Quantity != '10'">
<Interface>
<Index>3</Index>
<Service>/PIP/Step07/Samples/Scenario_1/Receiver_11/IfIdx3</Service>
</Interface>
</xsl:if>
</Interfaces>
</Receiver>
</xsl:if>
<xsl:if test="(/*:Item/Category = 'Keyboards') or (/*:Item/Category = 'Software')">
<Receiver>
<Service>Receiver_12</Service>
<Interfaces>
<xsl:if test="$dc_country = 'DE'">
<Interface>
<Index>1</Index>
<Service>/PIP/Step07/Samples/Scenario_1/Receiver_12/IfIdx1</Service>
</Interface>
</xsl:if>
<xsl:if test="$dc_country != 'DE'">
<Interface>
<Index>2</Index>
<Service>/PIP/Step07/Samples/Scenario_1/Receiver_12/IfIdx2</Service>
</Interface>
</xsl:if>
</Interfaces>
</Receiver>
</xsl:if>
<xsl:if test="(/*:Item/Category = 'Keyboards') and (/*:Item/ProductName != 'XXXX')">
<Receiver>
<Service>Receiver_13</Service>
<Interfaces>
<xsl:if test="/*:Item/Quantity = '10'">
<Interface>
<Index>1</Index>
<Service>/PIP/Step07/Samples/Scenario_1/Receiver_13/IfIdx1</Service>
</Interface>
</xsl:if>
<xsl:if test="/*:Item/CurrencyCode = 'EUR'">
<Interface>
<Index>2</Index>
<Service>/PIP/Step07/Samples/Scenario_1/Receiver_13/IfIdx2</Service>
</Interface>
</xsl:if>
<xsl:if test="/*:Item/Quantity != '10'">
<Interface>
<Index>3</Index>
<Service>/PIP/Step07/Samples/Scenario_1/Receiver_13/IfIdx3</Service>
</Interface>
</xsl:if>
</Interfaces>
</Receiver>
</xsl:if>
</ns0:Receivers>
</xsl:template>
</xsl:stylesheet></code></pre><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="LorenaHanser_0-1770719720959.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/370851iB1AEAEE0FAE43794/image-size/large?v=v2&px=999" role="button" title="LorenaHanser_0-1770719720959.png" alt="LorenaHanser_0-1770719720959.png" /></span></P><P>Alternatively, in the accelerator tool, your scenario would look like below. Without the need to deal with the syntax of the XSLT, you can focus on entering the XPath conditions and receiver system / receiver interface, to generate the XSLT from your input. For more details on this accelerator tool, please find the next chapter.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="LorenaHanser_1-1770719756615.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/370852iB369395DE639B6BF/image-size/large?v=v2&px=999" role="button" title="LorenaHanser_1-1770719756615.png" alt="LorenaHanser_1-1770719756615.png" /></span></P><P> </P><H3 id="toc-hId--1890293533">Run your second scenario</H3><pre class="lia-code-sample language-json"><code>### trigger sample scenario 1A
POST https://{{host}}/http/PIP/Step01/Samples/Scenario_1?country=DE
Authorization: usual authentication to call an Integration Flow, e.g. basic authentication or OAuth using a service key from SAP BTP
Content-Type: application/json
SAP_Sender: Sender_1A
SAP_SenderInterface: PurchaseOrderItem.Create
xPipeline: true
{
"ns0:Item":{
"@PurchaseOrderNumber":"1A9201",
"@OrderDate":"2019-05-06",
"@ItemNumber":"10",
"ProductId":"HT-XXXX",
"ProductName":"XXXX",
"Category":"Software",
"Quantity":"10",
"CurrencyCode":"EUR",
"Price":"799.00"
}
}</code></pre><P>Under “Monitor > Integrations and APIs > Monitor Message Processing”, you can again check how your message was processed at runtime, ideally filtered by the correlation ID. This time, step03 has also be called for scenario-specific inbound conversion, as this is set as a string parameter in the Partner Directory.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="LorenaHanser_2-1770719949130.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/370854i56E3607AEDC12667/image-size/large?v=v2&px=999" role="button" title="LorenaHanser_2-1770719949130.png" alt="LorenaHanser_2-1770719949130.png" /></span></P><P>With that, also your second scenario is running! This is just the beginning – there are lots of more options and <A href="https://github.com/peasantsboot/ProcessIntegrationPipelineSampleScenarios" target="_blank" rel="noopener nofollow noreferrer">sample scenarios</A> available. You can easily set them up with a <A href="https://github.com/peasantsboot/ProcessIntegrationPipelineSampleScenarios/tree/main/download" target="_blank" rel="noopener nofollow noreferrer">Postman collection</A> provided – there are different messages you can test for each scenario, e.g., for scenario 1A, there is a message prepared where you can observe receivers and interfaces splits.</P><P>When further discovering the Pipeline, our strong recommendation is to not edit the generic Integration Flows but stay in the standard to easily get updates. Most of the use cases can be implemented with the standard, as the Pipeline keeps evolving covering more and more different scenarios.</P><P> </P><H1 id="toc-hId--1331817333">Accelerator Tool</H1><P>As you saw during the initial setup, we deal with XSLT mappings for content-based routing. To make maintenance of XSLT, replication of Partner Directory content, and other topics related to Partner Directory easier, there is an <A href="https://github.com/SAP-samples/integration-suite-partner-directory-accelerator-for-pipeline-concept" target="_blank" rel="noopener nofollow noreferrer">accelerator tool</A> specifically developed for Pipeline for Cloud Integration. The idea is to use this SAP open source tool in combination with our standard UI. Feel free to give it a try, there is also a session available from <A href="https://www.youtube.com/watch?v=m51z53fc1c4" target="_blank" rel="noopener nofollow noreferrer">Devtoberfest 2025</A> which shows the setup step by step.</P><P> </P><H1 id="toc-hId--1528330838">Link Collection</H1><P><STRONG>SAP Help</STRONG></P><P>Standard documentation as part of migration guide from SAP PO: <A href="https://help.sap.com/docs/migration-guide-po/migration-guide-for-sap-process-orchestration/pipeline-concept" target="_blank" rel="noopener noreferrer">https://help.sap.com/docs/migration-guide-po/migration-guide-for-sap-process-orchestration/pipeline-concept</A></P><P>Partner Directory entries for the Pipeline: <A href="https://help.sap.com/docs/migration-guide-po/migration-guide-for-sap-process-orchestration/using-partner-directory-in-pipeline-concept" target="_blank" rel="noopener noreferrer">https://help.sap.com/docs/migration-guide-po/migration-guide-for-sap-process-orchestration/using-partner-directory-in-pipeline-concept</A></P><P>Partner Directory UI: <A href="https://help.sap.com/docs/cloud-integration/sap-cloud-integration/managing-partner-directory-entries" target="_blank" rel="noopener noreferrer">https://help.sap.com/docs/cloud-integration/sap-cloud-integration/managing-partner-directory-entries</A></P><P> </P><P><STRONG>Introduction of the Pipeline at Devtoberfest</STRONG>: <A href="https://www.youtube.com/watch?v=LFfW8rnm4fU" target="_blank" rel="noopener nofollow noreferrer">https://www.youtube.com/watch?v=LFfW8rnm4fU</A></P><P> </P><P><STRONG>SAP Community (recent blogs after package split)</STRONG></P><P>Version 1.0.0: <A href="https://community.sap.com/t5/integration-blog-posts/new-integration-packages-for-the-pipeline-for-cloud-integration/ba-p/14175339" target="_blank">https://community.sap.com/t5/integration-blog-posts/new-integration-packages-for-the-pipeline-for-cloud-integration/ba-p/14175339</A></P><UL><LI>Package split</LI><LI>Custom preprocessing exit: <A href="https://community.sap.com/t5/integration-blog-posts/new-feature-for-the-pipeline-for-cloud-integration-custom-preprocessing/ba-p/14199571" target="_blank">https://community.sap.com/t5/integration-blog-posts/new-feature-for-the-pipeline-for-cloud-integration-custom-preprocessing/ba-p/14199571</A></LI><LI>New templates for enhancing the custom receiver determination: <A href="https://community.sap.com/t5/integration-blog-posts/new-templates-for-the-pipeline-for-cloud-integration-enhancing-the-custom/ba-p/14199651" target="_blank">https://community.sap.com/t5/integration-blog-posts/new-templates-for-the-pipeline-for-cloud-integration-enhancing-the-custom/ba-p/14199651</A></LI></UL><P>Version 1.0.1: <A href="https://community.sap.com/t5/integration-blog-posts/introducing-a-new-version-1-0-1-of-the-pipeline-for-cloud-integration/ba-p/14257263" target="_blank">https://community.sap.com/t5/integration-blog-posts/introducing-a-new-version-1-0-1-of-the-pipeline-for-cloud-integration/ba-p/14257263</A></P><UL><LI>We now support a generic IDoc outbound flow to standardize and ease the configuration of IDoc outbound scenarios: <A href="https://community.sap.com/t5/integration-blog-posts/generic-idoc-outbound-flow-in-cloud-integration-pipeline/ba-p/14269062" target="_blank">https://community.sap.com/t5/integration-blog-posts/generic-idoc-outbound-flow-in-cloud-integration-pipeline/ba-p/14269062</A></LI><LI>We now support a generic XI outbound flow to standardize and ease the configuration of XI outbound scenarios: <A href="https://community.sap.com/t5/integration-blog-posts/generic-xi-outbound-flow-in-cloud-integration-pipeline/ba-p/14269061" target="_blank">https://community.sap.com/t5/integration-blog-posts/generic-xi-outbound-flow-in-cloud-integration-pipeline/ba-p/14269061</A></LI><LI>We have improved the support for sender and receiver parties.</LI><LI>We have improved the support for receiver-specific queues and the definition of the queue for receiver-specific outbound processing.</LI><LI>In a sender wildcard scenario, we now support inbound conversion per sender.</LI><LI>Non-XML payloads are encoded before storing in an exchange property to avoid that the payload gets corrupted when reading from the exchange property again.</LI><LI>For some scenarios, you have the option to run scenarios in the pipeline without the need of the Partner Directory: <A href="https://community.sap.com/t5/integration-blog-posts/run-pipeline-for-cloud-integration-without-the-partner-directory/ba-p/14257311" target="_blank">https://community.sap.com/t5/integration-blog-posts/run-pipeline-for-cloud-integration-without-the-partner-directory/ba-p/14257311</A></LI></UL><P>December 2025 shipment: <A href="https://community.sap.com/t5/integration-blog-posts/new-fixes-and-features-in-the-pipeline-for-cloud-integration-package-with/ba-p/14294379" target="_blank">https://community.sap.com/t5/integration-blog-posts/new-fixes-and-features-in-the-pipeline-for-cloud-integration-package-with/ba-p/14294379</A></P><UL><LI>We have changed the duplicate handling for the generic XI and IDoc inbound processing flows as follows: In case of duplicates, the message processing logs end with <EM>Completed</EM> instead of <EM>Escalated</EM> to avoid that an http error code 500 is returned to the sending system.</LI><LI>For testing purposes, you can now switch off the duplicate check for the generic IDoc inbound processing flow. By default, the duplicate handling is enabled.</LI><LI>The XI inbound processing flow now supports dynamic adapter-specific headers. A feature which has just recently be shipped with an enhancement of the XI adapter. See <A href="https://help.sap.com/docs/cloud-integration/sap-cloud-integration/configure-xi-receiver-adapter#dynamic-headers" target="_blank" rel="noopener noreferrer">Dynamic Headers</A>.</LI><LI>An Exactly Once In Order (EOIO) check has been added to the IDoc inbound processing flow. Since we do not support EOIO in the Pipeline yet, the message goes into an error.</LI><LI>The definition of alternative partners has been extended to be able to determine partner ID based on sender component name, sender interface name, and sender interface namespace. This was supported before for XI and IDoc inbound scenarios, now you can do this for any scenario if required. If not, you can stick to the option to determine partner ID based on sender component name and sender interface name only.</LI><LI>We fixed an issue with a wrong reference to a script in the <A href="https://hub.sap.com/integrationflow/com.sap.integration.cloud.pipeline.v2.generic.step02.integrated.messaging.sync" target="_blank" rel="noopener noreferrer">Pipeline v2 Generic Step02 - Integrated Messaging Runtime Sync</A> flow.</LI><LI>The allowed headers list of the template flow <A href="https://hub.sap.com/integrationflow/com.sap.integration.cloud.pipeline.v2.template.custom.exit" target="_blank" rel="noopener noreferrer">Pipeline v2 Template - Custom Exit</A> has been extended to support the header <EM>SapQualityOfService</EM>. This way, you have the option to use or change the <EM>SapQualityOfService</EM> header in a custom pre-processing flow. For instance, you do not like to change the EOIO setup of an XI interface in the sender system but still like to process the messages in the Pipeline accepting EO delivery as long as the Pipeline doesn't support EOIO. So you can call the custom exit flow right at the beginning of the generic XI inbound flow and switch from <EM>ExactlyOnceInOrder</EM> to <EM>ExactlyOnce</EM>.</LI><LI>A new template <A href="https://hub.sap.com/integrationflow/com.sap.integration.cloud.pipeline.v2.template.step07.outbound.processing.p2p.to.xi" target="_blank" rel="noopener noreferrer">Pipeline v2 Template Step07 - Outbound Processing Point-to-Point to Generic XI Outbound</A> has been added that allows you to create a scenario-specific outbound processing flow that calls the generic XI outbound processing flow. The template can be used for both synchronous and asynchronous communication.</LI><LI>A new template <A href="https://hub.sap.com/integrationflow/com.sap.integration.cloud.pipeline.v2.template.step07.outbound.processing.p2p.to.idoc" target="_blank" rel="noopener noreferrer">Pipeline v2 Template Step07 - Outbound Processing Point-to-Point to Generic IDoc Outbound</A> has been added that allows you to create a scenario-specific outbound processing flow that calls the generic IDoc outbound processing flow.</LI></UL><P> </P><P><STRONG>SAP Business Accelerator Hub</STRONG></P><P>Package “Cloud Integration Pipeline - Generic Pipelines”: <A href="https://hub.sap.com/package/CloudIntegrationPipelineGenericPipelines/integrationflow" target="_blank" rel="noopener noreferrer">https://hub.sap.com/package/CloudIntegrationPipelineGenericPipelines/integrationflow</A></P><UL><LI>Package for step02 (including integration messaging runtime async and sync), as well as old step02, step04, and step05</LI><LI>Integration flow “Pipeline v2 Generic Step02 - Integrated Messaging Runtime Async”: <A href="https://hub.sap.com/integrationflow/com.sap.integration.cloud.pipeline.v2.generic.step02.integrated.messaging.async" target="_blank" rel="noopener noreferrer">https://hub.sap.com/integrationflow/com.sap.integration.cloud.pipeline.v2.generic.step02.integrated.messaging.async</A></LI></UL><P>Package “Cloud Integration Pipeline - Generic Outbound”. <A href="https://hub.sap.com/package/CloudIntegrationPipelineGenericOutbound/integrationflow" target="_blank" rel="noopener noreferrer">https://hub.sap.com/package/CloudIntegrationPipelineGenericOutbound/integrationflow</A></P><UL><LI>Package for step06 and step08 (latter ones are optional for generic XI or IDoc outbound)</LI><LI>Integration flow “Pipeline v2 Generic Step06 - Outbound Processing”: <A href="https://hub.sap.com/integrationflow/com.sap.integration.cloud.pipeline.v2.generic.step06.outbound.processing" target="_blank" rel="noopener noreferrer">https://hub.sap.com/integrationflow/com.sap.integration.cloud.pipeline.v2.generic.step06.outbound.processing</A></LI></UL><P>Package “Cloud Integration Pipeline - Generic Inbound”: <A href="https://hub.sap.com/package/CloudIntegrationPipelineGenericInbound/integrationflow" target="_blank" rel="noopener noreferrer">https://hub.sap.com/package/CloudIntegrationPipelineGenericInbound/integrationflow</A></P><UL><LI>Package for generic XI or IDoc entry point (optional)</LI></UL><P>Package “Cloud Integration Pipeline – Templates”: <A href="https://hub.sap.com/package/CloudIntegrationPipelineTemplates/integrationflow" target="_blank" rel="noopener noreferrer">https://hub.sap.com/package/CloudIntegrationPipelineTemplates/integrationflow</A></P><UL><LI>Package with different Integration Flows for different steps and scenarios which can be customized based on your needs</LI></UL><P> </P><P><STRONG>Data Store Extension</STRONG></P><P>Version 1.0.0: <A href="https://community.sap.com/t5/integration-blog-posts/process-integration-pipeline-extension-restart-via-data-store/ba-p/14153116" target="_blank">https://community.sap.com/t5/integration-blog-posts/process-integration-pipeline-extension-restart-via-data-store/ba-p/14153116</A></P><P>Version 1.0.1: <A href="https://community.sap.com/t5/integration-blog-posts/new-ci-pipeline-restart-extension-features-supporting-new-pipeline-package/ba-p/14230547" target="_blank">https://community.sap.com/t5/integration-blog-posts/new-ci-pipeline-restart-extension-features-supporting-new-pipeline-package/ba-p/14230547</A></P><UL><LI>Supports <A href="https://community.sap.com/t5/integration-blog-posts/new-integration-packages-for-the-pipeline-for-cloud-integration/ba-p/14175339" target="_blank">new integration packages for the Pipeline for Cloud Integration</A> and allows flexible linkage of Generic Pipeline copies to the Pipeline Stages.</LI><LI>Enhanced Restart Job Integration Flow:</LI><LI>Generic Job Profile to restart all integration scenarios defined in the Partner Directory through the Pipeline Framework.</LI><LI>New configuration options to persist the Job Log.</LI><LI>New Integration Flow "Pipeline API - Restart Job Log" to retrieve both the Restart Job run list and detailed log data (if log persistence is enabled).</LI><LI>Improved configuration and monitoring: New parameters (such as "NotOlderThanHours" for Restart Job), several bug fixes, enriched monitoring headers, and better exception handling.</LI></UL><P> </P><P><STRONG>Accelerator Tool</STRONG></P><P>GitHub: <A href="https://github.com/SAP-samples/integration-suite-partner-directory-accelerator-for-pipeline-concept" target="_blank" rel="noopener nofollow noreferrer">https://github.com/SAP-samples/integration-suite-partner-directory-accelerator-for-pipeline-concept</A></P><P>Blog: <A href="https://community.sap.com/t5/integration-blog-posts/partner-directory-accelerator-tool-for-pipeline-concept/ba-p/14095019" target="_blank">https://community.sap.com/t5/integration-blog-posts/partner-directory-accelerator-tool-for-pipeline-concept/ba-p/14095019</A></P><P>Devtoberfest: <A href="https://www.youtube.com/watch?v=m51z53fc1c4" target="_blank" rel="noopener nofollow noreferrer">https://www.youtube.com/watch?v=m51z53fc1c4</A></P><P> </P><P><STRONG>History – older SAP Community blog posts before package split</STRONG></P><P>Version 1.0.0 – initial release in March 2024: <A href="https://community.sap.com/t5/technology-blog-posts-by-sap/introducing-the-new-pipeline-concept-in-cloud-integration/ba-p/13639651" target="_blank">https://community.sap.com/t5/technology-blog-posts-by-sap/introducing-the-new-pipeline-concept-in-cloud-integration/ba-p/13639651</A></P><UL><LI>Applying the pipeline concept for an integration scenario in general: <A href="https://community.sap.com/t5/technology-blog-posts-by-sap/applying-the-pipeline-concept-for-an-integration-scenario-in-general/ba-p/13640018" target="_blank">https://community.sap.com/t5/technology-blog-posts-by-sap/applying-the-pipeline-concept-for-an-integration-scenario-in-general/ba-p/13640018</A></LI><LI>Applying the pipeline concept for a multicast integration scenario: <A href="https://community.sap.com/t5/technology-blog-posts-by-sap/applying-the-pipeline-concept-for-a-multicast-integration-scenario/ba-p/13641417" target="_blank">https://community.sap.com/t5/technology-blog-posts-by-sap/applying-the-pipeline-concept-for-a-multicast-integration-scenario/ba-p/13641417</A></LI><LI>Applying the pipeline concept for a point-to-point integration scenario: <A href="https://community.sap.com/t5/technology-blog-posts-by-sap/applying-the-pipeline-concept-for-a-point-to-point-integration-scenario/ba-p/13641474" target="_blank">https://community.sap.com/t5/technology-blog-posts-by-sap/applying-the-pipeline-concept-for-a-point-to-point-integration-scenario/ba-p/13641474</A></LI><LI>Applying the pipeline concept for an interface split scenario with one receiver message type: <A href="https://community.sap.com/t5/technology-blog-posts-by-sap/applying-the-pipeline-concept-for-an-interface-split-scenario-with-one/ba-p/13641560" target="_blank">https://community.sap.com/t5/technology-blog-posts-by-sap/applying-the-pipeline-concept-for-an-interface-split-scenario-with-one/ba-p/13641560</A></LI><LI>Applying the pipeline concept for an interface split scenario with multiple receiver message types: <A href="https://community.sap.com/t5/technology-blog-posts-by-sap/applying-the-pipeline-concept-for-an-interface-split-scenario-with-multiple/ba-p/13641662" target="_blank">https://community.sap.com/t5/technology-blog-posts-by-sap/applying-the-pipeline-concept-for-an-interface-split-scenario-with-multiple/ba-p/13641662</A></LI><LI>Applying the pipeline concept for an interface split scenario with order at runtime flag set: <A href="https://community.sap.com/t5/integration-blog-posts/applying-the-pipeline-concept-for-an-interface-split-scenario-with-order-at/ba-p/13641691" target="_blank">https://community.sap.com/t5/integration-blog-posts/applying-the-pipeline-concept-for-an-interface-split-scenario-with-order-at/ba-p/13641691</A></LI></UL><P>Version 1.0.5: <A href="https://community.sap.com/t5/integration-blog-posts/latest-pipeline-concept-enhancements-custom-error-handling-and-others/ba-p/13757664" target="_blank">https://community.sap.com/t5/integration-blog-posts/latest-pipeline-concept-enhancements-custom-error-handling-and-others/ba-p/13757664</A></P><UL><LI>Extension for custom error handling</LI><LI>In generic IDoc inbound processing flow, display list of IDoc numbers in case of IDoc bulk messages</LI><LI>For IDoc inbound, sender interface is calculated as a combination of MESTYP, IDOCTYP and CIMTYP</LI><LI>Supporting test mode via testMode header in the allowed headers configuration</LI><LI>In standard error handling, copied messages from the dead letter queue are switched to DEBUG log level</LI></UL><P>Version 1.0.6: <A href="https://community.sap.com/t5/integration-blog-posts/new-pipeline-concept-features-new-partner-id-definition-alternative-partner/ba-p/13787400" target="_blank">https://community.sap.com/t5/integration-blog-posts/new-pipeline-concept-features-new-partner-id-definition-alternative-partner/ba-p/13787400</A></P><UL><LI>Revised partner id approach due to lengths restrictions of the partner id</LI><LI>Option to use alternative partner in case of sender wildcard scenarios and to overcome partner id restrictions</LI><LI>Changed default max retry to 5 instead of unlimited retry</LI><LI>For messages in test mode, failed messages are not put into retry</LI><LI>For generic integration flows, adapter parameters were externalized</LI><LI>Option to configure message end event type in case of message stored in dead letter queue, default is Escalated</LI><LI>Option to bypass receiver determination and interface determination steps in case of Point-to-Point pattern</LI><LI>Option to configure a pipeline JMS queue prefix which makes configuration of queue names easier if you create another set of generic integration flow</LI></UL><P>Version 1.0.7: <A href="https://community.sap.com/t5/integration-blog-posts/new-pipeline-concept-features-supporting-custom-header-properties-and/ba-p/13894048" target="_blank">https://community.sap.com/t5/integration-blog-posts/new-pipeline-concept-features-supporting-custom-header-properties-and/ba-p/13894048</A></P><UL><LI>Support for custom header properties</LI><LI>Support for dynamic configuration parameters</LI></UL><P>Version 1.0.8: <A href="https://community.sap.com/t5/integration-blog-posts/new-pipeline-concept-features-more-bypass-options-and-custom-extensions/ba-p/13955138" target="_blank">https://community.sap.com/t5/integration-blog-posts/new-pipeline-concept-features-more-bypass-options-and-custom-extensions/ba-p/13955138</A></P><UL><LI>Option to combine receiver and interface determination in one single XSLT mapping for an improved runtime behavior</LI><LI>Option to bypass interface determination pipeline step in case of Recipient List pattern without interface split</LI><LI>Option to bypass receiver determination pipeline step in case of interface split scenarios with one single receiver only</LI><LI>Supporting header-based XSLT routing conditions if message body is non-XML</LI><LI>Extension for custom receiver determination instead of XSLT from Partner Directory</LI><LI>Extension for custom interface determination instead of XSLT from Partner Directory</LI><LI>New pipeline processing log providing more details if message is stored to the dead letter queue</LI><LI>Fixed standard retry handling for generic integration flows with splitter to avoid message duplicates</LI></UL><P>Version 1.0.9: <A href="https://community.sap.com/t5/integration-blog-posts/new-pipeline-concept-features-integrated-runtimes-and-supporting-landscape/ba-p/14000234" target="_blank">https://community.sap.com/t5/integration-blog-posts/new-pipeline-concept-features-integrated-runtimes-and-supporting-landscape/ba-p/14000234</A></P><UL><LI>Supporting different tenant stages, e.g., DEV, QA, PRD</LI><LI>New integrated messaging runtime "Pipeline Generic Step02 - Integrated Messaging Runtime Async" combining inbound conversion and receiver/interface determination in one pipeline step</LI><LI>New integrated messaging runtime "Pipeline Generic Step02 - Integrated Messaging Runtime Sync" for handling synchronous Content-Based-Routing scenarios</LI><LI>New template "Pipeline Template Step01 - Inbound Processing Synchronous" for scenario-specific synchronous inbound processing</LI><LI>New template "Pipeline Template Step07 - Outbound Processing Synchronous" for scenario-specific synchronous outbound processing</LI><LI>Generic inbound processing for XI supports both asynchronous and synchronous messaging</LI><LI>Failed test messages end with escalation instead of completed</LI><LI>Added custom error handling for generic XI and IDoc inbound flows</LI></UL><P>Version 1.0.10: <A href="https://community.sap.com/t5/integration-blog-posts/new-pipeline-concept-features-supporting-service-interface-operations-and/ba-p/14049909" target="_blank">https://community.sap.com/t5/integration-blog-posts/new-pipeline-concept-features-supporting-service-interface-operations-and/ba-p/14049909</A></P><UL><LI>Supporting service interface operations</LI><LI>Updated the allowed header list</LI><LI>Have done script optimizations</LI><LI>Converted the XI message ID to upper case</LI></UL><P>Version 1.0.11: <A href="https://community.sap.com/t5/integration-blog-posts/new-pipeline-for-cloud-integration-features-with-version-1-0-11/ba-p/14093335" target="_blank">https://community.sap.com/t5/integration-blog-posts/new-pipeline-for-cloud-integration-features-with-version-1-0-11/ba-p/14093335</A></P><UL><LI>The search based on IDoc number in the message monitor has been improved by removing the leading zeros from IDoc number in ApplicationID and custom header properties.</LI><LI>For the XI inbound flow, the partner ID is determined also based on service interface namespace in addition to system name and service interface name.</LI><LI>We fixed an error with wrong inbound queue in case of custom error handling for the integrated messaging runtime.</LI><LI>We introduced a configuration option to switch off the option to determine the partner ID using the so called "tilde option". The default is that this option is switched off.</LI><LI>We changed the default inbound processing queue of the XI inbound and the IDoc inbound flows from PIPQ01 to PIPX01 so that by default the integrated messaging runtime is used.</LI></UL><P>Version 1.0.12: <A href="https://community.sap.com/t5/integration-blog-posts/new-pipeline-concept-features-with-version-1-0-12-improved-handling-of/ba-p/14112869" target="_blank">https://community.sap.com/t5/integration-blog-posts/new-pipeline-concept-features-with-version-1-0-12-improved-handling-of/ba-p/14112869</A></P><UL><LI>Improved handling of custom header properties</LI><LI>New processing option: Using exchange properties</LI><LI>Previous Approach Still Supported: Manually Setting customHeaderProperties</LI></UL><P>Support by migration tool: <A href="https://community.sap.com/t5/integration-blog-posts/migration-tooling-now-supporting-migration-via-the-pipeline-approach/ba-p/14073721" target="_blank">https://community.sap.com/t5/integration-blog-posts/migration-tooling-now-supporting-migration-via-the-pipeline-approach/ba-p/14073721</A></P><P> </P>2026-02-10T16:02:09.566000+01:00https://community.sap.com/t5/technology-blog-posts-by-members/powering-event-driven-integrations-using-amazon-eventbridge-adapter-in-sap/ba-p/14305434Powering Event-Driven Integrations Using Amazon EventBridge Adapter in SAP Cloud Integration2026-02-11T08:36:48.204000+01:00Rupali_Amaravadihttps://community.sap.com/t5/user/viewprofilepage/user-id/1517654<P><STRONG>INTRODUCTION:</STRONG></P><P>Event-driven architecture is becoming increasingly popular now-a-days due to its efficient real-time data processing, high scalability and better de-coupling of business systems. Hence, it is becoming new favorite for enterprise integration developers.<BR />SAP Integration Suite supports this modern pattern through various adapters, one of which is the Amazon EventBridge receiver adapter.</P><P>The Amazon EventBridge receiver adapter allows seamless event publishing from SAP to Amazon EventBridge, enabling SAP applications to interact directly with AWS services such as Lambda, SQS, and SNS without the need for complex custom API developments or integrations.</P><P>In this blog, we will explore how to configure and use the Amazon EventBridge receiver adapter to replicate Business Partner data from SAP S/4HANA to Amazon EventBridge in near real time.</P><P><STRONG>What Is Amazon EventBridge?</STRONG></P><P>Amazon EventBridge is a serverless event bus service by AWS that helps connect applications using events.<BR />It allows you to publish events (like new Business Partner creation, Sales Order creation etc) from SAP and trigger AWS services (like Lambda, Step Functions, SNS, or SQS) for further processing.</P><P>Using the Amazon EventBridge Adapter in SAP Cloud Integration, you can directly post these events from SAP to an EventBridge event bus without custom coding or API gateway setups.</P><P><STRONG>Business Scenario Overview</STRONG></P><P>In this scenario, an organization maintains Business Partner master data within SAP S/4HANA. Whenever a Business Partner is created or updated, this information needs to be replicated to AWS for further processing such as validation, analytics, or integration with non-SAP applications.</P><P>The goal is to enable a real-time, event-driven data flow from SAP to AWS without building or maintaining point-to-point interfaces.</P><P><STRONG>High-level process flow:</STRONG></P><OL><LI>A Business Partner is created or updated in SAP S/4HANA.</LI><LI>The change triggers an outbound message, which is sent to SAP Integration Suite.</LI><LI>SAP Cloud Integration processes and transforms the message.</LI><LI>The Amazon EventBridge receiver adapter publishes the event to the configured event bus in Amazon EventBridge.</LI><LI>The event bus routes the event to the respective targets such as AWS Lambda, SQS, or other consumers.</LI></OL><P>This approach ensures loose coupling, real-time updates, and scalability across systems.</P><P><STRONG>Integration Flow Design in SAP Cloud Integration</STRONG></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Rupali_Amaravadi_0-1770011910712.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/367842iAB866EDA5D14603E/image-size/large?v=v2&px=999" role="button" title="Rupali_Amaravadi_0-1770011910712.png" alt="Rupali_Amaravadi_0-1770011910712.png" /></span></P><P><STRONG>Step 1: Sender Configuration</STRONG></P><UL><LI><STRONG>Sender Adapter:</STRONG> Sender Adapter: SOA Manager to SAP Integration Suite</LI></UL><P>To enable sender connectivity from SAP ERP to SAP Integration Suite, SOA manager is used to configure the outbound web service communication. This involves creating and configuring a logical port for the relevant consumer proxy in the ERP system.</P><P>The logical port is assigned with the HTTPS endpoint of the SAP CI iFlow, along with the required authentication mechanism (for example, basic authentication or client certificate-based authentication). SSL settings, certificates, and user credentials should be properly maintained to ensure secure communication.</P><P>For more information about SOA Manager configuration please visit this page.</P><P><A href="https://help.sap.com/docs/SAP_S4HANA_ON-PREMISE/d761beaeedd949c18213f449f4617250/2ed8205a528c444ea14565cf596461a3.html" target="_blank" rel="noopener noreferrer">Configuring SOA Manager | SAP Help Portal</A></P><P>You can also use any other type of sender configuration such as IDOC.</P><P><STRONG>Step 2: Message Transformation</STRONG></P><UL><LI>Use a message mapping, groovy script or simple XML to JSON converter to transform the SAP XML payload into the JSON structure as expected by Amazon EventBridge.</LI></UL><P><STRONG>Step 3: Receiver Adapter Configuration</STRONG></P><UL><LI><STRONG>Receiver Adapter:</STRONG> Use a ‘request reply’ pallet function and connect it to a receiver using Amazon EventBridge receiver adapter. Follow the below steps to configure the adapter.</LI><LI><STRONG>Adapter Configuration Details:</STRONG></LI><UL><LI>AWS Region: eu-west-1 (example)</LI><LI>Event Bus Name: Test_CPI_Content</LI><LI>Source: s4hana</LI><LI>Detail Type: BusinessPartnerEvent</LI><LI>Credential Name: Reference to AWS credentials (stored securely in SAP CI)</LI><LI>Event Detail: The JSON body prepared in step 2</LI></UL></UL><P class="lia-indent-padding-left-30px" style="padding-left : 30px;"><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Rupali_Amaravadi_1-1770011910715.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/367844i15F68639618C1D13/image-size/large?v=v2&px=999" role="button" title="Rupali_Amaravadi_1-1770011910715.png" alt="Rupali_Amaravadi_1-1770011910715.png" /></span></P><P class="lia-indent-padding-left-30px" style="padding-left : 30px;"><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Rupali_Amaravadi_2-1770011910717.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/367843i16AD0E491110DB7D/image-size/large?v=v2&px=999" role="button" title="Rupali_Amaravadi_2-1770011910717.png" alt="Rupali_Amaravadi_2-1770011910717.png" /></span></P><P class="lia-indent-padding-left-30px" style="padding-left : 30px;">For more information about Amazon EventBridge Receiver adapter configurations, please visit this link. <A href="https://help.sap.com/docs/integration-suite/sap-integration-suite/amazoneventbridge-receiver-adapter" target="_blank" rel="noopener noreferrer">Amazon EventBridge Receiver Adapter</A></P><P><STRONG>Step 4: Testing</STRONG><BR />Once the iFlow is deployed, create or change a Business Partner in SAP S/4HANA. Once it is done, you will be able to see a message triggered from SAP S/4 HANA and coming into SAP CI iFlow. The iFlow will convert the XML data into JSON and sends it to Amazon EventBridge.<BR />You will be able to see a corresponding message appear in the Amazon EventBridge Event Bus.<BR />You can then route it to:</P><UL><LI>AWS Lambda to process or enrich data</LI><LI>Amazon SQS/SNS to notify other systems</LI><LI>Amazon Kinesis or Data Lake for analytics</LI></UL><P><STRONG>End-to-end Process from SAP ERP to Amazon EventBridge</STRONG></P><P>Below is the process in which a business partner is created in S4 HANA and sent to SAP Integration Suite. SAP Integration Suite transforms the incoming message into JSON and sends it to Amazon SQS(Simple Queue Service) using Amazon Eventbridge receiver adapter. </P><OL><LI><STRONG>New Business Partner in SAP S4Hana</STRONG></LI></OL><P>Business Partner ‘<STRONG>12345</STRONG>’ gets created in SAP S4 Hana </P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Rupali_Amaravadi_3-1770011910719.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/367845i498B66DA421F7EB5/image-size/large?v=v2&px=999" role="button" title="Rupali_Amaravadi_3-1770011910719.png" alt="Rupali_Amaravadi_3-1770011910719.png" /></span></P><OL><LI><STRONG>Received message in SAP CI</STRONG></LI></OL><P>SAP Integration Suite received the message from S4Hana. IFlow converts incoming XML payload into JSON and sent to AWS using Amazon Eventbridge receiver adapter. </P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Rupali_Amaravadi_4-1770011910719.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/367846iA7C599BD7743D552/image-size/large?v=v2&px=999" role="button" title="Rupali_Amaravadi_4-1770011910719.png" alt="Rupali_Amaravadi_4-1770011910719.png" /></span></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Rupali_Amaravadi_5-1770011910720.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/367847iA441D619D858F320/image-size/large?v=v2&px=999" role="button" title="Rupali_Amaravadi_5-1770011910720.png" alt="Rupali_Amaravadi_5-1770011910720.png" /></span></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Rupali_Amaravadi_6-1770011910721.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/367848i1138F5A5ED743BAC/image-size/large?v=v2&px=999" role="button" title="Rupali_Amaravadi_6-1770011910721.png" alt="Rupali_Amaravadi_6-1770011910721.png" /></span></P><P><STRONG>XML Payload received from Sap S/4 Hana:</STRONG></P><pre class="lia-code-sample language-markup"><code><?xml version='1.0' encoding='UTF-8'?><root><type>sap.s4.beb.businesspartner.v1.BusinessPartner_Changed_v1</type>
<datacontenttype>application/json</datacontenttype><specversion>1.0</specversion><source>...</source><id>c051226f-59a8-1edd-bef6-7efcb8aaffc</id><time>2024-01-11T12:56:29Z</time><data><BusinessPartner>12345</BusinessPartner></data></root></code></pre><P><STRONG>JSON payload sent to Amazon EventBridge after transformation:</STRONG></P><pre class="lia-code-sample language-json"><code>{
"root": {
"type": "sap.s4.beb.businesspartner.v1.BusinessPartner_Changed_v1",
"datacontenttype": "application/json",
"specversion": "1.0",
"source": "...",
"id": "c051226f-59a8-1edd-bef6-7efcb8aaffc",
"time": "2024-01-11T12:56:29Z",
"data": {
"BusinessPartner": "12345"
}
}
}</code></pre><OL><LI><STRONG>Business Partner Details replicated in Amazon EventBridge</STRONG></LI></OL><P>Amazon Event Bus details</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Rupali_Amaravadi_7-1770011910722.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/367850i23BFA8986A13579E/image-size/large?v=v2&px=999" role="button" title="Rupali_Amaravadi_7-1770011910722.png" alt="Rupali_Amaravadi_7-1770011910722.png" /></span></P><P>Put event is recorded in Amazon Eventbridge.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Rupali_Amaravadi_8-1770011910724.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/367849i01009E872E1963BC/image-size/large?v=v2&px=999" role="button" title="Rupali_Amaravadi_8-1770011910724.png" alt="Rupali_Amaravadi_8-1770011910724.png" /></span></P><P>Data sent into Amazon SQS</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Rupali_Amaravadi_9-1770011910725.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/367851i8BD2545C8B89B279/image-size/large?v=v2&px=999" role="button" title="Rupali_Amaravadi_9-1770011910725.png" alt="Rupali_Amaravadi_9-1770011910725.png" /></span></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Rupali_Amaravadi_10-1770011910727.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/367852iA43280607770688B/image-size/large?v=v2&px=999" role="button" title="Rupali_Amaravadi_10-1770011910727.png" alt="Rupali_Amaravadi_10-1770011910727.png" /></span></P><P>The above processing took less than 1 second to complete end-to-end. This ensures near real-time processing of data which makes further processing easier and faster.</P><P><STRONG>Benefits of Using the Amazon EventBridge Adapter</STRONG></P><UL><LI><STRONG>Real-Time Integration:</STRONG> From SAP to Amazon EventBridge, the data will be transferred in near real time, which will make integrations much faster.</LI><LI><STRONG>Event-Driven Architecture:</STRONG> Promotes usage of decoupled system interactions and better scalability.</LI><LI><STRONG>Simplified Configuration:</STRONG> Eliminates the need for intermediate APIs or custom connectors. This ensures simplification of complex integrations.</LI><LI><STRONG>Serverless and Cost-Effective:</STRONG> Uses AWS’s serverless infrastructure with pay-per-event pricing.</LI><LI><STRONG>Time Saving:</STRONG> Takes very less time in configurations and implementation.</LI></UL><P><STRONG>Best Practices</STRONG></P><UL><LI>Use consistent naming conventions for event types and sources.</LI><LI>In case of failures, retry mechanisms should be implemented to avoid data loss.</LI><LI>Leverage SAP Cloud Integration monitoring to track message processing status.</LI><LI>Use AWS CloudWatch for monitoring and auditing event delivery.</LI><LI>Maintain version control of your integration artifacts to track changes and ensure reliability.</LI><LI>Use batching mechanism in case of large number of messages for smooth working.</LI></UL><P><STRONG>Conclusion</STRONG></P><P>The Amazon EventBridge receiver adapter extends the capabilities of SAP Integration Suite to support modern, event-driven integrations between SAP and AWS platforms.<BR />By using this adapter, organizations can replicate business partner data, sales order data, purchase order data and other master or transactional data from SAP S/4HANA to AWS in real time which can be further used for processing or analytics. Also, Amazon EventBridge adapter can be used to send multiple events using advanced mode settings in the adapter. This functionality helps in complex event-driven architectures saving good amount of time.</P><P>This approach provides a scalable, secure, time saving and future-ready integration pattern that aligns with cloud-native architectures and digital transformation goals.</P><P>Hope you find this blog informative!</P><P>Thanks</P><P>Rupali</P>2026-02-11T08:36:48.204000+01:00https://community.sap.com/t5/technology-blog-posts-by-members/sap-cpi-wsdl-headers-not-visible-after-upload-here-s-the-fix/ba-p/14321522SAP CPI: WSDL Headers Not Visible After Upload? Here’s the Fix2026-02-12T08:17:18.687000+01:00srivallivasamsettihttps://community.sap.com/t5/user/viewprofilepage/user-id/1845719<P><STRONG>Introduction</STRONG> : When working with shared WSDLs in SAP CPI, SOAP headers are sometimes not fetched correctly after the WSDL upload. Even though the same WSDL works for both source and target systems, CPI may fail to display the headers. This blog explain a simple one-line fix to resolve the issue.</P><P><STRONG>Body </STRONG>:</P><P>When performing message mapping in SAP CPI, it only considers elements defined inside the <CODE><schema></CODE> section of the WSDL. Any SOAP headers that exist outside this scope—like custom or extended headers won’t be recognized by CPI. This can be confusing, because the WSDL may work perfectly in both your source and target systems, yet <STRONG>CPI doesn’t display the headers</STRONG>, making them impossible to map.</P><P>CPI parses only the <STRONG>schema-defined elements</STRONG>. Headers defined outside the schema or not explicitly referenced are <STRONG>ignored</STRONG>,</P><P>We need to add <xs:element ref="emf:EMFHeader" /> element to the source and target schema as shown in the shared screenshot. </P><P> </P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="srivallivasamsetti_1-1770360148588.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/369419iCC162F8AB40D0679/image-size/medium?v=v2&px=400" role="button" title="srivallivasamsetti_1-1770360148588.png" alt="srivallivasamsetti_1-1770360148588.png" /></span></P><H4 id="toc-hId-2047660740"><STRONG>Step-by-Step Implementation</STRONG></H4><OL><LI><P>Open the <STRONG>source schema</STRONG> in CPI.</P></LI><LI><P>Locate the <CODE><xs:schema></CODE> section.</P></LI><LI><P>Add <CODE><xs:element ref="emf:EMFHeader" /></CODE> at the appropriate position.</P></LI><LI><P>Repeat the same process in the <STRONG>target schema</STRONG>.</P></LI><LI><P>Save and reopen your mapping</P></LI></OL><P>After these steps, all previously hidden headers should be <STRONG>fully visible</STRONG>, ready for mapping.</P><P><STRONG>Summary</STRONG> : In SAP CPI, SOAP headers may not appear in message mapping when using shared WSDLs because CPI only reads the elements defined in the schema. And adding <CODE><xs:element ref="emf:EMFHeader" /></CODE> to both source and target schemas makes the headers visible for mapping.</P>2026-02-12T08:17:18.687000+01:00https://community.sap.com/t5/integration-blog-posts/migrating-content-based-routing-scenarios-using-the-migration-tool-in-sap/ba-p/14327459Migrating Content-Based Routing Scenarios Using the Migration Tool in SAP Integration Suite2026-02-12T23:29:04.379000+01:00Amruta_Kamblehttps://community.sap.com/t5/user/viewprofilepage/user-id/122485<P class="lia-align-justify" style="text-align : justify;"><FONT size="4">This blog post is part of the series <SPAN><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/master-blog-sap-process-orchestration-to-sap-integration-suite-migration/ba-p/14256400" target="_blank">Master Blog: SAP Process Orchestration to SAP Integration Suite Migration – Tool and Guidance</A></SPAN> exploring how to migrate various integration patterns from SAP Process Orchestration to SAP Integration Suite using the Migration Tool. In this blog, we will focus on the Content-Based Routing (CBR) Asynchronous pattern</FONT></P><P><FONT size="5"><STRONG>Objective of this Blog</STRONG></FONT></P><P><FONT size="4">The goal of this blog is to explain how the Migration Tool supports Content-Based Routing (CBR) asynchronous integration scenarios. The blog will cover the following key areas:</FONT></P><UL><LI><EM><FONT size="4">What is Content-Based Routing (CBR) in SAP Process Orchestration</FONT></EM></LI><LI><EM><FONT size="4">Standard Receiver Determinations – Understanding Rules</FONT></EM></LI><LI><EM><FONT size="4">No Receiver Is Found – options such as Error Message, Ignore, or Select a Default Receiver</FONT></EM></LI><LI><EM><FONT size="4">How the Migration Tool migrates CBR scenarios from SAP Process Orchestration to SAP Cloud Integration</FONT></EM></LI></UL><P><FONT size="5"><STRONG>What is Content-Based Routing (CBR) in SAP Process Orchestration</STRONG></FONT></P><P class="lia-align-justify" style="text-align : justify;"><FONT size="4">Content-Based Routing (CBR) in SAP Process Orchestration is a mechanism that routes messages to the correct receiver based on the content of the message. Instead of sending a message to a fixed receiver, CBR uses Receiver Determination with Rules to evaluate message payloads (XML fields, attributes, or headers) at runtime and forward the message to only one receiver whose condition is satisfied. This enables intelligent routing without requiring any changes to the sender system.</FONT></P><P class="lia-align-justify" style="text-align : justify;"><FONT size="4">At configuration time in SAP PO, you can define conditions that depend on the content of the message. These conditions can be applied both to receiver communication component determination and inbound interface determination. However, in this blog, we will focus specifically on receiver communication component determination, where multiple potential receivers can be configured but only one receiver is selected at runtime based on the defined routing rules.</FONT></P><P><FONT size="5"><STRONG>Standard Receiver Determinations</STRONG></FONT></P><P><FONT size="4">Here you manually specify the receiver as well as conditions for forwarding the message to the specific receiver.</FONT></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Picture 1.png" style="width: 988px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/372002i531CA84E968F17D6/image-size/large?v=v2&px=999" role="button" title="Picture 1.png" alt="Picture 1.png" /></span></P><P><FONT size="4">You can also define rules for forwarding the message to the receivers.</FONT></P><P><FONT size="4">The following options are available:</FONT></P><UL><LI><FONT size="4"><STRONG>Specify “Local” Rules:</STRONG> </FONT>You define the rules specially for a specific receiver determination. This then also applies for messages where the address field in the header matches the key of the receiver determination.</LI></UL><UL><LI><FONT size="4"><STRONG>Insert (Reusable) Rules:</STRONG> </FONT>You use separately defined rules that can be reused in multiple receiver determinations. A rule such as this is defined as a standalone object in the Integration Directory and identified as a receiver rule.</LI></UL><P class="lia-indent-padding-left-30px" style="padding-left : 30px;"><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Picture 2.png" style="width: 854px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/372001iE9DF20AD1FC69B1B/image-size/large?v=v2&px=999" role="button" title="Picture 2.png" alt="Picture 2.png" /></span></P><P class="lia-align-justify" style="text-align : justify;"><FONT face="times new roman,times" size="4"><STRONG><EM><U>Note</U>:</EM><EM> A receiver rule applies to all messages whose address header matches the object keys of the receiver determinations in which the receiver rule is used. SAP recommends using receiver rules if you want to use the same rule in different scenarios</EM>.</STRONG></FONT></P><P><FONT size="4">For more details, see <SPAN><A href="https://help.sap.com/saphelp_em92/helpdata/en/48/ce53b1a0d7154ee10000000a421937/content.htm?no_cache=true" target="_blank" rel="noopener noreferrer">Defining Standard Receiver Determinations</A></SPAN></FONT></P><P><FONT size="4">Receiver interfaces and Communication Channels are assigned to specific receivers: In the following example, Receiver interfaces and mappings are bound to their corresponding receivers.</FONT></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Picture 3.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/372003i7732F9FB2406911F/image-size/large?v=v2&px=999" role="button" title="Picture 3.png" alt="Picture 3.png" /></span></P><P><FONT size="5"><STRONG>NoReceiverBehavior</STRONG></FONT></P><P><FONT size="4">Specifies what happens if no receiver can be determined at runtime.</FONT></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Picture 4.png" style="width: 854px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/372004i71E381D0CE3A57B0/image-size/large?v=v2&px=999" role="button" title="Picture 4.png" alt="Picture 4.png" /></span></P><P><FONT size="4"><STRONG>Possible values:</STRONG></FONT></P><UL><LI><FONT size="4"><STRONG>Error Message</STRONG>: Message processing is terminated with an error.</FONT></LI><LI><FONT size="4"><STRONG>Ignore</STRONG>: Message processing is ended as defined by your configuration settings.</FONT></LI><LI><FONT size="4"><STRONG>Specified Receiver</STRONG>: The message is sent to a fixed predefined receiver.</FONT></LI></UL><P><FONT size="5"><STRONG>How the Migration Tool migrates CBR scenarios from SAP Process Orchestration to SAP Cloud Integration</STRONG></FONT></P><P><FONT size="5"><STRONG>Migration Wizard:</STRONG></FONT></P><P><FONT size="4">In the Migration Wizard, after completing <STRONG>Step 1 – Select Process Orchestration System</STRONG> and <STRONG>Step 2 – Select Process Orchestration Artifacts</STRONG></FONT></P><P><FONT size="4">the next page is <STRONG>Step 3 – Choose Pattern and Approach</STRONG>. In this step, you need to select the appropriate migration pattern and the corresponding approach based on your integration scenario.</FONT></P><P><FONT face="times new roman,times" size="4"><STRONG><EM><U>Note</U>:</EM><EM> Content-based scenarios can be migrated using both the CBR (Content-Based Routing) and RL (Recipient List) patterns. However, it is recommended to choose the CBR pattern when the message is ultimately routed to only a single receiver</EM></STRONG></FONT></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Picture 5.png" style="width: 854px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/372005i996D3E2816B01E7C/image-size/large?v=v2&px=999" role="button" title="Picture 5.png" alt="Picture 5.png" /></span></P><UL class="lia-list-style-type-circle"><LI><FONT size="4"><STRONG>Content-Based Routing (CBR) Pattern:</STRONG> Multiple receivers can be configured, but at runtime the system evaluates message content and conditions and forwards the message to only one final receiver.</FONT></LI><LI><FONT size="4"><STRONG>Recipient List (RL) Pattern:</STRONG> In the Recipient List pattern, the message can be sent to multiple receivers, with or without conditions. It is used for one-to-many routing where several receivers are eligible to receive the same message.</FONT></LI></UL><P><FONT face="times new roman,times" size="4"><STRONG><EM><U>Note</U>: In SAP PO (Process Orchestration), there is no strict technical distinction between CBR and RL. Both are configured through Receiver Determination rules, and the behavior depends on how the conditions and receivers are defined.</EM></STRONG></FONT></P><P><FONT size="4"><STRONG>Step 4 and Step 5</STRONG> are used to import the required mapping objects from your SAP Process Orchestration system.</FONT></P><P><FONT size="4"><STRONG>Step 6</STRONG> is where you provide the name of the Integration Flow, and</FONT></P><P><FONT size="4"><STRONG>Step 7</STRONG> allows you to review the objects that will be migrated to SAP Cloud Integration.</FONT></P><P><FONT size="4">After a successful migration, a <STRONG>Summary Page</STRONG> is displayed, providing key insights and direct navigation links to the migrated artifacts in Cloud Integration.</FONT></P><P><FONT size="3"><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Picture 6.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/372006i092E230CC6FF3F31/image-size/large?v=v2&px=999" role="button" title="Picture 6.png" alt="Picture 6.png" /></span></FONT></P><P><FONT size="4">Now let us understand how the Migration Tool generates the Content-Based Routing pattern based on the existing integration configuration and its key flow steps.</FONT></P><P><FONT size="4"><STRONG><FONT face="times new roman,times"><EM><U>Note</U>: This blog primarily focuses on understanding and applying the standard approach.</EM></FONT></STRONG></FONT></P><P><FONT size="6"><STRONG>Standard Approach</STRONG></FONT></P><P><FONT size="4">After a successful migration, the Integration Flow is typically split into two integration processes - the first acting as the Inbound Integration Process and the second as the Outbound Integration Process.</FONT></P><P><STRONG><FONT face="times new roman,times" size="4"><EM><U>Note</U>:</EM><EM> Both processes are internally connected using the ProcessDirect adapter, enabling seamless message transfer between the inbound and outbound integration Processes</EM>.</FONT></STRONG></P><P><FONT size="5"><STRONG>Inbound Integration Process:</STRONG></FONT></P><P class="lia-align-justify" style="text-align : justify;"><FONT size="4">This process receives the message from the sender, sets the sender system and message type, and performs receiver determination where the defined receiver rules and routing conditions are evaluated. The content-based routing logic is executed here to identify the appropriate receiver based on the message content.</FONT></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Picture 7.png" style="width: 854px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/372007iD22DD090ADB388AB/image-size/large?v=v2&px=999" role="button" title="Picture 7.png" alt="Picture 7.png" /></span></P><P><FONT size="4"><STRONG>Content Modifier – Receiver Conditions & Interface Conditions:</STRONG></FONT></P><P class="lia-align-justify" style="text-align : justify;"><FONT size="4">The Content Modifier stores the predefined conditions derived from Receiver Determination and Interface Determination. The local rules, receiver rules, and inbound interface conditions configured in SAP PO are migrated and maintained here, where they are listed and used during runtime evaluation for routing decisions</FONT></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Picture 8.png" style="width: 854px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/372008i27E729B43F523E38/image-size/large?v=v2&px=999" role="button" title="Picture 8.png" alt="Picture 8.png" /></span></P><P><FONT size="4">Let us understand the migrated content from SAP PO that appears in above <STRONG>Content Modifier – Exchange Properties</STRONG> section.</FONT></P><UL><LI><FONT size="3"><STRONG>SAP-DYNREC-<Receiver Communication Component>:</STRONG><SPAN><BR /><EM>SAP-DYNREC</EM><SPAN> is a prefix added to each </SPAN><STRONG>Receiver Communication Component</STRONG><SPAN> present in the migrated ICO. </SPAN></SPAN></FONT></LI></UL><P class="lia-indent-padding-left-60px" style="padding-left : 60px;"><FONT size="3">The <EM>value</EM> of this property represents the <STRONG>receiver condition</STRONG><SPAN> migrated from Configured Receivers - Rules. If a condition is defined in SAP PO, it is carried over here; otherwise, the value is set to </SPAN><FONT face="symbol"><STRONG><EM>true()</EM></STRONG></FONT><SPAN>, indicating unconditional routing eligibility for that receiver.</SPAN></FONT></P><UL><LI><FONT size="3"><STRONG>SAP-IFDET-<Receiver Communication Component>~IFx:</STRONG><SPAN><BR /><EM>SAP-IFDET</EM><SPAN> is the prefix used for </SPAN><STRONG>Interface Determination</STRONG><SPAN> and is also added to the Receiver Communication Component name. </SPAN></SPAN>The suffix <EM>~IFx</EM><SPAN> acts as an </SPAN><STRONG>interface index indicator</STRONG><SPAN>, which increments based on the number of receiver interfaces maintained for that receiver.</SPAN></FONT></LI></UL><P class="lia-indent-padding-left-30px" style="padding-left : 30px;"><EM>For example, if Receiver_1 has three receiver interfaces, the generated properties would be:</EM></P><UL class="lia-list-style-type-circle"><LI><FONT face="courier new,courier">SAP-IFDET-Receiver_1~IF1</FONT></LI><LI><FONT face="courier new,courier">SAP-IFDET-Receiver_1~IF2</FONT></LI><LI><FONT face="courier new,courier">SAP-IFDET-Receiver_1~IF3</FONT></LI></UL><P class="lia-indent-padding-left-60px" style="padding-left : 60px;">The <EM>value</EM> of each property reflects the <STRONG>interface condition</STRONG> migrated from the on-premises system. If interface-level conditions exist, they are preserved; if not, the value defaults to <FONT face="symbol"><STRONG>true()</STRONG></FONT>.</P><P><FONT size="4">These exchange properties collectively store the migrated receiver and interface rules, enabling the integration flow to evaluate routing logic dynamically at runtime.</FONT></P><P><FONT size="3"><STRONG>Receiver Determination:</STRONG></FONT></P><P class="lia-align-justify" style="text-align : justify;"><FONT size="4">Receiver Determination is implemented as a Process Call that invokes a local integration process. This local process contains a static receiver-determination Groovy script which evaluates the predefined conditions migrated in the previous step (Receiver Conditions and Interface Conditions). Based on these conditions, the script identifies and returns the appropriate receiver for the message.</FONT></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Picture 9.png" style="width: 854px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/372009i4D38570EC10F54E6/image-size/large?v=v2&px=999" role="button" title="Picture 9.png" alt="Picture 9.png" /></span></P><P><FONT size="4"><STRONG>Router and No-Receiver Behavior:</STRONG></FONT></P><P><FONT size="4">The Router is used to forward the message to the specific receiver that was determined based on the evaluated conditions.</FONT></P><P><FONT size="4">In addition to routing, it also manages the No-Receiver Behavior. If no receiver is found, the Migration Tool dynamically generates the configured fallback option.<EM> </EM></FONT></P><P><FONT face="arial,helvetica,sans-serif"><EM>For example, it can automatically route the message to a default receiver (in this example, RL_Receiver_4).</EM></FONT></P><P><FONT size="4">Alternatively, if the configuration is set to Error = an Exception Event is generated, and if set to Ignore = an End Event step is created to terminate the flow without further processing.</FONT></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Picture 10.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/372010iAE93DFD040EAC663/image-size/large?v=v2&px=999" role="button" title="Picture 10.png" alt="Picture 10.png" /></span></P><P><FONT size="5"><STRONG>Outbound Integration Process:</STRONG></FONT></P><P><FONT size="4">The Outbound Integration Process contains the mappings, receiver communication channels, and the configured receivers, and is responsible for delivering the processed message to the final target system.</FONT></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Picture 11.png" style="width: 854px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/372011i6249841C66AD5260/image-size/large?v=v2&px=999" role="button" title="Picture 11.png" alt="Picture 11.png" /></span></P><P class="lia-align-justify" style="text-align : justify;"><FONT size="4"><STRONG>Router:</STRONG></FONT></P><P class="lia-align-justify" style="text-align : justify;"><FONT size="4">In the Outbound Integration Process, the Router uses the receiver determined in the Inbound Integration Process to bind the corresponding receiver interface/mappings to the specific receiver via its associated communication channel. The message is then forwarded along the appropriate route based on the evaluated conditions, ensuring it reaches the correct receiver.</FONT></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Picture 12.png" style="width: 854px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/372012iF5CAC645C2ADEDE3/image-size/large?v=v2&px=999" role="button" title="Picture 12.png" alt="Picture 12.png" /></span></P><P><FONT size="6"><STRONG>Pipeline Approach</STRONG></FONT></P><P><FONT size="4">In this section, we will migrate the same example using the Pipeline Approach.</FONT></P><P><FONT size="5"><STRONG>Key Highlights in the Migration Wizard:</STRONG></FONT></P><P><FONT size="4">After selecting the Pipeline Approach for your migration use case, the Migration Tool allows you to modify alternative partner information, as well as review and update the migrated receiver/interface conditions and endpoints, as illustrated in the screenshot below.</FONT></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Picture 13.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/372013i3A55C9E6DB2D3B02/image-size/large?v=v2&px=999" role="button" title="Picture 13.png" alt="Picture 13.png" /></span></P><P><FONT size="4">After a successful migration, you can view the generated artifacts and navigate to them directly.</FONT></P><P><FONT size="4">In the Pipeline Approach, <STRONG>scenario-specific Inbound and Outbound Integration Flows</STRONG> are created. The Outbound Integration Flow is generated for each receiver configured in the respective ICO, ensuring that messages are routed correctly based on the original configuration.</FONT></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Picture01.png" style="width: 850px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/372020iD03D8EC9B561F599/image-size/large?v=v2&px=999" role="button" title="Picture01.png" alt="Picture01.png" /></span></P><P><FONT size="4">The Partner Directory tab provides an overview of the created Partner ID along with their associated parameters.</FONT></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Picture 15.png" style="width: 854px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/372017iFEB90FC566CDBBB0/image-size/large?v=v2&px=999" role="button" title="Picture 15.png" alt="Picture 15.png" /></span></P><P><FONT size="4">On the Binary Parameters tab of the Partner Directory, you can see that a binary parameter with the ID <EM>receiverDetermination</EM> has been created. This parameter contains the <STRONG>XSLT</STRONG> used to determine the appropriate receivers during message processing.</FONT></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Picture 16.png" style="width: 854px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/372018i4888E39416612D46/image-size/large?v=v2&px=999" role="button" title="Picture 16.png" alt="Picture 16.png" /></span></P><P><FONT size="4">For more information, See <SPAN><A href="https://help.sap.com/docs/migration-guide-po/migration-guide-for-sap-process-orchestration/using-partner-directory-in-pipeline-concept?locale=en-US" target="_blank" rel="noopener noreferrer">Using the Partner Directory in the Pipeline Concept</A></SPAN></FONT></P><P><FONT size="4">For a deeper understanding of the <SPAN><A href="https://help.sap.com/docs/integration-suite/sap-integration-suite/pipeline-approach?locale=en-US" target="_blank" rel="noopener noreferrer"><STRONG>Pipeline Approach</STRONG></A></SPAN><STRONG>,</STRONG> please refer to the following references:</FONT></P><P class="lia-indent-padding-left-60px" style="padding-left : 60px;"><FONT size="4"><SPAN><A href="https://community.sap.com/t5/integration-blog-posts/migration-tooling-now-supporting-migration-via-the-pipeline-approach/ba-p/14073721" target="_blank">Migration Tooling now supporting migration via the pipeline approach</A></SPAN></FONT></P><P class="lia-indent-padding-left-60px" style="padding-left : 60px;"><FONT size="4"><SPAN><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/applying-the-pipeline-concept-for-an-integration-scenario-in-general/ba-p/13640018" target="_blank">Applying the pipeline concept for an integration scenario in general</A></SPAN></FONT></P><P><FONT size="4">Learn here the differences and characteristics of each approach to choose the one that aligns best with your migration needs <SPAN><A href="https://help.sap.com/docs/integration-suite/sap-integration-suite/pipleine-approach-vs-standard-approach?locale=en-US" target="_blank" rel="noopener noreferrer"><STRONG>Standard vs Pipeline Approach</STRONG></A></SPAN></FONT></P><P><FONT size="5"><STRONG>Post-Migration Activities – Key Points to Keep in Mind:</STRONG></FONT></P><P><FONT size="4"><STRONG> </STRONG>After successfully migrating CBR Integration Flow, the following activities should be verified and completed:</FONT></P><OL><LI><STRONG>Verify Migrated Artifacts:</STRONG> Ensure that mappings (local and global), Function Libraries, imported archives, and Local UDFs are migrated correctly and functioning as expected.</LI><LI><STRONG>Adapter Configuration:</STRONG> Adapter parameters are <STRONG>externalized</STRONG>. Verify the configurations and update them as needed to match the target environment.</LI><LI><STRONG>Adapter Conversions:</STRONG> Adapter conversions such as <STRONG>JSON-to-XML</STRONG> or <STRONG>CSV-to-XML</STRONG> are migrated automatically. Check the configuration in the conversion flow steps and adjust if necessary.</LI><LI><STRONG>Security Artifacts:</STRONG> The Migration Tool does <STRONG>not create or import security artifacts</STRONG> in Cloud Integration. Manual creation of security materials (certificates, keystores, etc.) is a <STRONG>prerequisite</STRONG> before deploying the Integration Flow.</LI><LI><STRONG>Reusable Mapping Options:</STRONG> If the <STRONG>“Enable Reusable Mapping”</STRONG> option was selected during migration, ensure that the <STRONG>standalone artifacts</STRONG> are deployed first before deploying the main Integration Flow.</LI></OL><P><FONT size="4">For other manual activities for specific senarios, please refer to the section “<SPAN><A href="https://community.sap.com/t5/integration-blog-posts/migrating-point-to-point-asynchronous-scenarios-using-the-migration-tool-in/ba-p/14264265" target="_blank">Manual Activities Depending on Integration Scenario</A></SPAN>” in the P2P Blog from <SPAN><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/master-blog-sap-process-orchestration-to-sap-integration-suite-migration/ba-p/14256400" target="_blank">series</A></SPAN></FONT></P><P><FONT size="5"><STRONG>Conclusion:</STRONG></FONT></P><P class="lia-align-justify" style="text-align : justify;"><FONT size="4">Content-Based Routing (CBR) scenarios can be successfully migrated to Cloud Integration using the Migration Tool, preserving receiver determination, routing conditions, mappings, and adapter configurations. While most artifacts are migrated automatically, post-migration verification and manual activities - such as security setup and reusable mapping deployment - are essential. Following the recommended steps ensures that your integration flows continue to run reliably and efficiently in the Cloud Integration environment.</FONT></P><P><FONT size="5"><STRONG>What Will Be Covered in the Next Parts of </STRONG><SPAN><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/master-blog-sap-process-orchestration-to-sap-integration-suite-migration/ba-p/14256400" target="_blank"><STRONG>Master Blog Series</STRONG></A></SPAN><STRONG>:</STRONG></FONT></P><P><FONT size="4">In the next parts of this blog series, we will explore the following topics in depth with a detailed and comprehensive walkthrough:</FONT></P><UL><LI><FONT size="3">Extended Receiver Determination using the Pipeline Approach</FONT></LI><LI><FONT size="3">Operation-Specific Receiver Determination and Multi-Operation Scenarios</FONT></LI><LI><FONT size="3">Content-Based Routing (CBR) – Synchronous Use Cases</FONT></LI></UL>2026-02-12T23:29:04.379000+01:00https://community.sap.com/t5/technology-blog-posts-by-members/automated-trace-enabler-in-sap-cpi/ba-p/14328633Automated Trace Enabler in SAP CPI2026-02-15T08:21:15.257000+01:00Daggolu_PremSaihttps://community.sap.com/t5/user/viewprofilepage/user-id/1668154<H5 id="toc-hId--2118014307">Introduction:</H5><P>While developing integrations in SAP CPI, enabling <STRONG><EM>Trace </EM></STRONG>is one of the most common activities during testing and debugging. It provides detailed visibility into message processing, including payload transformations, headers and properties.</P><P>Of course, there are easier ways to enable trace. Browser extensions and supported testing tools make this process very simple and convenient.</P><P>However, there are also projects where:</P><UL><LI>Browser extension are not allowed</LI><LI>External testing tools are restricted</LI><LI>Developers rely only on native CPI capabilities</LI></UL><P>In such cases, repeatedly navigating through the monitoring UI to enable trace can interrupt the development workflow.</P><P>To address this, I built a reusable <EM><STRONG>Trace Enabler Utility iFlow</STRONG> </EM>that programmatically enables trace using internal Operations endpoints - keeping the solutions entirely within SAP CPI.</P><H5 id="toc-hId-1568004603" id="toc-hId-1980439484"><STRONG>Prerequisites:</STRONG></H5><P>Before using the Trace Enabler iFlow, we need to set up proper authentication to invoke the internal Operations API.</P><P>In your SAP BTP subaccount:</P><OL><LI>Navigate to Instance and Subscriptions</LI><LI>Create a new instance for <TABLE border="1" width="100%"><TBODY><TR><TD width="50%" height="30px"><EM>Service</EM></TD><TD width="50%" height="30px"><EM><FONT size="3">SAP Process Integration Runtime</FONT></EM></TD></TR><TR><TD width="50%" height="30px"><EM><FONT size="3">Plan</FONT></EM></TD><TD width="50%" height="30px"><EM>API</EM></TD></TR><TR><TD width="50%" height="30px"><EM><FONT size="3">Roles</FONT></EM></TD><TD width="50%" height="30px"><EM><FONT>Tr</FONT><FONT size="3">aceConfigurationEdit, TraceConfigurationRead</FONT></EM></TD></TR></TBODY></TABLE></LI><LI>Create Service Key and copy Client ID, Client Secret, Token URL</LI><LI>Create OAuth Credentials in SAP CPI Security Material</LI></OL><H5 id="toc-hId-1568004603" id="toc-hId-1783925979"><STRONG>Integration Flow Overview:</STRONG></H5><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Daggolu_PremSai_0-1771092691724.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/372717i5869A1F4EAF27471/image-size/large?v=v2&px=999" role="button" title="Daggolu_PremSai_0-1771092691724.png" alt="Daggolu_PremSai_0-1771092691724.png" /></span></P><P> </P><P><SPAN>Download Integration flow from the Git :</SPAN><SPAN> </SPAN><A title="SAP-CPI-Trace-Enabler" href="https://bit.ly/SAP-CPI-Trace-Enabler" target="_blank" rel="nofollow noopener noreferrer">link</A></P><P>This interface consist of two separate Integration Process, both are designed to enable trace for specific iFlows during development.</P><P>Each Integration Process serves a different triggering mechanism but follows same core logic:</P><UL><LI>Accept Interface IDs</LI><LI>Split them (if multiple)</LI><LI>Enable trace individually</LI></UL><H5 id="toc-hId-1587412474">1. Timer based Trace Enabler flow</H5><P>This integration process runs automatically based on a configured scheduler.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Daggolu_PremSai_0-1771094001123.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/372719i48237BFF6341BE37/image-size/large?v=v2&px=999" role="button" title="Daggolu_PremSai_0-1771094001123.png" alt="Daggolu_PremSai_0-1771094001123.png" /></span></P><P>The timer can be defined according to development requirements. For example:</P><UL><LI>Every 9 minutes</LI><LI>During working hours on week days</LI></UL><P>This makes it useful when trace needs to be enabled periodically during active development hours.</P><P>The list of interfaces is maintained as Externalized Parameters.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Daggolu_PremSai_1-1771094140426.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/372720i231D7C7A5DDEE7FD/image-size/large?v=v2&px=999" role="button" title="Daggolu_PremSai_1-1771094140426.png" alt="Daggolu_PremSai_1-1771094140426.png" /></span></P><P><STRONG>Example:</STRONG> iflow_1, iflow_2 <EM>(separated by comma)</EM></P><H5 id="toc-hId-1390898969">2. HTTPS based Trace Enabler flow</H5><P>This integration process exposes an HTTPS endpoint for manual triggering.</P><P>Developers can use tools like postman to send a request and enable trace on demand.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Daggolu_PremSai_0-1771139007703.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/372738iC8D6249787B1B588/image-size/large?v=v2&px=999" role="button" title="Daggolu_PremSai_0-1771139007703.png" alt="Daggolu_PremSai_0-1771139007703.png" /></span></P><P> </P><P><STRONG>Note</STRONG>: This interface uses an internal, non-public SAP API that may change or be removed in future releases.</P><P><STRONG>Important Consideration:</STRONG> Activating trace during unwanted runs or unexpected triggers can significantly increases message storage consumption. Always enable trace carefully only when necessary and disable it when no longer required.</P><P> </P><H5 id="toc-hId-1194385464">Conclusion:</H5><P>This interface demonstrates how trace activation in SAP CPI can be automated during development using internal API. While useful for streamlining debugging, it should be used with awareness since it relies on a non-public API.</P><P> </P><P>I'd appreciate any insights, improvements or feedback on this approach.</P><P><STRONG>Happy Integrating!</STRONG></P><P> </P>2026-02-15T08:21:15.257000+01:00https://community.sap.com/t5/technology-blog-posts-by-sap/is-this-the-right-way-to-build-talent-intelligent-hub-integration-with-sap/ba-p/14328814🤔 Is This the Right Way to Build Talent Intelligent Hub Integration with SAP Gene AI Hub-Extension2026-02-15T18:36:04.178000+01:00RajeshKPutumbakahttps://community.sap.com/t5/user/viewprofilepage/user-id/2081121<P>****Please check design at the bottom of this article (available for download)***</P><P>I've been sketching out an architecture for extending SAP SuccessFactors with AI-powered skills matching and requisition management. But before going down this path, I want to challenge my own assumptions. Is this the best approach, or am I overengineering?</P><P>THE PROPOSED ARCHITECTURE:</P><P>Here's what I'm considering:</P><P><span class="lia-unicode-emoji" title=":building_construction:">🏗</span>️ Multi-Cloud Foundation (SAP BTP)</P><P>- Cloud Foundry runtime for microservices</P><P>- HANA DB for data persistence</P><P>- Integration Suite for SuccessFactors connectivity</P><P>- Identity services for authentication</P><P><span class="lia-unicode-emoji" title=":robot_face:">🤖</span>AI & Analytics Layer</P><P>- SAP Generative AI Hub (GPT-4, Claude, Llama)</P><P>- Document intelligence and entity extraction</P><P>- Vector embeddings for semantic search</P><P>- Resume parsing and skills extraction</P><P><span class="lia-unicode-emoji" title=":gear:">⚙️</span>Microservices Architecture</P><P>- Requisition Analysis Service</P><P>- Skills Management Service</P><P>- Matching Service</P><P>- Custom build services for each capability</P><P><span class="lia-unicode-emoji" title=":bar_chart:">📊</span>Advanced Data Layer</P><P>- Vector engine for embeddings</P><P>- Object store for documents</P><P>- HANA DB for structured data</P><P>- Build Process Automation for workflows</P><P>THE CRITICAL QUESTIONS I'M WRESTLING WITH:</P><P><span class="lia-unicode-emoji" title=":keycap_1:">1️⃣</span>DO WE REALLY NEED MULTI-CLOUD COMPLEXITY?</P><P>The Good:</P><P><span class="lia-unicode-emoji" title=":white_heavy_check_mark:">✅</span>Flexibility to choose best-of-breed services</P><P><span class="lia-unicode-emoji" title=":white_heavy_check_mark:">✅</span>Avoid vendor lock-in</P><P><span class="lia-unicode-emoji" title=":white_heavy_check_mark:">✅</span>Leverage SAP BTP's enterprise capabilities</P><P>The Concerns:</P><P><span class="lia-unicode-emoji" title=":warning:">⚠️</span>Operational complexity across multiple clouds</P><P><span class="lia-unicode-emoji" title=":warning:">⚠️</span>Higher costs for integration and management</P><P><span class="lia-unicode-emoji" title=":warning:">⚠️</span>Steeper learning curve for teams</P><P><span class="lia-unicode-emoji" title=":warning:">⚠️</span>More points of failure</P><P>Alternative: Could we start with pure SuccessFactors extensions and only move to BTP if we hit limitations?</P><P><span class="lia-unicode-emoji" title=":keycap_2:">2️⃣</span>IS MICROSERVICES THE RIGHT PATTERN HERE?</P><P>The Good:</P><P><span class="lia-unicode-emoji" title=":white_heavy_check_mark:">✅</span>Independent scaling of services</P><P><span class="lia-unicode-emoji" title=":white_heavy_check_mark:">✅</span>Team autonomy and faster deployment</P><P><span class="lia-unicode-emoji" title=":white_heavy_check_mark:">✅</span>Technology flexibility per service</P><P>The Concerns:</P><P><span class="lia-unicode-emoji" title=":warning:">⚠️</span>Distributed system complexity</P><P><span class="lia-unicode-emoji" title=":warning:">⚠️</span>Network latency between services</P><P><span class="lia-unicode-emoji" title=":warning:">⚠️</span>Harder to debug and monitor</P><P><span class="lia-unicode-emoji" title=":warning:">⚠️</span>Overkill for a small team or MVP?</P><P>Alternative: What if we started with a modular monolith and decomposed later based on actual bottlenecks?</P><P><span class="lia-unicode-emoji" title=":keycap_3:">3️⃣</span>ARE WE READY FOR GENERATIVE AI IN PRODUCTION HR?</P><P>The Good:</P><P><span class="lia-unicode-emoji" title=":white_heavy_check_mark:">✅</span>Intelligent resume parsing and skills extraction</P><P><span class="lia-unicode-emoji" title=":white_heavy_check_mark:">✅</span>Natural language requisition analysis</P><P><span class="lia-unicode-emoji" title=":white_heavy_check_mark:">✅</span>Semantic matching beyond keyword search</P><P><span class="lia-unicode-emoji" title=":white_heavy_check_mark:">✅</span>Document generation and summarization</P><P>The Concerns:</P><P><span class="lia-unicode-emoji" title=":warning:">⚠️</span>Hallucination risks in HR decisions</P><P><span class="lia-unicode-emoji" title=":warning:">⚠️</span>Bias and fairness implications</P><P><span class="lia-unicode-emoji" title=":warning:">⚠️</span>Explainability requirements for hiring</P><P><span class="lia-unicode-emoji" title=":warning:">⚠️</span>Cost per API call at scale</P><P><span class="lia-unicode-emoji" title=":warning:">⚠️</span>Data privacy and compliance (GDPR, EEOC)</P><P>Alternative: Should we start with rule-based matching and traditional NLP, then layer in GenAI for non-critical features?</P><P><span class="lia-unicode-emoji" title=":keycap_4:">4️⃣</span>DO WE NEED VECTOR EMBEDDINGS AND SEMANTIC SEARCH?</P><P>The Good:</P><P><span class="lia-unicode-emoji" title=":white_heavy_check_mark:">✅</span>Find similar skills even with different terminology</P><P><span class="lia-unicode-emoji" title=":white_heavy_check_mark:">✅</span>Semantic matching beyond exact keywords</P><P><span class="lia-unicode-emoji" title=":white_heavy_check_mark:">✅</span>Better candidate-requisition alignment</P><P>The Concerns:</P><P><span class="lia-unicode-emoji" title=":warning:">⚠️</span>Added infrastructure complexity (vector DB)</P><P><span class="lia-unicode-emoji" title=":warning:">⚠️</span>Embedding model maintenance and updates</P><P><span class="lia-unicode-emoji" title=":warning:">⚠️</span>Explainability: "Why was this candidate matched?"</P><P><span class="lia-unicode-emoji" title=":warning:">⚠️</span>Cost of generating and storing embeddings</P><P>Alternative: Could traditional search with synonyms and taxonomies get us 80% of the value with 20% of the complexity?</P><P><span class="lia-unicode-emoji" title=":keycap_5:">5️⃣</span>IS THE INTEGRATION LAYER OVER-ARCHITECTED?</P><P>The Good:</P><P><span class="lia-unicode-emoji" title=":white_heavy_check_mark:">✅</span>Clean separation of concerns</P><P><span class="lia-unicode-emoji" title=":white_heavy_check_mark:">✅</span>Reusable integration patterns</P><P><span class="lia-unicode-emoji" title=":white_heavy_check_mark:">✅</span>API management and event mesh</P><P>The Concerns:</P><P><span class="lia-unicode-emoji" title=":warning:">⚠️</span>Do we need event mesh for this use case?</P><P><span class="lia-unicode-emoji" title=":warning:">⚠️</span>Is Build Process Automation necessary or could we use simpler workflows?</P><P><span class="lia-unicode-emoji" title=":warning:">⚠️</span>Are we adding layers that slow down development?</P><P>Alternative: Direct SuccessFactors OData APIs with simple retry logic?</P><P>WHAT MIGHT BE A SIMPLER STARTING POINT?</P><P>Phase 1: Validate the Value</P><P>- Build a SuccessFactors extension app (UI5)</P><P>- Use SuccessFactors APIs directly</P><P>- Simple keyword-based matching</P><P>- Manual review and approval workflows</P><P>- Prove the business value first</P><P>Phase 2: Add Intelligence Gradually</P><P>- Introduce resume parsing (traditional NLP)</P><P>- Add skills taxonomy and synonyms</P><P>- Basic analytics dashboard</P><P>- Measure improvement over baseline</P><P>Phase 3: Scale What Works</P><P>- Only then consider microservices if we have clear scaling needs</P><P>- Add GenAI for specific high-value use cases</P><P>- Introduce vector search if keyword matching proves insufficient</P><P>- Expand to multi-cloud only if we need capabilities not in SuccessFactors</P><P>THE REAL QUESTIONS:</P><P><span class="lia-unicode-emoji" title=":thought_balloon:">💭</span>Am I solving for scale we don't have yet?</P><P><span class="lia-unicode-emoji" title=":thought_balloon:">💭</span>Am I choosing technology because it's interesting vs. because it's necessary?</P><P><span class="lia-unicode-emoji" title=":thought_balloon:">💭</span>What's the simplest thing that could possibly work?</P><P><span class="lia-unicode-emoji" title=":thought_balloon:">💭</span>How do we balance innovation with pragmatism?</P><P><span class="lia-unicode-emoji" title=":thought_balloon:">💭</span>What would a true MVP look like?</P><P>WHAT I'D LOVE YOUR INPUT ON:</P><P><span class="lia-unicode-emoji" title=":small_blue_diamond:">🔹</span>Have you built similar HR/talent extensions? What worked? What didn't?</P><P><span class="lia-unicode-emoji" title=":small_blue_diamond:">🔹</span>Where have you seen GenAI add real value in recruiting vs. just hype?</P><P><span class="lia-unicode-emoji" title=":small_blue_diamond:">🔹</span>When is microservices worth it vs. premature optimization?</P><P><span class="lia-unicode-emoji" title=":small_blue_diamond:">🔹</span>How do you balance "enterprise-grade" with "ship fast and learn"?</P><P><span class="lia-unicode-emoji" title=":small_blue_diamond:">🔹</span>What would you do differently?</P><P>I'm genuinely torn between building something robust and future-proof vs. starting simple and evolving based on real needs.</P><P>What's your take? Is this architecture the right approach, or should we start simpler and earn our way to complexity?</P><P>Drop your thoughts below - especially if you think I'm overcomplicating this! <span class="lia-unicode-emoji" title=":backhand_index_pointing_down:">👇</span></P><P>#EnterpriseArchitecture #SAPSuccessFactors #SAPBTP #TalentManagement #AIinHR #Microservices #CloudArchitecture #SoftwareEngineering #TechLeadership #ArchitecturalDecisions #BuildOrBuy #MVPFirst #OverengineeringDebate</P>2026-02-15T18:36:04.178000+01:00https://community.sap.com/t5/technology-blog-posts-by-sap/decision-logic-modernization-in-sap-integrations-using-sap-rpt-1-for/ba-p/14329617Decision Logic Modernization in SAP Integrations: Using SAP-RPT-1 for Intelligent Routing Decisions2026-02-16T19:54:29.244000+01:00arunmaarirajha_kvhttps://community.sap.com/t5/user/viewprofilepage/user-id/2033343<P><STRONG>Integration Modernization</STRONG> concept is often discussed in two dimensions:<BR />1)<STRONG> Platform modernization</STRONG> – moving from older stacks like SAP NetWeaver PI/PO, SAP Neo, or legacy 3rd party platforms to SAP Integration Suite.<BR />2) <STRONG>Scenario modernization</STRONG> – shifting from legacy protocols to modern integration patterns such as APIs & event-driven architectures; upgrading ABAP / Java mapping to graphical mapping / groovy script; or moving from basic auth to OAuth 2.0 or client certificate based authentication, and so on.</P><P>But there is another Modernization opportunity at the scenario level: <STRONG>decision logic modernization</STRONG>.</P><P>In this blog, we explore how routing decision logic, as an orchestration step — can be modernized using SAP-RPT-1, SAP’s latest foundation model hosted on BTP AI Core (Generative AI Hub) — applied to an outbound delivery routing scenario.</P><P><STRONG>The Traditional Approach: Static Rules, Lookups, and Growing Complexity:<BR /></STRONG>In SAP PI/PO and Integration Suite, routing decisions are typically implemented using deterministic, rule-based logic. These decisions often control how a scenario behaves – including which receiver system to call, or which transformation branch to follow. The common approaches include:</P><UL><LI>Static routing via Routers based on payload elements or fields</LI><LI>Dynamic configurations, such as externalized parameters passed at runtime</LI><LI>Lookups to external systems (e.g., via JDBC, SOAP, RFC lookups) to evaluate conditions at runtime — achieved in Integration Suite via patterns like <EM>Request-Reply</EM> or <EM>Content Enricher</EM></LI></UL><P>These mechanisms work — but they come with growing challenges:</P><UL><LI>Rules get combinatorially complex with more conditions and evolving business scenarios</LI><LI>Lookup tables become burdensome to maintain</LI><LI>Decisions become rigid and hard to evolve over time</LI></UL><P>As a result, rule-based decisioning becomes harder to maintain as business requirements evolve. Agility suffers. Adaptation becomes expensive.</P><P>What if, instead of relying on static rule-based logic, iflows could make decisions based on historical business patterns — applying predictive machine learning without the overhead of training and managing custom models? With the in-context learning capabilities of SAP’s latest foundation model, SAP-RPT-1, such predictions can be performed on-the-fly at runtime.</P><P><STRONG>Enter SAP-RPT-1: Foundation Model for Predictive Tasks:<BR /></STRONG>SAP-RPT-1 is a pre-trained foundation model available via BTP AI Core (Generative AI Hub). Unlike traditional ML services that require dedicated data science setup, SAP-RPT-1 offers:</P><UL><LI>Pre-trained model, ready for “plug and play” in your scenario</LI><LI>No ML infrastructure setup</LI><LI>No data science expertise required</LI><LI>No-code consumption via API</LI><LI>Faster time-to-market</LI><LI>Democratization of AI capabilities across IT functions</LI></UL><P>SAP-RPT-1 is pre-trained specifically for predictive tasks such as classification and regression over ERP tabular data, <SPAN>unlike many general-purpose GenAI models that are primarily trained on large corpora of natural language text. </SPAN>Instead of building and managing a full ML lifecycle, integration developers can now leverage predictive intelligence directly into iflows — without any data science related heavy-lifting.</P><P>If you are new to SAP-RPT-1, I recommend that you read <SPAN><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/a-new-paradigm-for-enterprise-ai-in-context-learning-for-relational-data/ba-p/14260221" target="_blank">this introductory blog</A></SPAN>.<BR />Also, explore this <SPAN><A href="https://rpt.cloud.sap/" target="_blank" rel="noopener nofollow noreferrer">SAP-RPT-1 playground</A></SPAN>.</P><P><STRONG>Business Scenario: Intelligent Outbound Delivery Routing with SAP-RPT-1:<BR /></STRONG>SmartSense Technologies (SST), a global provider of smart security devices, faces challenges in routing outbound deliveries from its manufacturing plants to distribution centers, retail stores, and end customers. Their current routing logic, embedded in integration flows, relies on static rules and lookup tables – employing a combination of Material, Quantity, Delivery priority, Material group, Ship to location, and so on. This leads to frequent shipping delays, cost overruns, and SLA violations whenever logistics conditions change and sub-optimal 3PL partner is chosen.</P><P>To overcome these limitations, SST decides to leverage SAP Integration Suite together with SAP-RPT-1 foundation model. By embedding machine learning–driven decision-making into its integration flow, SST aims to dynamically select the optimal logistics partner for each delivery based on historical performance, cost, and delivery times. While SAP-<SPAN>RPT-1 is capable of solving predictive tasks such as classification and regression, we will be using it for classification task — i.e. to classify given delivery (defined by delivery header & item attributes) to most optimal 3PL logistics provider.</SPAN></P><P>The following diagram illustrates the target architecture implemented by SST for intelligent outbound delivery routing using SAP Integration Suite and SAP-RPT-1 model, hosted on BTP’s Generative AI hub:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="arunmaarirajha_kv_11-1771266938443.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/373226i4CCAFD40AD592E0E/image-size/large?v=v2&px=999" role="button" title="arunmaarirajha_kv_11-1771266938443.png" alt="arunmaarirajha_kv_11-1771266938443.png" /></span></P><P><STRONG><BR />Step 1: Outbound Delivery Creation<BR /></STRONG>An outbound delivery is created in SAP S/4HANA, which triggers an outbound notification event. The event is consumed by the iflow, which then calls S/4HANA OData API to fetch the following delivery related header and item attributes.</P><P><U>Delivery header fields:</U> DeliveryDate, SalesOrganization, ShipToParty, SoldToParty, DeliveryDocumentType, CreationDate, ShippingPoint, DeliveryPriority, IncotermsClassification, TransactionCurrency</P><P><U>Delivery item fields:</U> Material, DeliveryDocumentItemText, MaterialGroup, ActualDeliveryQuantity, DeliveryQuantityUnit, Plant, StorageLocation, ItemGrossWeight, ItemWeightUnit, ControllingArea, DistributionChannel, GoodsMovementType, ProfitCenter</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="arunmaarirajha_kv_12-1771266938447.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/373225i9B0E4B75AE051BE8/image-size/large?v=v2&px=999" role="button" title="arunmaarirajha_kv_12-1771266938447.png" alt="arunmaarirajha_kv_12-1771266938447.png" /></span></P><P> </P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="arunmaarirajha_kv_13-1771266938452.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/373224iF4BEC5389147947E/image-size/large?v=v2&px=999" role="button" title="arunmaarirajha_kv_13-1771266938452.png" alt="arunmaarirajha_kv_13-1771266938452.png" /></span></P><P><STRONG>Step 2: Context Selection – Random Historical Records<BR /></STRONG>We store historic labeled data i.e. delivery headers, items and corresponding optimal 3PL partner data in SAP HANA Cloud. The iflow is configured to fetch a random set of this historic data from HANA Cloud. As recommended in <SPAN><A href="https://community.sap.com/t5/artificial-intelligence-blogs-posts/sap-rpt-1-a-step-by-step-guide-on-getting-started/ba-p/14290171" target="_blank">this blog</A></SPAN>, for most enterprise use-cases, where you have about hundred thousand to million lines of labelled data, depending on how diverse your scenario data is, you may choose the context size, by iterating and finalizing the apt number of historical records to pick. By picking random records, we are able to provide statistically diverse examples, improve prediction quality and avoid bias from sequential records.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="arunmaarirajha_kv_14-1771266938461.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/373231i5B72696901521D40/image-size/large?v=v2&px=999" role="button" title="arunmaarirajha_kv_14-1771266938461.png" alt="arunmaarirajha_kv_14-1771266938461.png" /></span></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="arunmaarirajha_kv_15-1771266938475.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/373232iC11B3E383903BD1E/image-size/large?v=v2&px=999" role="button" title="arunmaarirajha_kv_15-1771266938475.png" alt="arunmaarirajha_kv_15-1771266938475.png" /></span></P><P>The Iflow executes the following query on the HANA Cloud DB:</P><pre class="lia-code-sample language-sql"><code>SELECT TOP ${property.NumberofRecords}
"DeliveryDate", "DeliveryDocumentNumber", "CreationDate", "DeliveryPriority", "IncotermsClassification", "Material", "DeliveryDocumentItemText", "MaterialGroup", "ActualDeliveryQuantity", "DeliveryQuantityUnit", "ItemGrossWeight", "ItemWeightUnit", "DistributionChannel", "PartnerNumber"
FROM "RPT1"."historic_3pl_selections"
ORDER BY RAND()</code></pre><P><STRONG><BR />Step 3: Constructing the SAP-RPT-1 Request<BR /></STRONG>We now combine:</P><UL><LI>Historical random records (known 3PL partner)</LI><LI>The current outbound delivery (3PL partner to be predicted)</LI></UL><P>The current transaction includes a placeholder: [PREDICT]</P><P>The request payload contains:</P><UL><LI>900 historical labeled rows</LI><LI>1 new outbound delivery row marked for prediction</LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="arunmaarirajha_kv_16-1771266938479.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/373230iDB50F5FD9567EFC8/image-size/large?v=v2&px=999" role="button" title="arunmaarirajha_kv_16-1771266938479.png" alt="arunmaarirajha_kv_16-1771266938479.png" /></span></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="arunmaarirajha_kv_17-1771266938482.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/373235iEE67725F5F92224C/image-size/large?v=v2&px=999" role="button" title="arunmaarirajha_kv_17-1771266938482.png" alt="arunmaarirajha_kv_17-1771266938482.png" /></span></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="arunmaarirajha_kv_18-1771266938487.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/373236i224D7ABAF3DC24FC/image-size/large?v=v2&px=999" role="button" title="arunmaarirajha_kv_18-1771266938487.png" alt="arunmaarirajha_kv_18-1771266938487.png" /></span></P><P>For detailed info on payload construction, refer to the <SPAN><A href="https://help.sap.com/docs/sap-ai-core/generative-ai/example-payloads-for-inferencing-sap-rpt-1#request-payloads" target="_blank" rel="noopener noreferrer">official documentation page</A></SPAN> and the <SPAN><A href="https://github.com/SAP-samples/sap-rpt-samples" target="_blank" rel="noopener nofollow noreferrer">GitHub repository</A></SPAN> (sample Postman/Bruno collections available for experimentation).</P><P>Further, while creating the inferencing request to SAP-RPT-1, we trim the columns from original 24 down to only 14 columns of delivery attributes, by removing fields like Sales Org, Controlling Area, Profit centre that do not influence partner selection. This is one of the best practices to achieve best possible predictive outputs. Read more recommended <SPAN><A href="https://help.sap.com/docs/sap-ai-core/generative-ai/example-payloads-for-inferencing-sap-rpt-1#best-practices" target="_blank" rel="noopener noreferrer">best practices here</A></SPAN>.<BR /><STRONG> </STRONG></P><P><STRONG>Step 4: Deploying SAP-RPT-1 model in Generative AI Hub</STRONG></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="arunmaarirajha_kv_19-1771266938496.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/373237i2ABECD87E5ACEC4B/image-size/large?v=v2&px=999" role="button" title="arunmaarirajha_kv_19-1771266938496.png" alt="arunmaarirajha_kv_19-1771266938496.png" /></span></P><P><STRONG><BR />Step 5: SAP-RPT-1 inference response<BR /></STRONG>The response contains Number of predicted records, predicted field (here optimal 3PL partner) along with Confidence score.</P><P>Response from our example scenario:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="arunmaarirajha_kv_20-1771266938500.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/373238i6A7834DDBC4CB100/image-size/large?v=v2&px=999" role="button" title="arunmaarirajha_kv_20-1771266938500.png" alt="arunmaarirajha_kv_20-1771266938500.png" /></span></P><P>You can also send multiple unknown records in one batch. To read more about the number of max. records and columns supported by SAP-RPT-1, check out <SPAN><A href="https://help.sap.com/docs/sap-ai-core/generative-ai/sap-rpt-1#sap-rpt-models" target="_blank" rel="noopener noreferrer">this help page</A></SPAN>.</P><P><STRONG>Step 6: Intelligent Routing in the Iflow<BR /></STRONG>The Iflow now:</P><OL><LI>Reads the predicted PartnerNumber</LI><LI>Evaluates confidence threshold (optional safeguard)</LI><LI>Routes outbound delivery to the optimal 3PL partner</LI><LI>Optionally, logs decision + confidence for traceability in HANA Cloud.</LI></OL><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="arunmaarirajha_kv_21-1771266938507.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/373239iADC538832CCAAFFB/image-size/large?v=v2&px=999" role="button" title="arunmaarirajha_kv_21-1771266938507.png" alt="arunmaarirajha_kv_21-1771266938507.png" /></span></P><P><STRONG><BR />When AI in Iflows Brings Real Business Value</STRONG></P><UL><LI><STRONG>When routing decisions directly impact business outcomes</STRONG><BR />If sub-optimal routing can lead to SLA breaches, shipment delays, higher costs, or customer dissatisfaction, intelligent decision logic creates measurable advantage.</LI><LI><STRONG>When rule-based logic becomes complex and brittle</STRONG><BR />As business variables multiply (products, regions, priorities, partners), static rules become hard to maintain and scale. ML handles multi-dimensional patterns more effectively.</LI><LI><STRONG>When historical ERP data contains predictive patterns</STRONG><BR />If past delivery and fulfillment data reflects consistent business behavior, ML can learn from it and improve future routing decisions beyond deterministic conditions.</LI><LI><STRONG>When business context evolves over time</STRONG><BR />With changing product mixes, customer bases, or distribution models, retrainable ML models adapt dynamically — avoiding constant manual rule maintenance.</LI></UL><P><SPAN>Not every integration scenario requires ML capabilities. But where routing decisions carry operational or financial impact, replacing rigid rule sets with adaptive decision logic can significantly improve resilience and maintainability. Decision logic modernization is therefore not about adding AI everywhere — it is about applying it where it meaningfully improves orchestration.</SPAN></P><P><EM><SPAN>Note: This blog revisits </SPAN></EM><SPAN><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/intelligent-orchestration-in-iflows-business-aware-routing-with-sap-btp-s/ba-p/14162148" target="_blank"><EM>our earlier implementation</EM></A><EM> in light of the planned deprecation of SAP BTP Data Attribute Recommendation service, demonstrating an updated approach using SAP-RPT-1 model.</EM></SPAN></P>2026-02-16T19:54:29.244000+01:00https://community.sap.com/t5/enterprise-resource-planning-blog-posts-by-sap/integration-sap-successfactors-with-sap-s-4hana-public-cloud/ba-p/14330058Integration: SAP SuccessFactors with SAP S/4HANA Public Cloud2026-02-17T12:31:00.946000+01:00Shubham_Srivastava1https://community.sap.com/t5/user/viewprofilepage/user-id/132064<H4 id="toc-hId-2048549764">Integration Architecture</H4><P>The integration leverages SAP Master Data Integration (MDI) service running on SAP Business Technology Platform as the central hub for data replication between systems .</P><P>Key components include:</P><UL><LI><STRONG>SAP Master Data Integration Service</STRONG>: Acts as the middleware for data transformation and routing</LI><LI><STRONG>SAP Integration Suite</STRONG>: Provides cloud integration capabilities and pre-packaged integration content</LI><LI><STRONG>Communication Scenarios</STRONG>: Enable secure data exchange between systems</LI><LI><STRONG>Web Services and APIs</STRONG>: Support real-time and batch data synchronization</LI></UL><H4 id="toc-hId-1852036259">Integration Methods</H4><OL><LI><P><STRONG>SAP Delivered Integrations</STRONG></P><UL><LI>Full end-to-end integration processes for specific hybrid cloud scenarios</LI><LI>Pre-configured best practices with guided configuration and onboarding </LI><LI>Scope item JB1 for SuccessFactors Employee Central integration </LI></UL></LI><LI><P><STRONG>Template-based Integrations</STRONG></P><UL><LI>Simplified integration templates primarily for standard scenarios</LI><LI>Leverages SAP Integration Suite with pre-built integration flows </LI></UL></LI><LI><P><STRONG>Customer Driven Integrations</STRONG></P><UL><LI>Custom integrations using SAP Integration Suite and APIs</LI><LI>Supports specific business requirements beyond standard scenarios </LI></UL></LI></OL><H4 id="toc-hId-1655522754">Data Flow Scenarios</H4><DIV class=""><DIV class="">Scenario Direction Data Objects Frequency <TABLE><TBODY><TR><TD>Employee Master Data</TD><TD>SF → S/4HANA</TD><TD>Personnel data, organizational assignments</TD><TD>Real-time/Scheduled</TD></TR><TR><TD>Organizational Structure</TD><TD>SF → S/4HANA</TD><TD>Company codes, departments, positions</TD><TD>Real-time/Scheduled</TD></TR><TR><TD>Cost Center Data</TD><TD>S/4HANA → SF</TD><TD>Cost center master data</TD><TD>Scheduled</TD></TR><TR><TD>Payroll Results</TD><TD>SF → S/4HANA</TD><TD>Payroll posting documents</TD><TD>After payroll run</TD></TR><TR><TD>Availability Data</TD><TD>SF → S/4HANA</TD><TD>Employee availability information</TD><TD>Real-time</TD></TR></TBODY></TABLE></DIV></DIV><H4 id="toc-hId-1459009249">Configuration Steps</H4><OL><LI><P><STRONG>Pre-requisites</STRONG></P><UL><LI>SAP Business Technology Platform subscription</LI><LI>Communication user setup in both systems</LI><LI>Required authorizations and certificates </LI></UL></LI><LI><P><STRONG>SuccessFactors Configuration</STRONG></P><UL><LI>Create communication users for MDI integration</LI><LI>Configure OAuth connections for secure authentication</LI><LI>Set up business scenarios for data replication </LI><LI>Enable address mapping and field mappings</LI></UL></LI><LI><P><STRONG>S/4HANA Public Cloud Configuration</STRONG></P><UL><LI>Activate communication scenarios (e.g., SAP_COM_0193 for Employee Central integration)</LI><LI>Create communication systems and arrangements </LI><LI>Configure destinations for data flow</LI><LI>Set up Business Integration Builder for infotype mapping</LI></UL></LI></OL><H4 id="toc-hId-1262495744">Key Integration Points</H4><UL><LI><STRONG>Employee Master Data</STRONG>: Replicates personnel information, employment details, and personal data from Employee Central to S/4HANA for finance and reporting purposes </LI><LI><STRONG>Organizational Structure</STRONG>: Synchronizes company codes, cost centers, departments, and positions to maintain consistent organizational hierarchy</LI><LI><STRONG>Time Management</STRONG>: Integrates time data and availability information for workforce planning and scheduling </LI><LI><STRONG>Payroll Data</STRONG>: Transfers payroll results from SuccessFactors Employee Central Payroll to General Ledger Accounting in S/4HANA </LI></UL><H4 id="toc-hId-1065982239">Technical Considerations</H4><UL><LI><STRONG>Authentication</STRONG>: OAuth 2.0 and certificate-based authentication for secure communication</LI><LI><STRONG>Data Mapping</STRONG>: Field mappings defined in SAP Note 3078790 for New Business Partner Model </LI><LI><STRONG>Error Handling</STRONG>: Data Replication Monitor in Employee Central provides status tracking and error resolution </LI><LI><STRONG>Performance</STRONG>: Maximum 2000 line items per payroll posting document </LI></UL><H4 id="toc-hId-869468734">Monitoring & Maintenance</H4><UL><LI><STRONG>Data Replication Monitor</STRONG>: Available in Employee Central for monitoring replication status and re-running failed jobs </LI><LI><STRONG>Integration Monitoring</STRONG>: SAP Integration Suite provides comprehensive monitoring capabilities</LI><LI><STRONG>Query Administration</STRONG>: S/4HANA maintains query administration tables for tracking integration requests </LI><LI><STRONG>Application Logs</STRONG>: Detailed logging for troubleshooting and audit purposes</LI></UL><H4 id="toc-hId-672955229">Best Practices</H4><UL><LI><STRONG>Fit-to-Standard Approach</STRONG>: Limit customizations to accelerate implementation and simplify ongoing maintenance </LI><LI><STRONG>Master Data Governance</STRONG>: Establish clear data ownership with SuccessFactors as the leading system for employees </LI><LI><STRONG>Security</STRONG>: Implement proper authentication mechanisms and follow SAP security guidelines</LI><LI><STRONG>Testing</STRONG>: Thoroughly test integration scenarios in development environments before production deployment</LI><LI><STRONG>Documentation</STRONG>: Maintain comprehensive documentation of field mappings and custom configurations</LI></UL>2026-02-17T12:31:00.946000+01:00https://community.sap.com/t5/crm-and-cx-blog-posts-by-sap/unlocking-customer-360-integrating-sap-sales-and-service-cloud-2-with-sap/ba-p/14330133Unlocking Customer 360: Integrating SAP Sales and Service Cloud 2 with SAP Customer Data Platform2026-02-17T14:18:51.187000+01:00FernandoRedondohttps://community.sap.com/t5/user/viewprofilepage/user-id/7571<P>In today’s experience‑driven economy, businesses win by deeply understanding their customers, across every channel, touchpoint, and interaction. <a href="https://community.sap.com/t5/c-khhcw49343/SAP+Customer+Data+Platform/pd-p/73554900100800002991" class="lia-product-mention" data-product="512-1">SAP Customer Data Platform</a> (CDP) plays a central role in this strategy, enabling organizations to unify, enrich, and activate customer data at scale</P><P>With the growing adoption of <a href="https://community.sap.com/t5/c-khhcw49343/SAP+Sales+Cloud+Version+2/pd-p/73555000100800003822" class="lia-product-mention" data-product="1240-1">SAP Sales Cloud Version 2</a> and <a href="https://community.sap.com/t5/c-khhcw49343/SAP+Service+Cloud+Version+2/pd-p/73555000100800003641" class="lia-product-mention" data-product="1241-1">SAP Service Cloud Version 2</a>, SAP has delivered powerful, bidirectional integration capabilities that allow companies to seamlessly connect operational CRM interactions with real‑time customer profiles in SAP CDP. These integrations create a rich 360‑degree view of customers that fuels personalization, analytics, automation, and more.</P><P>This article breaks down what the integration offers, how it works, and why it matters.</P><DIV><H2 id="toc-hId-1790385220"><STRONG><span class="lia-unicode-emoji" title=":handshake:">🤝</span> Why Integrate SAP Sales Cloud & SAP Service Cloud V2 with SAP CDP? </STRONG></H2><P>The integration provides a unified, real‑time data environment where CRM interactions, activities, and master data feed directly into SAP CDP, enabling:</P><UL><LI>A consolidated customer profile from both sales and service operations </LI><LI>Enriched segmentation and activation powered by CRM activity data <A href="https://help.sap.com/docs/customer-data-platform/integration-guide/sap-service-and-sales-cloud-version-2" target="_blank" rel="noopener noreferrer">[</A></LI><LI>Bidirectional data flows to keep systems aligned and up to date </LI><LI>A foundation for personalized engagement across channels and applications</LI></UL><P>This creates an end‑to‑end data loop that enhances visibility, decision‑making, and automation across the enterprise.</P><H2 id="toc-hId-1593871715"><STRONG><span class="lia-unicode-emoji" title=":inbox_tray:">📥</span> What Data Does SAP CDP Ingest from the Sales & Service Clouds?</STRONG></H2><P>SAP CDP collects data from both platforms through predefined event types and mapping schemas.</P><H3 id="toc-hId-1526440929"><STRONG>Inbound Data (Events → CDP)</STRONG></H3><P>SAP CDP ingests multiple categories of CRM activities, including:</P><UL><LI><STRONG>Customer Profile updates</STRONG> (individual customers) </LI><LI><STRONG>Organization and Relationship updates</STRONG> for account‑level intelligence </LI><LI><STRONG>Service interactions:</STRONG><UL><LI>Chat</LI><LI>Email</LI><LI>Phone</LI><LI>Cases</LI><LI>Registered product activities</LI></UL></LI><LI><STRONG>Sales interactions:</STRONG><UL><LI>Leads</LI><LI>Quotes</LI><LI>Opportunities</LI><LI>Appointments</LI></UL></LI></UL><P>Each event type is mapped to SAP CDP schemas including <STRONG>Profile</STRONG>, <STRONG>Organization</STRONG>, <STRONG>Relationship</STRONG>, and <STRONG>Activities</STRONG>, providing consistent structuring across data sources.</P><DIV><H2 id="toc-hId-1200844705"><STRONG><span class="lia-unicode-emoji" title=":rocket:">🚀</span> </STRONG><STRONG>Outbound Data (Actions ← CDP) </STRONG></H2><P>SAP CDP doesn’t only consume CRM data, it can also enrich and push data back.</P><P>The integration allows SAP CDP to <STRONG>send profile, organization, case, opportunity, appointment, and lead data</STRONG> back to SAP Sales Cloud or SAP Service Cloud Version 2. </P><P>SAP CDP then receives enriched responses, creating a closed feedback loop where both platforms stay synchronized.</P><DIV><H2 id="toc-hId-1004331200"><STRONG><span class="lia-unicode-emoji" title=":star:">⭐</span> </STRONG><STRONG>Key Benefits of the Integration </STRONG></H2><H3 id="toc-hId-936900414"><STRONG>1. A Unified Customer Profile</STRONG></H3><P class="lia-indent-padding-left-30px" style="padding-left : 30px;">SAP CDP aggregates customer events and attributes from both Sales and Service Cloud Version 2, creating a <STRONG>complete, real‑time view</STRONG> of customer journeys. </P><H3 id="toc-hId-740386909"><STRONG>2. Stronger Segmentation & Personalization</STRONG></H3><P class="lia-indent-padding-left-30px" style="padding-left : 30px;">Interaction data (including calls, emails, cases, and opportunities) sharpens segmentation models, enabling more targeted and relevant engagement. </P><H3 id="toc-hId-543873404"><STRONG>3. Improved Sales & Service Collaboration</STRONG></H3><P class="lia-indent-padding-left-30px" style="padding-left : 30px;">Shared data across systems helps teams proactively identify meaningful signals such as churn risk or product issues.</P><H3 id="toc-hId-347359899"><STRONG>4. Bidirectional Data Harmony</STRONG></H3><P class="lia-indent-padding-left-30px" style="padding-left : 30px;">Action‑based enrichment ensures data synchronizes across clouds and remains consistent. </P><H3 id="toc-hId-150846394"><STRONG>5. Strong Foundation for AI & Automation <span class="lia-unicode-emoji" title=":robot_face:">🤖</span></STRONG></H3><P class="lia-indent-padding-left-30px" style="padding-left : 30px;">Integrated customer intelligence enhances SAP’s CX AI capabilities (including Joule), enabling automation and predictive insights. </P><DIV><H2 id="toc-hId-172504527"><STRONG>How Organizations Can Use This Integration</STRONG></H2><H3 id="toc-hId--317411985"><STRONG>Customer Service</STRONG></H3><UL><LI>Identify high‑value or at‑risk customers before SLA breaches</LI><LI>Personalize case handling using unified interaction history</LI><LI>Enrich service tickets with profile‑level intelligence</LI></UL><H3 id="toc-hId--513925490"><STRONG>Sales Enablement</STRONG></H3><UL><LI>Prioritize leads using CDP‑enhanced scoring</LI><LI>Improve sales plays with real‑time customer context</LI><LI>Track cross‑touchpoint interactions in one consolidated platform</LI></UL><H3 id="toc-hId--710438995"><STRONG>Marketing Activation <span class="lia-unicode-emoji" title=":megaphone:">📣</span></STRONG></H3><UL><LI>Trigger campaigns based on service or sales events</LI><LI>Build micro‑segments using real interaction data</LI><LI>Coordinate lifecycle journeys with behavior‑based triggers</LI></UL><DIV><H2 id="toc-hId--613549493"><STRONG>Conclusion: Data‑Driven Experience Management Starts Here </STRONG></H2><P>The integration between <STRONG>SAP Sales Cloud & SAP Service Cloud Version 2</STRONG> and <STRONG>SAP Customer Data Platform</STRONG> is a major accelerator for companies pursuing customer‑centric business models. By connecting real‑time CRM insights with enterprise‑wide profiles, SAP enables organizations to deliver smarter sales engagement, more efficient service operations, and more relevant customer experiences.</P><H2 id="toc-hId--810062998"><STRONG>More Info</STRONG></H2><P>Suggested<SPAN> </SPAN><A href="http://learning.sap.com/" target="_blank" rel="noopener noreferrer">learning.sap.com</A><SPAN> </SPAN>resources and what to look for:</P><UL><LI><A href="https://learning.sap.com/learning-journeys/implementing-sap-customer-data-platform?searchId=9222323f-f553-4310-a2a0-084a7a5baf2a&listPosition=7" target="_blank" rel="noopener noreferrer">Implementing SAP Customer Data Platform</A> </LI><LI><A href="https://learning.sap.com/learning-journeys/implementing-sap-sales-cloud-version-2?searchId=95381179-797f-47ef-94c5-e65107265531&listPosition=2" target="_blank" rel="noopener noreferrer">Implementing SAP Sales Cloud Version 2</A> </LI><LI><A href="https://learning.sap.com/learning-journeys/implementing-and-using-sap-service-cloud-version-2?searchId=6f4e709c-6e67-4b1a-ad4a-93d9c6af780e&listPosition=8" target="_blank" rel="noopener noreferrer">Implementing and Using SAP Service Cloud Version 2</A> </LI><LI><A href="https://learning.sap.com/learning-journeys/explore-the-lead-to-cash-business-process-in-sap-customer-experience?searchId=be614785-95a5-480a-9f9e-290180ebcb89&listPosition=4" target="_self" rel="noreferrer noopener">Exploring the Lead to Cash Business Process in SAP Customer Experience</A> </LI></UL><P>Official product documentation</P><UL><LI><A href="https://help.sap.com/docs/customer-data-platform/integration-guide/sap-service-and-sales-cloud-version-2" target="_blank" rel="noopener noreferrer">SAP Sales Cloud and SAP Service Cloud Version 2 Integration Guide</A></LI></UL></DIV></DIV></DIV></DIV></DIV>2026-02-17T14:18:51.187000+01:00https://community.sap.com/t5/technology-blog-posts-by-sap/sap-btp-xsuaa-security-configuration-comparison-attribute-based-vs/ba-p/14330535SAP BTP XSUAA Security Configuration Comparison: Attribute-Based vs. Authority-Based Approaches2026-02-18T03:27:30.148000+01:00RajeshKPutumbakahttps://community.sap.com/t5/user/viewprofilepage/user-id/2081121<P class="">In SAP Business Technology Platform (BTP) Cloud Foundry applications, configuring <STRONG>XSUAA</STRONG> (Extended Services for User Account and Authentication) via the <STRONG>xs-security.json</STRONG> file is a critical step for secure authentication and authorization.</P><P class="">Sample Application used for this article - "Message Reprocessing Application". This scenario try to cover 2 roles - "ReprocessViewer" and "ReprocessAdministrator".</P><P class="">Two main approaches exist:</P><P class=""> </P><UL><LI><STRONG>Configuration A</STRONG>: Explicit attribute-based – manual mapping and control</LI><LI><STRONG>Configuration B</STRONG>: Authority-based – automatic acceptance of IDP attributes (recommended for most cases)</LI></UL><P> </P><P class="">Understanding the differences helps you balance security, compliance, simplicity, and development speed.</P><H3 id="ember57" id="toc-hId-1919471785">Quick Comparison Table</H3><PRE><CODE>Feature | Config A (Explicit Attributes) | Config B (Authority-Based)
---------------------------------|-----------------------------------------|--------------------------------------------
attributes section | ✅ Present (defines email, etc.) | ❌ Not needed
attribute-references in roles | ✅ Yes (links attributes to roles) | ❌ Not present
authorities array | ❌ Not used | ✅ "$ACCEPT_GRANTED_AUTHORITIES"
oauth2 grant-types | ❌ Uses defaults | ✅ Explicit list (authorization_code + others)
oauth2 autoapprove | ❌ Not set (shows consent screen) | ✅ true (smooth internal login)</CODE></PRE><P class=""><STRONG>Key takeaway from the table</STRONG></P><H3 id="ember59" id="toc-hId-1722958280">Configuration A: Explicit Attribute-Based Approach</H3><P class=""><STRONG>Structure (xs-security.json excerpt):</STRONG></P><P class="">JSON</P><PRE><CODE>{
"xsappname": "my-app-reprocess-v2",
"tenant-mode": "dedicated",
"description": "Message Reprocessing Application - Security Configuration",
"scopes": [
{
"name": "$XSAPPNAME.ReprocessViewer",
"description": "View messages, content, and statistics (read-only access)"
},
{
"name": "$XSAPPNAME.ReprocessAdministrator",
"description": "Full administrative access including reprocess operations and CRUD"
}
],
"attributes": [
{
"name": "email",
"description": "User email address",
"valueType": "string"
}
],
"role-templates": [
{
"name": "ReprocessViewer",
"description": "Read-Only Access - View messages and statistics",
"scope-references": ["$XSAPPNAME.ReprocessViewer"],
"attribute-references": ["email"]
},
{
"name": "ReprocessAdministrator",
"description": "Full Administrative Access - CRUD operations and reprocess actions",
"scope-references": [
"$XSAPPNAME.ReprocessAdministrator",
"$XSAPPNAME.ReprocessViewer"
],
"attribute-references": ["email"]
}
],
"role-collections": [
{
"name": "MessageReprocessViewersRC",
"description": "Message Reprocess Viewers - Read-only access",
"role-template-references": ["$XSAPPNAME.ReprocessViewer"]
},
{
"name": "MessageReprocessAdministratorsRC",
"description": "Message Reprocess Administrators - Full access",
"role-template-references": ["$XSAPPNAME.ReprocessAdministrator"]
}
],
"oauth2-configuration": {
"credential-types": ["binding-secret", "x509"],
"redirect-uris": ["https://*.cfapps.example.com/**", "http://localhost:*/**"],
"token-validity": 3600,
"refresh-token-validity": 86400
}
}</CODE></PRE><P class=""><STRONG>Advantages</STRONG></P><P class=""> </P><UL><LI>Explicit control over exposed attributes</LI><LI>Fine-grained security and compliance</LI><LI>Enables attribute transformation and ABAC</LI></UL><P> </P><P class=""><STRONG>Disadvantages</STRONG></P><P class=""> </P><UL><LI>Higher maintenance</LI><LI>More complex configuration</LI><LI>Less flexible with IDP changes</LI></UL><P> </P><P class=""><STRONG>When to use</STRONG>: Regulated industries (healthcare, finance, government), ABAC needs, multi-tenant SaaS, strict governance.</P><H3 id="ember67" id="toc-hId-1526444775">Configuration B: Authority-Based Approach (Recommended)</H3><P class=""><STRONG>Structure (xs-security.json excerpt):</STRONG></P><P class="">JSON</P><PRE><CODE>{
"xsappname": "my-app-reprocess-v2",
"tenant-mode": "dedicated",
"description": "Message Reprocessing Application - Security Configuration",
"scopes": [ /* same as above */ ],
"role-templates": [ /* same as above, without attribute-references */ ],
"role-collections": [ /* same as above */ ],
"authorities": ["$ACCEPT_GRANTED_AUTHORITIES"],
"oauth2-configuration": {
"grant-types": ["authorization_code", "client_credentials", "refresh_token"],
"credential-types": ["binding-secret", "x509"],
"redirect-uris": ["https://*.cfapps.example.com/**", "http://localhost:*/**"],
"token-validity": 3600,
"refresh-token-validity": 86400,
"autoapprove": true
}
}</CODE></PRE><P class=""><STRONG>Advantages</STRONG></P><P class=""> </P><UL><LI>Simplicity and minimal config</LI><LI>Automatic handling of standard IDP attributes</LI><LI>Lower maintenance, faster development</LI><LI>Seamless with SAP IAS, Azure AD, Okta</LI></UL><P> </P><P class=""><STRONG>Disadvantages</STRONG></P><P class=""> </P><UL><LI>Less granular control (all attributes passed)</LI><LI>Potential over-exposure</LI></UL><P> </P><P class=""><STRONG>When to use</STRONG> (most cases): Standard enterprise apps, RBAC, rapid development, microservices, agile environments.</P><H3 id="ember75" id="toc-hId-1329931270">Deep Dive: Key Differences</H3><P class=""> </P><UL><LI><STRONG>Attributes & attribute-references</STRONG> — Explicit in A, automatic in B via $ACCEPT_GRANTED_AUTHORITIES</LI><LI><STRONG>Authorities</STRONG> — Special directive in B accepts all granted attributes/scopes from trusted IDP</LI><LI><STRONG>OAuth grant-types & autoapprove</STRONG> — Explicit in B for predictability and better UX (no consent screen for internal apps)</LI></UL><P> </P><H3 id="ember77" id="toc-hId-1133417765">JWT Token Examples</H3><P class=""><STRONG>Configuration A (Explicit):</STRONG></P><P class="">JSON</P><PRE><CODE>{
"user_name": "john.doe",
"email": "john.doe@example.com",
"scope": ["my-app-reprocess-v2.ReprocessViewer"],
"xs.user.attributes": { "email": ["john.doe@example.com"] }
}</CODE></PRE><P class=""><STRONG>Configuration B (Automatic):</STRONG></P><P class="">JSON</P><PRE><CODE>{
"user_name": "john.doe",
"email": "john.doe@example.com",
"given_name": "John",
"family_name": "Doe",
"scope": ["my-app-reprocess-v2.ReprocessViewer"],
"xs.user.attributes": { "email": ["john.doe@example.com"], "department": ["Engineering"], "cost_center": ["CC-1234"] }
}</CODE></PRE><H3 id="ember82" id="toc-hId-936904260">Application Code Impact (Examples)</H3><P class=""><STRONG>SAP CAP (Node.js) – Configuration B:</STRONG></P><P class="">JavaScript</P><PRE><CODE>this.before('READ', 'Messages', async (req) => {
const userEmail = req.user.attr.email;
const department = req.user.attr.department; // extra attributes available
// ...
});</CODE></PRE><P class=""><STRONG>Spring Boot (Java) – Configuration B:</STRONG></P><P class="">Java</P><PRE><CODE>String email = token.getAttributeFromClaimAsString("email");
String department = token.getAttributeFromClaimAsString("department");</CODE></PRE><H3 id="ember87" id="toc-hId-740390755">Migration Guide & Troubleshooting</H3><P class="">(Refer to the detailed steps in original content for From A → B and vice versa, plus common issues like missing attributes, invalid grant types, consent screens, token size.)</P><H3 id="ember89" id="toc-hId-543877250">Security & Performance Best Practices</H3><P class=""> </P><UL><LI>Principle of least privilege</LI><LI>Validate JWT properly (@sap/xssec)</LI><LI>Specific redirect URIs (avoid wildcards in prod)</LI><LI>Appropriate token lifetimes</LI><LI>Prefer X.509 in production</LI><LI>Monitor token size (switch to A if >4KB)</LI></UL><P> </P><H3 id="ember91" id="toc-hId-347363745">Recommendations by Use Case</H3><P class="">Use CaseRecommendedRationaleInternal Enterprise AppConfiguration BSimplicity & standard integrationRegulated IndustryConfiguration AExplicit governance & audit trailRapid Prototype/MVPConfiguration BMinimal configAttribute-Based AuthorizationConfiguration ARequired for ABAC</P><P class=""><STRONG>Conclusion</STRONG> For <STRONG>most SAP BTP applications in 2025</STRONG>, go with <STRONG>Configuration B (Authority-Based)</STRONG> — it delivers simplicity, flexibility, and aligns with modern OAuth/OIDC patterns while reducing maintenance.</P><P class="">Only choose <STRONG>Configuration A</STRONG> when you need strict attribute control, custom transformations, or operate in highly regulated environments.</P><P class="">What approach are you using in your SAP BTP projects? Have you migrated between the two? Share your experiences or questions in the comments — happy to discuss architecture or troubleshooting!</P><P class="">#SAPBTP #XSUAA #CloudFoundry #SAPSecurity #Authorization #IdentityManagement #SAPDeveloper</P>2026-02-18T03:27:30.148000+01:00https://community.sap.com/t5/technology-blog-posts-by-sap/master-blog-b2b-integration-with-sap-integration-suite/ba-p/14330967Master Blog: B2B Integration with SAP Integration Suite2026-02-19T10:22:28.687000+01:00DeniseRodrigueshttps://community.sap.com/t5/user/viewprofilepage/user-id/1974289<H3 id="toc-hId-1919475724"><STRONG><SPAN class=""><SPAN class="">Introduction</SPAN></SPAN><SPAN class=""> </SPAN></STRONG></H3><P><SPAN>B2B integration plays a critical role in enabling seamless and reliable data exchange between enterprises and their business partners. As integration landscapes grow in scale and complexity, standardized B2B capabilities become essential to ensure secure connectivity, partner onboarding, message validation, monitoring, and operational resilience. </SPAN><SPAN> </SPAN></P><P><SPAN>This master blog serves as a technical reference hub for B2B Integration Factory, consolidating all related blog posts in one place to support integration architects and developers in designing, implementing, and operating scalable and governed B2B integration scenarios with SAP Integration Suite.</SPAN><SPAN> </SPAN></P><P><SPAN>If you are interested in deepening your knowledge of B2B integration using SAP Integration Suite, we recommend our free learning course. This comprehensive course offers detailed explanations of each B2B capability and includes hands-on exercises with an example end-to-end B2B scenario. You can access it here: SAP Learning: </SPAN><A href="https://learning.sap.com/courses/manage-b2b-scenarios-effectively-with-sap-integration-suite" target="_blank" rel="noopener noreferrer"><SPAN>Manage B2B Scenarios Effectively with SAP Integration Suite</SPAN></A><SPAN>.</SPAN><SPAN> </SPAN></P><P><SPAN> </SPAN></P><H3 id="toc-hId-1722962219"><STRONG>B2B Integration Factory</STRONG><SPAN> </SPAN></H3><P><SPAN>B2B integration Factory’s services & integration packages</SPAN><SPAN> </SPAN></P><UL><LI><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/b2b-integration-factory-services-to-unlock-the-power-of-sap-integration/ba-p/13776621" target="_blank"><SPAN>B2B Integration Factory services to unlock the power of SAP Integration Suite's B2B capabilities</SPAN></A><SPAN> </SPAN></LI></UL><UL><LI><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/b2b-integration-factory-b2b-related-integration-packages-with-your-custom/ba-p/13869227" target="_blank"><SPAN>B2B Integration Factory – B2B related Integration Packages with your Custom Extensions</SPAN></A><SPAN> </SPAN></LI></UL><UL><LI><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/b2b-integration-factory-what-is-pre-packaged-b2b-integration-content-and/ba-p/13899632" target="_blank"><SPAN>B2B Integration Factory: What is Pre-packaged B2B Integration Content, and what is this used for?</SPAN></A><SPAN> </SPAN><SPAN> </SPAN></LI></UL><UL><LI><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/b2b-integration-factory-s-role-and-value-adds-in-the-b2b-cloud-integration/ba-p/13875946" target="_blank"><SPAN>B2B Integration Factory's Role and Value Adds in t... - SAP Community</SPAN></A><SPAN> </SPAN></LI></UL><UL><LI><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/b2b-integration-factory-q4-2024-release-highlights/ba-p/13979279" target="_blank"><SPAN>B2B Integration Factory Q4/2024 Release highlights - SAP Community</SPAN></A><SPAN> </SPAN></LI></UL><UL><LI><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/first-release-of-b2b-integration-factory-integration-packages-and-their/ba-p/13869848" target="_blank"><SPAN>First release of B2B Integration Factory – Integration Packages and their Extensions</SPAN></A><SPAN> </SPAN></LI></UL><UL><LI><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/sap-migration-factory-for-integration-suite-faq/ba-p/14303692" target="_blank"><SPAN>SAP Migration Factory for Integration Suite – FAQ - SAP Community</SPAN></A><SPAN> </SPAN></LI></UL><UL><LI><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/the-importance-of-b2b-monitoring-in-customer-s-day-to-day-b2b-operations/ba-p/13878484" target="_blank"><SPAN>The importance of B2B Monitoring in customer's day... - SAP Community</SPAN></A><SPAN> </SPAN></LI></UL><UL><LI><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/vda-automotive-flat-file-processing-with-b2b-integration-factory/ba-p/14203524" target="_blank"><SPAN>VDA Automotive Flat File Processing with B2B Integ... - SAP Community</SPAN></A><SPAN> </SPAN></LI></UL><P><SPAN> </SPAN></P><H3 id="toc-hId-1526448714"><STRONG>B2B integration scenarios </STRONG></H3><P><SPAN>Blog posts describing end-to-end B2B integration scenarios using IA, TPM and CPI</SPAN><SPAN> </SPAN></P><UL><LI><A href="https://community.sap.com/t5/technology-blog-posts-by-members/b2b-data-exchange-using-trading-partner-management-tpm-in-sap-cpi/ba-p/13547233" target="_blank"><SPAN>B2B data exchange using Trading Partner Management... - SAP Community</SPAN></A><SPAN> </SPAN></LI></UL><UL><LI><A href="https://community.sap.com/t5/technology-blog-posts-by-members/b2b-scenario-sender-edi-to-idoc/ba-p/14255985" target="_blank"><SPAN>B2B Scenario Sender EDI to IDOC - SAP Community</SPAN></A><SPAN> </SPAN></LI></UL><UL><LI><A href="https://community.sap.com/t5/technology-blog-posts-by-members/bridging-edi-and-sap-s-4hana-cloud-seamless-edi-to-soap-integration/ba-p/14144660" target="_blank"><SPAN>Bridging EDI and SAP S/4HANA Cloud: Seamless EDI-t... - SAP Community</SPAN></A><SPAN> </SPAN></LI></UL><UL><LI><A href="https://community.sap.com/t5/technology-blog-posts-by-members/completing-the-b2b-migration-into-sap-integration-suite-vision/ba-p/14211567" target="_blank"><SPAN>Completing the B2B migration into SAP Integration ... - SAP Community</SPAN></A><SPAN> </SPAN></LI></UL><UL><LI><A href="https://community.sap.com/t5/technology-blog-posts-by-members/creating-migs-and-mags-using-integration-advisor-in-sap-btp-cockpit/ba-p/14143413" target="_blank"><SPAN>Creating MIGs and MAGs Using Integration Advisor i... - SAP Community</SPAN></A><SPAN> </SPAN></LI></UL><UL><LI><A href="https://community.sap.com/t5/technology-blog-posts-by-members/how-to-build-custom-b2b-interface-using-integration-advisor-as2-adapters/ba-p/14143175" target="_blank"><SPAN>How to build custom B2B Interface using Integratio... - SAP Community</SPAN></A><SPAN> </SPAN></LI></UL><UL><LI><A href="https://community.sap.com/t5/technology-blog-posts-by-members/inbound-interface-edi-sap-btp-integration-suite-with-tpm-sap-s-4hana-via/ba-p/14296064" target="_blank"><SPAN>Inbound Interface: EDI → SAP BTP (Integration Suit... - SAP Community</SPAN></A><SPAN> </SPAN></LI></UL><UL><LI><A href="https://community.sap.com/t5/technology-blog-posts-by-members/real-time-xml-to-edi-conversion-a-step-by-step-cpi-integration-scenario/ba-p/14284748" target="_blank"><SPAN>Real-Time XML to EDI Conversion: A Step-by-Step CP... - SAP Community</SPAN></A><SPAN> </SPAN></LI></UL><UL><LI><A href="https://community.sap.com/t5/technology-blog-posts-by-members/sap-btp-integration-advisor-mig-amp-mag-from-a-cpi-developer-perspective/ba-p/14297939" target="_blank"><SPAN>SAP BTP - Integration Advisor - (MIG & MAG) from a... - SAP Community</SPAN></A><SPAN> </SPAN></LI></UL><UL><LI><A href="https://community.sap.com/t5/technology-blog-posts-by-members/sap-integration-suite-tpm-b2b-passthrough-scenarios/ba-p/14035233" target="_blank"><SPAN>SAP Integration Suite - TPM - B2B PassThrough Scen... - SAP Community</SPAN></A><SPAN> </SPAN></LI></UL><UL><LI><A href="https://community.sap.com/t5/integration-blog-posts/streamlining-b2b-integration-with-ai-powered-sap-cpi-accelerating-data/ba-p/14143578" target="_blank"><SPAN>Streamlining B2B Integration with AI-Powered SAP C... - SAP Community</SPAN></A><SPAN> </SPAN></LI></UL><UL><LI><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/use-tpm-ia-ci-to-efficiently-manage-and-run-complex-b2b-transactions/ba-p/13565068" target="_blank"><SPAN>Use TPM, IA, CI to Efficiently Manage and Run Comp... - SAP Community</SPAN></A><SPAN> </SPAN></LI></UL><P><SPAN> </SPAN></P><H3 id="toc-hId-1329935209"><STRONG>Integration Advisor</STRONG><SPAN> </SPAN></H3><P><SPAN>Blog posts focusing only on IA</SPAN><SPAN> </SPAN></P><UL><LI><A href="https://community.sap.com/t5/technology-blog-posts-by-members/beginner-s-guide-to-integration-advisor/ba-p/13629944" target="_blank"><SPAN>Beginner's Guide to Integration Advisor - SAP Community</SPAN></A><SPAN> </SPAN></LI></UL><UL><LI><A href="https://community.sap.com/t5/integration-blog-posts/base-overlay-mappings-for-integration-advisor/ba-p/14017329" target="_blank"><SPAN>Base-/Overlay Mappings for Integration Advisor - SAP Community</SPAN></A><SPAN> </SPAN></LI></UL><UL><LI><A href="https://community.sap.com/t5/technology-blog-posts-by-members/creating-migs-and-mags-using-integration-advisor-in-sap-btp-cockpit/ba-p/14143413" target="_blank"><SPAN>Creating MIGs and MAGs Using Integration Advisor i... - SAP Community</SPAN></A><SPAN> </SPAN></LI></UL><UL><LI><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/integration-advisor-automotive-edifact-subsets-jaif-odette-vda-now/ba-p/13501082" target="_blank"><SPAN>Integration Advisor – Automotive EDIFACT Subsets (... - SAP Community</SPAN></A><SPAN> </SPAN></LI></UL><UL><LI><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/integration-advisor-change-in-namespace-handling-of-root-node/ba-p/13559421" target="_blank"><SPAN>Integration Advisor – change in namespace handling... - SAP Community</SPAN></A><SPAN> </SPAN></LI></UL><UL><LI><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/integration-advisor-complex-mapping-code-for-dimension-conversion-in-sap/ba-p/14222344" target="_blank"><SPAN>Integration Advisor: complex mapping code for dime... - SAP Community</SPAN></A><SPAN> </SPAN></LI></UL><UL><LI><A href="https://community.sap.com/t5/integration-blog-posts/integration-advisor-create-1-1-mapping-elements-in-mag-editor/ba-p/14300369" target="_blank"><SPAN>Integration Advisor – Create 1:1 Mapping Elements ... - SAP Community</SPAN></A><SPAN> </SPAN></LI></UL><UL><LI><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/integration-advisor-download-mag-simulation-result-as-edi-payload/ba-p/14177249" target="_blank"><SPAN>Integration Advisor – Download MAG Simulation Resu... - SAP Community</SPAN></A><SPAN> </SPAN></LI></UL><UL><LI><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/integration-advisor-gs1-xml-messages-and-namespace-support/ba-p/13570459" target="_blank"><SPAN>Integration Advisor – GS1 XML Messages and Namespa... - SAP Community</SPAN></A><SPAN> </SPAN></LI></UL><UL><LI><A href="https://community.sap.com/t5/integration-blog-posts/integration-advisor-gs1-xml-messages-of-the-version-2-x-series-ean-ucc/ba-p/14295817" target="_blank"><SPAN>Integration Advisor – GS1 XML Messages of the vers... - SAP Community</SPAN></A><SPAN> </SPAN></LI></UL><UL><LI><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/integration-advisor-direct-support-of-edi-payloads/ba-p/13779418" target="_blank"><SPAN>Integration Advisor – direct support of EDI payloa... - SAP Community</SPAN></A><SPAN> </SPAN></LI></UL><UL><LI><A href="https://community.sap.com/t5/integration-blog-posts/integration-advisor-early-un-edifact-versions-with-syntax-version-2-now/ba-p/14233189" target="_blank"><SPAN>Integration Advisor: Early UN/EDIFACT Versions wit... - SAP Community</SPAN></A><SPAN> </SPAN></LI></UL><UL><LI><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/integration-advisor-extended-support-for-custom-idocs/ba-p/13574171" target="_blank"><SPAN>Integration Advisor – extended support for Custom ... - SAP Community</SPAN></A><SPAN> </SPAN></LI></UL><UL><LI><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/integration-advisor-extended-semantic-validation-options-for-mig-structures/ba-p/13533283" target="_blank"><SPAN>Integration Advisor – Extended semantic validation... - SAP Community</SPAN></A><SPAN> </SPAN></LI></UL><UL><LI><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/integration-advisor-functions-at-target-side-ordinal-number-for-line-items/ba-p/13464362" target="_blank"><SPAN>Integration Advisor: Functions at target side - Or... - SAP Community</SPAN></A><SPAN> </SPAN></LI></UL><UL><LI><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/integration-advisor-list-of-supported-xslt-elements-and-xpath-functions/ba-p/13514797" target="_blank"><SPAN>Integration Advisor - List of supported XSLT eleme... - SAP Community</SPAN></A><SPAN> </SPAN></LI></UL><UL><LI><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/integration-advisor-mapping-element-functions-the-use-of-xsl-copy-xsl-copy/ba-p/13514939" target="_blank"><SPAN>Integration Advisor – Mapping element functions, t... - SAP Community</SPAN></A><SPAN> </SPAN></LI></UL><UL><LI><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/integration-advisor-mapping-element-functions-for-comparing-nodes-and/ba-p/13515375" target="_blank"><SPAN>Integration Advisor – Mapping element functions fo... - SAP Community</SPAN></A><SPAN> </SPAN></LI></UL><UL><LI><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/integration-advisor-mag-how-to-create-if-then-else-statements-in-mapping/ba-p/13492590" target="_blank"><SPAN>Integration Advisor – MAG: How to create If-Then-E... - SAP Community</SPAN></A><SPAN> </SPAN></LI></UL><UL><LI><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/integration-advisor-mig-qualification-based-on-multiple-qualifiers/ba-p/13519946" target="_blank"><SPAN>Integration Advisor – MIG Qualification based on m... - SAP Community</SPAN></A><SPAN> </SPAN></LI></UL><UL><LI><A href="https://community.sap.com/t5/integration-blog-posts/integration-advisor-multi-payload-support-for-mig-creation/ba-p/14151474" target="_blank"><SPAN>Integration Advisor – multi-payload support for MI... - SAP Community</SPAN></A><SPAN> </SPAN></LI></UL><UL><LI><A href="https://community.sap.com/t5/integration-blog-posts/integration-advisor-new-b2b-library-content-for-gs1-eancom-cxml-and-asc-x12/ba-p/14138966" target="_blank"><SPAN>Integration Advisor – new B2B Library content for ... - SAP Community</SPAN></A><SPAN> </SPAN></LI></UL><UL><LI><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/integration-advisor-now-gs1-eancom-library-available/ba-p/13427011" target="_blank"><SPAN>Integration Advisor – Now GS1 EANCOM Library avail... - SAP Community</SPAN></A><SPAN> </SPAN></LI></UL><UL><LI><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/integration-advisor-odette-message-standard/ba-p/13478984" target="_blank"><SPAN>Integration Advisor – Odette Message Standard - SAP Community</SPAN></A><SPAN> </SPAN></LI></UL><UL><LI><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/integration-advisor-overview-of-components-for-building-b2b-integration/ba-p/13512772" target="_blank"><SPAN>Integration Advisor: Overview of components for bu... - SAP Community</SPAN></A><SPAN> </SPAN></LI></UL><UL><LI><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/integration-advisor-payload-based-qualification-at-time-of-mig-creation/ba-p/13990599" target="_blank"><SPAN>Integration Advisor – payload-based qualification ... - SAP Community</SPAN></A><SPAN> </SPAN></LI></UL><UL><LI><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/integration-advisor-quickly-create-your-individual-code-value-mappings-in/ba-p/13422010" target="_blank"><SPAN>Integration Advisor - Quickly create your individu... - SAP Community</SPAN></A><SPAN> </SPAN></LI></UL><UL><LI><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/integration-advisor-support-for-multi-value-qualification-in-migs/ba-p/13481536" target="_blank"><SPAN>Integration Advisor - support for multi-value Qual... - SAP Community</SPAN></A><SPAN> </SPAN></LI></UL><UL><LI><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/integration-advisor-support-of-xcbl-messages/ba-p/13945779" target="_blank"><SPAN>Integration Advisor – Support of xCBL Messages - SAP Community</SPAN></A><SPAN> </SPAN></LI></UL><UL><LI><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/integration-advisor-tradacoms-message-standard/ba-p/13574197" target="_blank"><SPAN>Integration Advisor – Tradacoms Message Standard - SAP Community</SPAN></A><SPAN> </SPAN></LI></UL><UL><LI><A href="https://community.sap.com/t5/integration-blog-posts/integration-advisor-use-custom-xslt-as-mag/ba-p/14280963" target="_blank"><SPAN>Integration Advisor – Use Custom XSLT as MAG - SAP Community</SPAN></A><SPAN> </SPAN></LI></UL><UL><LI><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/integration-advisor-using-the-pre-transformation-feature-within-a-mapping/ba-p/13606186" target="_blank"><SPAN>Integration Advisor: Using the Pre-Transformation ... - SAP Community</SPAN></A><SPAN> </SPAN></LI></UL><UL><LI><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/integration-content-advisor-create-a-customized-interface-using-mig-editor/ba-p/13354699" target="_blank"><SPAN>integration content advisor: Create a customized i... - SAP Community</SPAN></A><SPAN> </SPAN></LI></UL><UL><LI><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/integration-content-advisor-create-a-mapping-using-mag-editor/ba-p/13424264" target="_blank"><SPAN>integration content advisor: Create a mapping usin... - SAP Community</SPAN></A><SPAN> </SPAN><SPAN> </SPAN></LI></UL><UL><LI><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/integration-content-advisor-the-importance-of-customized-codelists-in/ba-p/13405597" target="_blank"><SPAN>integration content advisor: The importance of cus... - SAP Community</SPAN></A><SPAN> </SPAN></LI></UL><UL><LI><A href="https://community.sap.com/t5/integration-blog-posts/how-to-provide-read-only-access-to-integration-advisor/ba-p/13931556" target="_blank"><SPAN>How to Provide Read-only Access to Integration Adv... - SAP Community</SPAN></A><SPAN> </SPAN></LI></UL><UL><LI><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/restoring-the-hierarchical-order-of-a-flattened-source-message-via-the-pre/ba-p/13553678" target="_blank"><SPAN>Restoring the hierarchical order of a flattened so... - SAP Community</SPAN></A><SPAN> </SPAN></LI></UL><UL><LI><A href="https://community.sap.com/t5/technology-blog-posts-by-members/sap-btp-is-ia-cpi-the-commander-s-blueprint-rebuilding-b2b-edi-governance/ba-p/14304535" target="_blank"><SPAN>SAP BTP - IS - ( IA | CPI ) - The Commander's Blue... - SAP Community</SPAN></A><SPAN> </SPAN></LI></UL><UL><LI><A href="https://community.sap.com/t5/integration-blog-posts/support-for-asc-x12-subsets-vics-etc-in-integration-advisor/ba-p/14018929" target="_blank"><SPAN>Support for ASC X12 Subsets (VICS etc.) in Integra... - SAP Community</SPAN></A><SPAN> </SPAN></LI></UL><UL><LI><A href="https://community.sap.com/t5/integration-blog-posts/streamlining-b2b-integration-with-ai-powered-sap-cpi-accelerating-data/ba-p/14143578" target="_blank"><SPAN>Streamlining B2B Integration with AI-Powered SAP C... - SAP Community</SPAN></A><SPAN> </SPAN></LI></UL><UL><LI><A href="https://community.sap.com/t5/integration-blog-posts/taming-the-x12-856-message-in-sap-integration-advisor-a-step-by-step-guide/ba-p/14115410" target="_blank"><SPAN>Taming the X12 856 message in SAP Integration Advi... - SAP Community</SPAN></A><SPAN> </SPAN></LI></UL><UL><LI><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/using-edi-envelopes-in-integration-advisor/ba-p/13915328" target="_blank"><SPAN>Using EDI Envelopes in Integration Advisor - SAP Community</SPAN></A><SPAN> </SPAN></LI></UL><P><SPAN> </SPAN></P><H3 id="toc-hId-1133421704"><STRONG>Trading Partner Management </STRONG></H3><P><SPAN>Blog posts focusing only on TPM</SPAN><SPAN> </SPAN></P><UL><LI><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/archiving-b2b-messages-from-sap-integration-suite-in-cmis-repository/ba-p/14308874" target="_blank"><SPAN>Archiving B2B Messages from SAP Integration Suite ... - SAP Community</SPAN></A><SPAN> </SPAN></LI></UL><UL><LI><A href="https://community.sap.com/t5/technology-blog-posts-by-members/b2b-data-exchange-using-trading-partner-management-tpm-in-sap-cpi/ba-p/13547233" target="_blank"><SPAN>B2B data exchange using Trading Partner Management... - SAP Community</SPAN></A><SPAN> </SPAN></LI></UL><UL><LI><A href="https://community.sap.com/t5/integration-blog-posts/custom-message-mapping-tpm-b2b-sap-integration-suite/ba-p/14021014" target="_blank"><SPAN>Custom Message Mapping - TPM - B2B - SAP Integrati... - SAP Community</SPAN></A><SPAN> </SPAN></LI></UL><UL><LI><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/custom-search-attributes-in-sap-b2b/ba-p/14185605" target="_blank"><SPAN>Custom Search Attributes in SAP B2B - SAP Community</SPAN></A><SPAN> </SPAN></LI></UL><UL><LI><A href="https://community.sap.com/t5/integration-blog-posts/integrating-cloud-application-lifecyle-management-calm-with-trading-partner/ba-p/14305621" target="_blank"><SPAN>Integrating Cloud Application Lifecyle Management ... - SAP Community</SPAN></A><SPAN> </SPAN></LI></UL><UL><LI><A href="https://community.sap.com/t5/technology-blog-posts-by-members/guide-for-migrating-pi-po-b2b-mappings-to-integration-suite-b2b-tpm/ba-p/14186491" target="_blank"><SPAN>Guide for migrating PI/PO B2B mappings to Integrat... - SAP Community</SPAN></A><SPAN> </SPAN></LI></UL><UL><LI><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/reusing-sap-pi-po-b2b-mapping-content-in-cloud-integration-trading-partner/ba-p/14147241" target="_blank"><SPAN>Reusing SAP PI/PO B2B mapping content in Cloud Int... - SAP Community</SPAN></A><SPAN> </SPAN></LI></UL><UL><LI><A href="https://community.sap.com/t5/technology-blog-posts-by-members/sap-cloud-integration-b2b-restart-retry-messages-b2b-monitor/ba-p/13969611" target="_blank"><SPAN>SAP Cloud Integration : B2B - Restart/Retry Messag... - SAP Community</SPAN></A><SPAN> </SPAN></LI></UL><UL><LI><A href="https://community.sap.com/t5/technology-blog-posts-by-members/sap-trading-partner-management-part-i-tpm-overview/ba-p/13876443" target="_blank"><SPAN>SAP Trading Partner Management - Part I: TPM overv... - SAP Community</SPAN></A><SPAN> </SPAN></LI></UL><UL><LI><A href="https://community.sap.com/t5/technology-blog-posts-by-members/sap-trading-partner-management-part-ii-data/ba-p/13897146" target="_blank"><SPAN>SAP Trading Partner Management - Part II: Data - SAP Community</SPAN></A><SPAN> </SPAN></LI></UL><UL><LI><A href="https://community.sap.com/t5/technology-blog-posts-by-members/sap-trading-partner-management-part-iii-partner-configuration/ba-p/13888572" target="_blank"><SPAN>SAP Trading Partner Management - Part III: Partner... - SAP Community</SPAN></A><SPAN> </SPAN></LI></UL><UL><LI><A href="https://community.sap.com/t5/technology-blog-posts-by-members/sap-trading-partner-management-part-iv-agreement/ba-p/13961055" target="_blank"><SPAN>SAP Trading Partner Management - Part IV: Agreemen... - SAP Community</SPAN></A><SPAN> </SPAN></LI></UL><UL><LI><A href="https://community.sap.com/t5/technology-blog-posts-by-members/sap-cloud-integration-trading-partner-management-tpm-as2-to-sap-idoc/ba-p/13626099" target="_blank"><SPAN>SAP Cloud Integration - Trading Partner Management... - SAP Community</SPAN></A><SPAN> </SPAN></LI></UL><UL><LI><A href="https://community.sap.com/t5/technology-blog-posts-by-members/troubleshooting-sap-btp-tpm-debugging-step-1b-and-xslt-transformations/ba-p/13873114" target="_blank"><SPAN>Troubleshooting SAP BTP TPM: Debugging Step 1b and... - SAP Community</SPAN></A><SPAN> </SPAN></LI></UL><UL><LI><A href="https://community.sap.com/t5/technology-blog-posts-by-members/using-trading-partner-management-with-ai/ba-p/14139457" target="_blank"><SPAN>Using Trading Partner Management with AI - SAP Community</SPAN></A><SPAN> </SPAN></LI></UL><P> </P><H3 id="toc-hId-936908199"><STRONG>Summary </STRONG></H3><P><SPAN>This collection brings together key insights, best practices, and technical deep dives on B2B integration using SAP Integration Factory, helping you design, implement, and optimize your B2B integration landscape. If you feel a relevant topic or blog post is missing, please let us know in the comments—we’re happy to expand the list and keep this collection current and comprehensive.</SPAN><SPAN> </SPAN></P>2026-02-19T10:22:28.687000+01:00https://community.sap.com/t5/technology-blog-posts-by-members/sap-po-to-sap-integration-suite-migration-without-migration-tool-basic/ba-p/14162346SAP PO to SAP Integration Suite Migration without migration tool (Basic Edition)2026-02-19T10:55:36.395000+01:00amysh95https://community.sap.com/t5/user/viewprofilepage/user-id/603339<H1 id="toc-hId-1606876300"><FONT size="5"><STRONG>Introduction</STRONG></FONT></H1><P>Migrating from SAP PO to the SAP Integration Suite — especially when working with the Basic Edition — can be challenging due to the lack of official migration tool. However, with a structured and creative approach, it’s entirely feasible.</P><P>Here’s a quick summary of what I will cover in this blog.</P><UL><LI>Connection between Subaccount and SAP PO system</LI><LI>Objects extraction process</LI><LI>Designing approach of the integration flows</LI><LI>Configuration in SAP system for integrations</LI><LI>Challenges and key points to be consider and prechecks for this migration </LI><LI>Configuration for File based (NFS) scenario.</LI></UL><P>Even without the full migration toolkit, with the right mindset and methodology, you can still carry out a successful and efficient PO-to-Integration Suite migration.</P><H2 id="toc-hId-1539445514"><FONT size="5"><STRONG>Project Background</STRONG></FONT></H2><P><FONT size="4">Here I will be share the details from two of the migration projects where the landscape was like</FONT></P><TABLE border="1" width="100%"><TBODY><TR><TD width="50%"><STRONG>Source System</STRONG></TD><TD width="50%">SAP PO 7.5 Single Stack</TD></TR><TR><TD width="50%"><STRONG>Target System</STRONG></TD><TD width="50%">SAP Integration Suite (Basic Edition)</TD></TR><TR><TD width="50%"><STRONG>Mapping Types</STRONG></TD><TD width="50%">ABAP Proxy, IDocs</TD></TR><TR><TD width="50%"><STRONG>Adapters Used</STRONG></TD><TD width="50%">XI (3.0), HTTP, File (FTP), IDoc, REST, JDBC</TD></TR></TBODY></TABLE><P> </P><H3 id="toc-hId-1472014728"><STRONG>System setup - Cloud Connector (</STRONG>Connection between Subaccount and SAP PO system )</H3><P>Here we need to add SAP PO system as well along with the SAP system under the connected subaccount. This step is require to extract the objects required for the <FONT face="helvetica">interface.</FONT></P><P><STRONG>Steps:</STRONG> Select the correct subaccount in the SAP Cloud Connector and add one new system where the backend type is SAP Process Integration (from the dropdown) and prepare one connection (HTTP as protocol).</P><P><FONT face="courier new,courier">Subaccount --> Cloud to On prim connection --> add new system --> SAP Process Integration --> HTTP --> {SAP PO hostname/Ip and Port} --> {Virtual Host name and port} --> uncheck Principle propagation --> Finish --> Connection Check</FONT></P><P><FONT face="courier new,courier">Under Resources --> add resource --> URL Path (/) --> Access Policy (All Sub paths)</FONT></P><P><FONT face="courier new,courier"><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Cloud Connector - System Configuration" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/302233iC6037AD08D755B98/image-size/large?v=v2&px=999" role="button" title="Cloud Connector - System Configuration.jpg" alt="Cloud Connector - System Configuration" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Cloud Connector - System Configuration</span></span></FONT></P><P> </P><P><FONT face="courier new,courier"> </FONT></P><P> </P><P><U>In case of connection failure:</U></P><P>This can be happen and in maximum case this occur when your SAP PO system is not on the same network where Cloud Connector in configured. In such cases one SR need to be raise to SAP to whitelist the IP's or the SAP PO system. --> Idle Approach</P><P>In some cases during landscape migration customer create tunnels between there on-prim application and the Rise in that case tunnel between SAP PO server and Rise need to be create. --> rare scenario</P><P> </P><H3 id="toc-hId-1275501223"><STRONG>Objects extraction process</STRONG></H3><P>Before extraction process we need to add the SAP PO system in Cloud Integration as well (First step was to add PO system in Subaccount - done in above step). </P><P><FONT face="courier new,courier">Navigate to Integration Suite --> Settings (Integrations) --> System --> add System (<SPAN>SAP Process Orchestration Systems</SPAN>)</FONT></P><P>Provide the details like System name, Version, server address and credentials. Just note here the server address will be the virtual hostname and port defined in the cloud connector.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Integration Suite - System Add.jpg" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/302287i4C6CAD66FBDC9EC5/image-size/large?v=v2&px=999" role="button" title="Integration Suite - System Add.jpg" alt="Integration Suite - System Add.jpg" /></span></P><P> Once this is complete, inside the iflow objects can be imported from sap po to cloud integration. To do this open the integration flow (fresh interface i.e. with just message start and end) and go to Integration Flow tab (bottom) then References and required objects like message mapping, data/message types. service interface, wsdl etc.</P><P>Just by selecting the message mapping all the dependent objects like dt,mt,wsdl will be imported. In case the original interface in SAP PO is synchronous then only Operation mapping can be select and depended objects will be imported automatically, only when interface is Asynchronous then we need to select the message mapping.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Integration Suite - Objects import" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/302312i943A712DFC7D4D83/image-size/large?v=v2&px=999" role="button" title="Integration Suite - Object import.jpg" alt="Integration Suite - Objects import" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Integration Suite - Objects import</span></span></P><P> </P><P>After this import maximum work will be completed and only connection part are the one which need to be done.</P><P>With this the iflow designing for the migration interface can be completed but there are some additional Iflows need to be created for seamless processing. I will say those as common routing iflow which will be used to received the transaction from SAP to Integration Suite for Proxy & IDoc based scenario. </P><P>We required these Iflow because whenever any transaction generate from SAP it will flow from one destination only to the SAP PO to replicate the same we need to change that destination from SAP PO to Integration suite and for that we need the endpoints. To achieve this we create 3 common IFlows. 1 IFlow to receive all the IDocs from SAP, 2nd IFlow to receive all the ASynchronous XI message and 3rd IFlow to receive all the Synchronous XI message.</P><P>Key points while importing Messgae Mapping/Operation Mapping in Iflow design.</P><UL><LI>In case of Async interface only messgae mapping import can be done.</LI><LI>In case of Sync interface Operation mapping can be import and it will automatically import all depended objects (Message Mappings for both request and response) along with the wsdls (messgae structure).</LI></UL><P>Once everything is imported just placing them in at the right place is the manual thing.</P><H3 id="toc-hId-1078987718"><STRONG>Common routing flow configuration</STRONG></H3><P>Create 3 flow with the configuration mentioned below.</P><P><STRONG>Iflow 1/2</STRONG>: Receive Sync/Async interface from SAP</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Sync/Async Iflow Configuration" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/374171i15A1BE4CDC643FB1/image-size/large?v=v2&px=999" role="button" title="2026-02-19_14-24-41.jpg" alt="Sync/Async Iflow Configuration" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Sync/Async Iflow Configuration</span></span></P><P> </P><P> </P><P> </P><P>Here for the sender adapter XI exposed the endpoint eg "/proxy/async" and "/proxy/sync" for async and sync interfaces from SAP and to route these call to the correct interface mentioned "/${header.SapInterfaceName}" in the Address in process direct adapter.</P><P>When a call is generated from SAP, in the API call some header are created where one of the header is "SapInterfaceName" is the one which we can use as this contain the name of the service interface which is implemented at ABAP side. With the same actual SI name we can expose the actual interface which has all the message mapping transfomation etc.</P><P> </P><P>Iflow 3: Receiver IDoc from SAP</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="amysh95_3-1771492708059.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/374180iF398C5689D2CA4C2/image-size/large?v=v2&px=999" role="button" title="amysh95_3-1771492708059.png" alt="amysh95_3-1771492708059.png" /></span></P><P>Here based on the messgae type routing those to perticuler interface can be done and can put mulitple conditions based on the payload data. </P><P> </P><P> </P><H3 id="toc-hId-882474213"><STRONG>SAP Configuration for Sync/Async call</STRONG></H3><P>There are some configurations in SXMB_ADM which need to do for both Sync and ASync interface.</P><P><STRONG>Step 1 - Create 3 destinations in SM59 with Type G "HTTP Connection to External Server" </STRONG></P><UL><LI>1st destination for SAP to Integration suite Async Interface (SAP_TO_IS_PROXY_ASYNC)</LI><LI>2nd destination for SAP to Integration suite Sync Interface (SAP_TO_IS_PROXY_SYNC)</LI><LI>3rd destination for SAP to Integration suite IDoc send (SAP_TO_IS_IDOC)</LI></UL><P><STRONG>Step 2</STRONG> - Decide which type of interface need the defualt configurations. I recommended chosse which has less number of interface. In my case ASync interfaces are less in number so all default configuration will be for Async. </P><P><STRONG>Step 3 - configure Sender/Reciver ID. </STRONG></P><P><FONT face="courier new,courier">SXMB_MONI --> UNDER CONFIGURATION (CONFIGURE SENDER/RECEIVER ID)</FONT></P><P>Here create a entry with below data. similar way entries we have to create for all the interface which need additional configuration.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="amysh95_4-1771493357032.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/374184i6D868DFA38E798DD/image-size/large?v=v2&px=999" role="button" title="amysh95_4-1771493357032.png" alt="amysh95_4-1771493357032.png" /></span></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="amysh95_5-1771493436794.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/374187iA2745B368A28034C/image-size/medium?v=v2&px=400" role="button" title="amysh95_5-1771493436794.png" alt="amysh95_5-1771493436794.png" /></span></P><P><STRONG>Step 4 part 1 - setting up the IDoc destination</STRONG></P><P>go to WE21 - Create XML port (SAP_TO_IS) and maintain the destination created in step 1 "SAP_TO_IS_IDOC" and assign this XML HTTP port to requried partner profile in WE20.</P><P>Content type : application/x-sap.idoc</P><P>HTTP version: 1.0</P><P>SOAP protocol : checked</P><P><STRONG>Step 4 part 2 - setting up the </STRONG></P><P>Under SXMB_ADM --> Integration Engine Configuration</P><P>At initial page the destiantion maintained should be the default destination. In my case that destination belongs to the ASync interface. </P><P>Role of Business System : LOC Application Ssystem</P><P>Associated Integration Server : dest://SAP_TO_IS_PROXY_ASYNC</P><P>Then go to configuration and maintain the rules for Sync interfaces (Sender/Receiver ID) which are created under Step 3.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="amysh95_6-1771494545513.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/374204i4F87A7D02ED4CC1F/image-size/large?v=v2&px=999" role="button" title="amysh95_6-1771494545513.png" alt="amysh95_6-1771494545513.png" /></span></P><P> </P><P>This is all what we need to do to migrate SAP PO running interfaces to SAP CPI without using Migrtion tool in case you have the basic edition.</P><P> </P><P>For information : I did this migration 1 year back so might be there are some steps which i might used in old ways but this is working absoulty fine till now. I appriate the feedback if community has some.</P><P> </P><P>Thanks </P><P>Aman Sharma</P><P> </P>2026-02-19T10:55:36.395000+01:00