https://raw.githubusercontent.com/ajmaradiaga/feeds/main/scmt/topics/SAP-Continuous-Integration-and-Delivery-blog-posts.xmlSAP Community - SAP Continuous Integration and Delivery2026-02-25T12:12:13.626431+00:00python-feedgenSAP Continuous Integration and Delivery blog posts in SAP Communityhttps://community.sap.com/t5/technology-blog-posts-by-members/configure-ctms-in-combination-with-charm-and-ci-cd/ba-p/13677363Configure cTMS in combination with CHARM and CI/CD2024-04-28T22:47:32.487000+02:00WouterLemairehttps://community.sap.com/t5/user/viewprofilepage/user-id/9863<H1 id="toc-hId-863590909"><SPAN>Introduction</SPAN></H1><P><SPAN>The BTP Cloud Transport Management Service (cTMS) is mostly used in combination with the CI/CD service (or any other non-SAP CI/CD tool) when you need to transport applications from one Sub Account to another Sub Account. This combination is well documented in the SAP help documentation. CI/CD deploys to your DEV Sub Account and uploads the MTAR of your application to cTMS. From here, cTMS taks over to deploy to ACC and PRD Sub Accounts. You can find the details in the documentation here:</SPAN></P><P><SPAN><A href="https://help.sap.com/docs/continuous-integration-and-delivery/sap-continuous-integration-and-delivery/configure-sap-fiori-in-cloud-foundry-environment-job-in-your-repository#(optional)-integrate-sap-cloud-transport-management-into-your-pipeline" target="_blank" rel="noopener noreferrer">https://help.sap.com/docs/continuous-integration-and-delivery/sap-continuous-integration-and-delivery/configure-sap-fiori-in-cloud-foundry-environment-job-in-your-repository#(optional)-integrate-sap-cloud-transport-management-into-your-pipeline</A></SPAN></P><P><SPAN> </SPAN><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="WouterLemaire_0-1713733188934.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/99571i23015BFF75BCBB15/image-size/large?v=v2&px=999" role="button" title="WouterLemaire_0-1713733188934.png" alt="WouterLemaire_0-1713733188934.png" /></span></P><P><SPAN>Besides integration with CI/CD, you want to integrate cTMS with your existing transporting system, which is for most customers Charm. This setup allows you to transport ABAP objects and BTP applications together. You could also consider using ALM as transporting system but at the moment this has not all the functionalities that you have in Charm today.</SPAN></P><P><SPAN>Connecting cTMS nodes to Charm require enabling the configuration “Controlled By SAP Solution Manager”:</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="WouterLemaire_1-1713733360131.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/99572i1C1B1D0E4D58B5A6/image-size/medium?v=v2&px=400" role="button" title="WouterLemaire_1-1713733360131.png" alt="WouterLemaire_1-1713733360131.png" /></span></P><P><SPAN>When you enable this, you might face some of the problems listed below and the solution might might be helping you to have a clean cTMS landscape integrated with Charm.</SPAN></P><H1 id="toc-hId-667077404"><SPAN>Problems</SPAN></H1><UL><LI><SPAN>DEV node in cTMS without destination cannot be saved</SPAN></LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="WouterLemaire_2-1713733396501.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/99573iB57AA36146F6C0B0/image-size/medium?v=v2&px=400" role="button" title="WouterLemaire_2-1713733396501.png" alt="WouterLemaire_2-1713733396501.png" /></span></P><UL><LI><SPAN>Setting a destination doesn’t make sense as the CI/CD service already deploys to the DEV Sub Account but it allows you to continue with the configuration. </SPAN></LI><LI><SPAN>The flow described for Cloud ALM cannot be applied exactly the same way when using Charm as it does not require to enable “Controlled by SAP Solution Manager”, see documentation. </SPAN><UL><LI><SPAN><A href="https://help.sap.com/docs/cloud-alm/setup-administration/cloud-transport-management" target="_blank" rel="noopener noreferrer">https://help.sap.com/docs/cloud-alm/setup-administration/cloud-transport-management</A></SPAN></LI></UL></LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="WouterLemaire_3-1713733626855.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/99574iE23B55C389797E3B/image-size/large?v=v2&px=999" role="button" title="WouterLemaire_3-1713733626855.png" alt="WouterLemaire_3-1713733626855.png" /></span></P><UL><LI><SPAN>All cTMS Nodes after DEV need to be controller by SAP Solution Manager if you want to integrate it with Charm BUT import to cTMS Nodes “Controlled By SAP Solution Manager” is not possible. This will cause an</SPAN><SPAN> error in the logs of cTMS</SPAN> </LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="WouterLemaire_6-1713734439855.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/99578iEC1D3DD6211ECDC1/image-size/large?v=v2&px=999" role="button" title="WouterLemaire_6-1713734439855.png" alt="WouterLemaire_6-1713734439855.png" /></span></P><UL><LI><SPAN>Uploading to the DEV Node in cTMS only forwards to ACC after successful import. Importing/Deploying to DEV via cTMS is not needed as this is already done by the CI/CD service</SPAN><UL><LI><SPAN>This is only causing overhead which is not needed</SPAN></LI></UL></LI></UL><UL><LI><SPAN>This means that you need to upload to cTMS Node for ACC BTP Sub Account BUT this is not possible because it is controlled by SAP Solution Manager</SPAN></LI></UL><H1 id="toc-hId-470563899"><SPAN>Solution</SPAN></H1><UL><LI><SPAN>Make the DEV nodea V</SPAN><SPAN>irtual Node</SPAN></LI><LI><SPAN>In SAP CI/CD, use export from “DEV-NODE” instead of "Upload to":</SPAN><UL><LI><SPAN>This will upload the mtar to cTMS and immediately forward it from DEV to ACC so it ends up in the queue of ACC.</SPAN></LI></UL></LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="WouterLemaire_7-1713734527435.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/99579i93AE086F0519C068/image-size/medium?v=v2&px=400" role="button" title="WouterLemaire_7-1713734527435.png" alt="WouterLemaire_7-1713734527435.png" /></span></P><P> </P><UL><LI><SPAN>In any other CI/CD tool, use the export api: “/v2/nodes/export”</SPAN><UL><LI><SPAN><A href="https://api.sap.com/api/TMS_v2/path/NODE_EXPORT_BY_NAME_V2" target="_blank" rel="noopener noreferrer">https://api.sap.com/api/TMS_v2/path/NODE_EXPORT_BY_NAME_V2</A> </SPAN></LI><LI>See blog post with an example: <A href="https://community.sap.com/t5/technology-blogs-by-members/integrate-ci-cd-with-ctms-as-part-of-sap-cloud-alm/ba-p/13653010" target="_blank">https://community.sap.com/t5/technology-blogs-by-members/integrate-ci-cd-with-ctms-as-part-of-sap-cloud-alm/ba-p/13653010</A> </LI></UL></LI></UL><P>In the end, DEV is a virtual node and all others are controlled by Solution Manager</P><P>Configuration of the DEV Node:</P><UL><LI>Upload to Node is allowed</LI><LI>Node is flagged as a virtual node</LI></UL><P><SPAN> </SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="WouterLemaire_8-1713735485282.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/99584iB5713F2094944F18/image-size/medium?v=v2&px=400" role="button" title="WouterLemaire_8-1713735485282.png" alt="WouterLemaire_8-1713735485282.png" /></span></P><P>Configuration of all nodes after DEV:</P><UL><LI>“Conntrolled By SAP Solution Manager” enabled</LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="WouterLemaire_9-1713735503162.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/99585i4F7ED4B2CCD55BC0/image-size/medium?v=v2&px=400" role="button" title="WouterLemaire_9-1713735503162.png" alt="WouterLemaire_9-1713735503162.png" /></span></P><P> </P><H1 id="toc-hId-274050394">Overview</H1><P>In the end, your transport landscape with CI/CD, cTMS and Charm will look like this:</P><UL><LI>Developers will push their code from BAS or VSCode to GIT</LI><LI>GIT will trigger CI/CD through a webhook</LI><LI>CI/CD will<UL><LI>deploy to the DEV Sub Account</LI><LI>export to cTMS dev node</LI></UL></LI><LI>cTMS will move the transport to the queue of ACC</LI><LI>From here it can be transported using Charm</LI></UL><P>I used a separate Sub Account for the CI/CD service but this could be as well in the DEV Sub Account.</P><P>For the integration with Charm I recommend following this blog post: <A href="https://community.sap.com/t5/technology-blogs-by-sap/how-to-use-the-integration-of-sap-cloud-platform-transport-management-into/ba-p/13443259" target="_blank">https://community.sap.com/t5/technology-blogs-by-sap/how-to-use-the-integration-of-sap-cloud-platform-transport-management-into/ba-p/13443259</A></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="WouterLemaire_10-1713735683673.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/99587i42F521783F352F82/image-size/large?v=v2&px=999" role="button" title="WouterLemaire_10-1713735683673.png" alt="WouterLemaire_10-1713735683673.png" /></span></P><P> </P><P> </P>2024-04-28T22:47:32.487000+02:00https://community.sap.com/t5/technology-blog-posts-by-sap/devops-with-sap-btp/ba-p/13686887DevOps with SAP BTP2024-05-06T14:26:48.640000+02:00BorisZarskehttps://community.sap.com/t5/user/viewprofilepage/user-id/87<P>As <A title="Efficient DevOps with SAP BTP" href="https://community.sap.com/t5/technology-blogs-by-sap/efficient-devops-with-sap-btp/ba-p/13455958" target="_blank">my initial blog post series</A> around DevOps with SAP BTP is already some years old, I thought it would be about time to come up with a new article - to reflect latest changes about how you can enable your teams to benefit from it for developing and running their apps on the platform.</P><P><SPAN>DevOps is a key enabler for achieving high-level agility and quality in development projects – also in SAP enterprise environments. If you should be new to DevOps, the </SPAN><SPAN><A href="https://community.sap.com/topics/devops" target="_blank">DevOps | SAP Community</A></SPAN><SPAN> topic page does offer a lot of information.</SPAN></P><P><SPAN>Although DevOps is mainly a cultural approach, tools can help to foster agile development principles along the lifecycle of applications. In this article, I will sketch the setup recommended by SAP for agile development projects on SAP BTP, using corresponding SAP BTP cloud services and offerings. The platform does offer several different development approaches and runtime environments, so details of this setup might slightly differ per use case, but the goal is to offer a similar concept fitting for the most important ones.</SPAN></P><P><SPAN>The following figure outlines the recommended approach on the example of SAP BTP, Cloud Foundry environment:</SPAN></P><H2 id="toc-hId-993572229"><SPAN><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Recommended approach to apply DevOps on SAP BTP" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/104012i5AFD8F463590CC0B/image-size/large?v=v2&px=999" role="button" title="RecommendedApproachDevOpsSAPBTP.png" alt="Recommended approach to apply DevOps on SAP BTP" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Recommended approach to apply DevOps on SAP BTP</span></span></SPAN></H2><P> </P><P>As most of the depicted SAP BTP cloud services are also part of <A title="SAP Build Code" href="https://www.sap.com/products/technology-platform/developer-tools.html" target="_blank" rel="noopener noreferrer">SAP Build Code</A>, this does also reflect the recommended approach around this offering.</P><P>Let's go through those four phases in the remainder of this article.<BR /><BR /></P><H2 id="toc-hId-797058724"><SPAN>1. Set Up Continuous Integration</SPAN></H2><P><SPAN>One driver of the agility and built-in quality that DevOps brings is the automation of large parts of the deployment pipeline. For this, a Continuous Integration / Continuous Delivery (CI/CD) pipeline is involved that automatically gets executed whenever your development teams do submit changes to their source code management system, to qualify them. The pipeline automatically performs certain actions along different stages, such as to build your changes and to test them on different levels. With this, it provides feedback to the developer on the quality of his/her changes:</SPAN></P><P><SPAN><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Using Continuous Integration and Delivery to automate large parts of the deployment process" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/103685iD124D2B73D47A28F/image-size/large?v=v2&px=999" role="button" title="CICDpipeline.png" alt="Using Continuous Integration and Delivery to automate large parts of the deployment process" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Using Continuous Integration and Delivery to automate large parts of the deployment process</span></span></SPAN></P><P><SPAN>So, the first challenge is to set up CI/CD for your SAP BTP development use cases. Here, SAP BTP does offer a two-fold approach:</SPAN></P><UL><LI>Option 1:<STRONG><SPAN> </SPAN>Pipeline as a Service</STRONG><SPAN> </SPAN>with<SPAN> </SPAN><A href="https://help.sap.com/docs/CONTINUOUS_DELIVERY" target="_blank" rel="noopener noreferrer">SAP Continuous Integration and Delivery</A><UL><LI>Opinionated, highly integrated setup that allows to benefit from agile methods without having to bring expertise</LI><LI>Brings pipeline templates for typical SAP BTP development use cases, such as to develop a side-by-side extension using Cloud Application Programming model (CAP) or a compelling UI using SAP Fiori on Neo/Cloud Foundry/ABAP Front-End Servers; with this, it allows to come up with a running build, test and deploy pipeline for those SAP BTP specific use cases in minutes – where the pipeline can be configured completely via UI (configuration as code is optionally also possible)</LI><LI>No need to build up and especially operate an own CI/CD infrastructure – only prerequisite: bring your own Git as source code management system</LI><LI>SAP product, with direct support from SAP</LI><LI>With this, addressing also those partners and customers that do not bring experience or that are looking for a CI/CD setup recommended and provided by SAP, reducing the overhead and cognitive load of their developers</LI></UL></LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Easy process to set up pipeline in SAP Continuous Integration and Delivery service" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/103686i689D717ACDF3C6AA/image-size/large?v=v2&px=999" role="button" title="CI+Dflow.png" alt="Easy process to set up pipeline in SAP Continuous Integration and Delivery service" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Easy process to set up pipeline in SAP Continuous Integration and Delivery service</span></span></P><UL><LI>Option 2:<STRONG> Toolbox</STRONG> with open source offering <A href="https://www.project-piper.io/" target="_blank" rel="noopener nofollow noreferrer">project ‘Piper’</A><UL><LI>Building blocks that allow you to build an own pipeline for SAP-specific use cases easier: pipeline templates (for Jenkins only), a library of pipeline steps (in Golang, which allows you to use them also for non-Jenkins CI/CD infrastructures), scenarios (end-to-end descriptions with sample code snippets), and Docker images you can easily add to your pipeline (<A href="https://blogs.sap.com/2019/10/24/how-to-use-project-piper-docker-images-for-cicd-with-azure-devops/" target="_blank" rel="noopener noreferrer">example for usage with Azure DevOps</A>)</LI><LI>As it is an open source offering, there is no direct support provided by SAP – only community support, you have to create and then own your pipeline</LI><LI>With this, the offering is addressing those partners and customers that need full flexibility and already bring expertise or infrastructure (or are willing to build it up and operate it) and now want to know how to best expand it also for SAP-specific use cases<BR /><BR /></LI></UL></LI></UL><H2 id="toc-hId-600545219">2. Develop</H2><P>This CI pipeline is then used by your development teams to qualify their changes – here, changes get pushed to a central source code repository based on Git, which then can automatically triggers a run of the corresponding pipeline via webhook. This pipeline run performs a build and executes automated test cases. The developer then gets informed about issues with the performed changes and can react on those directly. Also, compliance checks, such as for security flaws with used third-party libraries, can be tested as part of the pipeline run.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Example of agile development process" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/103696i3B0E8EA376BEEC44/image-size/large?v=v2&px=999" role="button" title="DevProcess.png" alt="Example of agile development process" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Example of agile development process</span></span></P><P><SPAN>Of course, there are many frameworks available for automated testing – SAP Continuous Integration and Delivery service does provide an opinionated proposal for corresponding frameworks, which then have to be set up accordingly. If you want to use alternative frameworks, SAP Continuous Integration and Delivery allows to extend the predefined pipelines with scripting (for more information, see </SPAN><A title="Extensible Pipelines for SAP Continuous Integration and Delivery" href="https://community.sap.com/t5/technology-blogs-by-sap/extensible-pipelines-for-sap-continuous-integration-and-delivery/ba-p/13564893" target="_blank">this blog post</A><SPAN>).</SPAN></P><P>For the creation of the actual test cases, a step-wise approach is recommended, where you start with first test cases and then evolve by time, by adding additional cases, also based on the issues that come up later and on the latest compliance requirements you might face.</P><P>As implied above, the actual development process will slightly differ per development environment. For example, on Cloud Foundry, you might use SAP Business Application Studio (where you would benefit from a direct integration of SAP Continuous Integration and Delivery, allowing to set up and monitor corresponding pipelines directly from the IDE), on Neo SAP Web IDE Full-Stack and on SAP BTP ABAP development tools in Eclipse. Still, the general approach for these environments could be similar, as depicted above.<BR /><BR /></P><H2 id="toc-hId-404031714">3. Deliver</H2><P>When your teams come up with a qualified release candidate, they can either perform a direct deployment out of the pipeline (when all tests are “green”, a direct deployment can be triggered) – or you benefit from a standardized central transport and change management approach, using<SPAN> </SPAN><A href="https://help.sap.com/docs/cloud-transport-management" target="_blank" rel="noopener noreferrer">SAP Cloud Transport Management</A>. The later is our recommended approach for most enterprise environments, where you normally want to have additional control of your production subaccounts.</P><P>The actual transport concept is quite similar to what you might be used to from development in on-premise and private cloud environments, with a centrally defined delivery landscape:</P><UL><LI>With the option to control who is allowed to handle changes where (that is, on which SAP BTP subaccount),</LI><LI>With a central log file for auditing,</LI><LI>With the option to synchronize the propagation of changes from different environments (such as from private cloud/on-premise together with related cloud changes), where change and deployment management capabilities of SAP Cloud ALM or Change Request Management (ChaRM) of SAP Solution Manager could orchestrate SAP Cloud Transport Management service, in addition to orchestrating then also private cloud/on-premise transport mechanisms.</LI></UL><P>Still, here with the option to combine it on SAP BTP with CI principles, so that your development teams can benefit from tight feedback loops enabled by an automated pipeline, to verify single developer changes - while you still have full control for the propagation of those changes towards your production environment, with the automated hand-over from the pipeline into a controlled, centrally managed and pre-defined delivery landscape. Then to verify the release candidate, potentially consisting of changes from different environments and typically done with a manual confirmation.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Hybrid change management" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/302360i64E8CD01404FF672/image-size/large?v=v2&px=999" role="button" title="HybridChangeMgmt.jpg" alt="Hybrid change management" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Hybrid change management</span></span></P><P><SPAN>SAP Cloud Transport Management service can cover more and more content types, such as:</SPAN></P><UL><LI>SAP Fiori content (in Neo and Cloud Foundry)</LI><LI>CAP applications (in the form of MTA archives),</LI><LI>Objects from SAP BTP ABAP environment,</LI><LI>Content from SAP Build (SAP Build Process Automation, SAP Build Work Zone, …),</LI><LI>App-specific content types, such as iFlows from SAP Integration Suite and Network Package content from SAP Analytics Cloud</LI><LI>See the full list <A title="Overview: Supported Content" href="https://help.sap.com/docs/cloud-transport-management/sap-cloud-transport-management/supported-content-types#loio0dccbb6ee1714240b9b9bedc1a240a7e" target="_blank" rel="noopener noreferrer">here</A></LI></UL><P>With this, you can establish a standardized transport management process for more and more development use cases around SAP BTP - with the option to integrate all those content types into your central change and delivery management process, such as provided by SAP Cloud ALM.</P><P>SAP Cloud Transport Management service is out-of-the-box integrated with SAP Continuous Integration and Delivery - just switch on the corresponding option of the<SPAN> </SPAN><EM>Release</EM><SPAN> </SPAN>stage:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Screenshot from 'Release' stage of SAP Continuous Integration and Delivery" style="width: 538px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/103704iF4EF8F6E13A46D04/image-size/large?v=v2&px=999" role="button" title="CIDintegrationcTMS.png" alt="Screenshot from 'Release' stage of SAP Continuous Integration and Delivery" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Screenshot from 'Release' stage of SAP Continuous Integration and Delivery</span></span></P><P><SPAN>It can also be integrated into other CI stacks via a step of the library from project Piper into third-party pipelines or </SPAN><A title="SAP Business Accelerator Hub" href="https://api.sap.com/package/TmsForCloudPub/rest" target="_blank" rel="noopener noreferrer">open APIs</A><SPAN> (for example, see </SPAN><A title="Integrate a CI/CD Pipeline on Azure DevOps with DevOps-Related Services from SAP BTP, Cloud Foundry" href="https://community.sap.com/t5/technology-blogs-by-sap/integrate-a-ci-cd-pipeline-on-azure-devops-with-devops-related-services/ba-p/13528858" target="_blank">this blog post on using Azure DevOps with transports</A><SPAN>).</SPAN></P><P><SPAN> </SPAN></P><H2 id="toc-hId-207518209"><SPAN>4. Operate</SPAN></H2><P>With SAP Cloud ALM, SAP is providing a central observability platform for all SAP products, including SAP BTP (in interplay with several local SAP-BTP-specific observability capabilities). To operate your apps on SAP BTP, you can therefore use its unified monitoring, alerting and analytics offering based on telemetry data exposed by SAP BTP (and other SAP solutions), to reduce the meantime to detect any issues. SAP is using OpenTelemetry as unified and open instrumentation approach for SAP BTP use cases, allowing you for example to instrument your custom apps for central observability.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Functional overview of SAP Cloud ALM for Operations" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/103725iEF0B7688D8600D2E/image-size/large?v=v2&px=999" role="button" title="SAP Cloud ALM for Operations.png" alt="Functional overview of SAP Cloud ALM for Operations" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Functional overview of SAP Cloud ALM for Operations</span></span></P><P><SPAN>For more information, see </SPAN><A title="SAP Cloud ALM for Operations" href="https://support.sap.com/en/alm/sap-cloud-alm/operations.html" target="_blank" rel="noopener noreferrer">SAP Cloud ALM for Operations</A><SPAN>.</SPAN></P><P><SPAN>To resolve issues, you can then navigate from SAP Cloud ALM to the local expert tools on SAP BTP, to perform a use-case-specific root cause analysis. </SPAN><SPAN>For example, f</SPAN><SPAN>rom an error message in <EM>Exception Monitoring</EM> of SAP Cloud ALM, you could directly jump to <A title="SAP Cloud Logging service" href="https://help.sap.com/docs/cloud-logging" target="_blank" rel="noopener noreferrer">SAP Cloud Logging service</A> to perform a detailed analysis, for which the service stores and visualizes log files, metrics, and traces from your apps running in different SAP BTP environments.</SPAN></P><P><SPAN>For the execution of corrective actions on SAP BTP, events in SAP Cloud ALM could automatically trigger the execution of corresponding commands on SAP Automation Pilot. This service offers a low-code and no-code automation engine and brings catalogs of automated actions that you can use to compile the best-fitting command for automating your recurring DevOps-related tasks and for remediation of alerts from your individual SAP BTP applications.</SPAN></P><P><SPAN><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Automate recurring ops tasks with SAP Automation Pilot" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/103875i90ADE7D1425C86D5/image-size/large?v=v2&px=999" role="button" title="AutoPi.png" alt="Automate recurring ops tasks with SAP Automation Pilot" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Automate recurring ops tasks with SAP Automation Pilot</span></span></SPAN></P><P><SPAN>This way, you can optimize your operation efforts and increase the resilience of your business scenarios.<BR /></SPAN></P><P>In case you want to apply Infrastructure-as-Code principles based on an industry standard, consider to use the <A href="https://registry.terraform.io/providers/SAP/btp/latest/docs" target="_blank" rel="noopener nofollow noreferrer">Terraform Provider for SAP BTP</A> to automate provisioning, management and configuration of resources on SAP BTP.</P><P> </P><H2 id="toc-hId-11004704">Summary</H2><P>SAP BTP offers a low-entry approach to verify the value a more agile development process can bring - also for your SAP applications. It does comprise highly-integrated DevOps services along the complete lifecycle - from CI/CD to development, delivery and operations, with a smooth integration option into SAP Cloud ALM, as SAP's strategic operations and central observability platform. SAP Cloud ALM allows the central operation of your holistic business scenarios spanning several environments. If<SPAN> you should have special needs or third-party frameworks already in use around DevOps, benefit from open APIs of the DevOps services of SAP BTP and of SAP Cloud ALM.</SPAN></P><P>If you want to learn more, check out the information from <SPAN>the </SPAN><SPAN><A href="https://community.sap.com/topics/devops" target="_blank">DevOps | SAP Community</A></SPAN><SPAN> topic page and</SPAN> consider to take the learning journey <A title="Discovering DevOps with SAP BTP learning journey" href="https://learning.sap.com/learning-journey/discovering-devops-with-sap-btp" target="_blank" rel="noopener noreferrer">Discovering DevOps with SAP BTP</A><SPAN>. If you want to try it out, all DevOps services are part of SAP BTP free tier, so the above setup can be experienced without charge. Otherwise, SAP Build Code is a good starting point as well, as it does comprise most of the DevOps-related SAP BTP services.</SPAN></P>2024-05-06T14:26:48.640000+02:00https://community.sap.com/t5/technology-blog-posts-by-members/configuring-sap-ci-cd-pipeline-for-deploying-reactjs-application-in-cloud/ba-p/13692318Configuring SAP CI/CD pipeline for Deploying ReactJS application in Cloud Foundry2024-05-07T09:59:07.961000+02:00Nivedha_Thttps://community.sap.com/t5/user/viewprofilepage/user-id/1443428<P><SPAN>In this blog, we will discuss how to integrate SAP CI/CD pipeline for deploying ReactJS application on SAP Cloud Foundry environment.</SPAN></P><P><STRONG>You will learn,</STRONG></P><UL><LI>How to create and build a ReactJS application.</LI><LI>How to configure and run SAP CI/CD Pipeline service.</LI><LI>How to create GitHub Webhook for automatically build, test and deploying the code changes.</LI></UL><P><STRONG>Prerequisites</STRONG></P><UL><LI>You have an SAP BTP Global or trial account.</LI><LI>Node installed in your system.</LI><LI>You have a GitHub account.</LI></UL><P><STRONG>Setting up React Application</STRONG></P><P><STRONG>step 1: </STRONG>Create your react application using the <STRONG>create-react-app</STRONG>. The create-react-app is an excellent tool which allows you to create and run React project very quickly by wrapping all the required dependencies.</P><P> </P><pre class="lia-code-sample language-bash"><code>npx create-react-app reactcicd</code></pre><P> </P><P><STRONG>step 2: </STRONG>To ensure that the application is running as expected, open the terminal and navigate to the application folder and type the below command. The application gets automatically hosted in the default server localhost:3000 and you’ll get the following screen.</P><P> </P><pre class="lia-code-sample language-bash"><code>npm start</code></pre><P> </P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Nivedha_T_0-1714980501769.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/106102i5AB94CF66B6D0585/image-size/medium?v=v2&px=400" role="button" title="Nivedha_T_0-1714980501769.png" alt="Nivedha_T_0-1714980501769.png" /></span></P><P><STRONG>step 3: </STRONG><SPAN> </SPAN>Now create<SPAN> </SPAN><STRONG>manifest.yml</STRONG><SPAN> </SPAN>file for determining the Cloud Foundry app configurations and paste the below contents.</P><P> </P><pre class="lia-code-sample language-bash"><code> ---
applications:
- name: your-app-name
path: build/
instances: 1
buildpack: https://github.com/cloudfoundry/staticfile-buildpack.git
memory: 256M</code></pre><P> </P><P> <STRONG>step 4: </STRONG>Build the application using the below command, you will see the build folder getting added to your project. </P><P> </P><pre class="lia-code-sample language-bash"><code>npm run build</code></pre><P> </P><P> Also create a<SPAN> <STRONG>Staticfile </STRONG>with the following content in the build folder as shown below</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Nivedha_T_1-1714980671736.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/106107i65AF153FB2EB646A/image-size/medium?v=v2&px=400" role="button" title="Nivedha_T_1-1714980671736.png" alt="Nivedha_T_1-1714980671736.png" /></span></P><P><STRONG>step 5: </STRONG>Now create a repository in your GitHub and push the changes. Make sure to remove build folder from the<SPAN> </SPAN><STRONG>gitignore</STRONG><SPAN> </SPAN>file since it is added default while creating the react project, we require it for deployment. For more details on how to deploy react application refer this link <A href="https://community.sap.com/t5/technology-blogs-by-sap/deploy-your-reactjs-application-in-cloud-foundry/ba-p/13464100" target="_blank">react-CF-deploy</A></P><P> </P><P><STRONG>Enable SAP Continuous integration and Delivery Service</STRONG></P><P><STRONG>step 1: </STRONG>Login into SAP BTP Cockpit and choose the subaccount to which you want to deploy your application.</P><P><STRONG>step 2: </STRONG>Select Service Marketplace from the side pane and search for Continuous Integration and Delivery service. Click the create button.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Nivedha_T_2-1714980874176.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/106111i9D35AD0ECC3EFCE5/image-size/medium?v=v2&px=400" role="button" title="Nivedha_T_2-1714980874176.png" alt="Nivedha_T_2-1714980874176.png" /></span></P><P><STRONG>step 3: </STRONG>Create popup will appear then choose the plan you want to and click create button at the bottom. Choose View Subscription and wait until the status changes to Subscribed.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Nivedha_T_3-1714980898759.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/106112i397B4F5AAEDA52F7/image-size/medium?v=v2&px=400" role="button" title="Nivedha_T_3-1714980898759.png" alt="Nivedha_T_3-1714980898759.png" /></span></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Nivedha_T_4-1714980898775.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/106113i30606F8B3B768430/image-size/medium?v=v2&px=400" role="button" title="Nivedha_T_4-1714980898775.png" alt="Nivedha_T_4-1714980898775.png" /></span></P><P><STRONG>step 4: </STRONG>Once the status is changed to subscribed navigate to<SPAN> </SPAN><STRONG>Security → Role Collections</STRONG><SPAN> </SPAN>from the left-hand pane. Choose role collection<SPAN> </SPAN><STRONG>CICD Service Administrator</STRONG><SPAN> </SPAN>and click edit.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Nivedha_T_5-1714980933234.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/106114i8BECA5B62510FD65/image-size/medium?v=v2&px=400" role="button" title="Nivedha_T_5-1714980933234.png" alt="Nivedha_T_5-1714980933234.png" /></span></P><P><STRONG>step 5: </STRONG>Navigate to users section click edit then Add a new row <SPAN>in the Users section table, enter your user id, Keep the identity provider as default and click save.</SPAN></P><P> </P><P><STRONG>Configure your credentials</STRONG></P><P><STRONG>step 1:<SPAN> </SPAN></STRONG>Go to<SPAN> </SPAN><STRONG>Services → Instances and Subscriptions</STRONG> from the pane. Choose the application icon located next to the Continuous Integration & Delivery subscription. Now we need to add credentials for GitHub, CF and Webhook.</P><P><STRONG>step 2: </STRONG>Let’s first go with GitHub credentials. If your GitHub repository is private, you will need to provide with the necessary credentials to access it. You can skip this in case of public repository.</P><P><STRONG>step 3: </STRONG>In Create Credentials popup make sure you give unique name within the subaccount. Select the type as basic authentication and provide your git credentials. Use<SPAN> </SPAN><STRONG>personal access token</STRONG><SPAN> </SPAN>as a password. Then choose create.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Nivedha_T_8-1714981085288.png" style="width: 274px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/106121i45FB7B7F5CD360CC/image-dimensions/274x335?v=v2" width="274" height="335" role="button" title="Nivedha_T_8-1714981085288.png" alt="Nivedha_T_8-1714981085288.png" /></span></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Nivedha_T_9-1714981085304.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/106122iACA724E2C111F465/image-size/medium?v=v2&px=400" role="button" title="Nivedha_T_9-1714981085304.png" alt="Nivedha_T_9-1714981085304.png" /></span></P><P><STRONG>step 4: </STRONG>Now repeat the same steps for adding CF credentials. Here you have to provide your SAP BTP cockpit username and password.</P><P><STRONG>step 5: </STRONG>For configuring webhook credentials change the type from Basic Authentication to<SPAN> </SPAN><STRONG>Webhook Secret</STRONG>. Then generate the webhook secret copy it somewhere safe and finally choose Create.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Nivedha_T_10-1714981130073.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/106123i8044A5F853431BF5/image-size/medium?v=v2&px=400" role="button" title="Nivedha_T_10-1714981130073.png" alt="Nivedha_T_10-1714981130073.png" /></span></P><P> </P><P> <STRONG>Add a CI/CD job</STRONG></P><P><STRONG>step 1: </STRONG>Navigate to the Jobs tab and choose the icon to add a new job. Provide unique name for the job.</P><P><STRONG>step 2: </STRONG>Click on the icon inside the Repository input field. You will get a popup then choose add repository., Enter your git repository clone URL. You can add any name of your choice. It need not to be matched with your repo. Choose your saved credentials for git and webhook.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Nivedha_T_11-1714981173201.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/106126i2F2B4F0BC69988FE/image-size/medium?v=v2&px=400" role="button" title="Nivedha_T_11-1714981173201.png" alt="Nivedha_T_11-1714981173201.png" /></span></P><P><STRONG>step 3: </STRONG>For Branch, enter the GitHub branch of your repository from which you want to receive push events. In this example, master. Select Cloud Foundry Environment from the dropdown in the Pipeline field.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Nivedha_T_12-1714981202052.png" style="width: 231px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/106129i5C9A8B7C46CC1B2F/image-dimensions/231x333?v=v2" width="231" height="333" role="button" title="Nivedha_T_12-1714981202052.png" alt="Nivedha_T_12-1714981202052.png" /></span></P><P><STRONG>step 4: </STRONG>In the BUILD section choose <STRONG>npm</STRONG> as your build tool. For Build Tool Version, select the latest node version.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Nivedha_T_13-1714981258865.png" style="width: 230px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/106131iD237EABD621B572D/image-dimensions/230x276?v=v2" width="230" height="276" role="button" title="Nivedha_T_13-1714981258865.png" alt="Nivedha_T_13-1714981258865.png" /></span></P><P><STRONG>step 5: </STRONG>Under the Release section, switch on the execution of the Deploy to Cloud Foundry Space. Since we have already given name in the manifest file, we can skip the name field. </P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Nivedha_T_14-1714981258886.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/106130i8F134CBD4894D948/image-size/medium?v=v2&px=400" role="button" title="Nivedha_T_14-1714981258886.png" alt="Nivedha_T_14-1714981258886.png" /></span></P><P>Replace the placeholders<SPAN> </SPAN><STRONG>API</STRONG><SPAN> </SPAN><STRONG>Endpoint</STRONG>,<SPAN> </SPAN><STRONG>Org Name</STRONG><SPAN> </SPAN>and<SPAN> </SPAN><STRONG>Space</STRONG><SPAN> </SPAN>with the values in the Cloud Foundry environment to which you want to deploy. You can get the values from your subaccount overview in the SAP BTP cockpit.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Nivedha_T_15-1714981259131.png" style="width: 448px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/106133iD8DDBAE76DEC1B67/image-dimensions/448x179?v=v2" width="448" height="179" role="button" title="Nivedha_T_15-1714981259131.png" alt="Nivedha_T_15-1714981259131.png" /></span></P><P><STRONG>step 6: </STRONG>For Deploy Type, choose standard and select your previously created CF credentials. Leave remaining fields default then finally choose create.</P><P> </P><P><STRONG>Create a GitHub Webhook</STRONG></P><P>GitHub webhooks allow you to automate CI/CD builds. Whenever you push changes to your GitHub repository, a webhook push event is sent to the service to trigger a build of the connected job.</P><P><STRONG>step 1: </STRONG>To create a webhook in GitHub, you need payload URL. Select your repository and choose Webhook Data from the right pane. You will see a below popup:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Nivedha_T_16-1714981344476.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/106136i5972BD058A1C2C70/image-size/medium?v=v2&px=400" role="button" title="Nivedha_T_16-1714981344476.png" alt="Nivedha_T_16-1714981344476.png" /></span></P><P><STRONG>step 2: </STRONG>Now sign in into your GitHub account. In your project, go to the Settings tab.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Nivedha_T_17-1714981371239.png" style="width: 414px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/106137i26BBC09733BEFD59/image-dimensions/414x176?v=v2" width="414" height="176" role="button" title="Nivedha_T_17-1714981371239.png" alt="Nivedha_T_17-1714981371239.png" /></span></P><P><STRONG>step 3: </STRONG>From the left pane, choose Webhooks then Add webhook. Enter the Payload URL, Content type from the popup and the Secret that you had saved previously. For all other settings, leave the default values and add.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Nivedha_T_18-1714981371260.png" style="width: 418px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/106138iE1AFAD5DC98A2905/image-dimensions/418x203?v=v2" width="418" height="203" role="button" title="Nivedha_T_18-1714981371260.png" alt="Nivedha_T_18-1714981371260.png" /></span></P><P> </P><P><STRONG>Verify your Build</STRONG></P><P>You have to trigger your job manually the first time after creation.</P><P><STRONG>step 1: </STRONG>In Jobs tab, select your job and choose Run. Verify that a new tile appears in the Builds view. This tile should be marked as running.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Nivedha_T_19-1714981408610.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/106139i842382DFCFBFB9E4/image-size/medium?v=v2&px=400" role="button" title="Nivedha_T_19-1714981408610.png" alt="Nivedha_T_19-1714981408610.png" /></span></P><P><STRONG>step 2: </STRONG>Wait until the job has finished and verify that the build tile is marked as successful.</P><P><STRONG>step 3: </STRONG>Navigate to your space in the SAP BTP cockpit and check the list of installed applications. Now you can see your application got added. </P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Nivedha_T_20-1714981431389.png" style="width: 502px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/106140i26C4A503E284121C/image-dimensions/502x166?v=v2" width="502" height="166" role="button" title="Nivedha_T_20-1714981431389.png" alt="Nivedha_T_20-1714981431389.png" /></span></P><P><STRONG>step 4: </STRONG>Select your application and launch it with the application route. You can see the react application deployed. </P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Nivedha_T_21-1714981464703.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/106141i23A2E344C33B413E/image-size/medium?v=v2&px=400" role="button" title="Nivedha_T_21-1714981464703.png" alt="Nivedha_T_21-1714981464703.png" /></span></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Nivedha_T_22-1714981464718.png" style="width: 261px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/106142iA7CA9286785DCDED/image-dimensions/261x286?v=v2" width="261" height="286" role="button" title="Nivedha_T_22-1714981464718.png" alt="Nivedha_T_22-1714981464718.png" /></span></P><P>You have now successfully created a CI/CD pipeline and deployed your ReactJS application to SAP BTP. From now on for every commit you can see the job getting triggered with commit id displayed under builds section.</P>2024-05-07T09:59:07.961000+02:00https://community.sap.com/t5/enterprise-architecture-blog-posts/transform-your-teams-to-a-scaled-agile-devsecops-factory-to-deliver-clean/ba-p/13739410Transform Your Teams to a Scaled Agile DevSecOps Factory to Deliver Clean Core Architecture2024-06-26T16:07:47.616000+02:00TrijoySaikiahttps://community.sap.com/t5/user/viewprofilepage/user-id/1433645<P class="lia-align-justify" style="text-align : justify;">Let us begin by defining the<SPAN> </SPAN><STRONG>vision statement</STRONG> for a Delivery Team when we have to adapt Clean Core:</P><P class="lia-align-justify" style="text-align : justify;">Application Delivery Teams will deliver an<SPAN> </SPAN><SPAN><STRONG>industrialized</STRONG></SPAN><SPAN> </SPAN>way for the realization of custom development for ERP Digital Core and surrounding Ecosystems in a<SPAN> </SPAN><SPAN><STRONG>repeatable</STRONG></SPAN><SPAN> </SPAN>and<SPAN> </SPAN><SPAN><STRONG>cost-effective</STRONG></SPAN><SPAN> </SPAN>way, maintaining<SPAN> </SPAN><SPAN><STRONG>quality</STRONG></SPAN><SPAN> </SPAN>and<SPAN> <STRONG>clean core </STRONG></SPAN><SPAN><STRONG>integrability</STRONG></SPAN>.</P><P class="lia-align-justify" style="text-align : justify;">To analyze this our scope of service for this article will look into how technical work is delivered in the<SPAN> </SPAN><SPAN><STRONG>Build phase</STRONG></SPAN><SPAN> </SPAN>in a System Integration and Application Development Project. We will leverage a factory model for delivering such work.</P><P class="lia-align-justify" style="text-align : justify;"> </P><H3 id="toc-hId-1146751799">Defining the Scope</H3><P class="lia-align-justify" style="text-align : justify;">List your capabilities. Look at your historical data. Pick up multiple sample projects that are successfully delivered. Break up the project cycle into individual phases. Map people and skills that were mapped in each phase. This will identify the capabilities. Map capabilities in 2 Dimensional metrics of usage adaptation and impact. All that is<SPAN> </SPAN><SPAN>P1</SPAN> and<SPAN> </SPAN><SPAN>P2</SPAN><SPAN> </SPAN>are candidates for adaptation as Capability Towers.<SPAN> </SPAN><SPAN>P1</SPAN><SPAN> </SPAN>is the priority on which the pilot phase will be executed. Capabilities <SPAN>P3</SPAN> are sparingly used and sometimes specialized skills. They are not a good fit for being treated as an independent Capability Tower, but to be considered as Subject Matter Expert (SME) pool. Capability Tower work as a factory, equipped with multiple hands of similar skills. They will be the factory. Their deployment to<SPAN> </SPAN><I><STRONG>Epic</STRONG></I><SPAN> </SPAN>is decided by demand forecast. Capability Towers will carry utilization targets. Each Capability Tower will have a Capability Leader who is responsible for Capability and Capacity functions. SME’s are investments and thus preferably multi-skilled and deployed on requisition. They are special forces para dropped into a<SPAN> </SPAN><I><STRONG>Story</STRONG></I><SPAN> </SPAN>for specific purposes. The delivery factory ecosystem is led by a Service Delivery Manager (SDM).</P><P> </P><TABLE border="true"><TBODY><TR><TD width="25%"><SPAN>Usage<STRONG>↓</STRONG></SPAN><SPAN> </SPAN><SPAN>Impact<STRONG>→</STRONG></SPAN></TD><TD width="25%"><SPAN>HIGH</SPAN></TD><TD width="25%"><SPAN>MODERATE</SPAN></TD><TD width="25%"><SPAN>LOW</SPAN></TD></TR><TR><TD><SPAN>HIGH</SPAN></TD><TD>P1</TD><TD>P2</TD><TD>P2</TD></TR><TR><TD><SPAN>MODERATE</SPAN></TD><TD>P2</TD><TD>P2</TD><TD>P3</TD></TR><TR><TD><SPAN>LOW</SPAN></TD><TD>P2</TD><TD>P3</TD><TD>P3</TD></TR></TBODY></TABLE><P class="lia-align-center" style="text-align: center;"><SPAN>Metrics to Prioritize Capability Tower Investments</SPAN></P><H3 id="toc-hId-950238294">Prioritize Capabilities</H3><P class="lia-align-justify" style="text-align : justify;">It is important to test that a factory-style model will work for your organization. We need to test it through a pilot. This needs us to prioritize one capability area to invest in. A big bang adaptation of all capabilities is generally too fast a change, which fails, as there is too much inertia to traverse. It is better to start small, bite-size, through a pilot factory adaptation. Start where you have high usage adaptation and high impact. A selection of high-impact scope is important to stress-test the tools, processes, and change management. One should thus do this pilot with P1 capabilities. It is too critical an impact to fail, and if this model is to fail, let's fail early. Once the pilot capability factory is up and running, other P2 capabilities can follow the model swiftly. For most software-related programs, code development is the capability that is most used and has the highest impact. But this is not a rule.</P><P class="lia-align-justify" style="text-align : justify;"> </P><H3 id="toc-hId-753724789">Process Adaptation</H3><P class="lia-align-justify" style="text-align : justify;">Let us assume the code development factory as an example to understand the process adaptation. The requirements will be for multiple programs, that will come all together or spread out over time. Each requirement is captured into<SPAN> </SPAN><I><STRONG>Epic</STRONG></I>. The factory architects will work on defining the<SPAN> </SPAN><I>F<STRONG>eatures</STRONG></I><SPAN> </SPAN>and<SPAN> </SPAN><I><STRONG>Stories</STRONG></I><SPAN> </SPAN>and defining the<SPAN> </SPAN><STRONG><I>Backlog</I></STRONG>. The development team will work on the<SPAN> </SPAN><I>S</I><STRONG><I>print</I></STRONG>, do unit testing, and send integration tests to the Quality system. Once the System integration test is done for the configurable item, a customer demo will be done. A story will be sent to a user acceptance and planned for release or deployment. The<SPAN> </SPAN><STRONG><I>defect management</I></STRONG>,<SPAN> </SPAN><STRONG><I>backlog</I></STRONG>,<SPAN> </SPAN><I><STRONG>debt</STRONG></I>, and<SPAN> </SPAN><STRONG><I>burndown</I></STRONG><SPAN> </SPAN>will need to be done by a tool. A developer focuses on developing the enhancements or features while the tester will do an integration test. Deployments in ERP estates are done by cutover go-lives. The project ends with a transition to support the team in operations.<SPAN> </SPAN><STRONG><I>Knowledge management</I></STRONG><SPAN> </SPAN>is going to be the key, where assets are harvested and estimates are improved. The below diagram pictorially represents this idea.</P><P class="lia-align-center" style="text-align: center;"><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Agile Delivery Factory Flow.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/127127iC9210508F7B8F07B/image-size/large?v=v2&px=999" role="button" title="Agile Delivery Factory Flow.png" alt="Agile Delivery Factory Flow.png" /></span><SPAN>Agile Factory Delivery Flow</SPAN></P><P class="lia-align-justify" style="text-align : justify;"> </P><H3 id="toc-hId-557211284">Defining the Scope</H3><DIV><DIV><DIV class=""><DIV class="">Continuing with the code development capability, we see that this capability gets engaged in various kinds of activities. Listing some of them would be as below.</DIV><DIV class="">• Configuration</DIV><DIV class="">• Documenting the solution, including business process models</DIV><DIV class="">• System change management and transport management</DIV><DIV class="">• Data loads and data migration</DIV><DIV class="">• Testing</DIV><DIV class="">• Delivery of training and enablement</DIV><DIV class="">• Managing the project work</DIV><DIV class="">• Extending the solution</DIV><DIV class="">• Integration</DIV><DIV class=""> </DIV><DIV class="">Again, going by the way to address it, we need to break each activity down to its individual artifacts. This will help prioritize the adaptation. For a large team, this exercise will help. The priority action is the minimum the team should start with and then go to the follow-up activities. The chart below is representational of one such assessment. Every scope assessment story will be unique to its organization. </DIV><DIV class=""> </DIV><DIV class=""><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Scope.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/127128i67FBF6ACC1588D1E/image-size/large?v=v2&px=999" role="button" title="Scope.png" alt="Scope.png" /></span><P class="lia-align-center" style="text-align: center;"> <SPAN>Representation of Capability Scope Assessment</SPAN></P><P class="lia-align-center" style="text-align: center;"> </P></DIV><DIV class=""><H3 id="toc-hId-360697779">Qualification of Factory Work Package</H3><DIV class="lia-align-justify" style="text-align : justify;">Eventually, everything in the organization that needs to be built through the Application Development team needs to go through the factory. But till then, when we are in transition (that could take me many months to stabilize), we need to have a mechanism that stands in as a gatekeeper. This workaround is called Solution-led Due Diligence. </DIV><DIV class="lia-align-justify" style="text-align : justify;"> </DIV><DIV class="lia-align-justify" style="text-align : justify;"><STRONG><SPAN>Solution-led Due Diligence</SPAN></STRONG><SPAN> </SPAN>will determine and qualify the work package that will be delivered by the<SPAN> </SPAN><STRONG><SPAN>Factory-led Delivery</SPAN></STRONG><SPAN> </SPAN>team. A factory-assigned<SPAN> </SPAN><STRONG>architect</STRONG><SPAN> </SPAN>will need to be part of the diligence team. The diligence exercise will be signed off by the<SPAN> </SPAN><STRONG>service</STRONG> <STRONG>delivery manager</STRONG><SPAN> </SPAN>of the factory. The factory will define the input and exit criteria at every phase, adapt the factory tool chain and conduct quality gates. </DIV><DIV class="lia-align-justify" style="text-align : justify;"> </DIV><DIV class="lia-align-justify" style="text-align : justify;"><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Qualification.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/127129iFB63E77B7D182725/image-size/large?v=v2&px=999" role="button" title="Qualification.png" alt="Qualification.png" /></span><P class="lia-align-center" style="text-align: center;"><SPAN>Solution-Led Diligence Approach</SPAN> </P><P class="lia-align-center" style="text-align: center;"> </P></DIV><DIV><H3 id="toc-hId-164184274">Deployment of Virtual Squads</H3><DIV class="lia-align-justify" style="text-align : justify;">Factory<SPAN> </SPAN><STRONG>PMO</STRONG><SPAN> </SPAN>will deploy virtual squads comprising of a<SPAN> </SPAN><STRONG>manager</STRONG>,<SPAN> </SPAN><STRONG>architect</STRONG>,<SPAN> </SPAN><STRONG>subject expert</STRONG>,<SPAN> </SPAN><STRONG>developer</STRONG>, and<SPAN> </SPAN><STRONG>testers</STRONG>. The factory will maintain a team based on capabilities towers. Monitoring and measurement of backlog and debt will be done by the<SPAN> </SPAN><STRONG>project manager</STRONG><SPAN> </SPAN>assigned for the engagement. </DIV><DIV class="lia-align-justify" style="text-align : justify;"> </DIV><DIV class="lia-align-justify" style="text-align : justify;">Demand forecasting would be done and capabilities towers will staff up for it. Resource utilization will be the key measure and job scheduling will be managed centrally. a<SPAN> </SPAN><STRONG>program management offic</STRONG>e will be there to support the team in operations, monitor, measure, and manage.</DIV><DIV class="lia-align-justify" style="text-align : justify;"> </DIV><DIV class="lia-align-justify" style="text-align : justify;"><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="SQUAD.png" style="width: 640px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/127131iB14498B76E3E7FFA/image-size/large?v=v2&px=999" role="button" title="SQUAD.png" alt="SQUAD.png" /></span><P class="lia-align-center" style="text-align: center;"><SPAN>Applications Development Factory Organizational Structure with Virtual SQUADS</SPAN> </P><P class="lia-align-center" style="text-align: center;"> </P></DIV><DIV><H4 id="toc-hId-96753488">Application Development Factory Roles</H4><DIV class="lia-align-justify" style="text-align : justify;">Find below an indicative table with various roles in the application development factory and their responsibilities.</DIV><DIV class="lia-align-justify" style="text-align : justify;"> </DIV><DIV class="lia-align-justify" style="text-align : justify;"><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Capability_Roles.png" style="width: 640px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/127132i4F542FA414F19585/image-size/large?v=v2&px=999" role="button" title="Capability_Roles.png" alt="Capability_Roles.png" /></span><P class="lia-align-center" style="text-align: center;"> <SPAN>Factory Roles and Responsibilities</SPAN></P></DIV><DIV><H3 id="toc-hId--228842736"> </H3><H3 id="toc-hId--425356241">Conclusion</H3><DIV class="lia-align-justify" style="text-align : justify;">The constituents of what make any Application Delivery team are Process, People, and Tools. Traditionally we have a project staffed up to meet the purpose and the program management office is focused on the net outcome. We overlook or do not prioritize the right kind of focus on the utilization of our investments, be it people or tools. Over time this customization becomes legacy, too complicated, and gathers lathery. To address the needs of 21st Century IT, we need an<SPAN> </SPAN><A href="https://devops21ce.blogspot.com/2017/05/devops-value-chain-for-sap-estate.html" target="_blank" rel="noopener nofollow noreferrer">Omni Speed IT</A>.</DIV><DIV class="lia-align-justify" style="text-align : justify;"> </DIV><DIV><DIV class="lia-align-justify" style="text-align : justify;">People bring in business knowledge, skill, and continuity to a program. No process can replace all people. While we can automate, shift left, and fail early, people are still pivotal to any execution. Talent is also a huge cost. And over time their fullest utilization can speed up value realization many times over.</DIV><DIV class="lia-align-justify" style="text-align : justify;"> </DIV><DIV class="lia-align-justify" style="text-align : justify;"><A href="https://devops21ce.blogspot.com/2021/06/SAPDevSecOps.html" target="_blank" rel="noopener nofollow noreferrer">Tools are the foundation</A><SPAN> </SPAN>of any project team. They are also easiest to manage as tools OEM keeps pace with delivery methodology. Its adaptation in the organization is about tailoring or configuring it to the delivery process. This is not a big challenge. Its adoption and successful usage determine its success. </DIV><DIV class="lia-align-justify" style="text-align : justify;"> </DIV><DIV class="lia-align-justify" style="text-align : justify;">Process changes are the most difficult. While one can adapt to the change in the delivery unit, its adoption is not always up to our desired outcome. Thus, we will look into how we can redesign the process. Here we studied a typical agile delivery process, and how we adapt our application development teams to it at scale.</DIV><DIV class="lia-align-justify" style="text-align : justify;"> </DIV><DIV class="lia-align-justify" style="text-align : justify;"><SPAN>By embracing the SAP Clean Core design principle, organisations can achieve a more agile, maintainable, and cost-effective SAP landscape, ensuring long-term success and adaptability in a rapidly changing business environment. You would need a trusted partner, a system integrator, who can service you in each of these discussed areas. Click on the link to know more about </SPAN><A class="" href="https://www.sap.com/india/documents/2023/05/5cfc89ba-707e-0010-bca6-c68f7e60039b.html" target="_self" rel="noopener noreferrer">SAP Clean Core Strategy</A><SPAN>.</SPAN></DIV></DIV></DIV></DIV></DIV></DIV></DIV></DIV></DIV>2024-06-26T16:07:47.616000+02:00https://community.sap.com/t5/enterprise-resource-planning-blog-posts-by-sap/sap-s-4hana-cloud-test-automation-tool-in-sap-s-4hana-cloud-public-edition/ba-p/13774985SAP S/4HANA Cloud Test Automation Tool in SAP S/4HANA Cloud Public Edition 24082024-08-02T07:46:44.597000+02:00Anurag_Nayakhttps://community.sap.com/t5/user/viewprofilepage/user-id/19436<P>A major theme for the SAP S/4HANA Cloud Test Automation Tool Public Edition, over the past year, was to enable customers to do automation testing for all the extensions they build as part of the SAP S/4HANA Public Cloud Implementation. With the 2408 release we complete this arc of development. </P><H3 id="toc-hId-1150301955"><BR />Support for Custom API</H3><P>Starting with the 2408 release, custom API’s created as part of Key User Extensibility and Developer Extensibility(Embedded Steampunk) facets of SAP S/4HANA Cloud can also be tested in the Test Automation Tool. </P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Custom API Support in API Automation Framework" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/144195i9305048FAC737EC9/image-size/large?v=v2&px=999" role="button" title="Custom API Support.jpg" alt="Custom API Support in API Automation Framework" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Custom API Support in API Automation Framework</span></span></P><P>This feature enables our end users to cover even custom API's created via extensions. The process is similar to the way we create SOAP and OData API's we create from the SAP Business Accelerator Hub. Communication arrangement and user created for the API can be re-used in the tool as well.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-right" image-alt="ABAP Units Dashboard Tile in AATR" style="width: 209px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/145414i6DBAC246F17AD212/image-dimensions/209x318?v=v2" width="209" height="318" role="button" title="ABAP Unit for PUT Dashboard.jpg" alt="ABAP Units Dashboard Tile in AATR" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">ABAP Units Dashboard Tile in AATR</span></span></P><H3 id="toc-hId-953788450">ABAP Units Dashboard for PUT Executions</H3><P>2402 release enabled customers to add ABAP Units to Post Upgrade Tests(PUT) as well. While in the previous release the only way to access the results were through the "Track PUT Results" pop-up immediately after the PUT run, we now persist the data in the ABAP Units dashboard created specifically for PUT executions in 3SL systems. </P><P>The results now can be accessed in the Analyse Automated Test Results(AATR) applications, details about the error reason, and coverage statistics from ABAP Development Tool(ADT) is provided. </P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="ABAP Units Detail View" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/145416i754A973B5360DD67/image-size/large?v=v2&px=999" role="button" title="ABAP Unit Details.jpg" alt="ABAP Units Detail View" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">ABAP Units Detail View</span></span></P><H3 id="toc-hId-757274945">Additional Innovations</H3><UL><LI>Enhanced Auto-binding for Test Data Container(TDC)<BR />The auto-binding feature is enhanced, to utilize additional intelligence available from the Object Repository(OR), to match fields even when they do not have an exact text match. Maintenance and setting up of TDC is further simplified with this approach</LI><LI>Intelligent Test Scoper (i-TS) Advanced Filtering<BR />i-TS application filters can now be used to further refine optimized scope and create Execution Variants in the Manage Upgrade Tests(MUT) application. Optimized scope can be defined based on Application Area (Finance, Sales etc.) or even Scope Item (BDG, BD9, J11 etc.) and selected for Post Upgrade Test(PUT) execution.<BR /><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Intelligent Test Scoper(i-TS) Application" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/55537i6174F5A3D47B847A/image-size/large?v=v2&px=999" role="button" title="iTS.jpg" alt="Intelligent Test Scoper(i-TS) Application" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Intelligent Test Scoper(i-TS) Application</span></span><P> </P></LI><LI>Intelligent Test Scoper (i-TS) Scope Efficiency Indicator<BR />The scope efficiency gained with each update or upgrade can be seen using the "View Scope Efficiency" button in the application. </LI></UL><H3 id="toc-hId-560761440"><STRONG>SAP Delivered Standard Automates</STRONG></H3><P>The total list of SAP delivered automated test scripts are 443 for 2408 and can be accessed via link –<SPAN> </SPAN><A href="https://support.sap.com/content/dam/SAAP/SAP_Activate/S4H_640%20Automated%20Test%20Scripts%20Index.xlsx" target="_blank" rel="noopener noreferrer">Automated Test Scripts Index</A>”. This includes 27 new scope items which were added this release, detail below:<BR /><BR /></P><PRE><STRONG>R&D/Engineering : <BR /></STRONG>Authoring of Product Compliance Documents <STRONG>(7DO)</STRONG></PRE><PRE><STRONG>Retail :<BR /></STRONG>Product Taxonomy Management <STRONG>(5FJ), </STRONG>Inbound Processing Distribution Center <STRONG>(5FU), <BR /></STRONG>Outbound Processing Distribution Center <STRONG>(5FV), </STRONG>Replenishment Planning - Store <STRONG>(3I7), <BR /></STRONG>Replenishment Planning - Distribution Center <STRONG>(3I8), </STRONG>Location Management <STRONG>(3I3), <BR /></STRONG>Empties Management / Processing <STRONG>(5FK), </STRONG>Retail Logistics with Embedded Warehouse Management <STRONG>(69L), <BR /></STRONG>Seasons for Retail <STRONG>(6DI), </STRONG>Merchandise Distribution and Collective Purchase order <STRONG>(71O), <BR /></STRONG>Assortments<STRONG> (3I5)</STRONG></PRE><P>Further detailed change information about the standard automate is available in the “<A href="https://support.sap.com/content/dam/SAAP/SAP_Activate/S4H_667%20Automated%20Test%20Scripts%20Change%20History.xlsx" target="_blank" rel="noopener noreferrer">Automated Test Script Change History</A>” and “<A href="https://support.sap.com/content/dam/SAAP/SAP_Activate/S4H_606%20Test%20Script%20Release%20Change%20Information.xlsx" target="_blank" rel="noopener noreferrer">Test Script Release Change Information</A>”.</P><P class="lia-align-center" style="text-align: center;"><STRONG>Important Links and Updates</STRONG></P><P>We have created a <A href="https://accounts.sap.com/saml2/idp/sso?sp=https://www.successfactors.eu/learninghub&RelayState=%2Fsf%2Flearning%3FdestUrl%3Dhttps%253a%252f%252fsaplearninghub%252eplateau%252ecom%252flearning%252fuser%252fdeeplink%255fredirect%252ejsp%253flinkId%253dCATALOG%255fSEARCH%2526sbArSel%253d%2526keywords%253dSUP_ELE_5640_2402%2526selKeyWordHeader%253dSUP_ELE_5640_2402%2526catSel%253d%2526srcSel%253dESAC%2526delMthSel%253d%2526ILDateFrm%253d%2526ILDateTo%253d%2526ILBlend%253d%2526ILSchd%253d%2526fromSF%253dY%26company%3Dlearninghub" target="_blank" rel="noopener noreferrer">new Learning Hub course</A> for an overview of the tool. This is a good starting point for anyone who is new to the tool, or want to get an overview of the new features we have added over the past couple of years. <FONT size="2"><I><SPAN>[Before you can access the link, a one-time registration in the SAP Learning Hub, edition for SAP Enterprise Support, is required. A detailed step-by-step guidance can be found</SPAN></I><I> </I><I><SPAN><A title="https://support.sap.com/en/offerings-programs/enterprise-support/enterprise-support-academy/learn.html" href="https://support.sap.com/en/offerings-programs/enterprise-support/enterprise-support-academy/learn.html" target="_blank" rel="noopener noreferrer">here]</A></SPAN></I></FONT></P><P>As part of our PUT 2.0 Enablement also we have created a set of short videos which cover the most important aspects of the process. The video playlist can be accessed<SPAN> </SPAN><A href="https://video.sap.com/playlist/dedicated/1_hq6vc3yd/" target="_blank" rel="noopener noreferrer">here</A>.</P><P>Links to other important blogs:</P><UL><LI><A href="https://community.sap.com/t5/technology-blogs-by-sap/how-to-get-started-with-the-test-automation-tool-for-sap-s-4hana-cloud/ba-p/13602137" target="_blank">How to get started with the Test Automation Tool for SAP S/4HANA Cloud Public Edition</A><SPAN> </SPAN></LI><LI><A title="2408 Release for SAP S/4HANA Cloud, Public Edition" href="https://community.sap.com/t5/enterprise-resource-planning-blogs-by-sap/highlights-of-the-sap-s-4hana-cloud-public-edition-2408-release/ba-p/13769906" target="_blank">Highlights of the SAP S/4HANA Cloud Public Edition 2408 Release</A><SPAN> </SPAN>by<SPAN> </SPAN><A href="https://community.sap.com/t5/user/viewprofilepage/user-id/8440" target="_blank">Bert Schulze</A></LI></UL><P>Please bookmark the <A href="https://community.sap.com/topics/s4hana-cloud/automation-testing" target="_blank">test automation community page</A> to keep up with the latest updates happening in the test automation space.</P><P>For more details on the functionality please refer the links below:</P><P class="lia-align-center" style="text-align: center;"><A title="Intelligent Test Scoper" href="https://help.sap.com/docs/SAP_S4HANA_CLOUD/d72d7bb74cf043a58474f0c2d76e857d/5d5d6bfa02c24adf8e12d272d93acaef.html?locale=en-US&version=2402.500" target="_self" rel="noopener noreferrer">Intelligent Test Scoper (i-TS)</A> <BR /><A href="https://help.sap.com/viewer/9f3351bbe2f04b42bb29f690886a6f54/latest/en-US/dd1dc59e34364a26b1c6183a1369612b.html" target="_blank" rel="noopener noreferrer">Manage Upgrade Tests </A><BR /><A href="https://help.sap.com/viewer/1e9ba004e0504506a135afda960e9495/latest/en-US/b076dd00e70b4b30b1c250be655d45d2.html" target="_blank" rel="noopener noreferrer">Manage Your Test Processes</A><BR /><A href="https://help.sap.com/viewer/2ab07d21f68c41109a2eef21b8fd8466/latest/en-US/ddd0a0cf45964225bff64c10e8de8e38.html" target="_blank" rel="noopener noreferrer">Test Your Processes</A><BR /><A href="https://help.sap.com/viewer/1c73afbf7d154fcf9b5ec127d1793ffa/latest/en-US/70e4bb5e3875480ea15a033d943e4ecf.html" target="_blank" rel="noopener noreferrer">Test Data Container</A><BR /><A href="https://help.sap.com/viewer/7ce8f79186e1445ab82e37439eba795c/latest/en-US/a4a4c6e62b894d5a88d0d8300620e278.html" target="_blank" rel="noopener noreferrer">Analyze Automated Test Results</A><BR /><A href="https://help.sap.com/viewer/2ab07d21f68c41109a2eef21b8fd8466/latest/en-US/5d867592753c465aadb81115de672f91.html#loiod3af90f0c9ec4e819bdd945f54ed9b72" target="_blank" rel="noopener noreferrer">Configure Conditional Authentication</A><BR />Also refer <A href="https://help.sap.com/viewer/2ab07d21f68c41109a2eef21b8fd8466/latest/en-US/acaf51440ec84e409895cd8cde9486cb.html?q=FAQ" target="_blank" rel="noopener noreferrer">FAQs</A></P><P>--------------------------------------------------------------------------------------------------------------------------------------------------</P><P>Don’t hesitate to leave a comment and check out our <SPAN><A href="https://pages.community.sap.com/topics/s4hana-cloud" target="_blank" rel="noopener noreferrer">community page</A></SPAN> to ask your questions and engage with the experts. Follow the <SPAN><A href="https://community.sap.com/t5/tag/PSCC_Enablement/tg-p/board-id/erp-blog-sap" target="_blank">PSCC_Enablement</A></SPAN> tag to stay up to date with our latest blog posts.</P><P>Follow us on <SPAN><A href="https://twitter.com/sap" target="_blank" rel="noopener nofollow noreferrer">@SAP</A></SPAN> and #S4HANA, and myself on <A href="https://www.linkedin.com/in/annayak/" target="_blank" rel="noopener nofollow noreferrer">LinkedIn</A>.</P><P><span class="lia-unicode-emoji" title=":film_projector:">📽</span>️ <STRONG>Watch the Replays of Our SAP S/4HANA Cloud Public Edition 2408 Early Release Series!</STRONG></P><P>From July 8 to July 12, we hosted a series of 20 compelling live sessions to highlight the exciting innovations shipped with the SAP S/4HANA Cloud Public Edition 2408 release. Missed the live sessions? We've got you covered! Take advantage of the entire series or pick and choose the sessions most relevant to you. You will find a 15-minute-long recording and a presentation for the topic of the SAP S/4HANA Cloud Test Automation Tool under the SAP Activate, SAP S/4HANA Cloud Test Automation Tool, and SAP Cloud ALM as well as 19 other topics of interest. Don't miss this chance and <SPAN><A href="https://community.sap.com/t5/enterprise-resource-planning-blogs-by-sap/watch-the-replays-of-our-exclusive-sap-s-4hana-cloud-public-edition-2408/ba-p/13757250" target="_blank">watch them on demand</A></SPAN>–anywhere, anytime.</P><P><span class="lia-unicode-emoji" title=":magnifying_glass_tilted_right:">🔎</span><STRONG>Find All of Our Assets</STRONG></P><P>SAP S/4HANA Cloud is the foundation of the intelligent, sustainable enterprise and is an innovative, robust, and scalable ERP. We at Cloud ERP Product Success and Cloud Co-Innovation offer a service as versatile as our product itself. Check out the numerous offerings our team has created for you below:</P><P class="lia-align-center" style="text-align: center;"><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Anurag_Nayak_0-1722574564123.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/145672i62E704E7FA45DF51/image-size/large?v=v2&px=999" role="button" title="Anurag_Nayak_0-1722574564123.png" alt="Anurag_Nayak_0-1722574564123.png" /></span></P>2024-08-02T07:46:44.597000+02:00https://community.sap.com/t5/technology-blog-posts-by-sap/release-navigator-for-sap-btp-what-s-new-in-q3-2024/ba-p/13856736Release Navigator for SAP BTP - What's New in Q3 20242024-09-11T12:33:46.687000+02:00chriskollhedhttps://community.sap.com/t5/user/viewprofilepage/user-id/6181<P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="01_Headline.png" style="width: 906px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/163272i0A3348DAAD0D8BBD/image-size/large?v=v2&px=999" role="button" title="01_Headline.png" alt="01_Headline.png" /></span></P><P><A href="https://readiness-at-scale.enable-now.cloud.sap/pub/20230621_ras/index.html?show=book!BO_EC8330B09B97CDBE&library=library.txt#slide!SL_120BDFE08096029D" target="_blank" rel="noopener nofollow noreferrer"><span class="lia-inline-image-display-wrapper lia-image-align-right" image-alt="What is the RN.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/163274i64F8FB786E0C928B/image-size/medium?v=v2&px=400" role="button" title="What is the RN.png" alt="What is the RN.png" /></span></A></P><P>The Release Navigator for SAP BTP is always evolving to better serve our customers. With the latest update in Q3 2024, in addition to quarterly content maintenance and a new product page we've made significant improvements to the user experience:</P><OL><LI>New Side Menu for improved page navigation</LI><LI>New UI Elements for additional context</LI><LI>New Search Feature </LI></OL><P>Read more about the details of these enhancements in this blog post.</P><P><A href="https://readiness-at-scale.enable-now.cloud.sap/pub/20230621_ras/index.html?show=book!BO_EC8330B09B97CDBE&library=library.txt#slide!SL_120BDFE08096029D" target="_blank" rel="noopener nofollow noreferrer"><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Access Button.png" style="width: 271px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/163331i438E75DD986C003E/image-size/large?v=v2&px=999" role="button" title="Access Button.png" alt="Access Button.png" /></span></A></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="03_New UX Features.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/163275i474DE9BAA1B6321B/image-size/large?v=v2&px=999" role="button" title="03_New UX Features.png" alt="03_New UX Features.png" /></span></P><P>This section details the new UX features added to the release navigator for SAP BTP.</P><H3 id="toc-hId-1177141570"><STRONG>New Side Menu for Easier Navigation</STRONG></H3><P>We've implemented a new side menu on every page of the release navigator to provide a more intuitive user experience. This menu allows easy navigation to the four new main pages of the release navigator:</P><OL><LI>Product Specific</LI><LI>General</LI><LI>Get Assistance</LI><LI>User Feedback</LI></OL><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Fig 1. The side menu on all new pages" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/163277i490EDC0C3860D7F6/image-size/large?v=v2&px=999" role="button" title="Image for Blog_all new pages.png" alt="Fig 1. The side menu on all new pages" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Fig 1. The side menu on all new pages</span></span></P><P>As a result, some content previously found on the Home page has been rearranged. Let’s walk through what you can find on each of the new pages.</P><H3 id="toc-hId-980628065"><STRONG>Product Specific Page</STRONG></H3><P>This page serves as the starting point for the release navigator and corresponds to the former Home page. It contains the core of the release navigator: curated release information for specific products and services of SAP BTP as well as information on release schedules.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Fig 2. The Product Specific page, formerly known as the Home page" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/163278i2489ED62D6B21D28/image-size/large?v=v2&px=999" role="button" title="20240827_01_Home page (Product Specific).png" alt="Fig 2. The Product Specific page, formerly known as the Home page" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Fig 2. The Product Specific page, formerly known as the Home page</span></span></P><P>At the top of the <STRONG>Product Specific Page</STRONG> you can find a message tile with helpful information and a Release Calendar. The calendar includes release dates for SAP BTP as a whole, links to product-specific release schedules and dates for upcoming release navigator updates.</P><P>Below you can find the section <STRONG>Products</STRONG>. The cards in this section are sorted alphabetically and each one takes you to a dedicated page with in-depth information and curated resources on the 27 SAP BTP products and services covered.</P><H3 id="toc-hId-784114560"><STRONG>Product Page Navigation</STRONG></H3><P><STRONG><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Fig 3. Example of a dedicated product page" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/163279i3620D014AB6F2611/image-size/large?v=v2&px=999" role="button" title="20240827_05_Product page example_Build Code.png" alt="Fig 3. Example of a dedicated product page" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Fig 3. Example of a dedicated product page</span></span></STRONG></P><P><SPAN>Once you are done exploring the resources on a product page and want to move on to the next product or service, you can either click on Product Specific on the side-menu or on the back arrow on the left of the page title to get back to the Product Specific page and navigate to other pages.</SPAN></P><H3 id="toc-hId-587601055"><STRONG>General Page</STRONG></H3><P>On this page you can find <STRONG>General Resources</STRONG> that are helpful across all SAP BTP products and services. If you can't find a certain product or service on the Product Specific page, we recommend you check out the resources on this page (and also feel free to let us know in our <A title="Release Navigator Survey" href="https://sapinsights.eu.qualtrics.com/jfe/form/SV_egtCPhgGOuO4Iwm?SolutionArea=SAPBTP" target="_blank" rel="noopener nofollow noreferrer">survey</A>).</P><P>Besides the General resources, there are two more sections on this page:</P><UL><LI><STRONG>Additional Resources</STRONG> contains non-release specific but nevertheless important resources one should be aware of.</LI><LI><STRONG>Release Navigators by SAP Enterprise Support</STRONG> provide direct links to all currently available release navigators for other solution areas.</LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Fig 4. The General page" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/163281i86EF531AD952E985/image-size/large?v=v2&px=999" role="button" title="20240827_02_General page.png" alt="Fig 4. The General page" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Fig 4. The General page</span></span></P><H3 id="toc-hId-391087550"><STRONG>Get Assistance Page</STRONG></H3><P>This page contains resources to help you use the release navigator and to improve your experience. You can access it from all pages in the release navigator by either clicking on Get Assistance in the side-menu or by clicking on the red bar at the very top of the page.</P><P>At the top of the page, you can find the following elements:</P><UL><LI><STRONG>Release Navigator Enablement</STRONG>:<UL><LI><STRONG>SAP Community Blog Posts</STRONG>: These blog posts go into detail about new features that are being added to the release navigator and provide other news.</LI><LI><STRONG>SAP Partner Masterclass</STRONG>: This recorded digital session is only available to SAP partners.</LI></UL></LI><LI><STRONG>Translation Feature</STRONG>: Allows you to translate the release navigator (not the pages linked to) into 40 languages. The translation process takes a few moments and may impact layout and design of the navigator pages. Click on this card to sign in to the authenticated version with Universal ID or an S-user account to use this feature.</LI><LI><STRONG>User Feedback</STRONG>: Click here to provide feedback in a quick 3 question survey.</LI></UL><P>Below you can find the <STRONG>Navigation Tips</STRONG>, detailed instructions on how to use the release navigator, similar to the blog post you are reading now.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Fig 5. The Get Assistance page" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/163283iB55EE520809308AD/image-size/large?v=v2&px=999" role="button" title="20240827_03_Get Assistance.png" alt="Fig 5. The Get Assistance page" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Fig 5. The Get Assistance page</span></span></P><H3 id="toc-hId-194574045">User Feedback Page</H3><P>We've embedded a feedback survey on this page with three short questions to gather feedback and suggestions for improvement.</P><UL><LI>Your relationship to SAP.</LI><LI>Whether you found the release navigator helpful.</LI><LI>An open text field that allows you to let us know anything you liked, what you would like to see added, or what you think could be improved.</LI></UL><P>We strive to always improve the release navigator, so we really appreciate any feedback you submit.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Fig 6. The User Feedback page" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/163284i17DB9867DC611A71/image-size/large?v=v2&px=999" role="button" title="20240827_04_Feedback page.png" alt="Fig 6. The User Feedback page" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Fig 6. The User Feedback page</span></span></P><H3 id="toc-hId--1939460">Helpful UI Elements</H3><P>We added two new types of UI elements that you will find throughout the pages of the navigator.</P><H4 id="toc-hId--69370246">Lightbulb icon</H4><P><span class="lia-inline-image-display-wrapper lia-image-align-left" image-alt="20240827_06_UI Elements_Lightbulb.png" style="width: 28px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/163285i9270D26ED228EC1F/image-size/medium?v=v2&px=400" role="button" title="20240827_06_UI Elements_Lightbulb.png" alt="20240827_06_UI Elements_Lightbulb.png" /></span></P><P>Many pages come with additional information to guide you through the cards available on that page and provide more context on when to use which resource.</P><P>If you see a lightbulb icon next to a header, you can hover over it with your cursor to open a text bubble with additional information about that page.</P><P>The bubble can be moved around by clicking and holding your cursor and can be closed by clicking the <span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="20240827_06_UI Elements_Insights X.png" style="width: 15px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/163299i1BE7E4AD4494B70E/image-size/small?v=v2&px=200" role="button" title="20240827_06_UI Elements_Insights X.png" alt="20240827_06_UI Elements_Insights X.png" /></span> on the top right.<span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Fig 7. Demo of the lightbulb icon text bubble" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/163300i8E413C4E79144076/image-size/large?v=v2&px=999" role="button" title="20240827_General Page_Insights showcase.gif" alt="Fig 7. Demo of the lightbulb icon text bubble" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Fig 7. Demo of the lightbulb icon text bubble</span></span></P><P>On product pages, the information displayed in this bubble corresponds to the information formerly found on <STRONG>Release Guidance</STRONG> tiles.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Image for Blog_Release Guidance to Insights Bubble.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/165093i8C068E4AF07FEA54/image-size/large?v=v2&px=999" role="button" title="Image for Blog_Release Guidance to Insights Bubble.png" alt="Image for Blog_Release Guidance to Insights Bubble.png" /></span></P><H4 id="toc-hId--265883751">About this Card</H4><P>Some resource cards come with additional tips and contextual information.</P><P>If you see <span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="20240827_06_UI Elements_Three Dots.png" style="width: 31px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/163307iF62DBD071BF26D99/image-size/small?v=v2&px=200" role="button" title="20240827_06_UI Elements_Three Dots.png" alt="20240827_06_UI Elements_Three Dots.png" /></span><SPAN>three dots on the bottom right of a card, you can open a tip with additional information about that particular card. To open the link of that card, you need to close this tip by clicking the three dots button again.</SPAN></P><P><SPAN><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Fig 8. Demo on the About this Card tips" style="width: 908px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/163308i0A7BC63D871D5D0E/image-size/large?v=v2&px=999" role="button" title="20240827_UI Elements_About showcase.gif" alt="Fig 8. Demo on the About this Card tips" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Fig 8. Demo on the About this Card tips</span></span></SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="04_New Search Feature.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/163309iA083487637C5B9D0/image-size/large?v=v2&px=999" role="button" title="04_New Search Feature.png" alt="04_New Search Feature.png" /></span>Due to the high demand for dedicated pages for products and services, the number of pages to navigate has grown significantly since launch of the release navigator one year ago and we aim to increase the number of pages even further in future updates. More pages mean more content but also more cards to browse, which can increase the time it takes to find what you’re looking for.</P><P>Our goal is for you to find what you need as quickly as possible. That’s why we implemented a new <STRONG>Search Feature</STRONG>, which allows you to search for keywords and find all pages associated with this topic, product or service name. Click on the <span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="20240827_06_UI Elements_Search.png" style="width: 19px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/164488i53AF47A1B9964092/image-size/small?v=v2&px=200" role="button" title="20240827_06_UI Elements_Search.png" alt="20240827_06_UI Elements_Search.png" /></span> Search icon at the shell bar and a pop-up will open. Once you enter key words, you will see which pages are associated to this term and you can jump directly to them. The search feature is optimized for product and service names.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Fig 9. Short demo of the Search function." style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/164489iF1FEE054F5248EFC/image-size/large?v=v2&px=999" role="button" title="20240910_Search demo GIF.gif" alt="Fig 9. Short demo of the Search function." /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Fig 9. Short demo of the Search function.</span></span></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="03_New Products.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/163310i13539684DAA95DBE/image-size/large?v=v2&px=999" role="button" title="03_New Products.png" alt="03_New Products.png" /></span></P><P>We collaborated closely with SAP BTP experts to add a new page for SAP Continuous Integration and Delivery. This page contains links to the release schedule, SAP Roadmap Explorer, What’s New Viewer in the SAP Help Portal and more. <A href="https://readiness-at-scale.enable-now.cloud.sap/pub/20230621_ras/index.html?show=book!BO_EC8330B09B97CDBE#SL_BC617E534ADD30AA" target="_blank" rel="noopener nofollow noreferrer">Check it out</A>.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Fig 10. The new page for SAP Continuous Integration and Delivery." style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/163311i8E8117B263931E31/image-size/large?v=v2&px=999" role="button" title="20240903_CICD page.png" alt="Fig 10. The new page for SAP Continuous Integration and Delivery." /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Fig 10. The new page for SAP Continuous Integration and Delivery.</span></span></P><P><span class="lia-inline-image-display-wrapper lia-image-align-right" image-alt="Products covered.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/163312i1C83368DCE450C83/image-size/medium?v=v2&px=400" role="button" title="Products covered.png" alt="Products covered.png" /></span></P><P>Currently, the release navigator for SAP BTP covers content for 27 products and services on dedicated pages. For all products and services not featured with their own page you can find helpful resources on the new General page.</P><P>Expect more new pages dedicated to specific products and services in future updates and don't hesitate to let us know via our <A href="https://sapinsights.eu.qualtrics.com/jfe/form/SV_egtCPhgGOuO4Iwm?SolutionArea=SAPBTP" target="_blank" rel="noopener nofollow noreferrer">feedback survey</A>, which products or services you would like to see added next. </P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="05_Schedules.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/163313i1FA1F62500D6044D/image-size/large?v=v2&px=999" role="button" title="05_Schedules.png" alt="05_Schedules.png" /></span></P><P><SPAN><A href="https://community.sap.com/t5/technology-blogs-by-sap/release-navigator-for-sap-btp-what-s-new-in-q2-2024/ba-p/13725571" target="_blank">Last update</A></SPAN>, we announced the new SAP Note <SPAN><A href="https://me.sap.com/notes/3430170" target="_blank" rel="noopener noreferrer">Consolidated Release Schedules for SAP BTP</A></SPAN> and the corresponding initiative of communicating the release schedules of SAP BTP products and services.</P><P>We are happy to report that the number of products and services who are communicating their release schedules has further increased to more than 50 now thanks to close collaboration with various SAP BTP teams.</P><P>Check the schedules <SPAN><A href="https://me.sap.com/notes/3430170" target="_blank" rel="noopener noreferrer">here</A></SPAN> and from the Release Calendar section of the navigator.</P><P class="lia-indent-padding-left-30px" style="padding-left : 30px;"><FONT size="1 2 3 4 5 6 7"><EM><STRONG><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="20240827_06_UI Elements_Lightbulb.png" style="width: 28px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/163314iCAAE46F4A0FB0B5F/image-size/small?v=v2&px=200" role="button" title="20240827_06_UI Elements_Lightbulb.png" alt="20240827_06_UI Elements_Lightbulb.png" /></span><FONT size="2">Tip</FONT></STRONG><FONT size="2">: Did you know you can <STRONG>mark notes as a favorite</STRONG>? If you do so, you will be notified via email whenever the note is being updated. This way you can stay on top of new release schedule communication, like new dates or skipped waves. We recommend you mark all those notes as a favorite that you are interested in receiving updates for.</FONT></EM></FONT></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Fig 11. Where to click to mark a note as a favorite and receive notifications once it gets updated." style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/163315i32AEB683A581A01E/image-size/large?v=v2&px=999" role="button" title="20240903_Schedules_Favorite_highlight.png" alt="Fig 11. Where to click to mark a note as a favorite and receive notifications once it gets updated." /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Fig 11. Where to click to mark a note as a favorite and receive notifications once it gets updated.</span></span></P><P><U>Please note</U>: To access SAP Notes you need to log in to SAP for Me using your Universal ID or S-user ID. Read more about the required authorizations <SPAN><A href="https://support.sap.com/content/s4m/help/access.html" target="_blank" rel="noopener noreferrer">here</A></SPAN>.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="06_Update Plan.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/163320i703A46B74130BC05/image-size/large?v=v2&px=999" role="button" title="06_Update Plan.png" alt="06_Update Plan.png" /></span></P><P>Next updates are scheduled on a quarterly basis in alignment with the <SPAN><A href="https://me.sap.com/notes/2888562" target="_blank" rel="noopener noreferrer">Harmonized Release Calendar for SAP Cloud Products</A></SPAN>.<span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="*Disclaimer: The schedule is subject to change without prior notice including, when necessary, delays or incorporating changes in subsequent update windows and not a commitment, promise, or legal obligation to deliver any material, code, or functionality." style="width: 904px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/163321i0A5EDEDAD9F321B7/image-size/large?v=v2&px=999" role="button" title="Update Plan.png" alt="*Disclaimer: The schedule is subject to change without prior notice including, when necessary, delays or incorporating changes in subsequent update windows and not a commitment, promise, or legal obligation to deliver any material, code, or functionality." /><span class="lia-inline-image-caption" onclick="event.preventDefault();">*Disclaimer: The schedule is subject to change without prior notice including, when necessary, delays or incorporating changes in subsequent update windows and not a commitment, promise, or legal obligation to deliver any material, code, or functionality.</span></span>Looking ahead, 2025 updates will mainly focus on quarterly maintenance of release resources and a steady extension of product coverage. Currently, there are no plans for further mayor UI updates in the near future.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="06_Connect.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/163322iE1A43B070EFAEB8C/image-size/large?v=v2&px=999" role="button" title="06_Connect.png" alt="06_Connect.png" /></span></P><P>The Readiness@Scale team at SAP Enterprise Support is dedicated to ensuring release readiness across the SAP Enterprise Support portfolio. Our mission is to empower SAP customers to be prepared and ready to adopt and utilize innovations.</P><P>If you have any feedback or specific requests for content in the release navigator, please don't hesitate to reach out to us.</P><P><A href="https://sapinsights.eu.qualtrics.com/jfe/form/SV_egtCPhgGOuO4Iwm?SolutionArea=SAPBTP" target="_blank" rel="noopener nofollow noreferrer"><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Feedback Button.png" style="width: 271px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/163325i378E4E521B4A6250/image-size/medium?v=v2&px=400" role="button" title="Feedback Button.png" alt="Feedback Button.png" /></span></A></P><P>And don't forget to check out our team's blogs tagged with <SPAN><A href="https://community.sap.com/t5/tag/Readiness%40Scale/tg-p" target="_blank"><STRONG>Readiness@Scale</STRONG></A></SPAN>.</P><P>Happy navigating!</P><P data-unlink="true"><EM>Readiness@Scale <BR /></EM><SPAN>SAP Enterprise Support</SPAN></P>2024-09-11T12:33:46.687000+02:00https://community.sap.com/t5/technology-blog-posts-by-sap/devops-with-sap-btp-hands-on-videos-now-on-sap-learning/ba-p/13935495DevOps with SAP BTP hands-on videos now on SAP Learning2024-11-12T11:34:37.212000+01:00BorisZarskehttps://community.sap.com/t5/user/viewprofilepage/user-id/87<P>In 2021, our colleague <a href="https://community.sap.com/t5/user/viewprofilepage/user-id/3858">@pmugglestone</a> had created a series of hands-on tutorial videos that helped many learners to set up SAP BTP to apply DevOps principles for application development (<A href="https://community.sap.com/t5/technology-blogs-by-sap/devops-with-sap-business-technology-platform-hands-on-video-tutorials/ba-p/13539388" target="_blank">announcement blog post</A> from that time). As the videos provide a holistic end-to-end view on how to set up the involved SAP BTP services in detail, we still see value in providing those videos, even if some aspects might be outdated. As a result, we now migrated them to SAP Learning.</P><P>Please note that the videos were originally published on the SAP HANA Academy YouTube Channel and therefore may contain references to SAP HANA Academy and YouTube that are no longer valid. Also, updates and additional links are provided in the description of several of the videos, so please use them with caution and make sure to check out their full description, as marked in below's screenshot of an example video:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Example of additional information provided in video descriptions" style="width: 342px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/189841i97DF57D8815F7ECE/image-size/medium?v=v2&px=400" role="button" title="2024-11_SAPLearning_HandsOnVideo_Description_Screenshot.jpg" alt="Example of additional information provided in video descriptions" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Example of additional information provided in video descriptions</span></span></P><P>Here the links to the videos on SAP Learning, in the right order:<BR /><BR /></P><TABLE border="1" width="100%"><TBODY><TR><TD width="50%" height="30px"><STRONG>Title and Link</STRONG></TD><TD width="50%" height="30px"><STRONG>Description</STRONG></TD></TR><TR><TD width="50%" height="57px"><A href="https://learning.sap.com/videos/sap-btp-devops-introduction" target="_blank" rel="noopener noreferrer">Introduction</A></TD><TD width="50%" height="57px">Introduction to DevOps with SAP BTP, incl. SAP BTP service entitlements used during the scenario</TD></TR><TR><TD width="50%" height="57px"><A href="https://learning.sap.com/videos/sap-btp-devops-getting-started" target="_blank" rel="noopener noreferrer">Getting Started</A></TD><TD width="50%" height="57px">Get an idea on how to configure a developer landscape in SAP BTP</TD></TR><TR><TD width="50%" height="30px"><A href="https://learning.sap.com/videos/sap-btp-devops-develop-application" target="_blank" rel="noopener noreferrer">Develop Application</A></TD><TD width="50%" height="30px">Usage of SAP Business Application Studio, cloning of a Git repository</TD></TR><TR><TD width="50%" height="68px"><A href="https://learning.sap.com/videos/sap-btp-devops-sap-continuous-integration-and-delivery-service" target="_blank" rel="noopener noreferrer">SAP Continuous Integration and Delivery service</A></TD><TD width="50%" height="68px">Learn how to configure and use SAP BTP's Pipeline-as-a-Service offering</TD></TR><TR><TD width="50%" height="112px"><A href="https://learning.sap.com/videos/sap-btp-devops-sap-cloud-transport-management-pt-1" target="_blank" rel="noopener noreferrer">SAP Cloud Transport Management Pt 1</A></TD><TD width="50%" height="112px">Here, transport management is getting set up, incl. subscription and creation of SAP BTP subaccounts</TD></TR><TR><TD width="50%" height="112px"><A href="https://learning.sap.com/videos/sap-btp-devops-sap-cloud-transport-management-pt-2" target="_blank" rel="noopener noreferrer">SAP Cloud Transport Management Pt 2</A></TD><TD width="50%" height="112px">Creation of destinations to source and target nodes, setup of transport landscape, interplay of pipeline with transport management</TD></TR><TR><TD width="50%" height="85px"><A href="https://learning.sap.com/videos/sap-btp-devops-sap-cloud-transport-management-pt-3" target="_blank" rel="noopener noreferrer">SAP Cloud Transport Management Pt 3</A></TD><TD width="50%" height="85px">Handling of the transport along the transport landscape</TD></TR><TR><TD width="50%" height="139px"><A href="https://learning.sap.com/videos/sap-btp-devops-sap-alert-notification-service-for-sap-btp" target="_blank" rel="noopener noreferrer">SAP Alert Notification service for SAP BTP</A></TD><TD width="50%" height="139px">Learn how to use SAP Alert Notification service to automatically send a message to a selected Slack channel whenever transport management starts or finishes an import</TD></TR><TR><TD width="50%" height="85px"><A href="https://learning.sap.com/videos/sap-btp-devops-sap-automation-pilot-pt-1" target="_blank" rel="noopener noreferrer">SAP Automation Pilot Pt 1</A></TD><TD width="50%" height="85px">Learn how to set up a smoke test using SAP Automation Pilot</TD></TR><TR><TD width="50%" height="139px"><A href="https://learning.sap.com/videos/sap-btp-devops-sap-automation-pilot-pt-2" target="_blank" rel="noopener noreferrer">SAP Automation Pilot Pt 2</A></TD><TD width="50%" height="139px">Part two of setting up the smoke test that gets executed automatically whenever transport management finishes an import, incl. sending of a status message to your preferred Slack channel</TD></TR></TBODY></TABLE><P> </P>2024-11-12T11:34:37.212000+01:00https://community.sap.com/t5/technology-blog-posts-by-sap/release-navigator-for-sap-btp-what-s-new-in-q4-2024/ba-p/13950020Release Navigator for SAP BTP - What' s New in Q4 20242024-12-05T09:42:15.938000+01:00chriskollhedhttps://community.sap.com/t5/user/viewprofilepage/user-id/6181<P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="chriskollhed_2-1732715406718.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/196100iD1ECD13BB19DFB93/image-size/large?v=v2&px=999" role="button" title="chriskollhed_2-1732715406718.png" alt="chriskollhed_2-1732715406718.png" /></span></P><P><A href="https://readiness-at-scale.enable-now.cloud.sap/pub/20230621_ras/index.html?show=book!BO_EC8330B09B97CDBE#SL_120BDFE08096029D" target="_blank" rel="noopener nofollow noreferrer"><span class="lia-inline-image-display-wrapper lia-image-align-right" image-alt="chriskollhed_0-1732715396086.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/196099iA69B1A9E3608793E/image-size/medium?v=v2&px=400" role="button" title="chriskollhed_0-1732715396086.png" alt="chriskollhed_0-1732715396086.png" /></span></A></P><P>The Release Navigator for SAP BTP is always evolving to better serve our customers. With the latest update in Q4 2024, in addition to quarterly content maintenance we have added new product pages.</P><P>We collaborated closely with SAP BTP experts to add three new product pages that consolidate links to all available release communication channels, like schedules, pre- and post-release communication, blogs, and more.</P><P>The new pages are:</P><OL><LI>SAP BTP, Kyma runtime</LI><LI>SAP Mobile Services</LI><LI>SAP Translation Hub</LI></OL><P>Read more about the details in this blog post.</P><DIV class=""> </DIV><DIV class=""><A href="https://readiness-at-scale.enable-now.cloud.sap/pub/20230621_ras/index.html?show=book!BO_EC8330B09B97CDBE#SL_120BDFE08096029D" target="_blank" rel="noopener nofollow noreferrer"><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="chriskollhed_1-1732715396087.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/196098iE0312F1CF427B5D5/image-size/medium?v=v2&px=400" role="button" title="chriskollhed_1-1732715396087.png" alt="chriskollhed_1-1732715396087.png" /></span></A></DIV><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="chriskollhed_12-1732715536482.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/196101iE49EFA8114995152/image-size/large?v=v2&px=999" role="button" title="chriskollhed_12-1732715536482.png" alt="chriskollhed_12-1732715536482.png" /></span></P><P><STRONG>1. SAP BTP, Kyma runtime</STRONG></P><P>This page contains links to release schedule information, SAP Roadmap Explorer, What’s New information in the SAP Help Portal, links to the SAP Community, documentation on releases and available modules, the GitHub Kyma repositories, as well as a helpful learning journey and hands-on tutorials.</P><P><A title="Check out the new SAP BTP, Kyma runtime page in the Release Navigator for SAP BTP" href="https://readiness-at-scale.enable-now.cloud.sap/pub/20230621_ras/index.html?show=book!BO_EC8330B09B97CDBE#SL_DEE2D22B73DE93A4" target="_blank" rel="noopener nofollow noreferrer">Check it out</A>.</P><P><A href="https://readiness-at-scale.enable-now.cloud.sap/pub/20230621_ras/index.html?show=book!BO_EC8330B09B97CDBE#SL_DEE2D22B73DE93A4" target="_blank" rel="noopener nofollow noreferrer"><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="chriskollhed_13-1732715561760.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/196102i37FC0716006126DC/image-size/large?v=v2&px=999" role="button" title="chriskollhed_13-1732715561760.png" alt="chriskollhed_13-1732715561760.png" /></span></A></P><P class="lia-align-left" style="text-align : left;"><FONT size="2"><EM>Fig 1. The new page for SAP BTP, Kyma runtime.</EM></FONT></P><P class="lia-align-left" style="text-align : left;"> </P><P><STRONG>2. SAP Mobile Services</STRONG></P><P>This page contains links to release schedule information, SAP Roadmap Explorer, What’s New information in the SAP Help Portal, links to the SAP Community, and helpful documentation.</P><P><A title="Check out the new SAP Mobile Services page in the Release Navigator for SAP BTP" href="https://readiness-at-scale.enable-now.cloud.sap/pub/20230621_ras/index.html?show=book!BO_EC8330B09B97CDBE#SL_95B9BC9279E19E96" target="_blank" rel="noopener nofollow noreferrer">Check it out</A>.</P><P><A href="https://readiness-at-scale.enable-now.cloud.sap/pub/20230621_ras/index.html?show=book!BO_EC8330B09B97CDBE#SL_95B9BC9279E19E96" target="_blank" rel="noopener nofollow noreferrer"><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="chriskollhed_14-1732715579070.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/196103iAB5FFC03DB1E9BB0/image-size/large?v=v2&px=999" role="button" title="chriskollhed_14-1732715579070.png" alt="chriskollhed_14-1732715579070.png" /></span></A></P><P><FONT size="2"><EM>Fig 2. The new page for SAP Mobile Services.</EM></FONT></P><P> </P><P><STRONG>3. SAP Translation Hub</STRONG></P><P>This page contains links to release schedule information, SAP Roadmap Explorer, What’s New information in the SAP Help Portal, links to the SAP Community, and helpful documentation.</P><P><A title="Check out the new SAP Translation Hub page in the Release Navigator for SAP BTP" href="https://readiness-at-scale.enable-now.cloud.sap/pub/20230621_ras/index.html?show=book!BO_EC8330B09B97CDBE#SL_F3A3604DB19F09B" target="_blank" rel="noopener nofollow noreferrer">Check it out</A>.</P><P><A href="https://readiness-at-scale.enable-now.cloud.sap/pub/20230621_ras/index.html?show=book!BO_EC8330B09B97CDBE#SL_F3A3604DB19F09B" target="_blank" rel="noopener nofollow noreferrer"><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="chriskollhed_15-1732715592141.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/196104iBCD4652917921576/image-size/large?v=v2&px=999" role="button" title="chriskollhed_15-1732715592141.png" alt="chriskollhed_15-1732715592141.png" /></span></A></P><P><FONT size="2"><EM>Fig 3. The new page for SAP Translation Hub.</EM></FONT></P><P> </P><P><span class="lia-inline-image-display-wrapper lia-image-align-right" image-alt="chriskollhed_16-1732715603867.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/196105i42455F6910071699/image-size/medium?v=v2&px=400" role="button" title="chriskollhed_16-1732715603867.png" alt="chriskollhed_16-1732715603867.png" /></span></P><P>Currently, the release navigator for SAP BTP covers content for 30 products and services on dedicated pages. For all products and services not featured with their own page you can find helpful resources on the new General page.</P><P>Expect more new pages dedicated to specific products and services in future updates and don't hesitate to let us know via our<SPAN> </SPAN><A href="https://sapinsights.eu.qualtrics.com/jfe/form/SV_egtCPhgGOuO4Iwm?SolutionArea=SAPBTP" target="_blank" rel="noopener nofollow noreferrer">feedback survey</A>, which products or services you would like to see added next. </P><P> </P><P><U>Please note</U> that the product page for <STRONG>SAP Data Intelligence Cloud has been retired</STRONG> as of this update. For more information, you can refer to <SPAN><A href="https://community.sap.com/t5/technology-blogs-by-sap/sap-datasphere-and-sap-data-intelligence-cloud-what-does-this-mean-for-me/ba-p/13603947" target="_blank">this blog post</A></SPAN>.</P><DIV class=""> </DIV><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="06_Update Plan.png" style="width: 906px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/196120i49B24325CFC4043F/image-size/large?v=v2&px=999" role="button" title="06_Update Plan.png" alt="06_Update Plan.png" /></span></P><P>For centralized information on when SAP BTP products and services release new features refer to the <SPAN><A href="https://me.sap.com/notes/3430170" target="_blank" rel="noopener noreferrer">Consolidated Release Schedule for SAP BTP</A></SPAN>.</P><P>Regarding Release Navigator updates, you can refer to this update plan:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="chriskollhed_18-1732715626568.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/196107i899954C221283448/image-size/large?v=v2&px=999" role="button" title="chriskollhed_18-1732715626568.png" alt="chriskollhed_18-1732715626568.png" /></span></P><P><EM>*Disclaimer: The schedule is subject to change without prior notice including, when necessary, delays or incorporating changes in subsequent update windows and not a commitment, promise, or legal obligation to deliver any material, code, or functionality.</EM></P><P>Looking ahead, 2025 updates will mainly focus on quarterly maintenance of release resources and a steady extension of product coverage. Currently, there are no plans for further mayor UI updates in the near future.</P><P> </P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="chriskollhed_19-1732715637865.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/196108iC712FCF0A598781C/image-size/large?v=v2&px=999" role="button" title="chriskollhed_19-1732715637865.png" alt="chriskollhed_19-1732715637865.png" /></span></P><P>The Readiness@Scale team at SAP Enterprise Support is dedicated to ensuring release readiness across the SAP Enterprise Support portfolio. Our mission is to empower SAP customers to be prepared and ready to adopt and utilize innovations.</P><P>If you have any feedback or specific requests for content in the release navigator, please don't hesitate to reach out to us.</P><DIV class=""> </DIV><P><A href="https://sapinsights.eu.qualtrics.com/jfe/form/SV_egtCPhgGOuO4Iwm?SolutionArea=SAPBTP" target="_blank" rel="noopener nofollow noreferrer"><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="chriskollhed_20-1732715648072.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/196109i14FA9C686D17356E/image-size/medium?v=v2&px=400" role="button" title="chriskollhed_20-1732715648072.png" alt="chriskollhed_20-1732715648072.png" /></span></A></P><P>And don't forget to check out our team's blogs tagged with <SPAN><A href="https://community.sap.com/t5/tag/Readiness%40Scale/tg-p" target="_blank"><STRONG>Readiness@Scale</STRONG></A></SPAN>.</P><P>Happy navigating!</P><P data-unlink="true"><EM>Readiness@Scale <BR /></EM><SPAN>SAP Enterprise Support</SPAN></P>2024-12-05T09:42:15.938000+01:00https://community.sap.com/t5/technology-blog-posts-by-sap/update-of-sap-learning-journey-on-devops-with-sap-btp/ba-p/13979323Update of SAP Learning Journey on DevOps with SAP BTP2025-01-07T15:31:28.880000+01:00BorisZarskehttps://community.sap.com/t5/user/viewprofilepage/user-id/87<P>Happy to announce that the learning journey <A href="https://learning.sap.com/learning-journeys/discovering-devops-with-sap-btp" target="_blank" rel="noopener noreferrer">Discovering DevOps with SAP BTP</A> has received a major overhaul that went live in SAP Learning end of December 2024. Besides applying the latest branding and style changes, updates of single services and their interplay have been considered.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot of learning journey" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/209084i9AD13DD8C68645A2/image-size/medium?v=v2&px=400" role="button" title="BorisZarske_0-1736260006533.png" alt="Screenshot of learning journey" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Screenshot of learning journey</span></span></P><P>For example, concerning pipeline flexibility of SAP Continuous Integration and Delivery service, the new integration option of SAP Cloud Transport Management into SAP Cloud ALM, or the Generative AI assistant of SAP Automation Pilot service (described in a new lesson at the end of unit 3).</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Example use case for GenAI assistant of SAP Automation Pilot" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/209085i85157A7EF1D2AA3D/image-size/medium?v=v2&px=400" role="button" title="BorisZarske_1-1736260052938.png" alt="Example use case for GenAI assistant of SAP Automation Pilot" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Example use case for GenAI assistant of SAP Automation Pilot</span></span></P><P>Although new content has been provided, we intentionally strived to keep the learning content on beginner level. Still, also more advanced leaners should be able to benefit from the update.</P><P>If you should be interested on how to make use of agile DevOps principles for your projects on SAP BTP, this would be the opportunity to get your jump start into the offering! You can go through the whole journey or only consume those lessons you are interested in. Give it a try <A href="https://learning.sap.com/learning-journeys/discovering-devops-with-sap-btp" target="_blank" rel="noopener noreferrer">here</A>, free-of-charge.</P>2025-01-07T15:31:28.880000+01:00https://community.sap.com/t5/enterprise-resource-planning-blog-posts-by-sap/sap-s-4hana-cloud-test-automation-tool-in-sap-s-4hana-cloud-public-edition/ba-p/13982710SAP S/4HANA Cloud Test Automation Tool in SAP S/4HANA Cloud Public Edition 25022025-01-28T06:57:04.210000+01:00Aparna_Vohrahttps://community.sap.com/t5/user/viewprofilepage/user-id/131756<P>We are excited to announce significant enhancements in Post Upgrade Testing (PUT) with the 2502 release of the Test Automation Tool for SAP S/4HANA Cloud, Public Edition. Key features include:</P><P><STRONG>New Post-Upgrade Test Application</STRONG></P><UL><LI>A new PUT app with an intuitive dashboard for clear test execution metrics.</LI><LI>One-click navigation between PUT-related applications.</LI><LI>Advanced comparison capabilities for different PUT runs.</LI><LI>Enhanced contextual information for triggering and tracking PUT executions.</LI><LI>Consolidated access to essential PUT actions like consent management and role maintenance.</LI></UL><P><STRONG>Intelligent Test Scoper(i-TS) App Enhancements:</STRONG></P><UL><LI>Improved analytics within the Intelligent Test Scoper (i-TS) app for optimized scope efficiency.</LI></UL><P>These enhancements aim to provide more efficient, user-friendly applications that facilitate smooth upgrades of the SAP S/4HANA Cloud environment.</P><H3 id="toc-hId-1208422052">PUT App - Dashboard view </H3><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Screenshot 2025-01-20 at 8.53.29 PM.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/214484i66D372C7B51E58CD/image-size/large?v=v2&px=999" role="button" title="Screenshot 2025-01-20 at 8.53.29 PM.png" alt="Screenshot 2025-01-20 at 8.53.29 PM.png" /></span></P><H3 id="toc-hId-1011908547">PUT Results Comparator</H3><P>The PUT results comparator enables detailed analysis between different PUT runs. Key features include:</P><UL><LI>· Compare execution variants within the same release or across different releases.</LI><LI>· View results side-by-side for easy comparison.</LI><LI>· Navigate to detailed logs of both failed and successful runs.</LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Screenshot 2025-01-20 at 10.54.59 PM.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/214558iD7C711E248BE42AB/image-size/large?v=v2&px=999" role="button" title="Screenshot 2025-01-20 at 10.54.59 PM.png" alt="Screenshot 2025-01-20 at 10.54.59 PM.png" /></span></P><H3 id="toc-hId-815395042">Trigger and Track PUT - Analytics</H3><P>Post Upgrade Tests are triggered via the Trigger functionality and latest executions can be tracked via the Track functionality. Along with the Post Upgrade Test Execution summary, the following information can be viewed for the latest run.</P><UL><LI>Execution scope</LI><LI>Pre check status</LI><LI>Execution distribution with and without TDC</LI><LI>Distribution of test processes based on failure categories</LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Screenshot 2025-01-20 at 11.24.30 PM.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/214570iC4EEA91A0721F8F6/image-size/large?v=v2&px=999" role="button" title="Screenshot 2025-01-20 at 11.24.30 PM.png" alt="Screenshot 2025-01-20 at 11.24.30 PM.png" /></span></P><H3 id="toc-hId-618881537">Consent Management for Post Upgrade Tests</H3><P>Enhanced user experience with the new change history feature introduced where the user can track consent change information such as </P><UL><LI>Release information</LI><LI>Consent changed by</LI><LI>Consent changed on</LI></UL><P><SPAN>Please note: For a new customer the PUT Consent will be set to "Yes" by default.</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Screenshot 2025-01-20 at 11.32.08 PM.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/214573i547FF8BDD35B2606/image-size/large?v=v2&px=999" role="button" title="Screenshot 2025-01-20 at 11.32.08 PM.png" alt="Screenshot 2025-01-20 at 11.32.08 PM.png" /></span></P><H3 id="toc-hId-422368032"><STRONG><SPAN>Intelligent Test Scoper(i-TS) App Enhancements</SPAN></STRONG><SPAN> </SPAN></H3><P><SPAN>End users will be able to quickly check the efficiency gains from utilizing the optimized test scope for PUT. <BR />A more detailed application area-wise optimization gains is also provided.</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Aparna_Vohra_0-1738043282970.png" style="width: 734px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/218142iC6BD54B87FBFC607/image-size/large?v=v2&px=999" role="button" title="Aparna_Vohra_0-1738043282970.png" alt="Aparna_Vohra_0-1738043282970.png" /></span></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Aparna_Vohra_1-1738043282972.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/218143iDF0B222CC5A9FBDB/image-size/large?v=v2&px=999" role="button" title="Aparna_Vohra_1-1738043282972.png" alt="Aparna_Vohra_1-1738043282972.png" /></span></P><H3 id="toc-hId-225854527"><STRONG><BR />SAP Delivered Standard Automates</STRONG></H3><P>The total list of SAP delivered automated test scripts are 448 for 2502 and can be accessed via link –<SPAN> </SPAN><A href="https://support.sap.com/content/dam/SAAP/SAP_Activate/S4H_640%20Automated%20Test%20Scripts%20Index.xlsx" target="_blank" rel="noopener noreferrer">Automated Test Scripts Index</A>”. This includes 5 new scope items which were added this release.</P><P>Further detailed change information about the standard automate is available in the “<A href="https://support.sap.com/content/dam/SAAP/SAP_Activate/S4H_667%20Automated%20Test%20Scripts%20Change%20History.xlsx" target="_blank" rel="noopener noreferrer">Automated Test Script Change History</A>” and “<A href="https://support.sap.com/content/dam/SAAP/SAP_Activate/S4H_606%20Test%20Script%20Release%20Change%20Information.xlsx" target="_blank" rel="noopener noreferrer">Test Script Release Change Information</A>”.</P><P class="lia-align-center" style="text-align: center;"><STRONG>Important Links and Updates</STRONG></P><P>We have created a<SPAN> </SPAN><A href="https://accounts.sap.com/saml2/idp/sso?sp=https://www.successfactors.eu/learninghub&RelayState=%2Fsf%2Flearning%3FdestUrl%3Dhttps%253a%252f%252fsaplearninghub%252eplateau%252ecom%252flearning%252fuser%252fdeeplink%255fredirect%252ejsp%253flinkId%253dCATALOG%255fSEARCH%2526sbArSel%253d%2526keywords%253dSUP_ELE_5640_2402%2526selKeyWordHeader%253dSUP_ELE_5640_2402%2526catSel%253d%2526srcSel%253dESAC%2526delMthSel%253d%2526ILDateFrm%253d%2526ILDateTo%253d%2526ILBlend%253d%2526ILSchd%253d%2526fromSF%253dY%26company%3Dlearninghub" target="_blank" rel="noopener noreferrer">new Learning Hub course</A><SPAN> </SPAN>for an overview of the tool. This is a good starting point for anyone who is new to the tool or want to get an overview of the new features we have added over the past couple of years. <FONT size="2"><I><SPAN>[Before you can access the link, a one-time registration in the SAP Learning Hub, edition for SAP Enterprise Support, is required. A detailed step-by-step guidance can be found</SPAN></I><I><SPAN> </SPAN></I><I><SPAN><A title="https://support.sap.com/en/offerings-programs/enterprise-support/enterprise-support-academy/learn.html" href="https://support.sap.com/en/offerings-programs/enterprise-support/enterprise-support-academy/learn.html" target="_blank" rel="noopener noreferrer">here]</A></SPAN></I></FONT></P><P>As part of our PUT 2.0 Enablement also we have created a set of short videos which cover the most important aspects of the process. The video playlist can be accessed<SPAN> </SPAN><A href="https://video.sap.com/playlist/dedicated/1_hq6vc3yd/" target="_blank" rel="noopener noreferrer">here</A>.</P><P>Links to other important blogs:</P><UL><LI><A href="https://community.sap.com/t5/technology-blogs-by-sap/how-to-get-started-with-the-test-automation-tool-for-sap-s-4hana-cloud/ba-p/13602137" target="_blank">How to get started with the Test Automation Tool for SAP S/4HANA Cloud Public Edition</A><SPAN> </SPAN></LI><LI><SPAN><A href="https://community.sap.com/t5/enterprise-resource-planning-blogs-by-sap/your-system-is-upgraded-to-release-2502-now-what/ba-p/14000882?emcs_t=S2h8ZW1haWx8ZGlnZXN0X25vdGlmaWNhdGlvbnxNNklVSzdKN0sxUDFTNHwtMXxPVEhFUlN8aEs" target="_self">Your System is Upgraded to Release 2502 – Now What?</A></SPAN></LI><LI><A title="2502 Release for SAP S/4HANA Cloud, Public Edition" href="https://community.sap.com/t5/enterprise-resource-planning-blogs-by-sap/highlights-of-the-sap-s-4hana-cloud-public-edition-2502-release/ba-p/13980047" target="_blank">Highlights of the SAP S/4HANA Cloud Public Edition 2502 Release</A><SPAN> </SPAN>by<SPAN> </SPAN><A href="https://community.sap.com/t5/user/viewprofilepage/user-id/8440" target="_blank">Bert Schulze</A></LI></UL><P>Please bookmark the <A href="https://community.sap.com/topics/s4hana-cloud/automation-testing" target="_blank">test automation community page</A> to keep up with the latest updates happening in the test automation space.</P><P>For more details on the functionality please refer the links below:</P><P class="lia-align-center" style="text-align: center;"><A title="Post-Upgrade Tests App" href="https://help.sap.com/docs/SAP_S4HANA_CLOUD/e819bb97e28648ea949ac9b4eebcd8ca/cf701680a0a14613bb1cb6732224a6b6.html?locale=en-US" target="_self" rel="noopener noreferrer">Post-Upgrade Tests App</A><BR /><A title="Intelligent Test Scoper" href="https://help.sap.com/docs/SAP_S4HANA_CLOUD/d72d7bb74cf043a58474f0c2d76e857d/5d5d6bfa02c24adf8e12d272d93acaef.html?locale=en-US&version=2402.500" target="_self" rel="noopener noreferrer">Intelligent Test Scoper (i-TS)</A> <BR /><A href="https://help.sap.com/viewer/9f3351bbe2f04b42bb29f690886a6f54/latest/en-US/dd1dc59e34364a26b1c6183a1369612b.html" target="_blank" rel="noopener noreferrer">Manage Upgrade Tests </A><BR /><A href="https://help.sap.com/viewer/1e9ba004e0504506a135afda960e9495/latest/en-US/b076dd00e70b4b30b1c250be655d45d2.html" target="_blank" rel="noopener noreferrer">Manage Your Test Processes</A><BR /><A href="https://help.sap.com/viewer/2ab07d21f68c41109a2eef21b8fd8466/latest/en-US/ddd0a0cf45964225bff64c10e8de8e38.html" target="_blank" rel="noopener noreferrer">Test Your Processes</A><BR /><A href="https://help.sap.com/viewer/1c73afbf7d154fcf9b5ec127d1793ffa/latest/en-US/70e4bb5e3875480ea15a033d943e4ecf.html" target="_blank" rel="noopener noreferrer">Test Data Container</A><BR /><A href="https://help.sap.com/viewer/7ce8f79186e1445ab82e37439eba795c/latest/en-US/a4a4c6e62b894d5a88d0d8300620e278.html" target="_blank" rel="noopener noreferrer">Analyze Automated Test Results</A><BR /><A href="https://help.sap.com/viewer/2ab07d21f68c41109a2eef21b8fd8466/latest/en-US/5d867592753c465aadb81115de672f91.html#loiod3af90f0c9ec4e819bdd945f54ed9b72" target="_blank" rel="noopener noreferrer">Configure Conditional Authentication</A><BR />Also refer <A href="https://help.sap.com/viewer/2ab07d21f68c41109a2eef21b8fd8466/latest/en-US/acaf51440ec84e409895cd8cde9486cb.html?q=FAQ" target="_blank" rel="noopener noreferrer">FAQs</A></P><P>------------------------------------------------------------------------------------------------------------------------------------------------</P><P>Don’t hesitate to leave a comment and check out our<SPAN> </SPAN><SPAN><A href="https://pages.community.sap.com/topics/s4hana-cloud" target="_blank" rel="noopener noreferrer">community page</A></SPAN><SPAN> </SPAN>to ask your questions and engage with the experts. Follow the<SPAN> </SPAN><SPAN><A href="https://community.sap.com/t5/tag/PSCC_Enablement/tg-p/board-id/erp-blog-sap" target="_blank">PSCC_Enablement</A></SPAN><SPAN> </SPAN>tag to stay up to date with our latest blog posts.</P><P>Follow us on<SPAN> </SPAN><SPAN><A href="https://twitter.com/sap" target="_blank" rel="noopener nofollow noreferrer">@SAP</A></SPAN><SPAN> </SPAN>and #S4HANA, and myself on<SPAN> </SPAN><A href="https://www.linkedin.com/in/aparna-vohra-85b7aaa/" target="_blank" rel="nofollow noopener noreferrer">LinkedIn</A>.</P><P><STRONG><span class="lia-unicode-emoji" title=":movie_camera:">🎥</span>Watch the Replay of Our SAP S/4HANA Cloud Public Edition 2502 Early Release Series!</STRONG></P><P>Between January 21 and January 24, we conducted a series of 21 engaging live sessions to showcase the thrilling innovations included in the SAP S/4HANA Cloud Public Edition 2502 release. If you missed the live sessions, don't worry! You can still access the whole series or select the sessions that interest you the most. Seize this opportunity to watch them on demand at your convenience–anywhere, anytime.</P><P><span class="lia-unicode-emoji" title=":magnifying_glass_tilted_left:">🔍</span><STRONG>Find All of Our Assets </STRONG></P><P>SAP S/4HANA Cloud is the foundation of the intelligent, sustainable enterprise and is an innovative, robust, and scalable ERP. We at Cloud ERP Product Success and Cloud Co-Innovation offer a service as versatile as our product itself. Check out the numerous offerings our team has created for you below: </P><P class="lia-align-center" style="text-align: center;"><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Aparna_Vohra_1-1738042462530.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/218139i05CEC287A6452878/image-size/medium?v=v2&px=400" role="button" title="Aparna_Vohra_1-1738042462530.png" alt="Aparna_Vohra_1-1738042462530.png" /></span></P>2025-01-28T06:57:04.210000+01:00https://community.sap.com/t5/technology-blog-posts-by-sap/new-use-cases-for-sap-connectivity-in-sap-continuous-integration-and/ba-p/14025368New Use Cases for SAP Connectivity in SAP Continuous Integration and Delivery2025-02-24T10:24:39.474000+01:00holger_partschhttps://community.sap.com/t5/user/viewprofilepage/user-id/788609<P>Developers today often face complex network topologies. You may be using a cloud service to run your continuous integration jobs, but important assets like source code or binary repositories could still be within your corporate network.</P><P>The SAP Continuous Integration and Delivery service was designed with this challenge in mind. From the beginning, we integrated the SAP Connectivity service to allow cloning of source code from on-premises repositories. Later, we added more features:</P><UL><LI>Connecting to on-premises Sonar code scanners</LI><LI><A href="https://community.sap.com/t5/technology-blogs-by-sap/cloud-based-continuous-integration-for-on-premises-abap-systems/ba-p/13531457" target="_self">Deploying on ABAP systems</A> </LI></UL><P>Now, we have taken it one step further, enabling you to use the connectivity feature in your own scripts and configurations. As an example, I will describe how to use an on-premises npm registry.</P><P>But before we dive into that, I would like to explain how Connectivity is integrated into the Continuous Integration and Delivery service.</P><H2 id="toc-hId-1703725221">Connecting It All</H2><P>When your continuous integration (CI) build interacts with the outside world, whether to fetch a source file, download a dependency, post a report, or perform other actions, this interaction generally involves sending an HTTP request.</P><P>If your request needs to reach an on-premises system, certain requirements must be met for Connectivity to work properly. Assuming that your target system is configured in your cloud connector, the request must:</P><UL><LI>Be sent via a specific proxy.</LI><LI>Contain custom HTTP headers, allowing Connectivity to authenticate and route the request.</LI></UL><P>However, not every tool allows for the setting of arbitrary HTTP headers. Therefore, we decided to use a proxy whose task is to accept HTTP requests, add the required headers, and forward the requests to the Connectivity service.</P><P>If your job is configured to use Connectivity (via a credential representing a Cloud Connector), this proxy will run in a container within the run environment of your build and wait for incoming requests. Note that this environment is not accessible from the outside world, ensuring that only your containers can send requests to the proxy.</P><P>Here is a diagram visualizing this setup:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="connectivit-in-cicd.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/229351i3AE5561C24176D1C/image-size/large?v=v2&px=999" role="button" title="connectivit-in-cicd.png" alt="connectivit-in-cicd.png" /></span></P><H2 id="toc-hId-1507211716">Example: Using an On-Premises npm Registry</H2><P>Enough theory; let's work through a real use case. Consider the following scenario:</P><P>We want to build a JavaScript application using npm. The problem is that the application has dependencies defined in its `package.json` which are located in an npm registry hosted by your company, and this registry is not accessible from the internet.</P><P>We'll assume for this scenario that <EM>all</EM> the dependencies can be fetched from that corporate registry. It is a common practice to have corporate registries that mirror <FONT face="courier new,courier">registry.npm.org</FONT>. This setup allows you to maintain copies of your open-source dependencies which you can then scan. Additionally, your build process no longer depends on the availability of <FONT face="courier new,courier">registry.npm.org</FONT>.</P><P>Let's go through the setup step by step.</P><H3 id="toc-hId-1439780930">Prerequisites</H3><UL><LI>You have a Cloud Connector running in your corporate network.</LI><LI>You have a subscription of the <A href="https://help.sap.com/docs/continuous-integration-and-delivery/sap-continuous-integration-and-delivery/enabling-service" target="_blank" rel="noopener noreferrer">SAP Continuous Integration and Deliver Service</A>.</LI></UL><H3 id="toc-hId-1243267425">Prepare the Cloud Connector</H3><OL><LI>Add the account where the SAP Continuous Integration and Delivery service is subscribed to your Cloud Connector.<BR />This is described in the <A href="https://help.sap.com/docs/CP_CONNECTIVITY/cca91383641e40ffbe03bdc78f00f681/managing-subaccounts" target="_self" rel="noopener noreferrer">Cloud Connector Documentation</A>.</LI><LI>In the Cloud Connector, under "Cloud To On-Premise", add your private registry.<BR />The configuration should look something like this:<BR /><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="registry-in-cc.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/229356iC01D6DFA61453704/image-size/large?v=v2&px=999" role="button" title="registry-in-cc.png" alt="registry-in-cc.png" /></span></LI></OL><H3 id="toc-hId-1046753920">Configure the Continuous Integration and Delivery Service</H3><P>In the UI of the service:</P><OL><LI><P><STRONG>Create a Cloud Connector Credential:</STRONG></P><P>First, create a Cloud Connector credential containing the location ID of your cloud connector. Name this credential<SPAN> </SPAN><FONT face="courier new,courier">connector</FONT>.</P></LI><LI><P><STRONG>Create a Job for Building/Testing/Deploying Your Project:</STRONG></P><P>Next, create a<SPAN> </SPAN><A href="https://help.sap.com/docs/continuous-integration-and-delivery/sap-continuous-integration-and-delivery/supported-pipelines" target="_blank" rel="noopener noreferrer">job</A><SPAN> </SPAN>to build, test, and deploy your project. We want to use the on-premises registry during the build stage. To achieve this, add the<SPAN> </SPAN><FONT face="courier new,courier">connector </FONT>credentials as an additional credential to that stage.</P><P>This configuration will ensure that during the build execution, an environment variable<SPAN> </SPAN><FONT face="courier new,courier">CONN_PROXY<SPAN> </SPAN></FONT>will be available, holding the URL of the proxy.</P><P>Example Build Stage:</P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="build-stage.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/230230iCB7BA106CF18A3D6/image-size/large?v=v2&px=999" role="button" title="build-stage.png" alt="build-stage.png" /></span></LI><LI><P><STRONG>Configure Additional Variables:</STRONG></P><P>In addition, configure the following additional variables:</P><UL><LI><FONT face="courier new,courier">NPM_CONFIG_LOGLEVEL: info</FONT>: This makes npm print more detailed information about what it is doing.</LI><LI><FONT face="courier new,courier">NPM_CONFIG_USERCONFIG: .cicd_npmrc</FONT>: This makes npm use an<SPAN> </SPAN><A href="https://docs.npmjs.com/cli/v9/configuring-npm/npmrc" target="_blank" rel="nofollow noopener noreferrer">npmrc</A><SPAN> </SPAN>file named<FONT face="courier new,courier"><SPAN> </SPAN>.cicd_npmrc</FONT><SPAN> </SPAN>located in the project root.</LI></UL><P>The last setting is particularly useful because it avoids altering the local build process of the project.</P></LI></OL><H3 id="toc-hId-850240415">Prepare the Project</H3><P>The only thing you need to do in the project is to add the<SPAN> </SPAN><FONT face="courier new,courier">npmrc<SPAN> </SPAN></FONT>file to be used in the central build. As mentioned above, the name should be<SPAN> </SPAN><FONT face="courier new,courier">.cicd_npmrc</FONT>. Here is my file:</P><DIV class=""><PRE>registry=http://on-prem-registry/
proxy=${CONN_PROXY}
replace-registry-host=always</PRE><DIV class=""> </DIV></DIV><P>Let's got through this line by line.</P><UL><LI><P><FONT face="courier new,courier">registry=</FONT><A href="http://on-prem-registry/" target="_blank" rel="noopener nofollow noreferrer"><FONT face="courier new,courier">http://on-prem-registry/</FONT></A>: Here, I define the registry to be used. I refer to the registry by the virtual host name configured in the Cloud Connector. A port is not required because I used port 80, which is the standard port for the HTTP protocol. Note that I use HTTP and not HTTPS. This is due to a limitation of our current connectivity setup. However, it is not as bad as it sounds. Once the data reaches the proxy, it will be transmitted via an encrypted tunnel to the Cloud Connector.</P></LI><LI><P><FONT face="courier new,courier">proxy=${CONN_PROXY}</FONT>: This defines that the proxy should be used. The actual URL is injected by the service. In practice, it will look like<SPAN> </SPAN><A href="http://10.0.0.3:5003" target="_blank" rel="noopener nofollow noreferrer"><FONT face="courier new,courier">http://10.0.0.3:5003</FONT></A>, where the port is mapped to the location ID of the Cloud Connector.</P></LI><LI><P><FONT face="courier new,courier">replace-registry-host=always</FONT>: This is needed to avoid trouble with the<SPAN> </SPAN><FONT face="courier new,courier">package-lock.json</FONT><SPAN> </SPAN>files (in the project as well as in the dependencies). The<SPAN> </SPAN><FONT face="courier new,courier">package-lock.json</FONT><SPAN> </SPAN>is generated locally and contains registry URLs pointing to<SPAN> </SPAN><FONT face="courier new,courier">npm-registry.sap-dev.corp</FONT>, the actual hostname of our internal registry. For the central build, another hostname (<FONT face="courier new,courier">on-prem-registry</FONT>) will be used, therefore the hostname has to be replaced.</P></LI></UL><P>That is all. Here is an excerpt from the build stage logs:</P><DIV class=""><PRE>[2025-02-14T16:03:32.499Z] info npmExecuteScripts - Discovered package.json file package.json
[2025-02-14T16:03:32.499Z] info npmExecuteScripts - running command: npm config get registry -ws=false -iwr
[2025-02-14T16:03:32.500Z] info npmExecuteScripts - npm info using npm@10.8.2
[2025-02-14T16:03:32.501Z] info npmExecuteScripts - npm info using node@v20.17.0
[2025-02-14T16:03:32.501Z] info npmExecuteScripts - npm info ok
[2025-02-14T16:03:32.501Z] info npmExecuteScripts - Discovered pre-configured npm registry registry with value http://on-prem-registry/
[2025-02-14T16:03:32.501Z]
[2025-02-14T16:03:32.501Z] info npmExecuteScripts - Running Install
[2025-02-14T16:03:32.501Z] info npmExecuteScripts - running command: npm ci
[2025-02-14T16:03:32.762Z] info npmExecuteScripts - npm info using npm@10.8.2
[2025-02-14T16:03:32.762Z] info npmExecuteScripts - npm info using node@v20.17.0
[2025-02-14T16:03:33.688Z] info npmExecuteScripts - npm http fetch GET 200 http://on-prem-registry/@sap/xsenv/-/xsenv-4.2.0.tgz 725ms (cache miss)
[2025-02-14T16:03:33.688Z] info npmExecuteScripts - npm http fetch GET 200 http://on-prem-registry/@sap/e2e-trace/-/e2e-trace-4.1.0.tgz 766ms (cache miss)
[2025-02-14T16:03:33.948Z] info npmExecuteScripts - npm http fetch GET 200 http://on-prem-registry/@sap/logging/-/logging-7.1.0.tgz 910ms (cache miss)
[2025-02-14T16:03:34.204Z] info npmExecuteScripts - npm http fetch POST 200 http://on-prem-registry/-/npm/v1/security/advisories/bulk 372ms
[2025-02-14T16:03:34.764Z] info npmExecuteScripts - npm http fetch GET 200 http://on-prem-registry/verror 739ms (cache miss)
[2025-02-14T16:03:34.764Z] info npmExecuteScripts - npm http fetch GET 200 http://on-prem-registry/ms 742ms (cache miss)
[2025-02-14T16:03:34.764Z] info npmExecuteScripts - npm http fetch GET 200 http://on-prem-registry/once 857ms (cache miss)
[2025-02-14T16:03:35.020Z] info npmExecuteScripts - npm http fetch GET 200 http://on-prem-registry/core-util-is 919ms (cache miss)
[2025-02-14T16:03:35.020Z] info npmExecuteScripts - npm http fetch GET 200 http://on-prem-registry/clone 932ms (cache miss)
[2025-02-14T16:03:35.020Z] info npmExecuteScripts - npm http fetch GET 200 http://on-prem-registry/wrappy 936ms (cache miss)
[2025-02-14T16:03:35.021Z] info npmExecuteScripts - npm http fetch GET 200 http://on-prem-registry/extsprintf 964ms (cache miss)
[2025-02-14T16:03:35.021Z] info npmExecuteScripts - npm http fetch GET 200 http://on-prem-registry/moment 967ms (cache miss)
[2025-02-14T16:03:35.021Z] info npmExecuteScripts - npm http fetch GET 200 http://on-prem-registry/once 973ms (cache miss)
[2025-02-14T16:03:35.021Z] info npmExecuteScripts - npm http fetch GET 200 http://on-prem-registry/assert-plus 983ms (cache miss)
[2025-02-14T16:03:35.021Z] info npmExecuteScripts - npm http fetch GET 200 http://on-prem-registry/next-line 988ms (cache miss)
[2025-02-14T16:03:35.021Z] info npmExecuteScripts - npm http fetch GET 200 http://on-prem-registry/next-line 986ms (cache miss)
[2025-02-14T16:03:35.021Z] info npmExecuteScripts - npm http fetch GET 200 http://on-prem-registry/wrappy 1025ms (cache miss)
[2025-02-14T16:03:35.022Z] info npmExecuteScripts - npm http fetch GET 200 http://on-prem-registry/wtfnode/-/wtfnode-0.9.1.tgz 1025ms (cache miss)
[2025-02-14T16:03:35.022Z] info npmExecuteScripts - npm http fetch GET 200 http://on-prem-registry/ws/-/ws-7.5.10.tgz 1026ms (cache miss)
[2025-02-14T16:03:35.022Z] info npmExecuteScripts - npm http fetch GET 200 http://on-prem-registry/request-stats 1030ms (cache miss)
[2025-02-14T16:03:35.022Z] info npmExecuteScripts - npm http fetch GET 200 http://on-prem-registry/yallist/-/yallist-2.1.2.tgz 1030ms (cache miss)
[2025-02-14T16:03:35.023Z] info npmExecuteScripts - npm http fetch GET 200 http://on-prem-registry/wrap-ansi/-/wrap-ansi-7.0.0.tgz 1036ms (cache miss)
[2025-02-14T16:03:35.023Z] info npmExecuteScripts - npm http fetch GET 200 http://on-prem-registry/wrappy/-/wrappy-1.0.2.tgz 1037ms (cache miss)
[2025-02-14T16:03:35.023Z] info npmExecuteScripts - npm http fetch GET 200 http://on-prem-registry/request-stats 1055ms (cache miss)
[2025-02-14T16:03:35.023Z] info npmExecuteScripts - npm http fetch GET 200 http://on-prem-registry/wrap-ansi/-/wrap-ansi-8.1.0.tgz 1051ms (cache miss)
[2025-02-14T16:03:35.023Z] info npmExecuteScripts - npm http fetch GET 200 http://on-prem-registry/which/-/which-2.0.2.tgz 1076ms (cache miss)
[2025-02-14T16:03:35.024Z] info npmExecuteScripts - npm http fetch GET 200 http://on-prem-registry/whatwg-url/-/whatwg-url-5.0.0.tgz 1076ms (cache miss)
[2025-02-14T16:03:35.024Z] info npmExecuteScripts - npm http fetch GET 200 http://on-prem-registry/winston-transport/-/winston-transport-4.9.0.tgz 1080ms (cache miss)
[2025-02-14T16:03:35.024Z] info npmExecuteScripts - npm http fetch GET 200 http://on-prem-registry/webidl-conversions/-/webidl-conversions-3.0.1.tgz 1080ms (cache miss)</PRE><DIV class=""> </DIV></DIV><P>As intended, the dependencies are being pulled from our internal registry.</P><H2 id="toc-hId-524644191">Outlook and Next Steps</H2><P>At this point, you should have realized that Connectivity can now be used in<SPAN> </SPAN><EM>each</EM><SPAN> </SPAN>stage and even in your custom scripting through the<SPAN> </SPAN><EM>Additional Commands</EM><SPAN> </SPAN><A href="https://community.sap.com/t5/technology-blogs-by-sap/extensible-pipelines-for-sap-continuous-integration-and-delivery/ba-p/13564893" target="_blank">feature</A>.</P><P>From Continuous Integration and Delivery side, the next Connectivity related feature we will take on is supporting the<SPAN> </SPAN><A href="https://en.wikipedia.org/wiki/SOCKS" target="_blank" rel="nofollow noopener noreferrer">SOCKS protocol</A>. This will eliminate the current restriction against using HTTPS and enable advanced scenarios such as combining mTLS with Connectivity.</P>2025-02-24T10:24:39.474000+01:00https://community.sap.com/t5/technology-blog-posts-by-members/sap-btp-cloud-application-programming-model/ba-p/14032929SAP BTP: Cloud Application Programming Model2025-03-04T07:09:41.141000+01:00SekhuteTKhttps://community.sap.com/t5/user/viewprofilepage/user-id/15314<P>SAP Cloud Application Programming (CAP) Model exposes the ability to extend standard Cloud, on-premises and hybrid application functionality with flexible custom business logic scripted using the developer’s choice of programing language (SQL, SQL Script, Python, Node.js and JavaScript) and exposing the functionality to various user interfaces (UIs) e.g. Microsoft Power Bi, SAP Fiori, Dataiku and Google Big Query using various integration frameworks e.g. OData v4,JDBC/ODBC depending on the case study.</P><P>The developer takes pride in delivering a scalable extended functionality, embedding robust real-time monitoring capabilities to ensure a health life cycle and protecting the functionality with secure authentication protocols e.g. OAuth 2.0, JWT Bearer, SAML version 2.0 and RFC Specification.</P><P>Furthermore, the developer ensures a reliable and robust solutions by implementing continuous integration and continuous delivery CI/CD pipelines that automates testing, building and deployment of code changes this strategy ensures a speedy development and delivery cycle.</P><P>Traditionally developers extended business logic directly on-premises on the ABAP application server. With the ever-changing world of technology, digital transformation has become essential for organization to say afloat of competitors and therefore the programming model paradigms and capabilities of extending SAP solutions have evolved drastically and provides a seamless experience into the cloud.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Programming model.png" style="width: 626px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/232631i560CE0B01EB4E6CB/image-size/large?v=v2&px=999" role="button" title="Programming model.png" alt="Programming model.png" /></span></P><P class="lia-align-center" style="text-align: center;"><EM>Figure 1: </EM></P><P class="lia-align-center" style="text-align: center;"><EM>Architectural Paradigm Shift from Classic ABAP App server to CAP App server</EM></P><P class="lia-align-center" style="text-align: center;"><EM>Source: Thomas Jung, <A href="https://community.sap.com/t5/technology-blogs-by-sap/sap-hana-extended-application-services/ba-p/12963426" target="_blank"><STRONG>SAP HANA Extended Application Services</STRONG></A> blog, URL: <A href="https://community.sap.com/t5/technology-blogs-by-sap/sap-hana-extended-application-services/ba-p/12963426/page/4" target="_blank">https://community.sap.com/t5/technology-blogs-by-sap/sap-hana-extended-application-services/ba-p/12963426/page/4</A></EM></P><P data-unlink="true">The SAP Cloud Application model comes with a rich set of languages, libraries, and tools for building enterprise-grade services and applications. It guides developers along a 'golden path' of proven best practices and a great wealth of out-of-the-box solutions to recurring tasks:</P><P data-unlink="true"><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="cap.png" style="width: 626px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/232633i1EC9379A4BB0DAA1/image-size/large?v=v2&px=999" role="button" title="cap.png" alt="cap.png" /></span></P><P class="lia-align-center" style="text-align: center;"><EM>Figure 2: </EM></P><P class="lia-align-center" style="text-align: center;"><EM>SAP Cloud Application Model Architecture</EM></P><P class="lia-align-center" style="text-align: center;"><EM>Source <A href="HTTPS://Cap.cloud.sap" target="_blank" rel="nofollow noopener noreferrer">HTTPS://Cap.cloud.sap</A> , U</EM><EM>RL:</EM> <EM><A href="https://cap.cloud.sap/docs/about/" target="_blank" rel="nofollow noopener noreferrer">https://cap.cloud.sap/docs/about/</A></EM></P><P>The below diagram categories the skill set of SAP Cloud Developer based on the scope of the development either being ABAP or Non-ABAP. Each with its unique set of tools and methodologies:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="ABAP VS NON.png" style="width: 626px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/232635i61C63058B7D72485/image-size/large?v=v2&px=999" role="button" title="ABAP VS NON.png" alt="ABAP VS NON.png" /></span></P><P class="lia-align-center" style="text-align: center;"><EM>Figure 3:</EM></P><P class="lia-align-center" style="text-align: center;"><EM> SAP Cloud Developer skill set</EM></P><P class="lia-align-center" style="text-align: center;"><EM>Source: Building side-by-side extensions on SAP BTP, URL: <A href="https://learning.sap.com/learning-journeys/build-side-by-side-extensions-on-sap-btp/identifying-the-need-for-side-by-side-extensibility_f1e838f0-f02a-43b4-8896-cedc25a7d5d0" target="_blank" rel="noopener noreferrer">https://learning.sap.com/learning-journeys/build-side-by-side-extensions-on-sap-btp/identifying-the-need-for-side-by-side-extensibility_f1e838f0-f02a-43b4-8896-cedc25a7d5d0</A></EM></P><P>The Cloud Application Programming model enables a collaboration of agile cross functional teams inclusive of but not limited, depending on the scope of the development: citizen developers (low-code/no-code), Professional developers (Scripting, OOP), business analysts, data engineers and application specialists to model robust data models:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Cross functional.png" style="width: 626px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/232636i237D8D5BBD7CB069/image-size/large?v=v2&px=999" role="button" title="Cross functional.png" alt="Cross functional.png" /></span></P><P class="lia-align-center" style="text-align: center;"><EM>Figure 4:</EM></P><P class="lia-align-center" style="text-align: center;"><EM>Agile cross functional team</EM></P><P class="lia-align-center" style="text-align: center;"><EM>Source: <STRONG>Investigating the Impact of Cross-Functional Teams on Business Success</STRONG></EM></P><P class="lia-align-center" style="text-align: center;"><EM>URL:</EM> <EM><A href="https://www.iienstitu.com/en/blog/cross-functional-teams" target="_blank" rel="nofollow noopener noreferrer">https://www.iienstitu.com/en/blog/cross-functional-teams</A></EM></P><P>SAP Cloud Application Programming (CAP) Model enables a culture where people regardless of their title or background, work together to imagine, develop, deploy, and operate a solution. This strengthens the trust between employees and authentic healthy work relationships.</P><P>Thank you all for taking a glimpse into the above Content. Please don’t for get to like, comment and share.</P><P><STRONG>Abbreviations:</STRONG></P><P><STRONG>APP: </STRONG>Application</P><P><STRONG>CAP: </STRONG>Cloud Application Programing</P><P><STRONG>CDS</STRONG>: Core Data Services</P><P><STRONG>CI/CD:</STRONG> Continuous Integration and Continuous Delivery</P><P><STRONG>JWT</STRONG>: JSON Web token</P><P><STRONG>OData: </STRONG>Open Data Protocol</P><P><STRONG>RFC</STRONG>: Remote Function Call</P><P><STRONG>SAML</STRONG>: Security Assertion Markup Language</P><P><STRONG>SQL:</STRONG> Structured Query Language</P><P><STRONG>UIs:</STRONG> User Interfaces</P>2025-03-04T07:09:41.141000+01:00https://community.sap.com/t5/technology-blog-posts-by-sap/sap-master-data-integration-mdi-architecture-deployment-and-seamless/ba-p/14042704SAP Master Data Integration (MDI): Architecture, Deployment, and Seamless Connectivity2025-03-13T06:56:15.537000+01:00AbhayMishrahttps://community.sap.com/t5/user/viewprofilepage/user-id/170892<P>In today’s digital landscape, businesses rely on multiple interconnected systems to manage operations, from finance and supply chain to customer relationship management. However, maintaining consistent and accurate master data across these systems can be challenging. SAP Master Data Integration (MDI) addresses this challenge by providing a unified framework for seamless data synchronization across SAP and non-SAP applications. By leveraging MDI, organizations can ensure data consistency, improve efficiency, and reduce integration complexities.</P><H3 id="toc-hId-1834569263">What Is SAP Master Data Integration (MDI)?</H3><P>In the era of the Intelligent Enterprise, seamless data connectivity is essential for ensuring operational efficiency. <STRONG>SAP Master Data Integration (MDI)</STRONG> is a powerful, multi-tenant cloud service designed to act as a central hub for managing and synchronizing master data across various applications.</P><P>By integrating with SAP MDI, applications can maintain consistency by syncing their local master data repositories with a centralized master data database. Typically, each enterprise landscape is assigned a single MDI tenant, ensuring a unified and consistent view of master data across all connected systems.</P><P>Unlike traditional master data management solutions, SAP MDI focuses exclusively on integration. It facilitates the replication of master data records, allowing applications to perform initial data loads and continuously stay synchronized with the central database. Administrators have full control over data synchronization, enabling them to define integration rules, monitor replication processes, and ensure compliance with data protection and privacy regulations.</P><P>With SAP Master Data Integration, businesses can eliminate data silos, improve data accuracy, and create a streamlined digital ecosystem where applications communicate effortlessly.</P><H3 id="toc-hId-1638055758">Current Architecture</H3><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="mdi_overview_06d2311" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/236596iE15FE12EE558B723/image-size/large?v=v2&px=999" role="button" title="mdi_overview_06d2311" alt="mdi_overview_06d2311" /></span>* Does not cause any additional costs for customers having a BTP Global Account integrating SAP-branded cloud solutions, ready-to-use integration, standard for SAP-branded cloud applications</P><DIV class="">** Utilize SAP Integration Suite when ready-to-use integration is not available</DIV><DIV class="">*** Current integration of CX solutions mostly via SAP Integration Suite (direct integration on roadmap)</DIV><DIV class=""> </DIV><DIV class=""><P>SAP Master Data Integration (MDI) is designed to act as a central hub for seamless master data synchronization across various enterprise applications. Its architecture ensures that both SAP and non-SAP systems can efficiently exchange master data while maintaining consistency across the entire IT landscape.</P><H4 id="toc-hId-1570624972"><STRONG>Direct Integration with SAP Cloud Applications</STRONG></H4><P>MDI directly integrates with several SAP Cloud applications using <STRONG>pre-built SAP MDI Adapters</STRONG>. These adapters enable a smooth and standardized data flow between MDI and the following SAP solutions:</P><UL><LI><STRONG>SAP Field Service Management (FSM)</STRONG></LI><LI><STRONG>SAP SuccessFactors</STRONG></LI><LI><STRONG>SAP S/4HANA (Public & Private Cloud)</STRONG></LI><LI><STRONG>SAP Master Data Governance (MDG) Cloud</STRONG></LI><LI><STRONG>SAP Fieldglass</STRONG></LI><LI><STRONG>SAP Ariba</STRONG></LI><LI><STRONG>SAP Customer Experience (CX)</STRONG></LI></UL><P>Since these applications are built to work with SAP MDI, they can directly exchange master data without requiring additional middleware.</P><H4 id="toc-hId-1374111467"><STRONG>Integration with Non-SAP Applications and SAP ECC Systems</STRONG></H4><P>For legacy SAP ECC systems and non-SAP applications, direct connectivity to MDI is not available. Instead, <STRONG>SAP Cloud Platform Integration (CPI)</STRONG> acts as a middleware, facilitating communication between these systems and MDI. <STRONG>SAP CPI includes an MDI Adapter</STRONG>, which enables:</P><UL><LI>Secure and scalable integration of ECC and third-party applications with MDI.</LI><LI>Transformation and enrichment of master data before synchronization.</LI><LI>A flexible approach to integrate on-premise and hybrid cloud landscapes.</LI></UL><P>This hybrid architecture ensures that both modern cloud-based applications and traditional on-premise systems can participate in a unified master data strategy, reducing data silos and improving consistency across the enterprise.<BR />Feature Scope Description can be found here: <A title="MDI Feature Scope" href="https://help.sap.com/docs/master-data-integration/sap-master-data-integration-prod/feature-scope-description-for-sap-master-data-integration" target="_blank" rel="noopener noreferrer">MDI Feature Scope</A> <BR />Information on Pricing can be found here: <A title="MDI Service Pricing" href="https://help.sap.com/docs/master-data-integration/sap-master-data-integration-prod/pricing" target="_blank" rel="noopener noreferrer">MDI Service Pricing</A><BR />System Limitations can be found here: <A title="MDI System Limitations" href="https://help.sap.com/docs/master-data-integration/sap-master-data-integration-prod/system-limitations" target="_blank" rel="noopener noreferrer">MDI System Limitations</A> <BR />More Feature info can be found here: <A title="MDI Features" href="https://help.sap.com/docs/master-data-integration/sap-master-data-integration-prod/features" target="_blank" rel="noopener noreferrer">MDI Features</A> </P><H4 id="toc-hId-1177597962"><STRONG>What is SAP One Domain Model?</STRONG></H4><P>SAP One Domain Model is a standardized, common model for business objects across various SAP solutions. By aligning master data structures across SAP applications, ODM facilitates <STRONG>deep, out-of-the-box integration</STRONG>, simplified extensions, and consistent APIs for the SAP Intelligent Enterprise.</P><H4 id="toc-hId-981084457"><STRONG>Key Features of SAP One Domain Model</STRONG></H4><P><span class="lia-unicode-emoji" title=":white_heavy_check_mark:">✅</span><STRONG>Unified Data Structure:</STRONG> Provides a harmonized representation of business objects, ensuring consistency across different SAP applications.<BR /><span class="lia-unicode-emoji" title=":white_heavy_check_mark:">✅</span><STRONG>Standardized Integration:</STRONG> Enables seamless data exchange between applications like S/4HANA, SAP SuccessFactors, Ariba, Fieldglass, and Customer Experience solutions.<BR /><span class="lia-unicode-emoji" title=":white_heavy_check_mark:">✅</span><STRONG>Core Data Services (CDS) Based Definitions:</STRONG> The model definitions are written in <STRONG>Core Data Services (CDS)</STRONG>, forming the foundation for a <STRONG>consistent data view</STRONG> across hybrid landscapes.<BR /><span class="lia-unicode-emoji" title=":white_heavy_check_mark:">✅</span><STRONG>Foundation for Integration & Analytics:</STRONG> Aligns configurations, master data, and transactional data, enabling robust <STRONG>integration, extension, and analytics scenarios</STRONG>.</P><P>By adopting SAP One Domain Model, organizations can eliminate data inconsistencies, streamline integration efforts, and create a <STRONG>cohesive digital enterprise</STRONG> where applications interact seamlessly.</P><P>All supported Integration Models can be found here:<BR /><A title="Integration Models" href="https://help.sap.com/docs/master-data-integration/sap-master-data-integration-prod/integration-models" target="_blank" rel="noopener noreferrer">Integration Models</A> </P><H3 id="toc-hId-655488233"><STRONG>Getting Started with SAP Master Data Integration (MDI): A Simple Guide</STRONG></H3><P>SAP Master Data Integration (MDI) helps businesses ensure seamless master data synchronization across multiple applications. While the technical implementation requires expertise, understanding the <STRONG>initial setup</STRONG> helps organizations plan and prepare for MDI adoption.</P><H4 id="toc-hId-588057447"><STRONG>Pre-requisites</STRONG></H4><P>Before setting up MDI, the following are required:<BR /><span class="lia-unicode-emoji" title=":white_heavy_check_mark:">✅</span><STRONG>SAP BTP Global Account</STRONG> – This is the foundation for accessing SAP cloud services.<BR /><span class="lia-unicode-emoji" title=":white_heavy_check_mark:">✅</span><STRONG>SAP BTP Sub-account</STRONG> – A sub-account in the appropriate region where MDI is available:</P><UL><LI><STRONG>Europe (Frankfurt)</STRONG> – EU10, EU11</LI><LI><STRONG>US East (Virginia)</STRONG> – US10</LI><LI><STRONG>Australia (Sydney)</STRONG> – AP10</LI><LI><STRONG>Singapore</STRONG> – AP11</LI><LI><STRONG>China</STRONG> – CN40<BR /><span class="lia-unicode-emoji" title=":white_heavy_check_mark:">✅</span><STRONG>Spaces in Sub-account</STRONG> – Organizational units where services like MDI are deployed.</LI></UL><H3 id="toc-hId-262461223"><STRONG>Initial Setup Steps</STRONG></H3><H4 id="toc-hId-195030437"><STRONG><span class="lia-unicode-emoji" title=":keycap_1:">1️⃣</span>Create a Tenant</STRONG></H4><UL><LI>Each <STRONG>sub-account</STRONG> can have one <STRONG>MDI tenant</STRONG>.</LI><LI>A <STRONG>tenant</STRONG> is created when you subscribe to the <STRONG>SAP Master Data Integration Tenant application</STRONG>.</LI><LI>Each <STRONG>service instance</STRONG> within a sub-account connects to a client (e.g., S/4HANA, SuccessFactors).</LI><LI><STRONG>Best Practice:</STRONG><UL><LI>For <STRONG>production</STRONG>, create <STRONG>one MDI tenant</STRONG> to ensure data consistency.</LI><LI>For a <STRONG>three-system landscape</STRONG> (Development, Test, Production), use three <STRONG>separate</STRONG> tenants to prevent unintended data sharing.</LI></UL></LI></UL><H4 id="toc-hId--499200163"><STRONG><span class="lia-unicode-emoji" title=":keycap_2:">2️⃣</span>Create a Service Instance</STRONG></H4><UL><LI>For every <STRONG>application</STRONG> you connect, a <STRONG>dedicated service instance</STRONG> must be created from the SAP BTP <STRONG>marketplace</STRONG>.</LI><LI>After creating a service instance, set up a <STRONG>service binding</STRONG> to generate credentials for connectivity.</LI><LI>You can generate multiple credentials for an application by creating additional <STRONG>service bindings</STRONG>.</LI></UL><H4 id="toc-hId--695713668"><STRONG><span class="lia-unicode-emoji" title=":keycap_3:">3️⃣</span>Configure the Client</STRONG></H4><UL><LI>Define configuration details for each connected application.</LI><LI>Key attributes include:<BR /><span class="lia-unicode-emoji" title=":white_heavy_check_mark:">✅</span><STRONG>Business System ID</STRONG><BR /><span class="lia-unicode-emoji" title=":white_heavy_check_mark:">✅</span><STRONG>Write Permissions</STRONG><BR /><span class="lia-unicode-emoji" title=":white_heavy_check_mark:">✅</span><STRONG>Global Tenant ID</STRONG><BR /><span class="lia-unicode-emoji" title=":white_heavy_check_mark:">✅</span><STRONG>logSys</STRONG> (Logical System)</LI></UL><H4 id="toc-hId--892227173"><STRONG><span class="lia-unicode-emoji" title=":keycap_4:">4️⃣</span>Generate Service Keys</STRONG></H4><UL><LI>After configuring the service instance, generate a <STRONG>service key</STRONG>.</LI><LI>The service key is needed for authentication and establishing connectivity between SAP MDI and applications like S/4HANA, SuccessFactors, or Ariba.</LI></UL><H4 id="toc-hId--1088740678"><STRONG><span class="lia-unicode-emoji" title=":keycap_5:">5️⃣</span>Configure Master Data Orchestration/Business Data Orchestration</STRONG></H4><UL><LI>Use <STRONG>Business Data Orchestration</STRONG> to manage master data replication.</LI><LI>This allows you to:<BR /><span class="lia-unicode-emoji" title=":white_heavy_check_mark:">✅</span>Define <STRONG>distribution models</STRONG> for data replication.<BR /><span class="lia-unicode-emoji" title=":white_heavy_check_mark:">✅</span>Add <STRONG>extension fields</STRONG> to customize data attributes.<BR /><span class="lia-unicode-emoji" title=":white_heavy_check_mark:">✅</span>Monitor the <STRONG>distribution status</STRONG> of master data.</LI></UL><P>Please note, additional steps would be required to SOAP Applications, like additional distribution models in MDO, creating and configuring Destinations. This would be required for objects like Business Partners.<BR />Also for connecting S/4HANA Cloud or Cloud Applications Based on the SAP BTP ABAP environment, we would require to create communication arrangements (SAP_COM_0659) , (SAP_COM_0594) , Create destinations for MDO and Setup Distribution Models.</P><H3 id="toc-hId--991851176"><STRONG>What’s Next?</STRONG></H3><P>Once MDI is set up, your applications can start synchronizing master data efficiently. To ensure smooth operations, businesses should work closely with their IT teams or SAP partners for <STRONG>technical implementation, monitoring, and optimization</STRONG>.</P><P>More Blogs:<BR /><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/sap-master-data-integration-mdi-sap-s-4hana-business-partner-replication/ba-p/14158651" target="_blank">SAP MDI: SAP S/4HANA Business Partner Replication using DRF Customizing - SAP Community</A><BR /><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/sap-master-data-integration-mdi-bank-and-cost-center-replication-from-s/ba-p/14171660#M183450" target="_blank">SAP Master Data Integration (MDI) – Bank and Cost ... - SAP Community</A></P></DIV>2025-03-13T06:56:15.537000+01:00https://community.sap.com/t5/technology-blog-posts-by-sap/how-to-run-black-duck-scans-in-sap-continuous-integration-and-delivery-jobs/ba-p/14048199How to Run Black Duck Scans in SAP Continuous Integration and Delivery Jobs2025-03-18T10:44:35.063000+01:00SarahLendlehttps://community.sap.com/t5/user/viewprofilepage/user-id/535766<P><SPAN>In today's software development landscape, integrating security scans into your continuous integration and delivery (CI/CD) pipelines is a best practice. An automated process quickly identifies vulnerabilities and ensures that your software is secure. One essential tool for achieving this level of security is Black Duck. This tool performs comprehensive scans of your codebase and its open-source dependencies, helping to identify potential security vulnerabilities, license compliance issues, and code quality problems.</SPAN></P><P><SPAN>In this blog, I'll walk you through the process of integrating Black Duck scans into your SAP Continuous Integration and Delivery jobs. By creating a custom command for Black Duck scans, you can actively detect and address risks before they compromise your software, ensuring a more secure and reliable product. Let's dive into the steps required to achieve this integration and enhance your CI/CD pipeline with robust security measures.</SPAN></P><DIV class=""><H3 id="toc-hId-1834742527">Prerequisites</H3></DIV><OL><LI><STRONG>SAP BTP Access</STRONG>:<BR />Ensure that you have access to SAP BTP and verify that you have the necessary entitlements for the SAP Continuous Integration and Delivery service. See<SPAN> </SPAN><A href="https://help.sap.com/docs/continuous-integration-and-delivery/sap-continuous-integration-and-delivery/initial-setup?version=Cloud" target="_blank" rel="noopener noreferrer">Initial Setup</A>.</LI><LI><STRONG>Black Duck Access</STRONG>:<BR />Make sure you have access to a Black Duck server and have your API token available.</LI><LI><STRONG>Git Repository</STRONG>:<BR />You need a Git repository connected to SAP Continuous Integration and Delivery. See<SPAN> </SPAN><A href="https://help.sap.com/docs/continuous-integration-and-delivery/sap-continuous-integration-and-delivery/add-repository?version=Cloud" target="_blank" rel="noopener noreferrer">Add a Repository</A>.</LI></OL><H3 id="toc-hId-1638229022">Procedure</H3><DIV class=""><H5 id="toc-hId-1699880955">1. Prepare Your Script</H5></DIV><P>We'll use a bash script to run a Black Duck scan. This script installs the necessary Java Runtime Environment (JRE), downloads the Black Duck Detect tool, and then executes the scan.</P><P>Here’s the script we'll use:</P><DIV class=""><PRE><SPAN class="">#!/bin/bash</SPAN>
<SPAN class="">set</SPAN> -eu
<SPAN class=""># Runs Black Duck scan in current directory after downloading Java </SPAN>
<SPAN class=""># and Synopsys Detect script.</SPAN>
JRE_VERSION=<SPAN class=""><SPAN class="">"</SPAN>21.0.5<SPAN class="">"</SPAN></SPAN>
JRE_TAR=<SPAN class=""><SPAN class="">"</SPAN>sapmachine-jre-<SPAN class="">${JRE_VERSION}</SPAN>_linux-x64_bin.tar.gz<SPAN class="">"</SPAN></SPAN>
JRE_URL=<SPAN class=""><SPAN class="">"</SPAN>https://github.com/SAP/SapMachine/releases/download/sapmachine-<SPAN class="">$JRE_VERSION</SPAN>/<SPAN class="">$JRE_TAR</SPAN><SPAN class="">"</SPAN></SPAN>
DETECT_URL=<SPAN class=""><SPAN class="">"</SPAN>https://detect.synopsys.com/detect10.sh<SPAN class="">"</SPAN></SPAN>
<SPAN class="">install_jre</SPAN>() {
<SPAN class="">echo</SPAN> <SPAN class=""><SPAN class="">"</SPAN>Downloading and installing sapmachine from <SPAN class="">$JRE_URL</SPAN><SPAN class="">"</SPAN></SPAN>
wget --quiet <SPAN class="">$JRE_URL</SPAN> -O - <SPAN class="">|</SPAN> tar -xzf -
<SPAN class="">export</SPAN> JAVA_HOME=<SPAN class=""><SPAN class="">$(</SPAN>pwd<SPAN class="">)</SPAN></SPAN>/sapmachine-jre-<SPAN class="">${JRE_VERSION}</SPAN>
<SPAN class="">$JAVA_HOME</SPAN>/bin/java -version
<SPAN class="">echo</SPAN> <SPAN class=""><SPAN class="">"</SPAN>Java installation complete.<SPAN class="">"</SPAN></SPAN>
}
<SPAN class="">download_detect_tool</SPAN>() {
<SPAN class="">echo</SPAN> <SPAN class=""><SPAN class="">"</SPAN>Downloading Black Duck Detect tool from <SPAN class="">$DETECT_URL</SPAN><SPAN class="">"</SPAN></SPAN>
wget --quiet <SPAN class="">$DETECT_URL</SPAN> -O detect.sh
chmod +x detect.sh
<SPAN class="">echo</SPAN> <SPAN class=""><SPAN class="">"</SPAN>Black Duck Detect tool download complete.<SPAN class="">"</SPAN></SPAN>
}
<SPAN class="">run_blackduck_scan</SPAN>() {
<SPAN class="">echo</SPAN> <SPAN class=""><SPAN class="">"</SPAN>Running Black Duck scan...<SPAN class="">"</SPAN></SPAN>
./detect.sh --blackduck.url=<SPAN class=""><SPAN class="">"</SPAN><SPAN class="">$BD_SERVER</SPAN><SPAN class="">"</SPAN></SPAN> --blackduck.api.token=<SPAN class=""><SPAN class="">"</SPAN><SPAN class="">$BD_API_TOKEN</SPAN><SPAN class="">"</SPAN></SPAN> --detect.project.name=<SPAN class=""><SPAN class="">"</SPAN><SPAN class="">$BD_PROJECT_NAME</SPAN><SPAN class="">"</SPAN></SPAN> --detect.project.version.name=<SPAN class=""><SPAN class="">"</SPAN><SPAN class="">$BD_PROJECT_VERSION</SPAN><SPAN class="">"</SPAN></SPAN>
<SPAN class="">echo</SPAN> <SPAN class=""><SPAN class="">"</SPAN>Black Duck scan completed.<SPAN class="">"</SPAN></SPAN>
}
<SPAN class=""># Main script execution</SPAN>
install_jre
download_detect_tool
run_blackduck_scan</PRE><DIV class=""><H5 id="toc-hId-1503367450">2. Upload the Script to Your Repository</H5></DIV><P>Add your script to the repository containing your project source code.</P><DIV class=""><H5 id="toc-hId-1306853945">3. Add Additional Commands to Your Job</H5></DIV><OL><LI><P>In SAP Continuous Integration and Delivery, either create a new job or navigate to the job to which you want to add additional commands and choose<SPAN> </SPAN><STRONG>Edit</STRONG>.</P></LI><LI><P>In the Compliance stage section of your job, choose<SPAN> </SPAN><STRONG>+</STRONG><SPAN> </SPAN>next to<SPAN> </SPAN><STRONG>Additional Commands</STRONG>. This allows you to introduce a custom script.</P></LI><LI><P>Choose either<SPAN> </SPAN><STRONG>Run First in Stage</STRONG><SPAN> </SPAN>or<SPAN> </SPAN><STRONG>Run Last in Stage</STRONG><SPAN> </SPAN>to execute the scan in relation to other tasks.</P></LI><LI><P>In the<SPAN> </SPAN><STRONG>Command</STRONG><SPAN> </SPAN>text field. enter the following command to execute your script:</P><DIV class=""><PRE>bash path/to/your/blackduck_script.sh</PRE></DIV></LI><LI><P class="lia-align-left" style="text-align : left;">Replace<SPAN> </SPAN><FONT face="courier new,courier">path/to/your/blackduck_script.sh</FONT><SPAN> </SPAN>with the actual path to your script in the repository.</P></LI><LI><P>Confirm your changes.</P></LI></OL><DIV class=""><H5 id="toc-hId-1110340440">4. Add Additional Variables to Your Job</H5></DIV><P>The script uses a couple of variables provided in the environment, so you don't need to adjust the script for your jobs. Instead, we will set these variables using the<SPAN> </SPAN><STRONG>Additional Variables</STRONG><SPAN> </SPAN>feature.</P><OL><LI><P>In the Compliance stage section of your job, choose<SPAN> </SPAN><STRONG>+</STRONG><SPAN> </SPAN>next to<SPAN> </SPAN><STRONG>Additional Variables</STRONG>. This opens the<SPAN> </SPAN><STRONG>Add Variables</STRONG><SPAN> </SPAN>pop-up.</P></LI><LI><P>Add the following variables one after the other:</P><UL><LI><FONT face="courier new,courier">BD_SERVER</FONT>: Your Black Duck server URL.</LI><LI><FONT face="courier new,courier">BD_PROJECT_NAME</FONT>: The name of your project in Black Duck.</LI><LI><FONT face="courier new,courier">BD_PROJECT_VERSION</FONT>: The version of the project you are scanning.</LI></UL></LI></OL><P class="lia-indent-padding-left-30px" style="padding-left : 30px;">These variables will be used as parameters for the <FONT face="courier new,courier">detect.sh</FONT> script.</P><DIV class=""><H5 id="toc-hId-913826935">5. Add Additional Credentials to Your Job</H5></DIV><P>In the Compliance stage section of your job, choose<SPAN> </SPAN><STRONG>+</STRONG><SPAN> </SPAN>next to<SPAN> </SPAN><STRONG>Additional Credentials</STRONG><SPAN> </SPAN>and add the following credential to access your Black Duck server:</P><P><FONT face="courier new,courier">BD_API_TOKEN</FONT>: Your Black Duck API token.</P><DIV class=""><H5 id="toc-hId-717313430">6. Test Your Configuration</H5></DIV><P>Once the setup is complete, trigger your pipeline either manually or by committing new code to your repository. Monitor the pipeline to ensure the Black Duck scan executes properly and review the logs for any errors or output from the scan.</P><H3 id="toc-hId-262634487"><SPAN>Conclusion</SPAN></H3><P>With these steps, you've successfully integrated Black Duck scans into your SAP Continuous Integration and Delivery pipeline. You've empowered your development process with a robust security mechanism that proactively identifies vulnerabilities and maintains code quality. By automating these scans, you can focus on delivering secure, reliable software faster. Stay ahead of potential threats and ensure your software meets the highest security standards with this seamless integration. Happy secure coding!</P></DIV>2025-03-18T10:44:35.063000+01:00https://community.sap.com/t5/technology-blog-posts-by-members/sap-cloud-transport-management-system-setup-for-transporting-sap-build-work/ba-p/14049409SAP Cloud Transport Management System Setup for Transporting SAP Build Work zone Objects2025-03-20T18:30:58.113000+01:00Loganand__Sivabalanhttps://community.sap.com/t5/user/viewprofilepage/user-id/1492556<P><STRONG>Overview :</STRONG></P><P>The<SPAN> </SPAN><STRONG>Cloud Transport Management System (cTMS)</STRONG><SPAN> </SPAN>in SAP Business Technology Platform (BTP) automates software changes across different cloud environments. This tool streamlines the process of moving changes from development to testing and production environments, making it valuable for SAP customers using cloud-based development practices.</P><P><STRONG>Overview of Setting Up Cloud Transport Management for SAP Build Work Zone:</STRONG></P><P>SAP Build Work Zone (formerly known as SAP Launchpad service) creates personalized, role-based entry points for accessing SAP and non-SAP applications. When implementing<SPAN> </SPAN><STRONG>Cloud Transport Management (cTMS)</STRONG><SPAN> </SPAN>for SAP Build Work Zone, you can efficiently manage content transport—including roles, catalogs, and apps—across development, test, and production environments.</P><P><STRONG>Example Transport Structure Scenario :</STRONG></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Loganand__Sivabalan_0-1742375502750.jpeg" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/239435i50D9585212D77383/image-size/large?v=v2&px=999" role="button" title="Loganand__Sivabalan_0-1742375502750.jpeg" alt="Loganand__Sivabalan_0-1742375502750.jpeg" /></span></P><P>In this Blog, I have taken a setup of 2 tier landscape of Transport management for SAP Build Work zone Standard edition existing in Subaccounts that belong to different global accounts.</P><P><STRONG>Implementation Steps for Cloud Transport Management with SAP Build Work Zone</STRONG></P><UL><LI>Set Up SAP Build Work Zone Instances:</LI><LI>Subscribe to Cloud Transport Management Service (cTMS)</LI><LI>Configure Destinations</LI><LI>Create Transport Nodes in cTMS</LI><LI>Define Transport Route:</LI><LI>Prepare and Transport Content</LI><LI>Import Transport Request</LI><LI>Limitations and Key Considerations</LI></UL><OL><LI><P><STRONG>Set Up SAP Build Work Zone Instances</STRONG></P><P>In both the <STRONG>Development (DEV)</STRONG> and <STRONG>Production (PRD)</STRONG> subaccounts, subscribe to and create instances of the <STRONG>SAP Build Work Zone, standard edition</STRONG>. For a three-tier landscape, include <STRONG>Quality Assurance (QA)</STRONG> as well.</P><DIV class=""> </DIV><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Loganand__Sivabalan_1-1742375503641.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/239436iF296C9A28F6CE8A1/image-size/large?v=v2&px=999" role="button" title="Loganand__Sivabalan_1-1742375503641.png" alt="Loganand__Sivabalan_1-1742375503641.png" /></span><P>Generate <STRONG>service keys</STRONG><SPAN> for the SAP Build Work Zone instances in both DEV and PRD environments.</SPAN></P><DIV class=""> </DIV><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Loganand__Sivabalan_2-1742375503228.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/239434i61B3DB72CB771AEB/image-size/large?v=v2&px=999" role="button" title="Loganand__Sivabalan_2-1742375503228.png" alt="Loganand__Sivabalan_2-1742375503228.png" /></span><P>Perform the same above steps in the PRD subaccount as welll.</P></LI><LI><P><STRONG>Subscribe to Cloud Transport Management Service (cTMS)</STRONG></P><P>In the <STRONG>source subaccount</STRONG> (typically DEV), subscribe to the <STRONG>SAP Cloud Transport Management Service</STRONG>.</P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Loganand__Sivabalan_3-1742375503165.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/239438i700174A83CF5DB3A/image-size/large?v=v2&px=999" role="button" title="Loganand__Sivabalan_3-1742375503165.png" alt="Loganand__Sivabalan_3-1742375503165.png" /></span><P> </P>Create an instance and generate a <STRONG>service key</STRONG><SPAN> for the cTMS</SPAN><DIV class=""> </DIV><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Loganand__Sivabalan_4-1742375503232.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/239437i5B7E6553054286C1/image-size/large?v=v2&px=999" role="button" title="Loganand__Sivabalan_4-1742375503232.png" alt="Loganand__Sivabalan_4-1742375503232.png" /></span>The above step is applicable only for the source subaccount as cTMS is setup in one subaccount</LI><LI><P><STRONG>Configure Destinations</STRONG></P><P>Set up a <STRONG>destination</STRONG> for the Cloud Transport Management Service in both the DEV and PRD subaccounts.</P><P>Copy the service key details of the cTMS instance and create a destination named<SPAN> </SPAN><STRONG>ctms_destination</STRONG><SPAN> </SPAN>in both the DEV and PRD subaccounts respectively with the below config.<BR /><BR /></P>Name ctms_destination <TABLE><TBODY><TR><TD><FONT face="arial,helvetica,sans-serif">Type</FONT></TD><TD><FONT face="arial,helvetica,sans-serif">HTTP</FONT></TD></TR><TR><TD><FONT face="arial,helvetica,sans-serif">Description</FONT></TD><TD><FONT face="arial,helvetica,sans-serif">Destination to Cloud Transport Management</FONT></TD></TR><TR><TD><FONT face="arial,helvetica,sans-serif">URL</FONT></TD><TD><FONT face="arial,helvetica,sans-serif">uri from the service key of cTMS</FONT></TD></TR><TR><TD><FONT face="arial,helvetica,sans-serif">Proxy Type</FONT></TD><TD><FONT face="arial,helvetica,sans-serif">Internet</FONT></TD></TR><TR><TD><FONT face="arial,helvetica,sans-serif">Authentication</FONT></TD><TD><FONT face="arial,helvetica,sans-serif">OAuth2ClientCredentials</FONT></TD></TR><TR><TD><FONT face="arial,helvetica,sans-serif">Client ID</FONT></TD><TD><FONT face="arial,helvetica,sans-serif">Copy Client ID from the service key of the cTMS</FONT></TD></TR><TR><TD><FONT face="arial,helvetica,sans-serif">Client Secret</FONT></TD><TD><FONT face="arial,helvetica,sans-serif">Copy Client Secret from the service key of the cTMS</FONT></TD></TR><TR><TD><FONT face="arial,helvetica,sans-serif">Token Service URL</FONT></TD><TD><FONT face="arial,helvetica,sans-serif">copy from the service key and append /oauth/token to the URL</FONT></TD></TR><TR><TD><FONT face="arial,helvetica,sans-serif">Additional Property</FONT></TD><TD> </TD></TR><TR><TD><FONT face="arial,helvetica,sans-serif">node-name</FONT></TD><TD><FONT face="arial,helvetica,sans-serif">DEV</FONT></TD></TR></TBODY></TABLE><P>For PRD, Just change the Additional Property<SPAN> </SPAN><STRONG>node-name</STRONG><SPAN> </SPAN>to PRD<BR /><BR /></P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Loganand__Sivabalan_5-1742375503237.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/239439iD37761CCE3EB6CAB/image-size/large?v=v2&px=999" role="button" title="Loganand__Sivabalan_5-1742375503237.png" alt="Loganand__Sivabalan_5-1742375503237.png" /></span><P> </P>The check connection test will return the below message and you’re good to go!<BR /><BR /><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Loganand__Sivabalan_6-1742375503156.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/239442iE3B724FC029EDC6D/image-size/medium?v=v2&px=400" role="button" title="Loganand__Sivabalan_6-1742375503156.png" alt="Loganand__Sivabalan_6-1742375503156.png" /></span><P> </P>In the subaccount where cTMS is hosted (DEV in this case), create destinations for both the <STRONG>source</STRONG><SPAN> (DEV) and </SPAN><STRONG>target</STRONG><SPAN> (PRD) SAP Build Work Zone applications.</SPAN><P> Navigate to the destinations page in the cTMS subaccount and create the destinations for DEV and PRD workzone with the below config.<BR /><BR /></P>Name DEV <TABLE><TBODY><TR><TD>Type</TD><TD>HTTP</TD></TR><TR><TD>Description</TD><TD>Destination to Workzone Application DEV</TD></TR><TR><TD>URL</TD><TD>Portal service URL from service key of workzone and append /cdm_import_service</TD></TR><TR><TD>Proxy Type</TD><TD>Internet</TD></TR><TR><TD>Authentication</TD><TD>OAuth2ClientCredentials</TD></TR><TR><TD>Client ID</TD><TD>Copy Client ID from the service key of workzone</TD></TR><TR><TD>Client Secret</TD><TD>Copy Client Secret from the service key of workzone</TD></TR><TR><TD>Token Service URL</TD><TD><STRONG>uaa-url</STRONG><SPAN> </SPAN>from the service key</TD></TR></TBODY></TABLE><P> </P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Loganand__Sivabalan_7-1742375502753.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/239441iDD58A6EBF5BCBC1C/image-size/large?v=v2&px=999" role="button" title="Loganand__Sivabalan_7-1742375502753.png" alt="Loganand__Sivabalan_7-1742375502753.png" /></span><P> </P>Create another destination for PRD Application with the same details from the service key of PRD<DIV class=""> </DIV><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Loganand__Sivabalan_8-1742375503114.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/239440i5E2BDA4D39E4AC1F/image-size/large?v=v2&px=999" role="button" title="Loganand__Sivabalan_8-1742375503114.png" alt="Loganand__Sivabalan_8-1742375503114.png" /></span><P>The connection check will return the following message<BR /><BR /></P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Loganand__Sivabalan_9-1742375503107.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/239444i939B291E3716F0B9/image-size/medium?v=v2&px=400" role="button" title="Loganand__Sivabalan_9-1742375503107.png" alt="Loganand__Sivabalan_9-1742375503107.png" /></span></LI><LI><P><STRONG>Create Transport Nodes in cTMS</STRONG>:</P><P>In the cTMS application, create <STRONG>two transport nodes</STRONG>—one for the DEV Work Zone application and another for the PRD Work Zone application.</P><P>Navigate to the Cloud Transport Management Application and Create two nodes for DEV and PRD.</P><P data-unlink="true">Under Transport Nodes, Click on + and create nodes with the below settings. The name of the nodes must be same as that of what maintained in node-name property of the cTMS_destination <BR /><BR /></P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Loganand__Sivabalan_10-1742375503252.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/239443i23728B2E7B29F6A5/image-size/medium?v=v2&px=400" role="button" title="Loganand__Sivabalan_10-1742375503252.png" alt="Loganand__Sivabalan_10-1742375503252.png" /></span><P> </P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Loganand__Sivabalan_11-1742375503260.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/239445iE412EDC6926C91E0/image-size/large?v=v2&px=999" role="button" title="Loganand__Sivabalan_11-1742375503260.png" alt="Loganand__Sivabalan_11-1742375503260.png" /></span></LI><LI><P><STRONG>Define Transport Route</STRONG></P><P>Establish a <STRONG>transport route</STRONG> from the DEV node to the PRD node to enable the movement of content between the two environments.</P><P>Navigate to the Cloud Transport Management Application and Create Transport route DEV — PRD</P><P>Under Transport Routes tab, Click + to create a transport route.<BR /><BR /></P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Loganand__Sivabalan_12-1742375503533.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/239447iD50BD98B377432B3/image-size/large?v=v2&px=999" role="button" title="Loganand__Sivabalan_12-1742375503533.png" alt="Loganand__Sivabalan_12-1742375503533.png" /></span><P> </P>Under Landscape Visualization you can see your nodes and transport routes of them<span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Loganand__Sivabalan_13-1742375503152.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/239449iB155D25B01DC5BE2/image-size/large?v=v2&px=999" role="button" title="Loganand__Sivabalan_13-1742375503152.png" alt="Loganand__Sivabalan_13-1742375503152.png" /></span></LI><LI><P><STRONG>Prepare and Transport Content</STRONG></P><P>In the DEV Work Zone application, create a <STRONG>sample site</STRONG>, along with associated <STRONG>roles</STRONG> and <STRONG>groups</STRONG>.</P><P>I have created a test application in the DEV Workzone application with an Application, Group and Role each assigned to the site.</P><DIV class=""> </DIV><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Loganand__Sivabalan_14-1742375503117.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/239448iF5DCA8164D24A862/image-size/large?v=v2&px=999" role="button" title="Loganand__Sivabalan_14-1742375503117.png" alt="Loganand__Sivabalan_14-1742375503117.png" /></span><P> </P><BR /><BR /><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Loganand__Sivabalan_15-1742375503244.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/239452i2A46238448CB8C32/image-size/large?v=v2&px=999" role="button" title="Loganand__Sivabalan_15-1742375503244.png" alt="Loganand__Sivabalan_15-1742375503244.png" /></span><P> </P>To Transport a site along with all it’s assigned contents, you can transport the whole site using by selecting the Transport Site option under more options on the site directory.<BR /><BR /><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Loganand__Sivabalan_16-1742375503376.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/239450iB48F5C28494951A9/image-size/large?v=v2&px=999" role="button" title="Loganand__Sivabalan_16-1742375503376.png" alt="Loganand__Sivabalan_16-1742375503376.png" /></span><P> </P>Once you click on Transport Site, the site will be pushed as transport request to the cTMS system.<DIV class=""> </DIV><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Loganand__Sivabalan_17-1742375503395.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/239451iCF5F67ABCCD65CE3/image-size/large?v=v2&px=999" role="button" title="Loganand__Sivabalan_17-1742375503395.png" alt="Loganand__Sivabalan_17-1742375503395.png" /></span><P>To Transport objects individually you can select the objects in the content manager and click on the Transport Icon.<BR /><BR /></P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Loganand__Sivabalan_18-1742375503172.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/239454i8551F514AF979B2E/image-size/large?v=v2&px=999" role="button" title="Loganand__Sivabalan_18-1742375503172.png" alt="Loganand__Sivabalan_18-1742375503172.png" /></span></LI><LI><P><STRONG>Import Transport Request</STRONG></P><P>In the PRD environment, access the <STRONG>import queue</STRONG> of cTMS and import the transport request to deploy the content.</P><P>Navigate to the Landscape visualization Tab in the cTMS application and you can see the initial/Repeatable object count changed to 1 in the PRD queue.<BR /><BR /></P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Loganand__Sivabalan_19-1742375503164.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/239453iE0D57F588195370F/image-size/medium?v=v2&px=400" role="button" title="Loganand__Sivabalan_19-1742375503164.png" alt="Loganand__Sivabalan_19-1742375503164.png" /></span><P> </P><BR /><BR />Go to the import queue of PRD by selecting the node and clicking on Go to this node’s import queue.<P> </P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Loganand__Sivabalan_20-1742375503250.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/239455iDB7F573BD18D5E83/image-size/large?v=v2&px=999" role="button" title="Loganand__Sivabalan_20-1742375503250.png" alt="Loganand__Sivabalan_20-1742375503250.png" /></span>In the import queue you can see the Request waiting to be imported. Select the request and click in import selected to import it into PRD.<BR /><BR /><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Loganand__Sivabalan_21-1742375503135.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/239457i84F017A5CD79E93F/image-size/large?v=v2&px=999" role="button" title="Loganand__Sivabalan_21-1742375503135.png" alt="Loganand__Sivabalan_21-1742375503135.png" /></span><BR /><BR /><P> </P>Approve the Import Request and proceed to start import.<BR /><BR /><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Loganand__Sivabalan_22-1742375503506.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/239458i3DB2C270361869FF/image-size/large?v=v2&px=999" role="button" title="Loganand__Sivabalan_22-1742375503506.png" alt="Loganand__Sivabalan_22-1742375503506.png" /></span><P> </P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Loganand__Sivabalan_23-1742375503121.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/239456i5480A06C638371C9/image-size/medium?v=v2&px=400" role="button" title="Loganand__Sivabalan_23-1742375503121.png" alt="Loganand__Sivabalan_23-1742375503121.png" /></span><P> </P><P> </P>You can see the import logs in the Transport Action Logs tab. You can see the import status there.<DIV class=""> </DIV><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Loganand__Sivabalan_24-1742375503631.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/239460i5131E307C79310FC/image-size/large?v=v2&px=999" role="button" title="Loganand__Sivabalan_24-1742375503631.png" alt="Loganand__Sivabalan_24-1742375503631.png" /></span><BR /><BR /><P> </P>Now you can see the site transported with all it’s contents to the PRD workzone.<BR /><BR /><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Loganand__Sivabalan_25-1742375503178.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/239459i434ED9C4D5B61316/image-size/large?v=v2&px=999" role="button" title="Loganand__Sivabalan_25-1742375503178.png" alt="Loganand__Sivabalan_25-1742375503178.png" /></span><P> </P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Loganand__Sivabalan_26-1742375503144.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/239462i1ADA967794BA92BD/image-size/large?v=v2&px=999" role="button" title="Loganand__Sivabalan_26-1742375503144.png" alt="Loganand__Sivabalan_26-1742375503144.png" /></span><P> </P></LI><LI><P><STRONG>Limitations and Key Considerations</STRONG></P><UL class="lia-list-style-type-square"><LI><P><STRONG>Supported and Unsupported Objects</STRONG>:</P><UL class="lia-list-style-type-square"><LI><STRONG>Supported Objects</STRONG>:<UL class="lia-list-style-type-square"><LI>Sites, pages, and content (e.g., widgets, apps, and catalogs).</LI><LI>Roles and groups.</LI><LI>Custom themes and layouts.</LI></UL></LI><LI><STRONG>Unsupported Objects</STRONG>:<UL class="lia-list-style-type-square"><LI>User-specific personalization or customizations.</LI><LI>Some dynamic content or configurations tied to specific environments.</LI><LI>Certain administrative settings or system-level configurations.</LI></UL></LI></UL></LI><LI><P><STRONG>Environment-Specific Configurations</STRONG>:</P><UL class="lia-list-style-type-square"><LI>Some configurations (e.g., URLs, API endpoints, or destination settings) may be environment-specific and need to be adjusted manually after transport.</LI><LI>Hardcoded references to environment-specific details will not work in the target system without modification.</LI></UL></LI><LI><P><STRONG>Manual Adjustments in Target System</STRONG>:</P><UL class="lia-list-style-type-square"><LI>After transporting objects, you may need to manually adjust certain settings in the target system (e.g., reassigning roles or updating app URLs, as some application URLs of DEV and other systems may differ).</LI><LI>This is especially true for integrations with external systems or custom configurations.</LI></UL></LI><LI><P><STRONG>Data Loss Risks</STRONG>:</P><UL class="lia-list-style-type-square"><LI>If the target system already has content with the same names or IDs as the transported objects, there is a risk of overwriting or losing data. Always review and resolve conflicts during the import process.</LI></UL></LI><LI><P><STRONG>Transport of Large Objects</STRONG>:</P><UL class="lia-list-style-type-square"><LI>Transporting large sites or complex content structures may result in performance issues or timeouts during the export or import process.</LI><LI>Break down large transports into smaller, manageable chunks if necessary.</LI></UL></LI><LI><P><STRONG>Content Federation/ Content Manager</STRONG></P><P>If you’re using content federation for content from backend systems, the content provider/ package name must be identical in all the tiers.</P></LI></UL></LI></OL>2025-03-20T18:30:58.113000+01:00https://community.sap.com/t5/technology-blog-posts-by-sap/deployments-without-passwords-with-sap-continuous-integration-and-delivery/ba-p/14089250Deployments without passwords with SAP Continuous Integration and Delivery2025-05-05T10:19:22.419000+02:00holger_partschhttps://community.sap.com/t5/user/viewprofilepage/user-id/788609<P>This blog explains how to use BTP's capabilities to establish secure authentication between the <a href="https://community.sap.com/t5/c-khhcw49343/SAP+Continuous+Integration+and+Delivery/pd-p/73554900100800001771" class="lia-product-mention" data-product="1173-1">SAP Continuous Integration and Delivery</a> service and the Cloud Foundry runtime without sharing any kind of secret.</P><P>The blog comes in three sections:</P><OL><LI><P><STRONG>Motivation</STRONG>: Why it is not a good idea to share secrets</P></LI><LI><STRONG>Walkthrough</STRONG>: The steps to enable the scenario</LI><LI><STRONG>Deep Dive</STRONG>: More technical details on security aspects</LI></OL><P>If you're only interested in the "doing" part, feel free to skip directly to the walkthrough section.</P><H2 id="toc-hId-1709384511">Motivation</H2><P>Let's assume you have a development project that you want to build with the SAP Continuous Integration and Delivery service and then deploy to BTP Cloud Foundry.</P><P>For the deployment, some form of authentication is required between the SAP Continuous Integration and Delivery service and the runtime (Cloud Foundry). Often, this is done by sharing a secret piece of information with the SAP Continuous Integration and Delivery service. That can be a password, a service key, or a cryptographic private key.</P><P>But why is secret sharing actually a bad idea? Secret sharing is the little brother of the dreaded "secret sprawl". An organisation suffers from secret sprawl, if there are copies of secrets distributed over different places, <SPAN>leading to a loss of transparency and accountability</SPAN>. Secrets need to be changed, either in a planned way or (worst case) because of a security incident. To do so, one needs to know all the places where a secret is stored. Forget one, and an important technical user might be locked out.</P><P>You end up with an inventory of credentials and stored secrets, something which is—in my experience—hard to maintain.</P><P>How can we avoid this whole rigmarole? The best solution is to dispense with secret sharing altogether and to instead define a trust relation between two systems. Sometimes that is not possible, but if two services belong to the same platform, you should expect that it is.</P><H3 id="toc-hId-1641953725">Key Benefits</H3><P>A solution based on configured trust without secret sharing thus provides:</P><UL><LI>No operational efforts for secret rotation.</LI><LI>Improved security: Instead of tracking use of secrets, there is only one trust configuration, which can be disabled if necessary.</LI></UL><H2 id="toc-hId-1316357501">Walkthrough</H2><P>Enough chit-chat, let's do some work. Here is a step-by-step guide how SAP Continuous Integration and Delivery can gain access to Cloud Foundry in order to deploy an application.</P><H3 id="toc-hId-1248926715">Requirements</H3><UL><LI>A Cloud Identity Services tenant which acts as a custom identity provider (IdP) for platform users.</LI><LI>A user within the Cloud Identity Services tenant who has the developer role on the target space (the space the application should be deployed to).</LI><LI>A subaccount with a subscription to the SAP Continuous Integration and Delivery service. You need the "CICD Service Administrator" role to configure jobs and credentials.</LI><LI>A project you want to build, test, and deploy.</LI></UL><H3 id="toc-hId-1052413210">Certificate-based Authentication Credentials</H3><P>Let's start in the SAP Continuous Integration and Delivery service. Authentication in this service is modeled via credentials. We need a credential of type "<SPAN>Certificate-Based Authentication for Custom IdP":</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="holger_partsch_0-1745999803189.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/256519i7FE2D7F4B9FACE59/image-size/medium?v=v2&px=400" role="button" title="holger_partsch_0-1745999803189.png" alt="holger_partsch_0-1745999803189.png" /></span></P><P>The following data is required:</P><UL><LI>The email of the technical user.</LI><LI>The hostname of the SAP Cloud Identity Services tenant.</LI><LI>The origin key used when configuring the tenant as custom IdP for platform users.</LI></UL><P>That's it. No secrets here!</P><P>Once you hit "Create" the detailed view appears:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="holger_partsch_0-1753280563234.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/290488iA2100C784B72195E/image-size/medium?v=v2&px=400" role="button" title="holger_partsch_0-1753280563234.png" alt="holger_partsch_0-1753280563234.png" /></span></P><P>There is the information we just entered plus a pattern to match certificate distinguished names. Copy the pattern, because we will need it in the next step.</P><H3 id="toc-hId-855899705">Configuring the SAP Cloud Identity Services Tenant</H3><P>You want your SAP Cloud Identity Services tenant to trust certificates generated by the SAP Continuous Integration and Delivery service. To enable that, login to the admin console of your tenant and navigate to "Tenant Settings > Authentication" > "Trusted Certificate Configuration". Click "Add".</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="holger_partsch_1-1753280893152.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/290491i1AB8A412F8A1E21A/image-size/medium?v=v2&px=400" role="button" title="holger_partsch_1-1753280893152.png" alt="holger_partsch_1-1753280893152.png" /></span></P><P>Enter a freely chosen name and past the pattern. With the pattern the user email is extracted and the origin of the certificate (your SAP Continuous Integration and Delivery Service subscription) is checked. For more details on this, see the next section.</P><P>For more information, see the <A href="https://help.sap.com/docs/cloud-identity-services/cloud-identity-services/configure-x-509-client-certificates-for-user-authentication" target="_self" rel="noopener noreferrer">SAP Cloud Identity Service documentation</A>.</P><H3 id="toc-hId-659386200">Use the Certificate-based Credential in a Cloud Foundry Environment Job</H3><P>The rest is routine. Either create a <A href="https://help.sap.com/docs/continuous-integration-and-delivery/sap-continuous-integration-and-delivery/configure-sap-cloud-application-programming-model-job-in-job-editor" target="_self" rel="noopener noreferrer">Cloud Foundry Environment job</A> for you project or change an existing one to use you credential during the deployment. Here is an example for a deployment in the Acceptance stage:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="holger_partsch_1-1746007319294.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/256555i9BF79E1DDC5E6EE6/image-size/medium?v=v2&px=400" role="button" title="holger_partsch_1-1746007319294.png" alt="holger_partsch_1-1746007319294.png" /></span></P><P>That's it. Trigger your you job, lean back, and let the pipeline work for you.</P><H3 id="toc-hId-462872695">Troubleshooting</H3><P>In case the build fails with "Unauthorized" before the deployment, please log in to the admin console of your Cloud Identity Services tenant and navigate to "Tenant Settings" > Authentication" > "Certificate Authentication". Make sure that all check buttons are in OFF state.</P><H2 id="toc-hId-137276471">Deep Dive</H2><H3 id="toc-hId-69845685">Short-lived Certificates</H3><P>To achieve secure authentication without secret sharing, we use asymmetric cryptography in the form of certificates. Here are the details:</P><UL><LI>Your SAP Cloud Identity Services tenant trusts a certificate authority (CA) called "SAP Cloud Root CA". Each SAP operated service can issue certificates signed by that CA, which are subject to certain technically enforced rules.</LI><LI>The SAP Continuous Integration and Delivery service uses this in the following way. Let's assume we have a job that uses a "Certificate-based Authentication for Custom IdP" credential. When a build is triggered for this job, the following is going to happen:</LI></UL><OL><OL><LI>A key pair and a certificate signing request (CSR) are generated.</LI><LI>The CSR is signed by the SAP Cloud Root CA.</LI><LI>The resulting certificate and the private key are injected into the environment of the triggered build, so that the build can use them to authenticate against your SAP Cloud Identity Services tenant.</LI></OL></OL><UL><LI>Because there is a fresh certificate for every build, the validity of the certificate is extremely short: only twelve hours.</LI></UL><H3 id="toc-hId--201899189">Validation of Certificate Distinguish Names</H3><P>Now let's shift our point of view to the SAP Cloud Identity Services tenant which has just received a certificate in a request for authentication. It will do the following:</P><OL><LI>Using cryptography, it verifies that the certificate was issued by a trustworthy authority (the SAP Cloud Root CA)</LI><LI>Then, it looks into the fine print, i.e. the distinguished name (DN) of the certificate. It will be matched against the pattern configured above. The matching must be exact, except where a placeholder is used. The pattern will look similar to this:<P><FONT face="terminal,monaco">CN=${mail}, L=CICD-c47ae4ee-59f4-4fcd-a692-7454ac9b71b7, OU=9abd6d5c-8ea7-49d4-ab08-a8dc776ada09, OU=SAP Cloud Platform Clients, O=SAP SE, C=DE</FONT></P><P> </P>Let's look at the individual parts:<UL><LI><P><FONT face="terminal,monaco">OU=9abd6d5c-8ea7-49d4-ab08-a8dc776ada09, OU=SAP Cloud Platform Clients, O=SAP SE, C=DE: </FONT>These values in the DN are enforce by the CA. The UUID is the subaccount ID of the SAP Continuous Integration and Delivery service. The presence of this ID means that only certificates from that service will be accepted.</P></LI><LI><P><FONT face="terminal,monaco">L=CICD-c47ae4ee-59f4-4fcd-a692-7454ac9b71b7: </FONT>This value is provided by the SAP Continuous Integration and Delivery service. The UUID is the ID of the subaccount (owned by you) where your subscription to the service resides. This means that <I>only</I> certificates from this subaccount will be accepted.</P></LI></UL><UL><LI><FONT face="terminal,monaco">CN=${mail:techUser@example.com}: </FONT><SPAN>This is a placeholder to extract the email of the technical user. That email address was provided by you when you created the credential. The pattern will only match, if the email address from the certificate is the email address after the colon. This mean that with this configuration, we only give access to one specific user.</SPAN></LI></UL></LI></OL><H3 id="toc-hId--398412694">Summary</H3><UL><LI>There are checks in place that ensure that only certificates are accepted which originate from your SAP Continuous Integration and Delivery service tenant.</LI><LI>The generated certificates are short lived. That makes cryptanalytic attacks almost impossible and mitigates the blast radius in case a private key and certificate pair gets compromised.</LI><LI>However, if at any point in time you suspect that something fishy is going on, there is a clean opt-out: Just delete the Trusted Certificate configuration from your Identity Service tenant.</LI></UL><P>Thanks for reading. I am happy for any kind of feedback, so let me know what you think!</P>2025-05-05T10:19:22.419000+02:00https://community.sap.com/t5/technology-blog-posts-by-sap/sap-continuous-integration-and-delivery-and-checkmarx-one/ba-p/14118952SAP Continuous Integration and Delivery and Checkmarx One2025-06-16T15:10:29.490000+02:00krzyshttps://community.sap.com/t5/user/viewprofilepage/user-id/39097<DIV class=""><DIV class=""><DIV class=""><H1 id="toc-hId-1602443234">Enhancing SAP Continuous Integration and Delivery with Checkmarx One</H1></DIV><P>In today’s fast-paced digital landscape, maintaining robust security and compliance is more crucial than ever. As users of SAP Continuous Integration and Delivery, you understand the importance of delivering high-quality code rapidly. But how do you ensure that your code is not just functional, but also secure? This is where Static Application Security Testing (SAST) comes into play.</P><P>SAST is a technique used to analyze an application’s source code, bytecode, or even binary code for vulnerabilities that could be exploited. By integrating SAST into your CI/CD pipelines, you can actively identify and mitigate potential security risks before code reaches production. This approach offers numerous benefits, including early detection of vulnerabilities, reduced technical debt, and improved overall code quality.</P><P>Checkmarx One is an advanced SAST tool designed to provide comprehensive security analysis across various stages of your software development lifecycle. Checkmarx One can integrate with CI/CD pipelines, automating the process of identifying and remediating security flaws. This not only minimizes the risk of vulnerabilities but also ensures that your applications comply with industry standards and best practices.</P><P>In this blog post, we’ll guide you through the process of integrating Checkmarx One into the Compliance stage of your SAP Continuous Integration and Delivery jobs. By following these steps, you’ll be able to enhance the security and compliance of your code, ultimately delivering more resilient and trustworthy applications. So, let’s get started and explore how Checkmarx One can be added to your CI/CD jobs!</P><DIV class=""><H2 id="toc-hId-1535012448">Prepare the Script</H2></DIV><P>We'll use a bash script to run the Checkmarx scan. This script downloads the command line client, and then executes the scan:</P><DIV class=""><PRE>#!/bin/bash
set -euo pipefail
# Define the URL to download the Checkmarx One CLI
CLI_VERSION="2.3.21"
CLI_BINARY_TAR="ast-cli_${CLI_VERSION}_linux_x64.tar.gz"
CLI_URL="https://github.com/Checkmarx/ast-cli/releases/download/${CLI_VERSION}/${CLI_BINARY_TAR}"
# Define the CLI filename
CLI_BINARY="cx"
# Download CLI and make it executable.
download_cli() {
echo "Downloading Checkmarx One CLI version ${CLI_VERSION} from"
echo "${CLI_URL}"
if [ ! -f "${CLI_BINARY}" ]; then
curl -L -o "${CLI_BINARY}.tar.gz" "$CLI_URL"
tar -xzf "${CLI_BINARY}.tar.gz"
rm "${CLI_BINARY}.tar.gz"
chmod +x "${CLI_BINARY}"
fi
echo "Download complete."
}
# running the scan using env vars
execute_checkmarx_one_scan() {
echo "Running checkmarx One scan."
./"${CLI_BINARY}" scan create \
--project-name ${CX_PROJECT} \
--file-source ${PWD} \
--client-id ${CLIENT_ID} \
--client-secret ${CLIENT_SECRET} \
--base-uri ${CX_URI} \
--base-auth-uri ${CX_URI} \
--tenant ${CX_TENANT} \
--branch ${GIT_BRANCH}
}
download_cli && execute_checkmarx_one_scan</PRE><DIV class=""> </DIV></DIV><P>The script will require certain variables and credentials. Specifically, we'll add</P><UL><LI><FONT face="courier new,courier">CLIENT_ID</FONT> and <FONT face="courier new,courier">CLIENT_SECRET</FONT> as secrets</LI><LI><FONT face="courier new,courier">CX_PROJECT</FONT>, <FONT face="courier new,courier">CX_TENANT</FONT>, <FONT face="courier new,courier">CX_URI</FONT> as additional variables to the configuration of our SAP Continuous Integration and Delivery job later.</LI></UL><P>If you want to run your script locally, make sure these variables are set in the environment. To run the script as part of your job, you need to add it to your source code repository. In our example, we'll store it as<SPAN> </SPAN><FONT face="courier new,courier">.cicd/cxone.sh .</FONT></P><DIV class=""><H2 id="toc-hId-1338498943">Configure the SAP Continuous Integration and Delivery Job</H2></DIV><P>Now let's work on the SAP Continuous Integration and Delivery job that executes this bash script.</P><OL><LI><P>In SAP Continuous Integration and Delivery, navigate to your jobs or create a new one. This procedure will work with the<SPAN> </SPAN><STRONG>Cloud Foundry Environment</STRONG><SPAN> </SPAN>pipeline.</P></LI><LI><P>In the<SPAN> </SPAN><STRONG>Compliance</STRONG><SPAN> </SPAN>stage, add an<SPAN> </SPAN><STRONG>Additional Command</STRONG><SPAN> </SPAN>by entering the following into the text field:</P><P><FONT face="courier new,courier">./.cicd/cxone.sh</FONT></P></LI><LI><P>The script will require certain variables and credentials, which you need to add to your job:</P><UL><LI><STRONG>Additional Credentials</STRONG>:<SPAN> </SPAN><FONT face="courier new,courier">CLIENT_ID<SPAN> </SPAN></FONT>and<SPAN> </SPAN><FONT face="courier new,courier">CLIENT_SECRET</FONT></LI><LI><STRONG>Additional Variables</STRONG>:<SPAN> </SPAN><FONT face="courier new,courier">CX_PROJECT</FONT>,<SPAN> </SPAN><FONT face="courier new,courier">CX_TENANT</FONT>,<SPAN> </SPAN><FONT face="courier new,courier">CX_URI</FONT></LI></UL><P>All of these credentials and variables can be acquired from your Checkmarx One instance or from your Checkmarx administrators.</P></LI><LI><DIV class=""><SPAN>Once your configuration is complete, save the job.</SPAN></DIV></LI><LI><P>Run it and watch the magic.</P></LI></OL><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="1f7a83f1-59ba-4db6-886d-6059d3e5b601.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/274721iEB1FA77142A06F51/image-size/large?v=v2&px=999" role="button" title="1f7a83f1-59ba-4db6-886d-6059d3e5b601.png" alt="1f7a83f1-59ba-4db6-886d-6059d3e5b601.png" /></span></P><P>Your CI job will now not only run the scan but also fail if your quality thresholds are not met. Visit the Checkmarx One web application or your build log for more information on the findings. If things don't work out immediately (well, they never do, don't they?), have a look at the following Troubleshooting section.</P><DIV class=""><H2 id="toc-hId-1141985438">Error Handling and Troubleshooting</H2></DIV><P>If you encounter errors while running the script, check the following:</P><UL><LI>Ensure that the required variables and credentials are set correctly. (In general, adding better error handling and error messages will improve the usability of the script in production environments.)</LI><LI>Check the build log for any error messages or clues that can help you diagnose the issue.</LI></UL><DIV class=""><H2 id="toc-hId-945471933">Tips and Best Practices</H2></DIV><UL><LI>Make sure to update the<SPAN> </SPAN><FONT face="courier new,courier">CLI_VERSION<SPAN> </SPAN></FONT>variable in the script to match the latest version of the Checkmarx One CLI.</LI><LI>If you're using a different repository structure, update the job to point to the correct location of the script.</LI></UL><P>Now you have integrated Checkmarx One security scans into your SAP Continuous Integration and Delivery job. This will help you catch security vulnerabilities early in the development cycle and ensure that your code is secure and compliant with industry standards.</P><P>Please let us know what you think in the comments!</P></DIV></DIV>2025-06-16T15:10:29.490000+02:00https://community.sap.com/t5/technology-blog-posts-by-sap/sap-master-data-integration-mdi-sap-s-4hana-business-partner-replication/ba-p/14158651SAP Master Data Integration (MDI): SAP S/4HANA Business Partner Replication using DRF Customizing2025-07-25T07:51:03.447000+02:00AbhayMishrahttps://community.sap.com/t5/user/viewprofilepage/user-id/170892<H4 id="toc-hId-1993382591"><STRONG>Introduction</STRONG></H4><P>This blog builds on our earlier post on <A class="" href="https://community.sap.com/t5/technology-blog-posts-by-sap/sap-master-data-integration-mdi-architecture-deployment-and-seamless/ba-p/14042704" target="_new">SAP MDI Architecture and Deployment</A>. Here, we explore <STRONG>end-to-end configuration</STRONG> for replicating <STRONG>Business Partner</STRONG> data from an <STRONG>SAP S/4HANA</STRONG> system to <STRONG>SAP Master Data Integration (MDI)</STRONG> using SOAP-based communication and DRF (Data Replication Framework).</P><H3 id="toc-hId-1667786367"><STRONG>Prerequisites</STRONG></H3><P>Ensure the following are in place:</P><UL><LI>SAP MDI service instance and service key created in SAP BTP Cockpit</LI><LI>DRF enabled in the S/4HANA system</LI><LI>Role-based access to SOAMANAGER</LI><LI>Active connectivity between SAP BTP and On-Premises via SAP Cloud Connector</LI></UL><H3 id="toc-hId-1471272862"><STRONG>DRF Configuration</STRONG></H3><UL><LI>In DRFIMG, create a Business System with BO Type and Communication System "Replication via Services" for the object "986" for Business Partner <SPAN>including Relationships</SPAN>.</LI><LI>Ensure the Business System ID matches the one used in the <STRONG>MDO configuration</STRONG> to avoid integration errors.</LI><LI>Assign Outbound Implementation "<SPAN>986_3 Outbound Implementation for BP/REL via Services", Assign Target System and Outbound Parameters under "Define Replication Models".<BR /></SPAN></LI><LI>Repeat steps above for Key Mapping as<SPAN> </SPAN><STRONG>1376</STRONG><SPAN> </SPAN>if the integration scenario requires key mapping replication.</LI></UL><H3 id="toc-hId-1274759357"><STRONG> WSDL Setup via SOAMANAGER</STRONG></H3><H5 id="toc-hId-1336411290"><STRONG>Download WSDLs</STRONG></H5><UL><LI><P>Download 6 WSDLs as per SAP Note <A class="" href="https://me.sap.com/notes/2987243/E" target="_new" rel="noopener noreferrer">2987243</A></P></LI></UL><H5 id="toc-hId-1139897785"><STRONG>Customize and Upload</STRONG></H5><UL><LI>Now we have the below 6 WSDL Files:<BR />BusinessPartnerSUITEBulkReplicateRequest_Out<BR />BusinessPartnerSUITEBulkReplicateConfirmation_Out<BR />BusinessPartnerRelationshipSUITEBulkReplicateRequest_Out<BR />BusinessPartnerRelationshipSUITEBulkReplicateConfirmation_Out<BR />KeyMappingBulkReplicateRequest_Out<BR />KeyMappingBulkReplicateConfirmation_Out</LI><LI>Add the following elements at the end of each of the WSDL Files before the </wsdl:definitions> tag.</LI><LI>It is important to note that the below XML element contains a sample SAP Master Data Integration Endpoint.<BR /><EM><wsdl:service name="..."><BR /></EM><EM><wsdl:port name="..." binding="..."><BR /></EM><EM><soap:address location="https://<uri>:443/businesspartner/v0/soap/BusinessPartnerRelationshipBulkReplicateRequestConfirmIn?tenantId=<identity_zone>" /><BR /></EM><EM></wsdl:port><BR /></EM><EM></wsdl:service></EM></LI><LI>You need to replace this with your Master Data Integration details for all of them.<BR />The SAP Master Data Integration Endpoint is of the following pattern:<uri>:443/businesspartner/v0/soap/BusinessPartnerRelationshipBulkReplicateRequestConfirmIn?tenantId=<identity_zone><BR />In the above pattern:<BR />URI is equal to the value of attribute “uri” in your Master Data Integration instance’s service key<BR />identity_zone is equal to the value of attribute “identity zone” in your Master Data Integration instance’s service key<BR />Example for 1 WSDL- <EM><A href="https://one.mds.cfapps.sap.hana.ondemand.com:443/businesspartner/v0/soap/BusinessPartnerRelationshipBulkReplicateRequestConfirmIn?tenantId=mdibpconsumer1" target="_blank" rel="noopener nofollow noreferrer">https://one.mds.cfapps.sap.hana.ondemand.com:443/businesspartner/v0/soap/BusinessPartnerRelationshipBulkReplicateRequestConfirmIn?tenantId=mdibpconsumer1</A></EM></LI><LI>Upload all 6 WSDLs in SOA Management<span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AbhayMishra_0-1753421655441.png" style="width: 758px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/291262iB88390B7DFF958BF/image-size/large?v=v2&px=999" role="button" title="AbhayMishra_0-1753421655441.png" alt="AbhayMishra_0-1753421655441.png" /></span><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AbhayMishra_1-1753421664488.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/291263iFCFEC9ED2F7EDF2F/image-size/large?v=v2&px=999" role="button" title="AbhayMishra_1-1753421664488.png" alt="AbhayMishra_1-1753421664488.png" /></span></LI></UL><H3 id="toc-hId-685218842"><STRONG>Publish WSDLs to Services Registry</STRONG></H3><UL><LI>Use Services Registry → Publication of External WSDL</LI><LI>Assign appropriate internal names, bindings, and physical systems</LI><LI>Reuse the physical system object across all WSDLs after first creation</LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AbhayMishra_2-1753421755727.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/291264i941CA6044726A5DF/image-size/large?v=v2&px=999" role="button" title="AbhayMishra_2-1753421755727.png" alt="AbhayMishra_2-1753421755727.png" /></span></P><H3 id="toc-hId-488705337"><STRONG>MDI System Access Profile</STRONG></H3><UL><LI>Go to Technical Administration → Profiles</LI><LI>Create a new profile with:<BR /><STRONG>Auth</STRONG>: User ID/Password<BR /><STRONG>Transport</STRONG>: Secured communication</LI><LI>Link this profile to the provider system using the same Business System ID as DRF</LI></UL><H3 id="toc-hId-292191832"><STRONG>Logon Data Management</STRONG></H3><UL><LI>Go to Service Administration → Logon Data Management</LI><LI>Create credentials using:<BR />clientId as username<BR />clientSecret as password from the MDI service key</LI></UL><H3 id="toc-hId-95678327"><STRONG>Local Integration Scenario Configuration</STRONG></H3><UL><LI>Go to Local Integration Scenario Configuration</LI><LI>Add these service groups:<BR />MDG_BS_SUPPLIERREPLICATEREQ<BR />MDG_BS_SUPPLIERREPLICATECONF<BR />KEY_MAP_REPLICATE_REQ<BR />KEY_MAP_REPLICATE_CONF</LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AbhayMishra_4-1753421859268.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/291267iEE21EA9D58FFBFC0/image-size/large?v=v2&px=999" role="button" title="AbhayMishra_4-1753421859268.png" alt="AbhayMishra_4-1753421859268.png" /></span></P><UL><LI>Assign IBC Reference to each from the MDI system</LI><LI>Link all service groups to the created Logon Data</LI></UL><H3 id="toc-hId--176066547"><STRONG>Activate Logical Ports</STRONG></H3><UL><LI>Go to Service Administration → Pending Tasks</LI><LI>Process all pending tasks</LI><LI>Validate port creation via Web Service Configuration</LI></UL><H3 id="toc-hId--372580052"><STRONG>SOAP Endpoint Setup for MDI</STRONG></H3><UL><LI>Go to Web Service Configuration</LI><LI>For each of the 6 service definitions (e.g. BUSINESSPARTNERSUITEBULKREPLIC), create a <STRONG>service binding</STRONG></LI><LI>Under “Transport Settings”, copy the <STRONG>Calculated Access URL</STRONG></LI><LI>Final endpoint:<BR /><A target="_blank" rel="noopener">https://<host>:<port>/<calculated_access_url></A><BR />Example: <BR /><EM><A href="https://ldciemt.wdf.sap.corp:44322/sap/bc/srt/xip/sap/businesspartnersuitebulkreplic/405/mdibpconsumer11/binding8" target="_blank" rel="noopener nofollow noreferrer">https://ldciemt.wdf.sap.corp:44322/sap/bc/srt/xip/sap/businesspartnersuitebulkreplic/405/mdibpconsumer11/binding8</A></EM></LI></UL><P>This URL is then used to configure the BPOUTBOUND destination in your BTP subaccount.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="AbhayMishra_5-1753421975629.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/291268i79810F845C6C873C/image-size/large?v=v2&px=999" role="button" title="AbhayMishra_5-1753421975629.png" alt="AbhayMishra_5-1753421975629.png" /></span></P><H3 id="toc-hId--569093557"><STRONG>Conclusion</STRONG></H3><P>With this setup complete, your <STRONG>S/4HANA</STRONG> system is now capable of replicating <STRONG>Business Partner master data</STRONG> to <STRONG>SAP MDI</STRONG> in real-time via push or pull mechanisms. You’ve established secure communication, configured service groups, and integrated SOAP endpoints — ensuring a robust and scalable MDI architecture.<BR />Please note the Blog is to connect S/4HANA on-prem/Private Cloud system to MDI, there can be more scenario where the MDI would be then connected to other systems. For such scenarios, configuration is required in Master Data Orchestration or Business Data Orchestration.<BR /><BR />More Blogs:<BR /><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/sap-master-data-integration-mdi-architecture-deployment-and-seamless/ba-p/14042704" target="_blank">SAP Master Data Integration (MDI): Architecture, D... - SAP Community</A><BR /><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/sap-master-data-integration-mdi-bank-and-cost-center-replication-from-s/ba-p/14171660#M183450" target="_blank">SAP Master Data Integration (MDI) – Bank and Cost ... - SAP Community</A></P>2025-07-25T07:51:03.447000+02:00https://community.sap.com/t5/technology-blog-posts-by-sap/the-new-cloud-foundry-pipeline-in-sap-continuous-integration-and-delivery/ba-p/14240330The New Cloud Foundry Pipeline in SAP Continuous Integration and Delivery2025-10-14T09:48:16.179000+02:00holger_partschhttps://community.sap.com/t5/user/viewprofilepage/user-id/788609<P><ul =""><li style="list-style-type:disc; margin-left:0px; margin-bottom:1px;"><a href="https://community.sap.com/t5/technology-blog-posts-by-sap/the-new-cloud-foundry-pipeline-in-sap-continuous-integration-and-delivery/ba-p/14240330#toc-hId-1633598790">Version 3 of the Cloud Foundry Environment Pipeline is Here</a></li><li style="list-style-type:disc; margin-left:15px; margin-bottom:1px;"><a href="https://community.sap.com/t5/technology-blog-posts-by-sap/the-new-cloud-foundry-pipeline-in-sap-continuous-integration-and-delivery/ba-p/14240330#toc-hId-1566168004">Why the Cloud Foundry Environment Pipeline needed an Update</a></li><li style="list-style-type:disc; margin-left:15px; margin-bottom:1px;"><a href="https://community.sap.com/t5/technology-blog-posts-by-sap/the-new-cloud-foundry-pipeline-in-sap-continuous-integration-and-delivery/ba-p/14240330#toc-hId-1369654499">Changes in Version 3</a></li><li style="list-style-type:disc; margin-left:30px; margin-bottom:1px;"><a href="https://community.sap.com/t5/technology-blog-posts-by-sap/the-new-cloud-foundry-pipeline-in-sap-continuous-integration-and-delivery/ba-p/14240330#toc-hId-1302223713">Removal of On/Off Switches</a></li><li style="list-style-type:disc; margin-left:30px; margin-bottom:1px;"><a href="https://community.sap.com/t5/technology-blog-posts-by-sap/the-new-cloud-foundry-pipeline-in-sap-continuous-integration-and-delivery/ba-p/14240330#toc-hId-1105710208">API Redesign</a></li><li style="list-style-type:disc; margin-left:30px; margin-bottom:1px;"><a href="https://community.sap.com/t5/technology-blog-posts-by-sap/the-new-cloud-foundry-pipeline-in-sap-continuous-integration-and-delivery/ba-p/14240330#toc-hId-909196703">In-repository Configuration Format</a></li><li style="list-style-type:disc; margin-left:15px; margin-bottom:1px;"><a href="https://community.sap.com/t5/technology-blog-posts-by-sap/the-new-cloud-foundry-pipeline-in-sap-continuous-integration-and-delivery/ba-p/14240330#toc-hId-583600479">New Features</a></li><li style="list-style-type:disc; margin-left:30px; margin-bottom:1px;"><a href="https://community.sap.com/t5/technology-blog-posts-by-sap/the-new-cloud-foundry-pipeline-in-sap-continuous-integration-and-delivery/ba-p/14240330#toc-hId-516169693">Build Descriptors</a></li><li style="list-style-type:disc; margin-left:30px; margin-bottom:1px;"><a href="https://community.sap.com/t5/technology-blog-posts-by-sap/the-new-cloud-foundry-pipeline-in-sap-continuous-integration-and-delivery/ba-p/14240330#toc-hId-319656188">MTA Extension Descriptors</a></li><li style="list-style-type:disc; margin-left:15px; margin-bottom:1px;"><a href="https://community.sap.com/t5/technology-blog-posts-by-sap/the-new-cloud-foundry-pipeline-in-sap-continuous-integration-and-delivery/ba-p/14240330#toc-hId--5940036">Getting There: The Migration</a></li></ul></P><H1 id="toc-hId-1633598790">Version 3 of the Cloud Foundry Environment Pipeline is Here</H1><P>At the end of September 2025, the version 3 of the Cloud Foundry Environment pipeline was released in the SAP Continuous Integration and Delivery service. This means, in a nutshell:</P><UL><LI>New Cloud Foundry Environment jobs created with the UI will already have version 3.</LI><LI>Until <SPAN>January 15, 2026, version 2 jobs will function normally. It will still be possible to create them via the API.</SPAN></LI><LI><SPAN>Tooling is available to migrate from version 2 to 3.</SPAN></LI><LI><SPAN>On January 15, 2026, all remaining version 2 jobs will be migrated automatically.</SPAN></LI></UL><P><SPAN>This blog post describes our motivation for doing this change and highlights some key aspects. If you are more interested in using the new pipeline right away, check out the <A href="https://help.sap.com/docs/continuous-integration-and-delivery/sap-continuous-integration-and-delivery/configure-sap-cloud-application-programming-model-job-in-job-editor" target="_self" rel="noopener noreferrer">official documentation</A>.</SPAN></P><H2 id="toc-hId-1566168004">Why the Cloud Foundry Environment Pipeline needed an Update</H2><P>The "Cloud Foundry Environment" pipeline is our most widely used pipeline. Hence, it was the focus of the development team to continuously provide improvements. The former version 2 of the pipeline was already quite dated and had acquired some historical baggage. So in order to further improve it, a fresh start was required--in other words: We needed to do incompatible changes.</P><P>That being said, we do understand that our customer base has made a huge investment into the existing version by configuring thousands of jobs. To safeguard this investment, we build migration functionality to allow a seamless transition to the new version.</P><P>But before discussing this, let's look at the most important changes.</P><H2 id="toc-hId-1369654499">Changes in Version 3</H2><H3 id="toc-hId-1302223713">Removal of On/Off Switches</H3><P>Previously, lots of configuration elements could be switched on or off:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="holger_partsch_1-1760102520274.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/325626i40783EE90962555A/image-size/medium?v=v2&px=400" role="button" title="holger_partsch_1-1760102520274.png" alt="holger_partsch_1-1760102520274.png" /></span></P><P>These switches are now gone. That makes the UI less cluttered and more intuitive: Instead of switching on an element before configuring it, you now just add the element using the "+" button:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="holger_partsch_2-1760102938616.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/325636iA71D9D906F32BDDC/image-size/medium/is-moderation-mode/true?v=v2&px=400" role="button" title="holger_partsch_2-1760102938616.png" alt="holger_partsch_2-1760102938616.png" /></span></P><P>If you no longer want a configuration element, you will have to delete it. If you want to preserve the data you have entered, create a safety copy of the entire job using the copy button in the job details view.</P><H3 id="toc-hId-1105710208">API Redesign</H3><P>Not only did we work on the UI, but also on the API, i.e. the structure of the payload data clients have to send to create/update a job. We improved field names and got rid of some inconsistencies.</P><P>If you want to use the API directly to create jobs, you can find the complete specification of the payload as a <A href="https://json-schema.org/docs" target="_self" rel="nofollow noopener noreferrer">JSON schema</A> document which is available in our API as a resource. To access it, open the front page of the SAP Continuous Integration and Delivery UI. Now, in the browser's address bar, remove everything after the hostname and replace it with <FONT face="courier new,courier">/v2.</FONT> Hit enter, and you get to the front page of our API. From here, you can browse the complete API by following links. The path /<FONT face="courier new,courier">v2.1/pipelineDefinitions/cf-env/3.0/schema</FONT> will get you to the schema document for the Cloud Foundry Environment version 3 pipeline.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="holger_partsch_0-1760343703834.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/326602i6834EDF927743991/image-size/medium?v=v2&px=400" role="button" title="holger_partsch_0-1760343703834.png" alt="holger_partsch_0-1760343703834.png" /></span></P><P> </P><H3 id="toc-hId-909196703">In-repository Configuration Format</H3><P>Previously, there was a special format to be used when providing in-repository configuration for a job via a <FONT face="courier new,courier">.pipeline/config.yaml </FONT>file. This format has been removed. Instead, the same format as in the API payload is to be used. In particular, what we said above about the JSON schema applies here as well. The only difference is that, for convenience, YAML can be used instead of JSON. Here is an example of a simple configuration for a job doing a build, deployment and test. To avoid ambiguity, the configuration file name in version 3 is <FONT face="courier new,courier">.cid_service/config.yaml</FONT>.</P><pre class="lia-code-sample language-yaml"><code>---
stages:
build:
buildTool: "mta"
buildToolVersion: "MBTJ21N22"
npmLint:
failOnError: true
malwareScan:
scan: true
acceptance:
webdriverIoTests:
npmScript: "wdi5"
baseUrl: "https://www.test.com"
credential: "test-cred"
cfDeploy:
credential: "test-cred"
apiEndpoint: "https://www.test.com"
org: "org"
space: "space"
strategy: "default"</code></pre><P> If you are familiar with the old format, you will realize, that this is much more simple and concise than what we had before.</P><H2 id="toc-hId-583600479">New Features</H2><H3 id="toc-hId-516169693">Build Descriptors</H3><P>Every project has a build descriptor file. Depending on the technology, it could be a <FONT face="courier new,courier">mta.yaml</FONT>, a <FONT face="courier new,courier">package.json</FONT> or a <FONT face="courier new,courier">pom.xml</FONT>. Instead of assuming this file is always located in the project root folder, you can now specify a path relative to the project root. For example: <FONT face="courier new,courier">code/mta.yaml</FONT>. This allows for a more flexible project structure.</P><H3 id="toc-hId-319656188">MTA Extension Descriptors</H3><P>In the MTA use case, so-called <A href="https://help.sap.com/docs/btp/sap-business-technology-platform/defining-mta-extension-descriptors" target="_self" rel="noopener noreferrer">extension descriptors</A> are used for providing configuration that is specific for a certain deployment. For example, you might want to configure more application instances in the release stage for your productive deployment than in the acceptance stage for your test deployment.</P><P>This feature is now fully supported by the service, i.e., you can specify a list of extension descriptor files to go with each deployment.</P><H2 id="toc-hId--5940036">Getting There: The Migration</H2><P>First the good news: If you have a version 2 job which is configure with the Job Editor, the migration is basically just a click. Just use the "Migrate" button in the job details view, and the service is taking care of the rest. Since the migration cannot be undone, consider creating a "safety copy" using the copy button.</P><P>You can also decide to do nothing for now, since on <SPAN>January 15, 2026, all remaining jobs will be migrated automatically.</SPAN></P><P>It is a bit more complicated for jobs with in-repository configuration, because we cannot just push a commit in your repository migrating the configuration. Instead, if you use the migration button for the in-repository configured job, you will be asked to paste the content of your <FONT face="courier new,courier">.pipeline/config.yml</FONT> file. The result will be the expected content of the new <FONT face="courier new,courier">.sap_cid/config.yml</FONT> file. Create this file in your repository, commit everything and finish the migration flow in the UI. Note that for jobs with in-repository configuration, you need take active steps to complete the migration. Otherwise, they will stop working on <SPAN>January 15, 2026.</SPAN></P><P>For more details on the migration, check out our <A href="https://help.sap.com/docs/continuous-integration-and-delivery/sap-continuous-integration-and-delivery/migrating-to-new-version-of-cloud-foundry-environment-pipeline-93203258b7b24ba7936a986b71271a77" target="_self" rel="noopener noreferrer">official documentation</A>.</P>2025-10-14T09:48:16.179000+02:00https://community.sap.com/t5/technology-blog-posts-by-members/ci-cd-amp-sctm-setup-on-sap-btp-nestjs-react-extensions/ba-p/14305612CI/CD & SCTM Setup on SAP BTP (NestJS + React Extensions)2026-01-20T05:09:37.457000+01:00PetrBeckahttps://community.sap.com/t5/user/viewprofilepage/user-id/152296<P class="">In my previous post, I focused on developer productivity and measurable outcomes. This time, I’m switching gears to <SPAN class=""><STRONG>delivery engineering</STRONG></SPAN>: how we build and ship <SPAN class=""><STRONG>two independent apps</STRONG></SPAN>—a <SPAN class=""><STRONG>NestJS backend</STRONG></SPAN> and a <SPAN class=""><STRONG>React frontend</STRONG></SPAN> (behind <SPAN class=""><STRONG>Managed AppRouter</STRONG></SPAN>)—as extensions on <SPAN class=""><STRONG>SAP BTP Cloud Foundry</STRONG></SPAN>, using <SPAN class=""><STRONG>SAP Continuous Integration and Delivery (CI/CD)</STRONG></SPAN> and <SPAN class=""><STRONG>SAP Cloud Transport Management (SCTM)</STRONG></SPAN>.</P><P class="">SAP CI/CD gives us predefined CI/CD pipelines we can configure and run as jobs.<SPAN class=""> </SPAN></P><P class="">SCTM adds controlled transport, an import queue, and manual approvals when needed.<SPAN class=""> </SPAN></P><P class=""> </P><H2 id="toc-hId-1787768354"><STRONG>What We Deliver (Two Apps, Two Lifecycles)</STRONG></H2><H3 id="toc-hId-1720337568"><STRONG>1) React Frontend (behind Managed AppRouter)</STRONG></H3><P class="">We package the React UI so it’s served through <SPAN class=""><STRONG>SAP BTP Managed Application Router</STRONG></SPAN>, meaning we don’t maintain our own AppRouter runtime.<SPAN class=""> </SPAN></P><H3 id="toc-hId-1523824063"><STRONG>2) NestJS Backend</STRONG></H3><P class="">Standard Node.js service deployed to Cloud Foundry, independently released from the frontend.</P><P class=""> </P><H2 id="toc-hId-1198227839"><STRONG>The CI/CD Flow (End-to-End)</STRONG></H2><OL><LI><P class=""><SPAN class=""><STRONG>Merge happens</STRONG></SPAN> into a tracked branch (we use <SPAN class="">test</SPAN> and <SPAN class="">master</SPAN>).</P></LI><LI><P class=""><STRONG>Bitbucket webhook triggers</STRONG><SPAN class=""> a CI/CD job.</SPAN></P></LI><LI><P class="">CI/CD runs a <SPAN class=""><STRONG>Cloud Foundry pipeline</STRONG></SPAN> and builds an <SPAN class=""><STRONG>MTA</STRONG></SPAN> from <SPAN class="">mta.yaml</SPAN>.</P></LI><LI><P class="">In the <SPAN class=""><STRONG>Release</STRONG></SPAN> stage, the job <SPAN class=""><STRONG>uploads</STRONG></SPAN> the built artifact to a <SPAN class=""><STRONG>SCTM</STRONG></SPAN><SPAN class=""><STRONG> node</STRONG></SPAN>.</P></LI><LI><P class="">SCTM puts the transport into the <SPAN class=""><STRONG>import queue</STRONG></SPAN>, where we <SPAN class=""><STRONG>manually forward/import</STRONG></SPAN> if the node is configured for manual control.<SPAN class=""> </SPAN></P></LI></OL><P> </P><P class="lia-align-center" style="text-align: center;"><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="1cicd.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/361094i53AAF0FCCD7106B1/image-size/large/is-moderation-mode/true?v=v2&px=999" role="button" title="1cicd.png" alt="1cicd.png" /></span><FONT size="2"><EM>SAP BTP CI/CD service with jobs definition example.</EM></FONT></P><P> </P><P class="lia-align-center" style="text-align: center;"><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="2sctm.png" style="width: 998px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/361095i027C1220987B692D/image-size/large/is-moderation-mode/true?v=v2&px=999" role="button" title="2sctm.png" alt="2sctm.png" /></span><FONT size="2"><EM>SAP BTP Cloud Transport Management service with transport node detail.</EM></FONT></P><P> </P><H2 id="toc-hId-1001714334"><STRONG>Our Branch & Job Strategy (Simple and Explicit)</STRONG></H2><P class="">We keep it intentionally “boring”:</P><UL><LI><STRONG>React repo</STRONG><UL><LI>Job for <SPAN class="">test</SPAN></LI><LI>Job for <SPAN class="">master</SPAN></LI></UL></LI><LI><STRONG>NestJS repo</STRONG><UL><LI>Job for <SPAN class="">test</SPAN></LI><LI>Job for <SPAN class="">master</SPAN></LI></UL></LI></UL><P class="">This avoids “one job that behaves differently depending on branch logic” and makes it obvious what ships from where.</P><P class=""> </P><H2 id="toc-hId-805200829"><STRONG>Our SCTM Strategy (Auditability Over Minimal Clicks)</STRONG></H2><P class="">To improve auditability and clarity for customers, we use <SPAN class=""><STRONG>separate SCTM nodes per environment and per domain</STRONG></SPAN>:</P><UL><LI><P class="">TEST-FE<SPAN class="">, </SPAN>TEST-BE</P></LI><LI><P class="">PROD-FE<SPAN class="">, </SPAN>PROD-BE</P></LI></UL><P class="">That’s <SPAN class=""><STRONG>four upload nodes</STRONG></SPAN> for two environments.</P><P class=""><STRONG>Why we do it:</STRONG></P><UL><LI><P class="">Cleaner history (“frontend vs backend” separation without filtering gymnastics)</P></LI><LI><P class="">Easier review and approval flows when different people own FE/BE releases</P></LI></UL><P class=""><STRONG>What it costs:</STRONG></P><UL><LI><P class="">More nodes = more configuration + more manual imports</P></LI></UL><P class="">SCTM supports manual control via <SPAN class=""><STRONG>Import Queue</STRONG></SPAN> when the node’s forward mode is <SPAN class=""><STRONG>Manual</STRONG></SPAN>.<SPAN class=""> </SPAN></P><P class="lia-align-center" style="text-align: center;"><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="PetrBecka_2-1768211415335.png" style="width: 370px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/360435iCCF3173B1603EE05/image-size/large?v=v2&px=999" role="button" title="PetrBecka_2-1768211415335.png" alt="PetrBecka_2-1768211415335.png" /></span><FONT size="2"><EM>SCTM Node configuration detail.</EM></FONT></P><P> </P><H2 id="toc-hId-608687324"><STRONG>SAP CI/CD Setup (What We Configure)</STRONG></H2><H3 id="toc-hId-541256538"><STRONG>1) Credentials</STRONG></H3><P class="">We create three kinds of credentials:</P><UL><LI><P class=""><STRONG>Bitbucket access</STRONG><SPAN class=""> (clone/pull)</SPAN></P></LI><LI><P class=""><SPAN class=""><STRONG>Webhook credentials</STRONG></SPAN> (to trigger builds from merges/pushes)</P></LI><LI><P class=""><SPAN class=""><STRONG>SCTM service key credentials</STRONG></SPAN> (for “Upload to” in release)</P></LI></UL><P class="">CI/CD is designed around configuring jobs that run predefined pipelines.<SPAN class=""> </SPAN></P><P class=""> </P><P class="lia-align-center" style="text-align: center;"><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="PetrBecka_3-1768211542295.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/360437i28B69ED55EA73151/image-size/large/is-moderation-mode/true?v=v2&px=999" role="button" title="PetrBecka_3-1768211542295.png" alt="PetrBecka_3-1768211542295.png" /></span><FONT size="2"><EM>Credentials definition section in SAP BTP CI/CD service.</EM></FONT></P><P> </P><H3 id="toc-hId-344743033"><STRONG>2) Repositories + Webhooks</STRONG></H3><P class="">For each repo in CI/CD:</P><UL><LI><P class="">Add repository (Bitbucket Cloud)</P></LI><LI><P class="">Attach credentials</P></LI><LI><P class="">Configure webhook so merges trigger the job</P></LI></UL><P> </P><P class="lia-align-center" style="text-align: center;"><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="PetrBecka_4-1768211733845.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/360440i602C3453D508F6E8/image-size/large/is-moderation-mode/true?v=v2&px=999" role="button" title="PetrBecka_4-1768211733845.png" alt="PetrBecka_4-1768211733845.png" /></span><FONT size="2"><EM>Repositories integration section in SAP BTP CI/CD service.</EM></FONT></P><P> </P><H3 id="toc-hId-148229528"><STRONG>3) Jobs</STRONG></H3><P class="">For each branch job:</P><UL><LI><P class="">Select repository + branch</P></LI><LI><P class="">Build tool: <SPAN class=""><STRONG>MTA</STRONG></SPAN></P></LI><LI><P class="">Build descriptor: <SPAN class="">mta.yaml</SPAN> (repo root)</P></LI><LI><P class="">Optional: lint, unit tests, scans (pre-transport quality gates)</P></LI></UL><P> </P><P class="lia-align-center" style="text-align: center;"><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="PetrBecka_5-1768211855167.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/360442i4FC17292789ED05B/image-size/large/is-moderation-mode/true?v=v2&px=999" role="button" title="PetrBecka_5-1768211855167.png" alt="PetrBecka_5-1768211855167.png" /></span><FONT size="2"><EM>Jobs definition section in SAP BTP CI/CD service.</EM></FONT></P><P> </P><P class=""><SPAN class="">In </SPAN><STRONG>Release</STRONG><SPAN class="">:</SPAN></P><UL><LI><P class="">Release type: SCTM</P></LI><LI><P class="">Operation: <SPAN class=""><STRONG>Upload to</STRONG></SPAN></P></LI><LI><P class=""><SPAN class="">Node: one of </SPAN>TEST-FE/TEST-BE/PROD-FE/PROD-BE</P></LI></UL><P> </P><P class="lia-align-center" style="text-align: center;"><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="PetrBecka_6-1768211909661.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/360443i4C54A712D3EBC49D/image-size/large/is-moderation-mode/true?v=v2&px=999" role="button" title="PetrBecka_6-1768211909661.png" alt="PetrBecka_6-1768211909661.png" /></span><FONT size="2"><EM>Basic definition of a job including Cloud Transport Management service integration.</EM></FONT></P><P class=""> </P><H2 id="toc-hId-169887661"><STRONG>SCTM Destinations (Deploying to the Right CF Org/Space)</STRONG></H2><P class="">SCTM uses destinations to address deployment targets for <SPAN class=""><STRONG>MTA deployment on Cloud Foundry</STRONG></SPAN>.<SPAN class=""> </SPAN></P><P class="">If you use OAuth2Password authentication via SAP Cloud Deployment service, SAP notes two critical details:</P><UL><LI><P class="">Client ID<SPAN class=""> must be </SPAN>cf</P></LI><LI><P class=""><SPAN class="">Token Service URL</SPAN> must point to Cloud Foundry UAA<SPAN class=""> </SPAN></P></LI></UL><P> </P><P class="lia-align-center" style="text-align: center;"><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="PetrBecka_7-1768212043538.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/360446i1F00D31079F4D137/image-size/large/is-moderation-mode/true?v=v2&px=999" role="button" title="PetrBecka_7-1768212043538.png" alt="PetrBecka_7-1768212043538.png" /></span><FONT size="2"><EM>Example of a destination configuration needed for SCTM service.</EM></FONT></P><P class=""> </P><H1 id="toc-hId-266777163"><STRONG>What’s Shared vs. App-Specific</STRONG></H1><H2 id="toc-hId--223139349"><STRONG>Shared Practices (React + NestJS)</STRONG></H2><P class="">These rules apply to both repos:</P><OL><LI><P class=""><SPAN class="">mta.yaml</SPAN> lives in the <SPAN class=""><STRONG>repository root</STRONG></SPAN> (so CI/CD can reliably find it).</P></LI><LI><P class="">package.json<SPAN class=""> and </SPAN>package-lock.json<SPAN class=""> are in the root.</SPAN></P></LI><LI><P class="">Dependencies install via <SPAN class=""><STRONG>npm ci</STRONG></SPAN> for reproducibility.</P></LI><LI><P class="">Build step is always explicit (no hidden magic).</P></LI><LI><P class="">Only artifacts that passed CI checks get uploaded to SCTM.</P></LI></OL><P class=""> </P><H2 id="toc-hId--419652854"><STRONG>React App (Managed AppRouter): Minimal MTA Wrapper</STRONG></H2><P class="">Our typical structure:</P><UL><LI><P class=""><SPAN class="">/approuter</SPAN> (Managed AppRouter module/config)</P></LI><LI><P class=""><SPAN class="">/ui</SPAN> (React app)</P></LI><LI><P class="">/mta.yaml<SPAN class=""> (root)</SPAN></P></LI><LI><P class="">/package.json<SPAN class=""> (root)</SPAN></P></LI></UL><P class="">Managed AppRouter is intended to run HTML5 apps without maintaining your own runtime.<SPAN class=""> </SPAN></P><P class=""><STRONG>Build logic (conceptually):</STRONG></P><UL><LI><P class="">npm ci</P></LI><LI><P class="">npm run build</P></LI><LI><P class="">post-step: ensure a <SPAN class="">manifest.json</SPAN> is present for packaging requirements (even if the React runtime doesn’t “use” it)</P></LI></UL><P class=""><STRONG><SPAN class="">Important configuration files:</SPAN></STRONG></P><UL><LI><SPAN class="">mta.yaml</SPAN></LI></UL><pre class="lia-code-sample language-yaml"><code>_schema-version: "3.2"
ID: mta_application_fe
version: 0.0.1
modules:
- name: mta_application_fe-approuter
type: approuter.nodejs
path: mta_application_fe-approuter
requires:
- name: mta_application_fe_html_repo_runtime
- name: mta_application_fe-destination-service
group: destinations
properties:
forwardAuthToken: false
name: ui5
url: https://ui5.sap.com
parameters:
disk-quota: 256M
memory: 256M
- name: mta_application_fe_ui_deployer
type: com.sap.application.content
path: .
requires:
- name: mta_application_fe_html_repo_host
parameters:
content-target: true
build-parameters:
build-result: resources
requires:
- artifacts:
- uionboarding.zip
name: uionboarding
target-path: resources/
- name: uiapplication
type: html5
path: ui_application
build-parameters:
build-result: dist
builder: custom
commands:
- npm ci --include=dev
- npm run build
- ./ensure-manifest.sh
- sh -c 'cd dist && jar cfM uiapplication.zip .'
supported-platforms: []
resources:
- name: mta_application_fe_html_repo_runtime
type: org.cloudfoundry.managed-service
parameters:
service: html5-apps-repo
service-plan: app-runtime
- name: mta_application_fe_html_repo_host
type: org.cloudfoundry.managed-service
parameters:
service: html5-apps-repo
service-plan: app-host
parameters:
deploy_mode: html5-repo
enable-parallel-deployments: true</code></pre><UL><LI>package.json</LI></UL><pre class="lia-code-sample language-json"><code>{
"name": "application-fe",
"version": "0.0.1",
"description": "Build and deployment scripts",
"scripts": {
"clean": "rimraf resources mta_archives mta-op*",
"build": "rimraf resources mta_archives && npm run prepare-ui && mbt build --mtar archive",
"prepare-ui": "mkdir -p resources && cd ui_application && npm install && npm run build && ./ensure-manifest.sh && cd .. && npm run create-ui-zip",
"create-ui-zip": "cd ui_application/dist && mkdir -p ../../resources && zip -r ../../resources/uiapplication.zip . && cd ../..",
"deploy": "cf deploy mta_archives/archive.mtar --retries 1",
"undeploy": "cf undeploy mta_application_fe --delete-services --delete-service-keys --delete-service-brokers"
},
"devDependencies": {
"mbt": "^1.2.29",
"rimraf": "^5.0.5"
}
}</code></pre><UL><LI>ensure-manifest.sh</LI></UL><pre class="lia-code-sample language-bash"><code>#!/bin/bash
# Make sure manifest.json exists in the right place
if [ -f "dist/manifest.json" ]; then
echo "manifest.json already exists in the dist folder"
else
echo "Copying manifest.json to dist folder"
cp public/manifest.json dist/
fi
# make sure that xs-app.js exists in the right place
if [ -f "dist/xs-app.json" ]; then
echo "xs-app.json already exists in the dist folder"
else
echo "Copying xs-app.json to dist folder"
cp public/xs-app.json dist/
fi</code></pre><P> </P><H2 id="toc-hId--616166359"><STRONG>NestJS App: Minimal MTA for a CF Node Service</STRONG></H2><P class="">Structure is standard NestJS:</P><UL><LI><P class="">/src</P></LI><LI><P class="">/test</P></LI><LI><P class="">/package.json<SPAN class=""> (root)</SPAN></P></LI><LI><P class="">/mta.yaml<SPAN class=""> (root)</SPAN></P></LI></UL><P class=""><STRONG>Build logic (conceptually):</STRONG></P><UL><LI><P class="">npm ci</P></LI><LI><P class="">npm run build<SPAN class=""> (which runs </SPAN>nest build<SPAN class="">)</SPAN></P></LI></UL><P class="">This “thin MTA descriptor” is enough to let SAP CI/CD build it through the standard MTA path and hand off to SCTM.</P><P><STRONG><SPAN class="">Important configuration files:</SPAN></STRONG></P><UL><LI><SPAN class="">mta.yaml</SPAN></LI></UL><pre class="lia-code-sample language-yaml"><code>ID: application-be
_schema-version: '3.3'
version: 1.0.0
modules:
- name: application-be
type: nodejs
path: .
parameters:
buildpack: nodejs_buildpack
memory: 512M
disk-quota: 1024M
command: npm run start
build-parameters:
builder: custom
commands:
- npm ci
- npm run build
ignore: ["node_modules/", "test/", "e2e/", "coverage/", ".vscode/"]
requires:
- name: malware-scanner
- name: postgresql-db
- name: connectivity-service
- name: destination-service
...</code></pre><UL><LI>package.json</LI></UL><pre class="lia-code-sample language-json"><code>{
"name": "zapka-parents-be",
"version": "0.0.1",
"description": "",
"author": "",
"private": true,
"license": "UNLICENSED",
"scripts": {
...
"build": "npm install && nest build",
...
},
"dependencies": {
...
},
}</code></pre><P> </P><H2 id="toc-hId--812679864"> </H2><H2 id="toc-hId--1009193369"><STRONG>General Outcomes: Why This Setup Works for Us</STRONG></H2><OL><LI><P class=""><STRONG>Predictable builds</STRONG></P><P class="">Same entry points (<SPAN class="">mta.yaml</SPAN>, <SPAN class="">npm ci</SPAN>, explicit build scripts) across both stacks.</P></LI><LI><P class=""><STRONG>Clear audit trail</STRONG></P><P class="">CI/CD builds, SCTM transports; SCTM import queue enables controlled promotion.<SPAN class=""> </SPAN></P></LI><LI><P class=""><STRONG>Better separation of concerns</STRONG></P><P class="">Dev teams focus on code + CI quality gates; deployment approvals happen in SCTM when needed.</P></LI></OL><P class=""> </P><H2 id="toc-hId--1205706874"><STRONG>Conclusion: Control Without Killing Automation</STRONG></H2><P class="">This setup gives us a stable delivery backbone:</P><UL><LI><P class="">CI/CD handles automation and repeatability.</P></LI><LI><P class="">SCTM provides governance and auditability via nodes and import queues.</P></LI></UL><P class="">Yes, extra nodes create extra manual confirmations—but for customer-facing enterprise delivery, the clarity is often worth it.</P><P class=""> </P><H2 id="toc-hId--1402220379"><STRONG>Questions for Discussion (How Do You Do It?)</STRONG></H2><OL><LI><P class="">Do you use <SPAN class=""><STRONG>one SCTM node per environment</STRONG></SPAN>, or do you split nodes by <SPAN class=""><STRONG>domain</STRONG></SPAN> (frontend/backend) for auditability?</P></LI><LI><P class="">Do you <SPAN class=""><STRONG>chain nodes</STRONG></SPAN> strictly (DEV → TEST → PROD), or allow <SPAN class=""><STRONG>direct uploads</STRONG></SPAN> to higher environments?</P></LI><LI><P class="">Where do you enforce manual gates—only before PROD, or also between lower environments?</P></LI><LI><P class="">If you split FE/BE: how do you keep transport naming and history readable over time?</P></LI><LI><P class=""><SPAN class="">What’s your preferred balance between </SPAN><STRONG>fewer nodes (less ops effort)</STRONG><SPAN class=""> vs </SPAN><STRONG>more nodes (cleaner audit trails)</STRONG><SPAN class="">?</SPAN></P></LI></OL><P> </P><P> </P><P> </P><P> </P><P> </P><P> </P><P> </P><P> </P><P> </P>2026-01-20T05:09:37.457000+01:00