https://raw.githubusercontent.com/ajmaradiaga/feeds/main/scmt/topics/SAP-S4HANA-Cloud-Extensibility-blog-posts.xml SAP Community - SAP S/4HANA Cloud Extensibility 2026-03-03T21:01:31.721816+00:00 python-feedgen SAP S/4HANA Cloud Extensibility blog posts in SAP Community https://community.sap.com/t5/supply-chain-management-blog-posts-by-members/sap-ehs-public-cloud-extending-your-existing-landscape-side-by-side/ba-p/14282722 SAP EHS Public Cloud: Extending Your Existing Landscape Side-by-Side - Guidebook (Part 5) 2025-12-08T08:01:00.504000+01:00 duynguyendeloitte https://community.sap.com/t5/user/viewprofilepage/user-id/2005019 <P><FONT size="6"><STRONG>Integrating SAP EHS Public Cloud: Extending Your Existing Landscape Side-by-Side - Guidebook</STRONG></FONT></P><P><FONT size="5"><STRONG>Part 5: Extensibility Scenarios &amp; Further Implementation</STRONG></FONT></P><P><FONT size="5">Table of Contents:</FONT></P><P><ul =""><li style="list-style-type:none; margin-left:0px; margin-bottom:1px;"><a href="https://community.sap.com/t5/supply-chain-management-blog-posts-by-members/sap-ehs-public-cloud-extending-your-existing-landscape-side-by-side/ba-p/14282722#toc-hId-1637356271">1. Introduction: Why Extensibility Matters in EHS Implementations</a></li><li style="list-style-type:none; margin-left:15px; margin-bottom:1px;"><a href="https://community.sap.com/t5/supply-chain-management-blog-posts-by-members/sap-ehs-public-cloud-extending-your-existing-landscape-side-by-side/ba-p/14282722#toc-hId-1569925485">1.1 What You Can Expect from This Blog Post</a></li><li style="list-style-type:none; margin-left:15px; margin-bottom:1px;"><a href="https://community.sap.com/t5/supply-chain-management-blog-posts-by-members/sap-ehs-public-cloud-extending-your-existing-landscape-side-by-side/ba-p/14282722#toc-hId-1373411980">1.2 Why Extensibility is Especially Important for EHS</a></li><li style="list-style-type:none; margin-left:0px; margin-bottom:1px;"><a href="https://community.sap.com/t5/supply-chain-management-blog-posts-by-members/sap-ehs-public-cloud-extending-your-existing-landscape-side-by-side/ba-p/14282722#toc-hId-1047815756">2. Extensibility Options in SAP S/4HANA Public Cloud</a></li><li style="list-style-type:none; margin-left:15px; margin-bottom:1px;"><a href="https://community.sap.com/t5/supply-chain-management-blog-posts-by-members/sap-ehs-public-cloud-extending-your-existing-landscape-side-by-side/ba-p/14282722#toc-hId-980384970">2.1 Low-Code vs. Pro-Code Extensibility</a></li><li style="list-style-type:none; margin-left:15px; margin-bottom:1px;"><a href="https://community.sap.com/t5/supply-chain-management-blog-posts-by-members/sap-ehs-public-cloud-extending-your-existing-landscape-side-by-side/ba-p/14282722#toc-hId-783871465">2.2 On-Stack Extensibility (In-App)</a></li><li style="list-style-type:none; margin-left:30px; margin-bottom:1px;"><a href="https://community.sap.com/t5/supply-chain-management-blog-posts-by-members/sap-ehs-public-cloud-extending-your-existing-landscape-side-by-side/ba-p/14282722#toc-hId-716440679">2.2.1 Key User Extensibility (Low-Code)</a></li><li style="list-style-type:none; margin-left:30px; margin-bottom:1px;"><a href="https://community.sap.com/t5/supply-chain-management-blog-posts-by-members/sap-ehs-public-cloud-extending-your-existing-landscape-side-by-side/ba-p/14282722#toc-hId-519927174">2.2.2 Developer Extensibility (Pro-Code)</a></li><li style="list-style-type:none; margin-left:15px; margin-bottom:1px;"><a href="https://community.sap.com/t5/supply-chain-management-blog-posts-by-members/sap-ehs-public-cloud-extending-your-existing-landscape-side-by-side/ba-p/14282722#toc-hId-194330950">2.3 Side-by-Side Extensibility</a></li><li style="list-style-type:none; margin-left:15px; margin-bottom:1px;"><a href="https://community.sap.com/t5/supply-chain-management-blog-posts-by-members/sap-ehs-public-cloud-extending-your-existing-landscape-side-by-side/ba-p/14282722#toc-hId--2182555">2.4 BAdIs in the Public Cloud (Key User vs. Developer Access)</a></li><li style="list-style-type:none; margin-left:0px; margin-bottom:1px;"><a href="https://community.sap.com/t5/supply-chain-management-blog-posts-by-members/sap-ehs-public-cloud-extending-your-existing-landscape-side-by-side/ba-p/14282722#toc-hId-441961304">3. Practical Extensibility Scenarios in EHS</a></li><li style="list-style-type:none; margin-left:15px; margin-bottom:1px;"><a href="https://community.sap.com/t5/supply-chain-management-blog-posts-by-members/sap-ehs-public-cloud-extending-your-existing-landscape-side-by-side/ba-p/14282722#toc-hId--47955208">3.1 Example 1 - Introducing a Custom Attribute for Incident Records</a></li><li style="list-style-type:none; margin-left:30px; margin-bottom:1px;"><a href="https://community.sap.com/t5/supply-chain-management-blog-posts-by-members/sap-ehs-public-cloud-extending-your-existing-landscape-side-by-side/ba-p/14282722#toc-hId--537871720">3.1.1 Business Requirement</a></li><li style="list-style-type:none; margin-left:30px; margin-bottom:1px;"><a href="https://community.sap.com/t5/supply-chain-management-blog-posts-by-members/sap-ehs-public-cloud-extending-your-existing-landscape-side-by-side/ba-p/14282722#toc-hId--734385225">3.1.2 Step-by-Step Implementation</a></li><li style="list-style-type:none; margin-left:15px; margin-bottom:1px;"><a href="https://community.sap.com/t5/supply-chain-management-blog-posts-by-members/sap-ehs-public-cloud-extending-your-existing-landscape-side-by-side/ba-p/14282722#toc-hId--637495723">3.2 Example 2 - Generating a Country-Specific Incident Report</a></li><li style="list-style-type:none; margin-left:30px; margin-bottom:1px;"><a href="https://community.sap.com/t5/supply-chain-management-blog-posts-by-members/sap-ehs-public-cloud-extending-your-existing-landscape-side-by-side/ba-p/14282722#toc-hId--1127412235">3.2.1 Business Requirement</a></li><li style="list-style-type:none; margin-left:30px; margin-bottom:1px;"><a href="https://community.sap.com/t5/supply-chain-management-blog-posts-by-members/sap-ehs-public-cloud-extending-your-existing-landscape-side-by-side/ba-p/14282722#toc-hId--1323925740">3.2.2 Step-by-Step Implementation</a></li><li style="list-style-type:none; margin-left:15px; margin-bottom:1px;"><a href="https://community.sap.com/t5/supply-chain-management-blog-posts-by-members/sap-ehs-public-cloud-extending-your-existing-landscape-side-by-side/ba-p/14282722#toc-hId--1423549743">3.3 Example 3 -Introducing a Custom Attribute &amp; Making it Mandatory for the “My Data Collection” App in Environment Management</a></li><li style="list-style-type:none; margin-left:30px; margin-bottom:1px;"><a href="https://community.sap.com/t5/supply-chain-management-blog-posts-by-members/sap-ehs-public-cloud-extending-your-existing-landscape-side-by-side/ba-p/14282722#toc-hId--1913466255">3.3.1 Business Requirement</a></li><li style="list-style-type:none; margin-left:30px; margin-bottom:1px;"><a href="https://community.sap.com/t5/supply-chain-management-blog-posts-by-members/sap-ehs-public-cloud-extending-your-existing-landscape-side-by-side/ba-p/14282722#toc-hId--1941796069">3.3.2 Step-by-Step Implementation</a></li><li style="list-style-type:none; margin-left:0px; margin-bottom:1px;"><a href="https://community.sap.com/t5/supply-chain-management-blog-posts-by-members/sap-ehs-public-cloud-extending-your-existing-landscape-side-by-side/ba-p/14282722#toc-hId--1551503560">4. Summary &amp; Lessons Learned</a></li><li style="list-style-type:none; margin-left:15px; margin-bottom:1px;"><a href="https://community.sap.com/t5/supply-chain-management-blog-posts-by-members/sap-ehs-public-cloud-extending-your-existing-landscape-side-by-side/ba-p/14282722#toc-hId--2041420072">4.1 Key Takeaways</a></li><li style="list-style-type:none; margin-left:15px; margin-bottom:1px;"><a href="https://community.sap.com/t5/supply-chain-management-blog-posts-by-members/sap-ehs-public-cloud-extending-your-existing-landscape-side-by-side/ba-p/14282722#toc-hId-2057033719">4.2 Lessons Learned</a></li><li style="list-style-type:none; margin-left:15px; margin-bottom:1px;"><a href="https://community.sap.com/t5/supply-chain-management-blog-posts-by-members/sap-ehs-public-cloud-extending-your-existing-landscape-side-by-side/ba-p/14282722#toc-hId-1860520214">4.3 Best Practices</a></li><li style="list-style-type:none; margin-left:15px; margin-bottom:1px;"><a href="https://community.sap.com/t5/supply-chain-management-blog-posts-by-members/sap-ehs-public-cloud-extending-your-existing-landscape-side-by-side/ba-p/14282722#toc-hId-1664006709">4.4 Final Remark</a></li><li style="list-style-type:none; margin-left:0px; margin-bottom:1px;"><a href="https://community.sap.com/t5/supply-chain-management-blog-posts-by-members/sap-ehs-public-cloud-extending-your-existing-landscape-side-by-side/ba-p/14282722#toc-hId-1760896211">5. Engage with Us</a></li></ul></P><P><FONT size="5">Related Content:</FONT></P><P class="lia-align-justify" style="text-align : justify;"><SPAN>Below is an overview of the planned blog series – each post focusing on a specific integration topic. Once published, the titles will be linked for direct access:</SPAN></P><P class="lia-align-justify" style="text-align : justify;"><STRONG><SPAN>Integrating SAP EHS in the Public Cloud: Extending Your Existing Landscape Side-by-Side – Guidebook</SPAN></STRONG></P><TABLE border="1" width="100%"><TBODY><TR><TD width="74.63166219408276%" height="30px">Part 1: Introduction &amp; Overview</TD><TD width="25.36833780591722%" height="30px"><A href="https://community.sap.com/t5/supply-chain-management-blog-posts-by-members/sap-ehs-public-cloud-extending-your-existing-landscape-side-by-side-a/ba-p/14264551" target="_self">Link</A></TD></TR><TR><TD width="74.63166219408276%" height="30px">Part 2: Integration of Employees from SAP SuccessFactors</TD><TD width="25.36833780591722%" height="30px"><A href="https://community.sap.com/t5/supply-chain-management-blog-posts-by-members/sap-ehs-public-cloud-extending-your-existing-landscape-side-by-side-a/ba-p/14266901" target="_self">Link</A></TD></TR><TR><TD width="74.63166219408276%" height="57px">Part 3: Integration of Business Partners &amp; Material from SAP Master Data Governance (MDG)</TD><TD width="25.36833780591722%" height="57px"><A href="https://community.sap.com/t5/supply-chain-management-blog-posts-by-members/sap-ehs-public-cloud-extending-your-existing-landscape-side-by-side-a/ba-p/14271704" target="_self">Link</A></TD></TR><TR><TD width="74.63166219408276%" height="57px">Part 4: Integration of Functional Locations &amp; Equipment from SAP S/4HANA On-Premise System</TD><TD width="25.36833780591722%" height="57px"><A href="https://community.sap.com/t5/supply-chain-management-blog-posts-by-members/sap-ehs-public-cloud-extending-your-existing-landscape-side-by-side/ba-p/14275195" target="_self">Link</A></TD></TR><TR><TD width="74.63166219408276%" height="30px">Part 5: Extensibility Scenarios &amp; Further Implementation</TD><TD width="25.36833780591722%" height="30px"><A href="https://community.sap.com/t5/supply-chain-management-blog-posts-by-members/sap-ehs-public-cloud-extending-your-existing-landscape-side-by-side/ba-p/14282722" target="_self">Link</A></TD></TR><TR><TD width="74.63166219408276%" height="30px">Part 6: Summary &amp; Outlook</TD><TD width="25.36833780591722%" height="30px"><A href="https://community.sap.com/t5/supply-chain-management-blog-posts-by-members/sap-ehs-public-cloud-extending-your-existing-landscape-side-by-side/ba-p/14286127" target="_self">Link</A></TD></TR></TBODY></TABLE><P>&nbsp;</P><H1 id="toc-hId-1637356271">1. Introduction: Why Extensibility Matters in EHS Implementations</H1><P class="lia-align-justify" style="text-align : justify;"><SPAN>Implementing SAP Environment, Health &amp; Safety (EHS) in the Public Cloud provides customers with a powerful set of standard capabilities across EHS functionality such as Incident Management, Risk Management, or Emissions Management. However, real-life EHS processes often include country-specific regulations, industry-dependent reporting obligations, and customer-individual workflows that cannot always be covered by the standard product alone. This is where extensibility becomes a critical success factor.</SPAN></P><P class="lia-align-justify" style="text-align : justify;"><SPAN>From our project experience, we see that nearly every EHS implementation requires selected adaptations – whether to incorporate local legal requirements, enrich analytics, adjust incident forms, or create custom validations. With SAP S/4HANA Public Cloud and SAP EHS, such enhancements must follow SAP’s clean-core principles, meaning they must be implemented using the officially supported extensibility technologies.</SPAN></P><P class="lia-align-justify" style="text-align : justify;"><SPAN>This blog post provides a clear, practical overview of the extensibility options available for SAP EHS in the Public Cloud and demonstrates how they can be applied to real-world scenarios.</SPAN></P><H2 id="toc-hId-1569925485"><SPAN>1.1 What You Can Expect from This Blog Post</SPAN></H2><P class="lia-align-justify" style="text-align : justify;"><SPAN>In this part, we outline the extensibility landscape for EHS Public Cloud and guide you through:</SPAN></P><UL class="lia-align-justify" style="text-align : justify;"><LI><SPAN>Which extensibility options exist in SAP S/4HANA Public Cloud</SPAN></LI><LI><SPAN>How they apply specifically to EHS use cases</SPAN></LI><LI><SPAN>Which BAdIs are available and when to use them</SPAN></LI><LI><SPAN>Concrete examples for extensibility</SPAN></LI><LI><SPAN>Best practices based on our project experience</SPAN></LI></UL><P class="lia-align-justify" style="text-align : justify;"><SPAN>The aim is to give implementation teams a practical understanding of how to adapt the system without breaking the clean core, ensuring long-term upgradeability and compliance.</SPAN></P><H2 id="toc-hId-1373411980">1.2 Why Extensibility is Especially Important for EHS</H2><P class="lia-align-justify" style="text-align : justify;"><SPAN>From our project experience, EHS is one of the most extensibility-driven domains in SAP S/4HANA Public Cloud because:</SPAN></P><UL class="lia-align-justify" style="text-align : justify;"><LI><SPAN>Regulations differ significantly by country (e.g. OSHA, EU directives, etc.)</SPAN></LI><LI><SPAN>Incident reports must reflect local legal requirements</SPAN></LI><LI><SPAN>Customers require tailored analytics and KPIs</SPAN></LI><LI><SPAN>Integration with external safety systems is common</SPAN></LI><LI><SPAN>Forms and regulatory outputs often need custom structures</SPAN></LI></UL><P class="lia-align-justify" style="text-align : justify;"><SPAN>EHS processes must adapt to organizational legal, and operational needs. Extensibility in Public Cloud ensures this adaptability without compromising SAP’s clean-core principles.</SPAN></P><P class="lia-align-justify" style="text-align : justify;">&nbsp;</P><H1 id="toc-hId-1047815756">2. Extensibility Options in SAP S/4HANA Public Cloud</H1><P class="lia-align-justify" style="text-align : justify;"><SPAN>SAP S/4HANA Public Cloud provides a comprehensive extensibility portfolio designed to support innovation without compromising the stability of the core system. These capabilities range from low-code configuration tools for business users to pro-code development environments for technical teams. Understanding these options is essential for designing scalable, future-proof EHS solutions – especially in Public Cloud environments where clean-core principles are mandatory.</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Extensibility Portfolio for SAP S/4HANA Cloud Public Edition (Own illustration based on SAP source: https://www.sap.com/documents/2018/05/606d1ee8-037d-0010-87a3-c30de2ffd8ff.html)" style="width: 944px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/347874i1304234FEF42570A/image-size/large?v=v2&amp;px=999" role="button" title="duynguyendeloitte_0-1764753375608.png" alt="Extensibility Portfolio for SAP S/4HANA Cloud Public Edition (Own illustration based on SAP source: https://www.sap.com/documents/2018/05/606d1ee8-037d-0010-87a3-c30de2ffd8ff.html)" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Extensibility Portfolio for SAP S/4HANA Cloud Public Edition (Own illustration based on SAP source: https://www.sap.com/documents/2018/05/606d1ee8-037d-0010-87a3-c30de2ffd8ff.html)</span></span></P><H2 id="toc-hId-980384970">2.1 Low-Code vs. Pro-Code Extensibility</H2><P class="lia-align-justify" style="text-align : justify;"><SPAN>The extensibility portfolio is structured along two axes:</SPAN></P><UL class="lia-align-justify" style="text-align : justify;"><LI><SPAN><STRONG>Low-Code</STRONG>: Target at key user and functional experts who need to quickly adapt user interfaces, create fields, or adjust logic without deep technical development.</SPAN></LI><LI><SPAN><STRONG>Pro-Code</STRONG>: Designed for professional developers who require advanced capabilities through the ABAP Cloud development model or SAP BTP services.</SPAN></LI></UL><P class="lia-align-justify" style="text-align : justify;"><SPAN>These options are distributed across two major extensibility categories: <STRONG>On-Stack Extensibility (In-App)</STRONG> &amp; <STRONG>Side-by-Side Extensibility</STRONG>.</SPAN></P><H2 id="toc-hId-783871465"><SPAN>2.2 On-Stack Extensibility (In-App)</SPAN></H2><P><SPAN>Executed directly inside SAP S/4HANA Public Cloud, following the clean-core principles enforced by SAP.</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Key User &amp; Developer Extensibility" style="width: 944px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/347875i52FE9D7C9AB8AEF5/image-size/large?v=v2&amp;px=999" role="button" title="duynguyendeloitte_1-1764753560103.png" alt="Key User &amp; Developer Extensibility" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Key User &amp; Developer Extensibility</span></span></P><H3 id="toc-hId-716440679">2.2.1 Key User Extensibility (Low-Code)</H3><P class="lia-align-justify" style="text-align : justify;"><SPAN>Accessible directly via the SAP Fiori Launchpad, key user extensibility enables business focused adjustments such as:</SPAN></P><UL class="lia-align-justify" style="text-align : justify;"><LI><STRONG><SPAN>UI adaptation mode</SPAN></STRONG><SPAN>: Modify screen layouts, hide/show fields, rearrange sections.</SPAN></LI><LI><STRONG><SPAN>Custom fields</SPAN></STRONG><SPAN>: Create and publish custom fields that automatically extend UI, APIs, CDS views, and reports.</SPAN></LI><LI><STRONG><SPAN>Custom logic (using BAdIs or BDEF extensions):</SPAN></STRONG><SPAN> Implement small logic enhancements using predefined extensions points.</SPAN></LI><LI><STRONG><SPAN>Custom business objects:</SPAN></STRONG><SPAN> Model simple new business objects without coding.</SPAN></LI><LI><STRONG><SPAN>Custom CDS views &amp; OData services:</SPAN></STRONG><SPAN> Build analytical and integration-ready views with drag-and-drop tooling.</SPAN></LI><LI><STRONG><SPAN>Analytical queries and applications</SPAN></STRONG><SPAN>: Extend reporting and KPIs in SAP Fiori or SAP Analytics Cloud.</SPAN></LI></UL><P class="lia-align-justify" style="text-align : justify;"><SPAN>Key User Extensibility is ideal for EHS teams that need to adapt processes quickly, e.g. adding a regulatory field in Incident Management or creating country-specific reporting structures.</SPAN></P><H3 id="toc-hId-519927174">2.2.2 Developer Extensibility (Pro-Code)</H3><P class="lia-align-justify" style="text-align : justify;"><SPAN>Developer Extensibility is performed using ABAP Cloud in Eclipse via ABAP Development Tools (ADT), enabling professional developers to build upgrade-safe extensions inside the SAP S/4HANA Cloud stack.</SPAN></P><P class="lia-align-justify" style="text-align : justify;"><SPAN>Typical capabilities include:</SPAN></P><UL class="lia-align-justify" style="text-align : justify;"><LI><STRONG><SPAN>UI adaptation projects</SPAN></STRONG><SPAN> via SAP Business Application Studio</SPAN></LI><LI><STRONG><SPAN>Extension fields</SPAN></STRONG><SPAN> built using professional ABAP development tools</SPAN></LI><LI><STRONG><SPAN>Custom logic (BAdIs and BDEF extensions)</SPAN></STRONG><SPAN> with advanced editor capabilities</SPAN></LI><LI><STRONG><SPAN>RAP Business Objects</SPAN></STRONG><SPAN> (full-fledge RESTful ABAP applications)</SPAN></LI><LI><STRONG><SPAN>CDS views and OData services</SPAN></STRONG><SPAN> with full development tooling</SPAN></LI><LI><STRONG><SPAN>Analytical queries</SPAN></STRONG><SPAN> and custom analytical content</SPAN></LI></UL><P class="lia-align-justify" style="text-align : justify;"><SPAN>This level of extensibility is used when EHS implementations require more complex data models, multi-step validations, or custom processes beyond the key user scope.</SPAN></P><H2 id="toc-hId-194330950">2.3 Side-by-Side Extensibility</H2><P class="lia-align-justify" style="text-align : justify;"><SPAN>When requirements cannot be fulfilled within the S/4HANA Cloud stack, SAP BTP provides a powerful platform for building complementary applications:</SPAN></P><UL class="lia-align-justify" style="text-align : justify;"><LI><STRONG><SPAN>SAP Build Apps</SPAN></STRONG><SPAN> (no-code mobile and web apps)</SPAN></LI><LI><STRONG><SPAN>SAP Build Process Automation</SPAN></STRONG><SPAN> (workflows and automations)</SPAN></LI><LI><STRONG><SPAN>SAP Build Work Zone</SPAN></STRONG><SPAN> (custom dashboard and portals)</SPAN></LI><LI><STRONG><SPAN>SAP Build Code / CAP</SPAN></STRONG><SPAN> (cloud-native pro-code development, Node.js/Java)</SPAN></LI><LI><STRONG><SPAN>ABAP Environment on BTP</SPAN></STRONG><SPAN> (Steampunk) for ABAP Cloud side-by-side extensions</SPAN></LI></UL><P class="lia-align-justify" style="text-align : justify;"><SPAN>Side-by-side extensibility is particularly relevant for EHS when: </SPAN></P><UL class="lia-align-justify" style="text-align : justify;"><LI><SPAN>complex mobile solutions are required (e.g. hazard observations, audits)</SPAN></LI><LI><SPAN>workflow automation or robotic processing is desired</SPAN></LI><LI><SPAN>large-scale integration scenarios (e.g., IoT sensors, safety systems) are needed</SPAN></LI><LI><SPAN>custom employee or contractor portals must be built</SPAN></LI></UL><P class="lia-align-justify" style="text-align : justify;"><SPAN>Although side-by-side extensibility plays an important role in the overall SAP extensibility strategy, we will not dive deeper into BTP-based extensions in this blog post. Our objective is to demonstrate what can be achieved directly within the SAP S/4HANA Public Cloud, using standard in-app extensibility options that remain fully aligned with SAP’s clean-core principles. Based on our project experience, most EHS related enhancements such as custom fields, logic, reporting extensions, and form adaptations can be delivered efficiently using Key User or Developer Extensibility (on-stack). For this reason, the upcoming chapters focus exclusively on in-app, upgrade-safe extensibility scenarios that can be implemented without additional BTP architecture.</SPAN></P><H2 id="toc-hId--2182555"><SPAN>2.4 BAdIs in the Public Cloud (Key User vs. Developer Access)</SPAN></H2><P class="lia-align-justify" style="text-align : justify;"><SPAN>Business Add-Ins (BAdIs) are predefined extension points provided by SAP that allow injecting custom logic while staying upgrade safe. You can explore the available BAdIs for the SAP S/4HANA Public Cloud here: <A href="https://api.sap.com/package/S4HANACloudBADI/badi" target="_blank" rel="noopener noreferrer">Business Add-Ins | SAP S/4HANA Cloud Public Edition Business Add-Ins (BAdIs) | SAP Business Accelerator Hub</A></SPAN></P><P class="lia-align-justify" style="text-align : justify;"><SPAN>There are two categories in S/4HANA Public Cloud:</SPAN></P><P class="lia-align-justify" style="text-align : justify;"><STRONG><SPAN>Key User BAdIs</SPAN></STRONG></P><UL class="lia-align-justify" style="text-align : justify;"><LI><SPAN>Implemented through the Custom Logic SAP Fiori app</SPAN></LI><LI><SPAN>Available only for selected business contexts</SPAN></LI><LI><SPAN>Designed for simple enhancements such as: Validation rules, Derivation of field values, Basic calculations</SPAN></LI></UL><P class="lia-align-justify" style="text-align : justify;"><STRONG><SPAN>Developer BAdIs</SPAN></STRONG></P><UL class="lia-align-justify" style="text-align : justify;"><LI><SPAN>Implemented using ABAP Development Tools (ADT) in SAP BTP ABAP Environment or Embedded Steampunk</SPAN></LI><LI><SPAN>Allow more complex coding scenarios</SPAN></LI><LI><SPAN>Enable interaction with APIs, CDS views, RAP BOs and advanced data handling</SPAN></LI></UL><P class="lia-align-justify" style="text-align : justify;"><SPAN>In EHS specifically, SAP provides a growing set of BAdIs – particularly in Incident Management and Emissions Management – which are essential for country specific reporting, custom form generation, or regulatory compliance.</SPAN></P><P class="lia-align-justify" style="text-align : justify;"><STRONG>The following list provides an overview of the EHS-specific BAdIs that are currently available in the SAP S/4HANA Public Cloud.</STRONG></P><P class="lia-align-justify" style="text-align : justify;"><STRONG><SPAN>Incident Management</SPAN></STRONG></P><UL class="lia-align-justify" style="text-align : justify;"><LI><SPAN>BAdI: Change of Field Values in BG (Berufsgenossenschaft) Incident Report (Key User)</SPAN></LI><LI><SPAN>BAdI: Retrieval of Incident Basic Information (Key User)</SPAN></LI><LI><SPAN>BAdI: Retrieval of Custom Field Incident Data (Key User)</SPAN></LI><LI><SPAN>BAdI: Retrieval of Involved Person Data (Key User)</SPAN></LI><LI><SPAN>BAdI: Retrieval of Incident Root Data (Key User)</SPAN></LI></UL><P class="lia-align-justify" style="text-align : justify;"><STRONG><SPAN>Risk Management</SPAN></STRONG></P><UL class="lia-align-justify" style="text-align : justify;"><LI><SPAN>(No BAdIs available for Risk Management in Public Cloud yet)</SPAN></LI></UL><P class="lia-align-justify" style="text-align : justify;"><STRONG><SPAN>Emissions Management</SPAN></STRONG></P><UL class="lia-align-justify" style="text-align : justify;"><LI><SPAN>BAdI: Field Control for Extension of Amount Root (Key User)</SPAN></LI><LI><SPAN>BAdI: Check Amounts State and Perform Subsequent Actions (Key User &amp; Developer)</SPAN></LI><LI><SPAN>BAdI: Generation of Export Files (Key User &amp; Developer)</SPAN></LI><LI><SPAN>BAdI: Compliance Requirement Import from XLSX (Key User &amp; Developer)</SPAN></LI><LI><SPAN>BAdI: Automatic Data Collection Import (Key User &amp; Developer)</SPAN></LI><LI><SPAN>BAdI: Automatic Data Collection Import from XLSX BAdI (Key User &amp; Developer)</SPAN></LI><LI><SPAN>BAdI: Automatic Data Collection XLSX Parser BAdI (Key User &amp; Developer)</SPAN></LI><LI><SPAN>BAdI: Field Control for Extension of Data Collection Root (Key User)</SPAN></LI></UL><P class="lia-align-justify" style="text-align : justify;"><SPAN>As the overview shows, the currently available BAdIs for EHS in the SAP S/4HANA Public Cloud are primarily focused on Key User Extensibility, especially within Incident Management and Emissions Management. While Developer Extensibility via ABAP Cloud provides a more advanced pro-code extension model, the current EHS-specific enhancement points are mostly delivered as in-app, low-code BAdIs to ensure upgrade stability and full alignment with SAP’s clean core principles.</SPAN></P><P class="lia-align-justify" style="text-align : justify;"><SPAN>This corresponds closely with our experience from project implementations: Most EHS extension requirements can be delivered efficiently using in-app, Key User Extensibility tools such as Custom Fields, Custom Logic, UI Adaptation, and CDS View extensions without requiring developer access.</SPAN></P><P class="lia-align-justify" style="text-align : justify;">&nbsp;</P><H1 id="toc-hId-441961304"><SPAN>3. Practical Extensibility Scenarios in EHS</SPAN></H1><P class="lia-align-justify" style="text-align : justify;"><SPAN>In chapter 2, we explored the extensibility options available in SAP S/4HANA Public Cloud and outlined which of these options are most relevant for EHS implementations. As highlighted, the majority of extensibility points currently exposed in the EHS area (especially within Incident Management and Emissions Management) are implemented using Key User Extensibility, including custom fields, UI adaptation, form template configuration, and Custom Logic BAdIs.</SPAN></P><P class="lia-align-justify" style="text-align : justify;"><SPAN>Because of this, this chapter focuses exclusively on Key User Extensibility in practice, demonstrating how customers can solve real-world EHS requirements entirely within the Public Cloud without requiring developer extensibility or SAP BTP side-by-side extensions.</SPAN></P><P class="lia-align-justify" style="text-align : justify;"><SPAN>Drawing from our project experience, we selected three scenarios that reflect <STRONG>common customer requirements</STRONG>:</SPAN></P><OL class="lia-align-justify" style="text-align : justify;"><LI><SPAN>Adding custom attributes to the Incident Management process</SPAN></LI><LI><SPAN>Generating a country-specific incident report, using custom form templates and multiple BAdIs</SPAN></LI><LI><SPAN>Adding custom attributes &amp; making them mandatory in the “My Data Collections” Fiori app of the Environment Management process</SPAN></LI></OL><P class="lia-align-justify" style="text-align : justify;"><SPAN>All three scenarios illustrate how far customers can go using the extensibility tools embedded in SAP S/4HANA Public Cloud, while fully adhering to the clean-core principle.</SPAN></P><H2 id="toc-hId--47955208"><SPAN>3.1 Example 1 - Introducing a Custom Attribute for Incident Records</SPAN></H2><P><STRONG><SPAN>Extensibility Type: </SPAN></STRONG></P><UL><LI><SPAN>Key User Extensibility</SPAN></LI></UL><P><STRONG><SPAN>Tools &amp; Apps Used:</SPAN></STRONG></P><UL><LI><SPAN>Custom Fields App (SAP Fiori App)</SPAN></LI><LI><SPAN>UI Adaptation (SAP Fiori Settings)</SPAN></LI></UL><H3 id="toc-hId--537871720"><SPAN>3.1.1 Business Requirement</SPAN></H3><P class="lia-align-justify" style="text-align : justify;"><SPAN>Many organizations require an additional field “Business Unit” to be captured as part of incident documentation to meet internal reporting needs, support organizational analysis, or fulfill local compliance requirements. Since this information is not available in the standard SAP EHS Public Cloud data model, customers often need to introduce it as a custom field.</SPAN></P><P class="lia-align-justify" style="text-align : justify;"><SPAN>Typically, the Business Unit may be required in multiple stages of the Incident Management process, such as:</SPAN></P><UL class="lia-align-justify" style="text-align : justify;"><LI><SPAN>Incident Creation</SPAN></LI><LI><SPAN>Incident Processing</SPAN></LI><LI><SPAN>Reporting and Analytics Dashboards</SPAN></LI></UL><P class="lia-align-justify" style="text-align : justify;"><SPAN>In our case, the Business Unit field was only added to the Incident Processing step, primarily for simplicity and to demonstrate the extensibility approach in clear and focused manner. However, this field can be added to additional UIs and process steps as needed, depending on the customer’s specific requirements, organizational structure, or compliance obligations.</SPAN></P><H3 id="toc-hId--734385225"><SPAN>3.1.2 Step-by-Step Implementation</SPAN></H3><P><STRONG><SPAN>Create New Custom Field</SPAN></STRONG></P><P><SPAN>In this step a custom field for the Incident Management will be created using the “<STRONG>Custom Fields</STRONG>” Fiori App. You can follow the steps below to create a custom field:</SPAN></P><P><SPAN>1. Navigate to the “<STRONG>Custom Fields</STRONG>” app from the Fiori Launchpad.</SPAN></P><P><SPAN>2. Click “<STRONG>Create</STRONG>”.</SPAN></P><P><SPAN>3. Enter the following details:</SPAN></P><UL><LI><STRONG><SPAN>Business Context</SPAN></STRONG><SPAN>: Select the relevant context (e.g.</SPAN> <SPAN>EHHSS_INC_BINFA).</SPAN></LI><LI><STRONG><SPAN>Label</SPAN></STRONG><SPAN>: Provide a meaningful name (Business Unit). <STRONG>Identifier</STRONG> &amp; <STRONG>Tooltip</STRONG> will be filled automatically. </SPAN></LI><LI><STRONG><SPAN>Type</SPAN></STRONG><SPAN>: Choose from options like Text, Number, Date, etc.</SPAN></LI><LI><STRONG><SPAN>Length</SPAN></STRONG><SPAN>: Define the size of the field if applicable.</SPAN></LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Create New Field" style="width: 945px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/347880iA03159A2DC182D8E/image-size/large?v=v2&amp;px=999" role="button" title="duynguyendeloitte_2-1764754081325.png" alt="Create New Field" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Create New Field</span></span></P><P class="lia-align-justify lia-indent-padding-left-30px" style="text-align : justify; padding-left : 30px;"><SPAN>After the required details have been filled, select <STRONG>Create and Edit</STRONG>.</SPAN></P><P class="lia-align-justify" style="text-align : justify;"><SPAN>4.&nbsp;</SPAN><STRONG><SPAN>Enable the fields</SPAN></STRONG><SPAN>&nbsp;for the relevant applications.</SPAN></P><P class="lia-align-justify lia-indent-padding-left-30px" style="text-align : justify; padding-left : 30px;"><SPAN>The fields of the tabs <STRONG>User Interfaces, Analytics </STRONG>and <STRONG>APIs </STRONG>will be enabled by default. These tabs are required to support user interactions, reporting as well as integrations for the recently added custom field (Business Unit).</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Field Enablement" style="width: 945px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/347882i11AADDAECC27B52C/image-size/large?v=v2&amp;px=999" role="button" title="duynguyendeloitte_3-1764754367233.png" alt="Field Enablement" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Field Enablement</span></span></P><P class="lia-align-justify lia-indent-padding-left-30px" style="text-align : justify; padding-left : 30px;"><SPAN>If the new field should appear in generated documents such as PDFs or reports, you need to enable the required Form Templates. In our scenario, two Form Templates were activated as shown below. </SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Enabled Form Templates" style="width: 945px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/347884iE5681FDA2BCAB0BB/image-size/large?v=v2&amp;px=999" role="button" title="duynguyendeloitte_4-1764754509991.png" alt="Enabled Form Templates" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Enabled Form Templates</span></span></P><P class="lia-align-justify lia-indent-padding-left-30px" style="text-align : justify; padding-left : 30px;"><STRONG><SPAN>Note: </SPAN></STRONG><SPAN>The <STRONG>YY1_WHS_FORM10</STRONG> Template is a custom Form Template. The creation of this Form Template will be shown in chapter 3.2.</SPAN></P><P class="lia-align-justify" style="text-align : justify;"><SPAN>5.&nbsp;</SPAN><STRONG><SPAN>Save</SPAN></STRONG><SPAN> and <STRONG>publish</STRONG> the custom field to make it available in the system.</SPAN></P><P class="lia-align-justify" style="text-align : justify;">&nbsp;</P><P class="lia-align-justify" style="text-align : justify;"><STRONG><SPAN>Assign custom field to Fiori app</SPAN></STRONG></P><P class="lia-align-justify" style="text-align : justify;"><SPAN>Custom fields created by using the “<STRONG>Custom Fields</STRONG>” Fiori app can be assigned to the relevant Fiori applications based on the selected business context. Follow these steps to add the field:</SPAN></P><P class="lia-align-justify" style="text-align : justify;"><SPAN>1. Open the “<STRONG>Manage Incident</STRONG>” Fiori app &amp; click on any incident.</SPAN></P><P class="lia-align-justify" style="text-align : justify;"><SPAN>2. Click on your <STRONG>profile</STRONG> &amp; choose “<STRONG>Adapt UI</STRONG>”</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Navigate to &quot;Adapt UI&quot;" style="width: 945px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/347885i917EB2065FC06627/image-size/large?v=v2&amp;px=999" role="button" title="duynguyendeloitte_5-1764754646697.png" alt="Navigate to &quot;Adapt UI&quot;" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Navigate to "Adapt UI"</span></span></P><P class="lia-align-justify" style="text-align : justify;">&nbsp;3.&nbsp;<SPAN>Once Adapt UI is activated, you can start customizing the page layout and add the recently created custom field to the relevant sections. By selecting “<STRONG>Customize</STRONG>” &gt;</SPAN><SPAN>&nbsp;“<STRONG>Show Customizable Areas</STRONG>” as shown below, you will be able to insert the new custom field “Business Unit” into the desired section of the Fiori App.</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Navigate to &quot;Show Customizable Areas&quot;" style="width: 945px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/347887i24B8C8FFFA115991/image-size/large?v=v2&amp;px=999" role="button" title="duynguyendeloitte_6-1764754726716.png" alt="Navigate to &quot;Show Customizable Areas&quot;" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Navigate to "Show Customizable Areas"</span></span></P><P class="lia-align-justify" style="text-align : justify;">&nbsp;4.&nbsp;<SPAN>Select the <STRONG>Customizable Area</STRONG> that should be changed.</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Select Customizable Area" style="width: 945px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/347888iDCC3F94B5C3BB847/image-size/large?v=v2&amp;px=999" role="button" title="duynguyendeloitte_7-1764754786640.png" alt="Select Customizable Area" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Select Customizable Area</span></span></P><P class="lia-align-justify" style="text-align : justify;">&nbsp;5.&nbsp;Select<SPAN> the <STRONG>element</STRONG> as shown below &amp; click on “<STRONG>Customize UIBB</STRONG>”.</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Select &quot;Customize UIBB&quot;" style="width: 945px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/347891i7E37CC5E65F89CC0/image-size/large?v=v2&amp;px=999" role="button" title="duynguyendeloitte_8-1764754837381.png" alt="Select &quot;Customize UIBB&quot;" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Select "Customize UIBB"</span></span></P><P>&nbsp;6.&nbsp;<SPAN>To add the new field, select “<STRONG>Element</STRONG>” &gt;</SPAN><STRONG>&nbsp;</STRONG><SPAN>“<STRONG>Add Element</STRONG>”<STRONG>.</STRONG></SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Add Element" style="width: 942px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/347892i10D5FCC16295A498/image-size/large?v=v2&amp;px=999" role="button" title="duynguyendeloitte_9-1764754901051.png" alt="Add Element" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Add Element</span></span></P><P class="lia-align-justify" style="text-align : justify;">&nbsp;7.&nbsp;<SPAN>Select the recently created field <STRONG>YY1_BUSINESSUNIT_IBN</STRONG> and select “<STRONG>OK</STRONG>”. </SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Select field YY1_BUSINESSUNIT_IBN" style="width: 214px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/347893i59B7CD03C28714BE/image-size/medium?v=v2&amp;px=400" role="button" title="duynguyendeloitte_10-1764754940253.png" alt="Select field YY1_BUSINESSUNIT_IBN" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Select field YY1_BUSINESSUNIT_IBN</span></span></P><P>&nbsp;</P><P class="lia-align-justify" style="text-align : justify;"><SPAN>In the below shown illustration you can see an example, after the Business Unit was added to the UI.</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Field Business Unit added to UI" style="width: 945px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/347894iB0CA793FAA1B564F/image-size/large?v=v2&amp;px=999" role="button" title="duynguyendeloitte_11-1764755023732.png" alt="Field Business Unit added to UI" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Field Business Unit added to UI</span></span></P><P class="lia-align-justify" style="text-align : justify;">&nbsp;8.&nbsp;<STRONG><SPAN>Save</SPAN></STRONG><SPAN> th</SPAN><SPAN>e UI adaptation for this page. &nbsp;</SPAN></P><P class="lia-align-justify" style="text-align : justify;">&nbsp;</P><H2 id="toc-hId--637495723">3.2 Example 2 - Generating a Country-Specific Incident Report</H2><P class="lia-align-justify" style="text-align : justify;"><STRONG><SPAN>Extensibility Type: </SPAN></STRONG></P><UL class="lia-align-justify" style="text-align : justify;"><LI><SPAN>Key User Extensibility</SPAN></LI></UL><P class="lia-align-justify" style="text-align : justify;"><STRONG><SPAN>Tools &amp; Apps Used:</SPAN></STRONG></P><UL><LI><SPAN>Adobe Lifecycle Designer (External Tool)</SPAN></LI><LI><SPAN>Maintain Form Template App (SAP Fiori App)</SPAN></LI><LI><SPAN>Custom Logic App (SAP Fiori App)</SPAN></LI><LI><SPAN>CBC Configuration</SPAN><SPAN> (SAP Public Cloud) /&nbsp;</SPAN>or if no access exists Implementation Activities (SAP Fiori App)</LI></UL><H3 id="toc-hId--1127412235">3.2.1 Business Requirement</H3><P class="lia-align-justify" style="text-align : justify;"><SPAN>In many EHS implementations, customers need to generate country-specific incident reports that comply with national legal requirements. These reports often require a combination of standard fields, people related information, and custom fields that are not provided in the SAP EHS Public Cloud standard forms. For example, organizations operating in Australia may be required to submit the <EM>WHS Form 10</EM>, a mandatory workplace health and safety report documenting incidents, injuries, or hazards in accordance with the Australian Work Health and Safety (WHS) Regulations (made-up). To support this requirement, a custom Adobe form template must be created and populated with incident data, including custom fields. This requires implementing the relevant Business Add-Ins (BAdIs) to retrieve, map, and supply the correct incident information into the custom form.</SPAN></P><P class="lia-align-justify" style="text-align : justify;"><SPAN>The report must include:</SPAN></P><UL><LI><SPAN>Basic incident details</SPAN></LI><LI><SPAN>Person and involvement information</SPAN></LI><LI><SPAN>Custom fields required for the local legislative format</SPAN></LI></UL><H3 id="toc-hId--1323925740">3.2.2 Step-by-Step Implementation</H3><P class="lia-align-justify" style="text-align : justify;"><STRONG><SPAN>Develop a Custom Form in Adobe Lifecycle Designer</SPAN></STRONG></P><P class="lia-align-justify" style="text-align : justify;"><SPAN>A custom form template needs to be created to meet the specific requirements of the report. The form should include all necessary fields. To showcase this example, we created the form template <STRONG>YY1_WHS_FORM10</STRONG> in <STRONG>Adobe Lifecycle Designer</STRONG> and saved it as an <STRONG>xdp</STRONG> file.</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Form Template Creation in Adobe Lifecycle Designer" style="width: 945px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/347992i0AA133E7BBF17435/image-size/large?v=v2&amp;px=999" role="button" title="duynguyendeloitte_0-1764764530957.png" alt="Form Template Creation in Adobe Lifecycle Designer" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Form Template Creation in Adobe Lifecycle Designer</span></span></P><P class="lia-align-justify" style="text-align : justify;">&nbsp;</P><P class="lia-align-justify" style="text-align : justify;"><STRONG><SPAN>Upload Custom Form in SAP S/4HANA Public Cloud</SPAN></STRONG></P><P class="lia-align-justify" style="text-align : justify;"><SPAN>Once the custom form template is created in Adobe Lifecycle Designer, the next step is to upload it to SAP S/4HANA Public Cloud by using the “<STRONG>Maintain Form Template</STRONG>” app. </SPAN></P><P class="lia-align-justify" style="text-align : justify;"><SPAN>1. Open the “<STRONG>Maintain Form Template</STRONG>” app in your SAP S/4HANA Public Cloud system.</SPAN></P><P class="lia-align-justify" style="text-align : justify;"><SPAN>2. Navigate to the “<STRONG>Custom Template</STRONG>” tab.</SPAN></P><P class="lia-align-justify" style="text-align : justify;"><SPAN>3. Click “<STRONG>New</STRONG>” to create a new entry.</SPAN></P><P class="lia-align-justify" style="text-align : justify;"><SPAN>4. Enter a <STRONG>Form Template Name</STRONG> of your choice (for example “<STRONG>YY1_WHS_FORM10</STRONG>” including the prefix “YY1_” for custom forms).</SPAN></P><P class="lia-align-justify" style="text-align : justify;">5.<STRONG><SPAN> Upload the form file</SPAN></STRONG><SPAN> that you created in Adobe Lifecycle Designer.</SPAN></P><P class="lia-align-justify" style="text-align : justify;"><SPAN>6. Select the <STRONG>Data Source Name</STRONG> as “<STRONG>EHSS_FDP_INCIDENT_SRV</STRONG>”.</SPAN></P><P class="lia-align-justify" style="text-align : justify;"><SPAN>The illustration below shows how the form setup was done in our scenario.</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Form Setup (1)" style="width: 945px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/347993i47DC8B5D3E2B674D/image-size/large?v=v2&amp;px=999" role="button" title="duynguyendeloitte_1-1764764706734.png" alt="Form Setup (1)" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Form Setup (1)</span></span></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Form Setup (2)" style="width: 945px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/347994iC754DAB1DE226161/image-size/large?v=v2&amp;px=999" role="button" title="duynguyendeloitte_2-1764764764042.png" alt="Form Setup (2)" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Form Setup (2)</span></span></P><P class="lia-align-justify" style="text-align : justify;">&nbsp;</P><P class="lia-align-justify" style="text-align : justify;"><STRONG><SPAN>Assign Custom Fields &amp; Custom Logic</SPAN></STRONG><STRONG><SPAN> to the form</SPAN></STRONG></P><P class="lia-align-justify" style="text-align : justify;"><SPAN>In this step we assign the created custom fields &amp; logic to the form (shown in the previous step). This is achieved by using the “<STRONG>Custom Logic</STRONG>” app in SAP S/4HANA Public Cloud, where you can leverage the available <STRONG>Business Add-Ins (BAdIs) </STRONG>provided by the system. To retrieve the required information in the form, you can implement the following BAdIs:</SPAN></P><UL class="lia-align-justify" style="text-align : justify;"><LI><STRONG><SPAN>BADI_EHHSS_INC_BASIC_INFO</SPAN></STRONG></LI><LI><STRONG><SPAN>BADI_EHHSS_INC_INVOLVED_PERS</SPAN></STRONG></LI><LI><STRONG><SPAN>BADI_EHHSS_INC_ROOT</SPAN></STRONG></LI></UL><P class="lia-align-justify" style="text-align : justify;">1.&nbsp;<SPAN>Click “<STRONG>Create</STRONG>” to start a new implementation.</SPAN></P><P class="lia-align-justify" style="text-align : justify;"><SPAN>2.&nbsp;</SPAN><STRONG><SPAN>Select</SPAN></STRONG><SPAN> one of the mentioned BAdIs above and proceed to “<STRONG>Step 2</STRONG>” (if no filters are needed jump over to <STRONG>step 3</STRONG> and enter an <STRONG>Implementation Description</STRONG>).</SPAN></P><P class="lia-align-justify" style="text-align : justify;"><SPAN>3.&nbsp;</SPAN><STRONG><SPAN>Create</SPAN></STRONG><SPAN> and <STRONG>publish</STRONG> the Implementation.</SPAN></P><P class="lia-align-justify" style="text-align : justify;"><SPAN>4.&nbsp;</SPAN><STRONG><SPAN>Navigate</SPAN></STRONG><SPAN> to the created Implementation.</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Created Implementations" style="width: 945px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/347996iC6AB18971C1C8BC8/image-size/large?v=v2&amp;px=999" role="button" title="duynguyendeloitte_3-1764764867480.png" alt="Created Implementations" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Created Implementations</span></span></P><P class="lia-align-justify" style="text-align : justify;">&nbsp;5.&nbsp;<SPAN>Select “<STRONG>Code Editor</STRONG>” and write <STRONG>ABAP logic</STRONG> using <STRONG>released APIs</STRONG> and <STRONG>CDS views</STRONG>.</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Open Code Editor" style="width: 945px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/347997i4B11183D09CC2232/image-size/large?v=v2&amp;px=999" role="button" title="duynguyendeloitte_4-1764764925808.png" alt="Open Code Editor" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Open Code Editor</span></span></P><P class="lia-align-justify" style="text-align : justify;"><SPAN>The below shown BAdI implementation <STRONG>YY1_BADI_EHHSS_INC_BASIC_INFO</STRONG> retrieves incident basic information from the CDS View <STRONG>I_IncidentBasicInfo </STRONG>and populates the <STRONG>INCIDENTBASICINFO</STRONG> structure, so that key fields such as the <STRONG>Creation Date Time</STRONG> or<STRONG> Business Unit</STRONG> (which was previously created as a custom field in chapter 3.1) are available in the custom form.</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="YY1_BADI_EHHSS_INC_BASIC_INFO" style="width: 945px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/347999i09DDA01F4FC5892E/image-size/large?v=v2&amp;px=999" role="button" title="duynguyendeloitte_5-1764765041175.png" alt="YY1_BADI_EHHSS_INC_BASIC_INFO" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">YY1_BADI_EHHSS_INC_BASIC_INFO</span></span></P><P class="lia-align-justify" style="text-align : justify;"><SPAN>Perform the same steps for the other required BadIs.</SPAN></P><P class="lia-align-justify" style="text-align : justify;"><SPAN>BAdI <STRONG>YY1_BADI_EHHSS_INC_INVOLVED_PE</STRONG> retrieves involved person details, such as <STRONG>Person’s Full Name</STRONG>, from the CDS View <STRONG>I_IncidentInvolvedPerson </STRONG>which makes it available in the custom form.</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="YY1_BADI_EHHSS_INC_INVOLVED_PE" style="width: 945px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/348001i41DC878107A7690C/image-size/large?v=v2&amp;px=999" role="button" title="duynguyendeloitte_6-1764765191493.png" alt="YY1_BADI_EHHSS_INC_INVOLVED_PE" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">YY1_BADI_EHHSS_INC_INVOLVED_PE</span></span></P><P class="lia-align-justify" style="text-align : justify;"><SPAN>BAdI <STRONG>YY1_BADI_EHHSS_INC_ROOT</STRONG> retrieves root-level incident data such as <STRONG>CreationDateTime</STRONG> from the CDS View <STRONG>I_Incident </STRONG>and makes these fields available for the custom form.</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="YY1_BADI_EHHSS_INC_ROOT" style="width: 945px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/348002i53015923D91EB6A9/image-size/large?v=v2&amp;px=999" role="button" title="duynguyendeloitte_7-1764765254379.png" alt="YY1_BADI_EHHSS_INC_ROOT" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">YY1_BADI_EHHSS_INC_ROOT</span></span></P><P class="lia-align-justify" style="text-align : justify;"><STRONG><SPAN>Note:</SPAN></STRONG><SPAN> BAdIs are essential because they supply data for custom and standard fields in the form. Without these implementations, the fields would remain empty, as the standard logic does not retrieve the required CDS view information.</SPAN></P><P>6.&nbsp;<SPAN>Click “<STRONG>Publish</STRONG>” to implement.</SPAN></P><P>&nbsp;</P><P><STRONG><SPAN>Functional Configuration (Assign Form to regulation)</SPAN></STRONG></P><P><SPAN>Uploading the Adobe form just makes the template available in the system. To actually use it in the EHS process, you need to specify the form and assign it to the correct form group and regulation. This ensures the form is linked to the appropriate compliance context and can be selected when generating reports.</SPAN></P><P><SPAN>This can be achieved by performing the mentioned steps below performed in the <STRONG>SAP</STRONG> <STRONG>Central Business Configuration</STRONG> (or ”<STRONG>Implementation Activities</STRONG>” app<STRONG>)</STRONG>. </SPAN></P><P class="lia-align-justify" style="text-align : justify;">1.&nbsp;<STRONG><SPAN>Specify form</SPAN></STRONG>:<SPAN> Select one of the mentioned apps above and navigate to <STRONG>SAP Business Configuration</STRONG>&nbsp;&gt;</SPAN><SPAN>&nbsp;<STRONG>Compliance and Trade</STRONG>&nbsp;&gt;</SPAN><SPAN>&nbsp;<STRONG>Environment, Health, and Safety</STRONG>&nbsp;&gt;</SPAN><SPAN>&nbsp;<STRONG>Specify Forms</STRONG></SPAN></P><P><STRONG><SPAN>Each form entry shows key technical attributes:</SPAN></STRONG></P><UL><LI><STRONG><SPAN>Form Name</SPAN></STRONG><STRONG><SPAN> &amp; Form Title</SPAN></STRONG><SPAN> : Represents the form to be specified (In our scenario: WHS).</SPAN></LI><LI><STRONG><SPAN>Form Type</SPAN></STRONG><SPAN>: Indicates the technology used for the form. In SAP S/4HANA Public Cloud, this is typically “<STRONG>SAP Interactive Form</STRONG>”, which refers to Adobe-based forms used for output and reporting.</SPAN></LI><LI><STRONG><SPAN>Form Controller</SPAN></STRONG><SPAN>: Controls the rendering and behavior of the form in SAP (In our scenario: CL_EHFND_FW_ADS_OM_FORM_CTRL).</SPAN></LI><LI><STRONG><SPAN>Data Provider</SPAN></STRONG><SPAN>: Supplies the data from the EHS process to the form (In our scenario: CL_EHHSS_AIF_INCIDENT_DPROV).</SPAN></LI><LI><STRONG><SPAN>Form Object Name</SPAN></STRONG><SPAN>: Identifies the form template used for output. This should match the custom form you uploaded earlier in the “Maintain Form Template” app (In our scenario: YY1_WHS_FORM10).</SPAN></LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Specify Form" style="width: 945px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/348003i523AD5BBEEF2C502/image-size/large?v=v2&amp;px=999" role="button" title="duynguyendeloitte_8-1764765428538.png" alt="Specify Form" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Specify Form</span></span></P><P class="lia-align-justify" style="text-align : justify;">&nbsp;2.&nbsp;<STRONG><SPAN>Assign Form to the Form Group</SPAN></STRONG><SPAN>: Select one of the mentioned apps above and navigate to <STRONG>SAP Business Configuration</STRONG>&nbsp; &gt;</SPAN><SPAN>&nbsp;<STRONG>Compliance and Trade</STRONG>&nbsp;&gt;</SPAN><SPAN>&nbsp;<STRONG>Environment, Health, and Safety</STRONG>&nbsp;&gt;</SPAN><SPAN>&nbsp;<STRONG>Specify Form Groups and Assign Forms</STRONG></SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Assign Form to Form Group (1)" style="width: 945px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/348004i47729F4FE814CDA3/image-size/large?v=v2&amp;px=999" role="button" title="duynguyendeloitte_9-1764765507445.png" alt="Assign Form to Form Group (1)" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Assign Form to Form Group (1)</span></span></P><P class="lia-align-justify" style="text-align : justify;"><SPAN>After defining the form groups, the next step is to assign the relevant specified forms to these groups. This can be performed on the second level of the selected form group and ensures that the custom or standard forms are correctly linked to the appropriate reporting or regulatory context.</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Assign Form to Form Group (2)" style="width: 945px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/348005i4CD6721A99C15027/image-size/large?v=v2&amp;px=999" role="button" title="duynguyendeloitte_10-1764765594899.png" alt="Assign Form to Form Group (2)" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Assign Form to Form Group (2)</span></span></P><P class="lia-align-justify" style="text-align : justify;">&nbsp;3.&nbsp;<STRONG><SPAN>Specify Regulations &amp; assign Regulation to Incidents</SPAN></STRONG><SPAN>: Select one of the mentioned apps above and navigate to<STRONG> SAP Business Configuration</STRONG>&nbsp;&gt;</SPAN><SPAN>&nbsp;<STRONG>Compliance and Trade</STRONG>&nbsp;&gt;</SPAN><SPAN>&nbsp;<STRONG>Environment, Health, and Safety</STRONG>&nbsp;&gt;</SPAN><SPAN>&nbsp;&nbsp;<STRONG>Specify Regulations.</STRONG></SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Specify Regulations &amp; Assign Regulation to Incidents (1)" style="width: 945px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/348006iD8ABC61FD49FCADF/image-size/large?v=v2&amp;px=999" role="button" title="duynguyendeloitte_11-1764765748157.png" alt="Specify Regulations &amp; Assign Regulation to Incidents (1)" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Specify Regulations &amp; Assign Regulation to Incidents (1)</span></span></P><P class="lia-align-justify" style="text-align : justify;"><SPAN>After specifying the regulation (e.g., WHS), the next step is to assign it to the relevant incident categories. This ensures that when users select a regulation in the Incident process, the correct forms from the assigned form group become available for reporting.</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Specify Regulations &amp; Assign Regulation to Incidents (2)" style="width: 945px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/348007i8F4BE013D3B89FAD/image-size/large?v=v2&amp;px=999" role="button" title="duynguyendeloitte_12-1764765814477.png" alt="Specify Regulations &amp; Assign Regulation to Incidents (2)" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Specify Regulations &amp; Assign Regulation to Incidents (2)</span></span></P><P class="lia-align-justify" style="text-align : justify;">&nbsp;4.&nbsp;<STRONG><SPAN>Assign the Forms to Regulations</SPAN></STRONG><SPAN>: Finally, link the forms to the corresponding regulation. This step ensures that when a regulation (e.g., WHS) is selected in the Incident process, the correct form becomes available for reporting.</SPAN></P><P class="lia-align-justify" style="text-align : justify;"><SPAN>Therefore, open the <STRONG>SAP Central Business Configuration</STRONG>&nbsp;&gt;</SPAN><SPAN>&nbsp;<STRONG>Compliance and Trade</STRONG>&nbsp;&gt;</SPAN><SPAN>&nbsp;<STRONG>Environment, Health, and Safety</STRONG>&nbsp;&gt;</SPAN><SPAN>&nbsp;<STRONG>Assign Forms to Regulations.</STRONG></SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Assign Forms to Regulations" style="width: 945px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/348021i8153F86C1C5FBC10/image-size/large?v=v2&amp;px=999" role="button" title="duynguyendeloitte_13-1764765904039.png" alt="Assign Forms to Regulations" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Assign Forms to Regulations</span></span></P><P>&nbsp;</P><P><STRONG><SPAN>Generating the Report</SPAN></STRONG></P><P><SPAN>Once the configuration is complete, you can generate the report directly from the “<STRONG>Manage Incident</STRONG>” app.</SPAN></P><P><SPAN>1. Open the “<STRONG>Manage Incident</STRONG>” app</SPAN></P><P><SPAN>2. Select any Incident which has the status&nbsp; “<STRONG>In Process</STRONG>”.</SPAN></P><P><SPAN>3. Click on “<STRONG>Regulations</STRONG>”, choose “<STRONG>WHS</STRONG>”, then click “<STRONG>OK</STRONG>” and” <STRONG>Save</STRONG>”.</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Generate Report (1)" style="width: 945px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/348036iC5CC6800E52FC5BC/image-size/large?v=v2&amp;px=999" role="button" title="duynguyendeloitte_14-1764765960510.png" alt="Generate Report (1)" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Generate Report (1)</span></span></P><P class="lia-align-justify" style="text-align : justify;"><SPAN>After selecting the WHS regulation, the system makes the corresponding report option available under the “Reports” tab.</SPAN></P><P class="lia-align-justify" style="text-align : justify;"><SPAN>4. Navigate to the “<STRONG>Reports</STRONG>” tab.</SPAN></P><P class="lia-align-justify" style="text-align : justify;"><SPAN>5. Select the <STRONG>WHS</STRONG> Report from the list.</SPAN></P><P class="lia-align-justify" style="text-align : justify;"><SPAN>6. Click “<STRONG>Generate</STRONG>” to create the report.</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Generate Report (2)" style="width: 945px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/348040iA7B6E0AAE7B6A8C9/image-size/large?v=v2&amp;px=999" role="button" title="duynguyendeloitte_15-1764766087002.png" alt="Generate Report (2)" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Generate Report (2)</span></span></P><P class="lia-align-justify" style="text-align : justify;"><SPAN>Once you click “<STRONG>Generate</STRONG>” for the selected Report Type, the WHS report is created and appears in the list as a <STRONG>downloadable PDF</STRONG>.</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Generate Report (3)" style="width: 945px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/348042iB8A2A0CE6B1DDC33/image-size/large?v=v2&amp;px=999" role="button" title="duynguyendeloitte_16-1764766172615.png" alt="Generate Report (3)" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Generate Report (3)</span></span></P><P class="lia-align-justify" style="text-align : justify;"><SPAN>The final output reflects all required incident details, including custom and standard fields, in the <STRONG>WHS Form 10</STRONG> format.</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Output" style="width: 877px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/348043i4DB3B6D5A708E3D3/image-size/large?v=v2&amp;px=999" role="button" title="duynguyendeloitte_17-1764766209809.png" alt="Output" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Output</span></span></P><H2 id="toc-hId--1227036238">&nbsp;</H2><H2 id="toc-hId--1423549743">3.3 Example 3 -&nbsp;<SPAN>Introducing a Custom Attribute &amp; Making it Mandatory for the “My Data Collection” App in Environment Management</SPAN></H2><P><STRONG><SPAN>Extensibility Type: </SPAN></STRONG></P><UL><LI><SPAN>Key User Extensibility</SPAN></LI></UL><P><STRONG><SPAN>Tools &amp; Apps Used:</SPAN></STRONG></P><UL><LI><SPAN>Custom Fields App (SAP Fiori App)</SPAN></LI><LI><SPAN>UI Adaptation (SAP Fiori Settings)</SPAN></LI><LI><SPAN>Custom Logic App (SAP Fiori App)</SPAN></LI></UL><H3 id="toc-hId--1913466255"><SPAN>3.3.1 Business Requirement</SPAN></H3><P class="lia-align-justify" style="text-align : justify;"><SPAN>In several Environment Management scenarios, organizations require additional quantitative attributes for internal reporting, monitoring, and compliance purposes. One common requirement is the ability to capture MTD (Month-to-Date / Total Month-to-Date) values as part of environmental data collection.</SPAN></P><P class="lia-align-justify" style="text-align : justify;"><SPAN>In the standard SAP EHS Public Cloud data model, this information is not available out of the box for the “My Data Collection” application. As a result, customers often need to extend the data model by introducing custom fields and ensure that these fields are consistently maintained by end users.</SPAN></P><P class="lia-align-justify" style="text-align : justify;"><SPAN>In our case, the MTD value was required as a mandatory field during data entry to ensure data completeness and to avoid follow-up corrections during reporting cycles. To achieve this, we implemented the requirement using Key User Extensibility, combining custom fields, UI adaptation, and custom logic.</SPAN></P><H3 id="toc-hId--1941796069"><SPAN>3.3.2 Step-by-Step Implementation</SPAN></H3><P><STRONG><SPAN>Create a Custom Field</SPAN></STRONG></P><P class="lia-align-justify" style="text-align : justify;"><SPAN>The first step is to create a custom field using the “<STRONG>Custom Fields</STRONG>” Fiori app.</SPAN></P><P class="lia-align-justify" style="text-align : justify;"><SPAN>1. Navigate to the “<STRONG>Custom Fields</STRONG>” app from the Fiori Launchpad.</SPAN></P><P class="lia-align-justify" style="text-align : justify;"><SPAN>2. Click “<STRONG>Create</STRONG>”.</SPAN></P><P class="lia-align-justify" style="text-align : justify;"><SPAN>3. Enter the following details:</SPAN></P><UL><LI><STRONG><SPAN>Business Context</SPAN></STRONG><SPAN>: Select the relevant context (e.g. EHFND_AMOUNTS).</SPAN></LI><LI><STRONG><SPAN>Label</SPAN></STRONG><SPAN>: Provide a meaningful name (MTD). <STRONG>Identifier</STRONG> &amp; <STRONG>Tooltip</STRONG> will be filled automatically. </SPAN></LI><LI><STRONG><SPAN>Type</SPAN></STRONG><SPAN>: Choose from options like Text, Number, Date, etc.</SPAN></LI><LI><STRONG><SPAN>Length</SPAN></STRONG><SPAN>: Define the size of the field if applicable.</SPAN></LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="duynguyendeloitte_0-1768314230832.png" style="width: 945px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/360945iC4A7CE3D039C7B5A/image-size/large?v=v2&amp;px=999" role="button" title="duynguyendeloitte_0-1768314230832.png" alt="duynguyendeloitte_0-1768314230832.png" /></span></P><P><SPAN>After the required details have been filled, select <STRONG>Create and Edit</STRONG>.</SPAN></P><P>4.<STRONG> Enable the fields</STRONG><SPAN> for the relevant applications.</SPAN></P><P><SPAN>The fields of the tabs <STRONG>General Information &amp; </STRONG><STRONG>User Interfaces </STRONG>will be enabled by default. These tabs are required to support user interactions for the recently added custom field. In “UI Texts” under “General Information” create a field component which needs to be added in the Fiori App as shown below.</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="duynguyendeloitte_1-1768314367917.png" style="width: 945px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/360947i896BDCD8531F235D/image-size/large?v=v2&amp;px=999" role="button" title="duynguyendeloitte_1-1768314367917.png" alt="duynguyendeloitte_1-1768314367917.png" /></span></P><P>&nbsp;5.&nbsp;<STRONG><SPAN>Save</SPAN></STRONG><SPAN> and <STRONG>publish</STRONG> the custom field to make it available in the system.</SPAN></P><P>&nbsp;</P><P><STRONG><SPAN>Assign the Custom Field to the “My Data Collections” App</SPAN></STRONG></P><P><SPAN>Custom fields which are created by using the “<STRONG>Custom Fields</STRONG>” Fiori app can be assigned to the relevant Fiori applications based on the selected business context. Follow these steps to add the field:</SPAN></P><P><SPAN>1. Open the “<STRONG>My Data Collection</STRONG>” Fiori app &amp; click on any incident.</SPAN></P><P><SPAN>2. Click on your <STRONG>profile</STRONG> &amp; choose “<STRONG>Adapt UI</STRONG>”.</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="duynguyendeloitte_2-1768314427661.png" style="width: 945px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/360948i737E4F1263A5D003/image-size/large?v=v2&amp;px=999" role="button" title="duynguyendeloitte_2-1768314427661.png" alt="duynguyendeloitte_2-1768314427661.png" /></span></P><P>&nbsp;3.&nbsp;<SPAN>Once Adapt UI is activated, you can start customizing the page layout and add the recently created custom field to the relevant sections. To add the custom field to the section, right click and choose “Add: field”. </SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="duynguyendeloitte_3-1768314457728.png" style="width: 945px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/360949i239872A4DD3BEBA2/image-size/large?v=v2&amp;px=999" role="button" title="duynguyendeloitte_3-1768314457728.png" alt="duynguyendeloitte_3-1768314457728.png" /></span></P><P>4.&nbsp;<SPAN>Select the fields which you want to add in that Fiori App &amp; click OK.</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="duynguyendeloitte_4-1768314488279.png" style="width: 945px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/360950i87A96E931A3697DC/image-size/large?v=v2&amp;px=999" role="button" title="duynguyendeloitte_4-1768314488279.png" alt="duynguyendeloitte_4-1768314488279.png" /></span></P><P>&nbsp;5.&nbsp;Click the save button to save the changes.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="duynguyendeloitte_5-1768314518422.png" style="width: 945px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/360951i79D262695AAFD1D3/image-size/large?v=v2&amp;px=999" role="button" title="duynguyendeloitte_5-1768314518422.png" alt="duynguyendeloitte_5-1768314518422.png" /></span></P><P>&nbsp;6.&nbsp;The fields have now been added to the Fiori app.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="duynguyendeloitte_6-1768314565138.png" style="width: 945px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/360953i45ED786F5A9CD3BE/image-size/large?v=v2&amp;px=999" role="button" title="duynguyendeloitte_6-1768314565138.png" alt="duynguyendeloitte_6-1768314565138.png" /></span></P><P>&nbsp;</P><P class="lia-align-justify" style="text-align : justify;"><STRONG><SPAN>Implement a BAdI to make the Custom Field Mandatory</SPAN></STRONG></P><P class="lia-align-justify" style="text-align : justify;"><SPAN>In this step we will make the custom fields, which were created &amp; assigned to the Fiori app, mandatory. This is achieved by using the “<STRONG>Custom Logic</STRONG>” app in SAP S/4HANA Public Cloud, where you can leverage the available <STRONG>Business Add-Ins (BAdIs) </STRONG>provided by the system.</SPAN></P><UL class="lia-align-justify" style="text-align : justify;"><LI><STRONG><SPAN>BADI_EHENV_MYDATA_AMT_FLD_CTRL</SPAN></STRONG></LI></UL><P class="lia-align-justify" style="text-align : justify;">1.&nbsp;<SPAN>Click “<STRONG>Create</STRONG>” to start a new implementation.</SPAN></P><P class="lia-align-justify" style="text-align : justify;">2. <STRONG><SPAN>Select</SPAN></STRONG><SPAN> the BAdI mentioned above and proceed to “<STRONG>Step 2</STRONG>” (if no filters are needed jump over to <STRONG>step 3</STRONG> and enter an <STRONG>Implementation Description</STRONG>).</SPAN></P><P class="lia-align-justify" style="text-align : justify;">3. <STRONG><SPAN>Create</SPAN></STRONG><SPAN> and <STRONG>publish</STRONG> the Implementation.</SPAN></P><P class="lia-align-justify" style="text-align : justify;">4.<STRONG><SPAN> Navigate</SPAN></STRONG><SPAN> to the created Implementation.</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="duynguyendeloitte_7-1768314641159.png" style="width: 945px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/360954i3F3046CD96DCB319/image-size/large?v=v2&amp;px=999" role="button" title="duynguyendeloitte_7-1768314641159.png" alt="duynguyendeloitte_7-1768314641159.png" /></span></P><P>&nbsp;5.&nbsp;<SPAN>Select “<STRONG>Code Editor</STRONG>” and write <STRONG>ABAP logic</STRONG> using <STRONG>released APIs</STRONG> and <STRONG>CDS views</STRONG>.</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="duynguyendeloitte_8-1768314669866.png" style="width: 945px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/360955i7644DEAB6EF4DDD4/image-size/large?v=v2&amp;px=999" role="button" title="duynguyendeloitte_8-1768314669866.png" alt="duynguyendeloitte_8-1768314669866.png" /></span></P><P>&nbsp;6.&nbsp;<SPAN>Click <STRONG>Sample Code</STRONG> &amp; make necessary changes as show below to make the custom field mandatory.</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="duynguyendeloitte_9-1768314699439.png" style="width: 945px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/360956iF412BF1B26D01FB0/image-size/large?v=v2&amp;px=999" role="button" title="duynguyendeloitte_9-1768314699439.png" alt="duynguyendeloitte_9-1768314699439.png" /></span></P><P>7.&nbsp;<SPAN>Click <STRONG>Publish</STRONG> to implement the changes.</SPAN></P><P><SPAN>8.&nbsp;</SPAN><SPAN>The fields are now mandatory in the <STRONG>“My Data Collection”</STRONG> Fiori app.</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="duynguyendeloitte_10-1768314740550.png" style="width: 945px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/360957i01121A83AB9F6B30/image-size/large?v=v2&amp;px=999" role="button" title="duynguyendeloitte_10-1768314740550.png" alt="duynguyendeloitte_10-1768314740550.png" /></span></P><P>&nbsp;</P><H1 id="toc-hId--1551503560">4. Summary &amp; Lessons Learned</H1><P class="lia-align-justify" style="text-align : justify;"><SPAN>Extensibility plays a critical role in SAP S/4HANA Public Cloud implementations for Environment, Health, and Safety (EHS). As demonstrated throughout this blog post, even highly regulated processes such as incident reporting or country-specific compliance documentation can be effectively supported using SAP’s clean-core extensibility framework.</SPAN></P><P class="lia-align-justify" style="text-align : justify;"><SPAN>Drawing from our project experience and the three practical use cases presented, this chapter summarizes the key takeaways and highlights the most important lessons learned when implementing extensibility in EHS Public Cloud.</SPAN></P><H2 id="toc-hId--2041420072">4.1 Key Takeaways</H2><P><STRONG><SPAN>Clean-Core Extensibility Is Not a Limitation – It is a Design Principle</SPAN></STRONG></P><P><SPAN>The SAP Public Cloud model enforces strict boundaries around what can be extended. Rather than restricting customers, these boundaries ensure: </SPAN></P><UL><LI><SPAN>Long-term upgrade protection</SPAN></LI><LI><SPAN>Predictable lifecycle behavior</SPAN></LI><LI><SPAN>Lower maintenance effort</SPAN></LI><LI><SPAN>Full SAP supportability</SPAN></LI></UL><P><SPAN>All enhancements must therefore rely on SAP-released extension points.</SPAN></P><P><STRONG><SPAN>Most EHS Requirements Can Be Solved with Key User Extensibility</SPAN></STRONG></P><P><SPAN>A major insight from our implementations is that the majority of EHS use cases do not require developer extensibility or side-by-side applications.</SPAN></P><P><SPAN>Key User tools already cover:</SPAN></P><UL><LI><SPAN>Custom data fields</SPAN></LI><LI><SPAN>UI adaptations</SPAN></LI><LI><SPAN>PDF report adjustments</SPAN></LI><LI><SPAN>BAdI logic</SPAN></LI></UL><P><SPAN>Both examples in this blog were fully implemented using Key User Extensibility only.</SPAN></P><P><STRONG><SPAN>BAdIs Are the Backbone of EHS Extensibility</SPAN></STRONG></P><P><SPAN>SAP delivers a growing catalogue of EHS specific BAdIs in the Public Cloud, particularly for:</SPAN></P><UL><LI><SPAN>Incident Management</SPAN></LI><LI><SPAN>Emissions Management</SPAN></LI></UL><P><SPAN>Key lessons:</SPAN></P><UL><LI><SPAN>Each BAdI is designed for a very specific business context.</SPAN></LI><LI><SPAN>You often need to use several BAdIs together to populate a report for a form.</SPAN></LI><LI><SPAN>They enable retrieving structured data via released CDS Views and APIs.</SPAN></LI><LI><SPAN>Clean and modular implementations significantly improve maintainability.</SPAN></LI></UL><P><STRONG><SPAN>Custom Forms Require a Structured Approach</SPAN></STRONG></P><P><SPAN>Regulatory reports require a combination of:</SPAN></P><UL><LI><SPAN>A form template (Adobe)</SPAN></LI><LI><SPAN>Custom fields</SPAN></LI><LI><SPAN>BAdI logic</SPAN></LI><LI><SPAN>CBC configuration</SPAN></LI></UL><P><SPAN>The lesson: Form extensibility is not only a technical activity – it is a cross-functional exercise involving business, logic, and configuration layers.</SPAN></P><P><STRONG><SPAN>Configuration in SAP Central Business Configuration (CBC) / Implementation Activities is Essential</SPAN></STRONG></P><P><SPAN>EHS reporting relies heavily on CBC / Implementation Activities, especially when assigning:</SPAN></P><UL><LI><SPAN>Forms &gt;</SPAN><SPAN>&nbsp;form groups</SPAN></LI><LI><SPAN>Form groups &gt;</SPAN><SPAN>&nbsp;regulations</SPAN></LI><LI><SPAN>Regulations &gt;</SPAN><SPAN>&nbsp;incident categories</SPAN></LI></UL><P><SPAN>A common project challenge: Without correct CBC (or Implementation Activities) configuration, even perfectly implemented forms and BAdIs will not appear in the UI.</SPAN></P><P><STRONG><SPAN>End-to-End Testing Is Crucial</SPAN></STRONG></P><P><SPAN>Because EHS extensions span UI, logic, reporting and configuration layers, testing must always validate the entire lifecycle:</SPAN></P><UL><LI><SPAN>Incident creation &gt;</SPAN><SPAN>&nbsp;processing &gt;</SPAN><SPAN>&nbsp;regulation selection &gt;</SPAN><SPAN>&nbsp;report generation</SPAN></LI></UL><P><SPAN>This avoids fragmented testing and ensures that all extension layers work together seamlessly.</SPAN></P><H2 id="toc-hId-2057033719">4.2 Lessons Learned</H2><P><STRONG><SPAN>Start With the Simplest Possible Extension Option</SPAN></STRONG></P><P><SPAN>Always begin with Key User tools before considering Developer Extensibility or SAP BTP. Public Cloud projects succeed when complexity is added only where absolutely necessary.</SPAN></P><P><STRONG><SPAN>Choose BAdIs Wisely – Don’t Over-Engineer</SPAN></STRONG></P><P><SPAN>Each BAdI serves a narrow purpose. Trying to force a single BAdI to solve multiple needs often causes issues later. Modular, purpose-aligned implementations are easier to maintain and debug.</SPAN></P><P><STRONG><SPAN>Document Custom Logic and Configuration Thoroughly</SPAN></STRONG></P><P><SPAN>Because Public Cloud enforces strict structure, even small enhancements should be:</SPAN></P><UL><LI><SPAN>Named consistently (YY1_*)</SPAN></LI><LI><SPAN>Documented cleanly (purpose, input, output)</SPAN></LI><LI><SPAN>Readable for team members who join the project later.</SPAN></LI></UL><P><SPAN>Well-documented extensions also reduce future rework during audits or regulatory updates.</SPAN></P><P><STRONG><SPAN>Maintain a Strong Governance Around Extensibility</SPAN></STRONG></P><P><SPAN>Typical governance measures include:</SPAN></P><UL><LI><SPAN>Reviewing whether a need truly requires an extension</SPAN></LI><LI><SPAN>Maintaining a central register of custom fields and BAdIs</SPAN></LI><LI><SPAN>Ensuring no duplicate fields are created</SPAN></LI><LI><SPAN>Enforcing naming conventions</SPAN></LI></UL><P><SPAN>This prevents uncontrolled growth of extensions over time.</SPAN></P><P><STRONG><SPAN>Engage Business Users Early in the Design Process</SPAN></STRONG></P><P><SPAN>EHS professionals often know exactly how regulations should be represented. Early involvement helps:</SPAN></P><UL><LI><SPAN>Avoid unnecessary extensions</SPAN></LI><LI><SPAN>Validate report layouts</SPAN></LI><LI><SPAN>Confirm the accuracy of populated data</SPAN></LI><LI><SPAN>Ensure usability in real operational scenarios</SPAN></LI></UL><P><STRONG><SPAN>Plan for Future Regulatory Requirements</SPAN></STRONG></P><P><SPAN>EHS compliance evolves frequently. When building extensions, always think ahead:</SPAN></P><UL><LI><SPAN>Could this field or form be reused for another regulation?</SPAN></LI><LI><SPAN>Can we structure the logic to accommodate more categories in the future?</SPAN></LI><LI><SPAN>Are we using modular BAdI implementations that can scale?</SPAN></LI></UL><P><SPAN>This significantly reduces technical dept.</SPAN></P><H2 id="toc-hId-1860520214"><SPAN>4.3 Best Practices</SPAN></H2><P><SPAN>To close this chapter, here is a consolidated best-practice checklist:</SPAN></P><UL><LI><SPAN>Use SAP-released extension points only (clean core).</SPAN></LI><LI><SPAN>Prefer Key User Extensibility for EHS whenever possible.</SPAN></LI><LI><SPAN>Keep BAdI implementations modular and business-context specific.</SPAN></LI><LI><SPAN>Use functional naming conventions for fields, forms, and BAdIs.</SPAN></LI><LI><SPAN>Perform end-to-end lifecycle testing (UI &gt;</SPAN><SPAN>&nbsp;logic &gt;</SPAN><SPAN>&nbsp;form &gt;</SPAN><SPAN>&nbsp;CBC).</SPAN></LI><LI><SPAN>Document every extension early, including purpose and data sources.</SPAN></LI><LI><SPAN>Reuse released CDS Views and APIs – never rely on unreleased objects.</SPAN></LI><LI><SPAN>Involve business users early to ensure regulatory accuracy.</SPAN></LI><LI><SPAN>Build form templates in a future-proof, scalable structure.</SPAN></LI><LI><SPAN>Maintain strong governance to avoid unnecessary or duplicate extensions.</SPAN></LI></UL><H2 id="toc-hId-1664006709">4.4 Final Remark</H2><P class="lia-align-justify" style="text-align : justify;"><SPAN>Extensibility in SAP S/4HANA Public Cloud is not about pushing technical boundaries. It is about using the right tools to deliver business value while protecting system integrity. With a structured approach, as illustrated in both examples, customers can achieve regulatory compliance, process optimization, and system flexibility without compromising the clean-core principles that define the Public Cloud.</SPAN></P><P>&nbsp;</P><H1 id="toc-hId-1760896211">5. Engage with Us</H1><P><SPAN>To follow the series, make sure to subscribe to the&nbsp;<A href="https://community.sap.com/t5/tag/SAP%20EHS%20Public%20Cloud/tg-p/board-id/scm-blog-members" target="_self"><STRONG>SAP EHS Public Cloud</STRONG></A>&nbsp;</SPAN><SPAN>blog tag.</SPAN></P><P><SPAN>We welcome your thoughts and feedback in the comments!</SPAN></P><P><STRONG>Acknowledgements</STRONG></P><P>This blog post series is the result of close collaboration within our EHS implementation team. I would like to express my sincere appreciation to my colleagues, whose expertise, insights, and project experience significantly contributed to the depth and quality of this guide.<BR /><BR />A special thank you goes to:</P><UL><LI><a href="https://community.sap.com/t5/user/viewprofilepage/user-id/149209">@Westphal</a>&nbsp;</LI><LI><a href="https://community.sap.com/t5/user/viewprofilepage/user-id/1837358">@qkroiss</a>&nbsp;</LI><LI><a href="https://community.sap.com/t5/user/viewprofilepage/user-id/651788">@asutoshmaharana2326</a>&nbsp;</LI><LI><a href="https://community.sap.com/t5/user/viewprofilepage/user-id/2265421">@kanwal_singh</a></LI><LI><a href="https://community.sap.com/t5/user/viewprofilepage/user-id/1801652">@Suraj_Ashray1</a>&nbsp;</LI></UL><P>Their contributions were instrumental in shaping the content of this blog post. I am truly grateful for their collaborations and support.</P> 2025-12-08T08:01:00.504000+01:00 https://community.sap.com/t5/technology-blog-posts-by-members/how-to-write-table-function-in-stranded-way-like-sap/ba-p/14279530 How to write Table function in stranded way like SAP 2025-12-09T12:36:55.534000+01:00 Krithik https://community.sap.com/t5/user/viewprofilepage/user-id/1398143 <P>How to Write CDS Table Functions the Standard SAP Way</P><P>In SAP S/4HANA, we cannot always express complex business logic using pure CDS syntax. To manage scenarios like long text processing, procedural calculations, or important joins, SAP uses CDS Table Functions implemented through AMDP.</P><P>While many developers create table functions on the fly, SAP sticks to a strict and consistent design pattern across its standard content. This approach ensures good performance, readability, upgrade safety, and transportability.</P><P>A useful way to grasp this standard is to look at how SAP builds transactional CDS views, especially those that use CDS Table Functions. By examining SAP-delivered objects like I_SalesOrderTP, we can clearly see the structure, naming conventions, annotations, and implementation method that SAP expects developers to follow.</P><P>This guide explains how SAP writes table functions, how they implement them using AMDP, and how they use them in CDS views. This will help you design your own extensions in the same way SAP does.</P><OL><LI><STRONG>Start with a Standard View: I_SALESORDERTP</STRONG>.</LI></OL><UL><LI>SAP provides many standard CDS views in S/4HANA.</LI><LI>To understand how SAP writes table functions, the easiest example is the view: I_SALESORDERTP</LI><LI>This is a Transactional Processing View, delivered by SAP.</LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="2025-11-27_19h51_30.png" style="width: 795px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/346206i2E91480425C8A436/image-dimensions/795x410?v=v2" width="795" height="410" role="button" title="2025-11-27_19h51_30.png" alt="2025-11-27_19h51_30.png" /></span></P><P>&nbsp; &nbsp;2.&nbsp;<STRONG>Locate the Table Function Used Inside the View.</STRONG></P><UL><LI>Inside the view, you will notice SAP has used: <STRONG>with parameters (...).</STRONG></LI></UL><P><STRONG><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="2025-11-27_19h53_17.png" style="width: 808px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/346207i528B8200465E6E01/image-dimensions/808x418?v=v2" width="808" height="418" role="button" title="2025-11-27_19h53_17.png" alt="2025-11-27_19h53_17.png" /></span></STRONG></P><UL><LI>This indicates that the view is consuming <STRONG>a CDS Table Function</STRONG>.</LI></UL><P><STRONG>&nbsp; &nbsp; &nbsp; &nbsp; 3. You will find the CDS Table Function that SAP has written.</STRONG></P><P><STRONG><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="2025-11-27_19h53_23.png" style="width: 822px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/346208iA28B1A25D2DA4845/image-dimensions/822x425?v=v2" width="822" height="425" role="button" title="2025-11-27_19h53_23.png" alt="2025-11-27_19h53_23.png" /></span></STRONG></P><P><STRONG>&nbsp; &nbsp; 4.&nbsp; Open the AMDP Class to See SAP’s Logic.</STRONG></P><UL><LI>Once you find the Table Function name, open the AMDP class: <STRONG>cl_sd_S4h_stxl_utils=&gt;get_header_text</STRONG></LI><LI>Inside this class, SAP has written the entire logic.</LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="2025-11-27_19h53_43.png" style="width: 530px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/346209iFF5F548747352D63/image-dimensions/530x479?v=v2" width="530" height="479" role="button" title="2025-11-27_19h53_43.png" alt="2025-11-27_19h53_43.png" /></span></P><P>When crafting Table Functions ", in the manner SAP does " consistently adhere to this structure:</P><P>Create a CDS Table Function with parameters.</P><P>Implement it via an AMDP class/method using native SQLScript.</P><P>Consume it in your final CDS view using with parameters.</P><P>Follow the exact naming, annotation, and structure shown in standard objects such as I_SalesOrderTP, I_PurchaseOrderTP, I_BillingDocumentTP, etc.</P><P>Following this pattern guarantees:</P><P>Best performance (native HANA execution)</P><P>Transportability and upgrade-safety</P><P>Consistency with thousands of standard SAP-delivered objects<BR /><BR /></P><P>Conclusion</P><P>It is a tried-and-true architectural best practice to use SAP's standard pattern for CDS Table Functions. You can align your custom developments with the same design principles used in core SAP objects like *I_SalesOrderTP*, *I_PurchaseOrderTP*, and *I_BillingDocumentTP* by defining a CDS Table Function with parameters, implementing its logic in an AMDP method using native SQLScript, and consuming it through a final CDS view.</P><P><BR />This method guarantees that sophisticated logic runs directly on SAP HANA for maximum efficiency, stays neatly isolated from the consumption layer, and is resilient to upgrades and transports. More significantly, because it adheres to a well-known and extensively used standard, it makes your solution instantly comprehensible to other SAP developers.</P><P>&nbsp;</P><P>&nbsp;</P> 2025-12-09T12:36:55.534000+01:00 https://community.sap.com/t5/supply-chain-management-blog-posts-by-members/sap-ehs-public-cloud-extending-your-existing-landscape-side-by-side/ba-p/14286127 SAP EHS Public Cloud: Extending Your Existing Landscape Side-by-Side - Guidebook (Part 6) 2025-12-10T10:36:35.961000+01:00 duynguyendeloitte https://community.sap.com/t5/user/viewprofilepage/user-id/2005019 <P><FONT size="6"><STRONG>Integrating SAP EHS Public Cloud: Extending Your Existing Landscape Side-by-Side - Guidebook</STRONG></FONT></P><P><FONT size="5"><STRONG>Part 6: Summary &amp; Outlook</STRONG></FONT></P><P><FONT size="5">Table of Contents:</FONT></P><P><ul =""><li style="list-style-type:none; margin-left:0px; margin-bottom:1px;"><a href="https://community.sap.com/t5/supply-chain-management-blog-posts-by-members/sap-ehs-public-cloud-extending-your-existing-landscape-side-by-side/ba-p/14286127#toc-hId-1637469674">1. Summary</a></li><li style="list-style-type:none; margin-left:0px; margin-bottom:1px;"><a href="https://community.sap.com/t5/supply-chain-management-blog-posts-by-members/sap-ehs-public-cloud-extending-your-existing-landscape-side-by-side/ba-p/14286127#toc-hId-1440956169">2. Benefits &amp; Pitfalls</a></li><li style="list-style-type:none; margin-left:15px; margin-bottom:1px;"><a href="https://community.sap.com/t5/supply-chain-management-blog-posts-by-members/sap-ehs-public-cloud-extending-your-existing-landscape-side-by-side/ba-p/14286127#toc-hId-1373525383">2.1 Benefits</a></li><li style="list-style-type:none; margin-left:15px; margin-bottom:1px;"><a href="https://community.sap.com/t5/supply-chain-management-blog-posts-by-members/sap-ehs-public-cloud-extending-your-existing-landscape-side-by-side/ba-p/14286127#toc-hId-1177011878">2.2 Pitfalls</a></li><li style="list-style-type:none; margin-left:15px; margin-bottom:1px;"><a href="https://community.sap.com/t5/supply-chain-management-blog-posts-by-members/sap-ehs-public-cloud-extending-your-existing-landscape-side-by-side/ba-p/14286127#toc-hId-980498373">2.3 Summary of Benefits &amp; Pitfalls</a></li><li style="list-style-type:none; margin-left:0px; margin-bottom:1px;"><a href="https://community.sap.com/t5/supply-chain-management-blog-posts-by-members/sap-ehs-public-cloud-extending-your-existing-landscape-side-by-side/ba-p/14286127#toc-hId-654902149">3. Outlook</a></li><li style="list-style-type:none; margin-left:0px; margin-bottom:1px;"><a href="https://community.sap.com/t5/supply-chain-management-blog-posts-by-members/sap-ehs-public-cloud-extending-your-existing-landscape-side-by-side/ba-p/14286127#toc-hId-458388644">4. Engage with Us</a></li></ul></P><P><FONT size="5">Related Content:</FONT></P><P class="lia-align-justify" style="text-align : justify;"><SPAN>Below is an overview of the planned blog series – each post focusing on a specific integration topic. Once published, the titles will be linked for direct access:</SPAN></P><P class="lia-align-justify" style="text-align : justify;"><STRONG><SPAN>Integrating SAP EHS in the Public Cloud: Extending Your Existing Landscape Side-by-Side – Guidebook</SPAN></STRONG></P><TABLE border="1" width="100%"><TBODY><TR><TD width="74.63166219408276%" height="30px">Part 1: Introduction &amp; Overview</TD><TD width="25.36833780591722%" height="30px"><A href="https://community.sap.com/t5/supply-chain-management-blog-posts-by-members/sap-ehs-public-cloud-extending-your-existing-landscape-side-by-side-a/ba-p/14264551" target="_self">Link</A></TD></TR><TR><TD width="74.63166219408276%" height="30px">Part 2: Integration of Employees from SAP SuccessFactors</TD><TD width="25.36833780591722%" height="30px"><A href="https://community.sap.com/t5/supply-chain-management-blog-posts-by-members/sap-ehs-public-cloud-extending-your-existing-landscape-side-by-side-a/ba-p/14266901" target="_self">Link</A></TD></TR><TR><TD width="74.63166219408276%" height="57px">Part 3: Integration of Business Partners &amp; Material from SAP Master Data Governance (MDG)</TD><TD width="25.36833780591722%" height="57px"><A href="https://community.sap.com/t5/supply-chain-management-blog-posts-by-members/sap-ehs-public-cloud-extending-your-existing-landscape-side-by-side-a/ba-p/14271704" target="_self">Link</A></TD></TR><TR><TD width="74.63166219408276%" height="57px">Part 4: Integration of Functional Locations &amp; Equipment from SAP S/4HANA On-Premise System</TD><TD width="25.36833780591722%" height="57px"><A href="https://community.sap.com/t5/supply-chain-management-blog-posts-by-members/sap-ehs-public-cloud-extending-your-existing-landscape-side-by-side/ba-p/14275195" target="_self">Link</A></TD></TR><TR><TD width="74.63166219408276%" height="29px">Part 5: Extensibility Scenarios &amp; Further Implementation</TD><TD width="25.36833780591722%" height="29px"><A href="https://community.sap.com/t5/supply-chain-management-blog-posts-by-members/sap-ehs-public-cloud-extending-your-existing-landscape-side-by-side/ba-p/14282722" target="_self">Link</A></TD></TR><TR><TD width="74.63166219408276%" height="30px">Part 6: Summary &amp; Outlook</TD><TD width="25.36833780591722%" height="30px"><A href="https://community.sap.com/t5/supply-chain-management-blog-posts-by-members/sap-ehs-public-cloud-extending-your-existing-landscape-side-by-side/ba-p/14286127" target="_self">Link</A></TD></TR></TBODY></TABLE><P>&nbsp;</P><H1 id="toc-hId-1637469674">1. Summary</H1><P class="lia-align-justify" style="text-align : justify;">&nbsp;</P><P class="lia-align-justify" style="text-align : justify;">In this blog series, we shared our hands-on experience from multiple SAP EHS Public Cloud projects that were implemented in a hybrid, side-by-side landscape. Across Parts 1 to 5, we covered the integration of Employees, Business Partners, Materials, Functional Locations, and Equipment, as well as practical extensibility scenarios from real customer use cases.</P><P class="lia-align-justify" style="text-align : justify;">What became very clear throughout these projects is that SAP EHS Public Cloud works best when three things come together:</P><UL class="lia-align-justify" style="text-align : justify;"><LI>Consistent master data,</LI><LI>Standardized integration content,</LI><LI>And a disciplined clean-core extensibility strategy.</LI></UL><P class="lia-align-justify" style="text-align : justify;">In practice, we saw that missing or inconsistent master data was the most common root cause for broken end-to-end EHS processes (far more critical than any technical limitation). Once HR data, business partners, materials and assets were properly aligned across systems, incident reporting, emissions calculations, and follow-up processes became significantly more stable and transparent.</P><P class="lia-align-justify" style="text-align : justify;">Another key learning was that standard communication scenarios and scope items save a tremendous amount of time and risk. Whenever we were able to rely on delivered content instead of custom interfaces, implementation effort, testing effort, and long-term maintenance were reduced noticeably.</P><P class="lia-align-justify" style="text-align : justify;">Finally, extensibility played an important role in every single project. While most requirements could be solved using in-app Key User Extensibility, it was essential to define clear governance early on to avoid country-specific deviations and long-term technical debt.</P><P class="lia-align-justify" style="text-align : justify;">This final part summarizes the key benefits and pitfalls we repeatedly encountered and shares our outlook on how SAP EHS in the Public Cloud will continue to evolve based on what we see today in real projects.</P><P class="lia-align-justify" style="text-align : justify;">&nbsp;</P><H1 id="toc-hId-1440956169">2. Benefits &amp; Pitfalls</H1><P class="lia-align-justify" style="text-align : justify;">Integrating SAP EHS as part of a hybrid SAP S/4HANA Public Cloud landscape delivers strong business value but it also introduces architectural and organizational challenges that need to be managed carefully. In this chapter, we summarize the most important benefits and pitfalls we encountered across different customer projects.</P><H2 id="toc-hId-1373525383">2.1 Benefits</H2><P class="lia-align-justify" style="text-align : justify;"><STRONG>Fast Access to Innovation through Public Cloud Releases &amp; AI</STRONG></P><P class="lia-align-justify" style="text-align : justify;">One of the strongest benefits we experienced in our projects was the direct access to new EHS functionality without classical upgrade projects. Unlike on-premise systems with long release cycles, customers benefit immediately from:</P><UL class="lia-align-justify" style="text-align : justify;"><LI>Regular Public Cloud releases and micro deliveries</LI><LI>Fast availability of new EHS features and regulatory content</LI><LI>Immediate access to SAP’s latest AI-driven innovations in EHS scenarios</LI></UL><P class="lia-align-justify" style="text-align : justify;">This had a noticeable impact on time-to-value. Instead of waiting months for technical upgrades, functional improvements became available continuously. For several customers, this was also the first time AI-supported features in the EHS context could be evaluated productively.</P><P class="lia-align-justify" style="text-align : justify;"><STRONG>Data Consistency and Compliance</STRONG></P><P class="lia-align-justify" style="text-align : justify;">A unified master data landscape turned out to be one of the biggest success factors across all projects. By integrating:</P><UL class="lia-align-justify" style="text-align : justify;"><LI>Employee data from SAP SuccessFactors</LI><LI>Business Partners &amp; Materials from SAP MDG</LI><LI>Functional Locations and Equipment from SAP S/4HANA On-Premise</LI></UL><P class="lia-align-justify" style="text-align : justify;">We ensured that EHS processes consistently relied on harmonized and validated master data. In practice, this was essential for:</P><UL class="lia-align-justify" style="text-align : justify;"><LI>Accurate incident reporting,</LI><LI>Reliable emissions calculations,</LI><LI>Correct assignment of responsibilities and workflows,</LI><LI>Audit-proof regulatory documentation.</LI></UL><P class="lia-align-justify" style="text-align : justify;">Where master data was incomplete or inconsistent, downstream EHS processes were immediately affected.</P><P class="lia-align-justify" style="text-align : justify;"><STRONG>Hybrid Architecture without Disruption</STRONG></P><P class="lia-align-justify" style="text-align : justify;">The side-by-side approach allowed customers to adopt EHS innovations in the Public Cloud without shutting down their existing on-premise environments. This enabled:</P><UL class="lia-align-justify" style="text-align : justify;"><LI>Gradual modernization instead of big-bang migrations,</LI><LI>Reduced transformation risk,</LI><LI>Protection of critical operational processes.</LI></UL><P class="lia-align-justify" style="text-align : justify;">From a project perspective, this phased approach proved to be far more controllable than technical full-system replacements.</P><P class="lia-align-justify" style="text-align : justify;"><STRONG>Standardized Interfaces and Scope Items</STRONG></P><P class="lia-align-justify" style="text-align : justify;">Whenever we could rely on standard SAP communication scenarios and scope items, the implantation became significantly faster and more stable. Examples include:</P><UL class="lia-align-justify" style="text-align : justify;"><LI>SAP_COM_0001, 0008, 0009, 0395</LI><LI>EHS scope items such as 3FP (Incident Management), 4XD (Emissions Management), and 54A (Health &amp; Safety Management)</LI></UL><P class="lia-align-justify" style="text-align : justify;">These accelerators reduced custom development effort, simplified testing, and aligned customer landscapes with SAP best practices.</P><P class="lia-align-justify" style="text-align : justify;"><STRONG>Scalability and Future Readiness</STRONG></P><P class="lia-align-justify" style="text-align : justify;">The event-driven and API-first architecture of the Public Cloud supported scalable growth across all projects. Typical examples were:</P><UL class="lia-align-justify" style="text-align : justify;"><LI>Near real-time updated via SAP Integration Suite and Event Mesh,</LI><LI>Flexible replication cycles for HR and MDG data,</LI><LI>Cloud-native extensibility for future EHS enhancements.</LI></UL><P class="lia-align-justify" style="text-align : justify;">This ensured that the technical foundation remained adaptable as regulatory and sustainability requirements continued to evolve.</P><P class="lia-align-justify" style="text-align : justify;"><STRONG>Extensibility for Business and Regulatory Needs</STRONG></P><P class="lia-align-justify" style="text-align : justify;">Across all customers, extensibility was required mainly for country-specific regulations, additional validations, or customer-specific reporting. In most cases, these requirements could be fulfilled using Key User (In-App) Extensibility, without breaking the clean core. This allowed customers to remain upgrade-stable while still meeting local compliance needs.</P><H2 id="toc-hId-1177011878">2.2 Pitfalls</H2><P class="lia-align-justify" style="text-align : justify;">Despite the strong benefits, several recurring challenges also appeared in almost every project.</P><P class="lia-align-justify" style="text-align : justify;"><STRONG>System Landscape Complexity</STRONG></P><P class="lia-align-justify" style="text-align : justify;">Hybrid landscapes naturally involve multiple systems: SAP S/4HANA Public Cloud, SAP S/4HANA On-Premise, SAP MDG, SAP SuccessFactors, and SAP BTP / Integration Suite. Without clear integration ownership, defined interface responsibilities, and coordinated technical design, landscapes quickly became difficult to operate and monitor.</P><P class="lia-align-justify" style="text-align : justify;"><STRONG>Dependency on Master Data Quality</STRONG></P><P class="lia-align-justify" style="text-align : justify;">EHS processes are extremely sensitive to master data issues. We repeatedly saw how missing materials, outdated organizational requirements, or incorrect functional locations immediately blocked emissions calculations, risk assessments, and incident follow-ups. High master data quality is mandatory.</P><P class="lia-align-justify" style="text-align : justify;"><STRONG>Custom Development Where Standard Content Is Missing</STRONG></P><P class="lia-align-justify" style="text-align : justify;">For some integration scenarios, especially Plant Maintenance integration for Functional Location and Equipment, custom iFlows were still required. This introduced additional development effort, higher testing effort, and long-term maintenance overhead.</P><P class="lia-align-justify" style="text-align : justify;"><STRONG>Monitoring Challenges</STRONG></P><P class="lia-align-justify" style="text-align : justify;">End-to-end monitoring must cover:</P><UL class="lia-align-justify" style="text-align : justify;"><LI>SAP S/4HANA Public Cloud application logs</LI><LI>SAP S/4HANA On-Premise applications logs</LI><LI>SAP Master Data Governance application logs</LI><LI>SAP SuccessFactors message monitoring</LI><LI>SAP Integration Suite / iFlow monitoring</LI></UL><P class="lia-align-justify" style="text-align : justify;">In several projects, missing monitoring initially led to delayed error detection and avoidable compliance risks.</P><P class="lia-align-justify" style="text-align : justify;"><STRONG>Value Mapping and Harmonization</STRONG></P><P class="lia-align-justify" style="text-align : justify;">Incorrect or inconsistent value mappings between systems repeatedly caused replication failures. Early harmonization of organizational units, material types, equipment categories proved to be critical.</P><P class="lia-align-justify" style="text-align : justify;"><STRONG>Validation of Services and Scope Items</STRONG></P><P class="lia-align-justify" style="text-align : justify;">Missing API activations or scope item assignments (e.g., API_EQUIPMENT or API_FUNCTIONALLOCATION) frequently caused delays late in the project. Early validation of all required services became a key project success factor.</P><P class="lia-align-justify" style="text-align : justify;"><STRONG>Governance and Limitations of Extensibility</STRONG></P><P class="lia-align-justify" style="text-align : justify;">Extensibility offers flexibility but without governance it quickly leads to:</P><UL class="lia-align-justify" style="text-align : justify;"><LI>Diverging country solutions,</LI><LI>Misaligned business logic</LI><LI>And long-term technical debt.</LI></UL><P class="lia-align-justify" style="text-align : justify;">Additionally, Developer Extensibility is still limited to released APIs and BAdIs, which means that not every requirement can be solved purely with custom logic.</P><H2 id="toc-hId-980498373">2.3 Summary of Benefits &amp; Pitfalls</H2><P class="lia-align-justify" style="text-align : justify;">A successful EHS Public Cloud implementation balances the strengths of standardized integration content and clean-core extensibility with disciplined data governance and architectural planning. Organizations that manage this balance effectively can unlock the full potential of SAP EHS – enabling safe, compliant, and scalable EHS operations across the enterprise.</P><P class="lia-align-justify" style="text-align : justify;">&nbsp;</P><H1 id="toc-hId-654902149">3. Outlook</H1><P class="lia-align-justify" style="text-align : justify;">Based on what we observe across current customer projects and SAP’s latest roadmap updates, SAP EHS in the Public Cloud is clearly evolving from a standalone compliance solution toward a central digital backbone for safety, risk, and environmental governance.</P><P class="lia-align-justify" style="text-align : justify;">Many customers are already productive with core EHS scenarios today. At the same time, the functional scope continues to expand with each Public Cloud release. We see a strong move toward more standardized business content, broader regulatory coverage, and deeper support for environmental and sustainability-driven processes. As a result, future implementations will increasingly rely on configuration rather than custom development which significantly reduces implementation and upgrade effort.</P><P class="lia-align-justify" style="text-align : justify;">Extensibility will nevertheless remain a key success factor. From our project experience, SAP is steadily increasing both the number and the quality of released APIs and cloud-compliant BAdIs. This allows customers to address local regulatory requirements and&nbsp; compliant-specific validation logic in a clean-core compatible way. Especially Key User Extensibility is becoming more powerful, enabling business-driven adjustments without technical development.</P><P class="lia-align-justify" style="text-align : justify;">In parallel, SAP BTP is gaining further importance for advanced EHS use cases. While this blog series focused on On-Stack Extensibility, we already see growing demand for advanced analytics and dashboards, cross-system workflow automation, and IoT-based hazard detection and emissions monitoring. These scenarios clearly go beyond standard transactional processing and position SAP BTP as a natural complement to SAP EHS in complex enterprise landscapes.</P><P class="lia-align-justify" style="text-align : justify;">Another major trend we observe is the increasing convergence of EHS and sustainability. Environmental compliance, emissions management, and sustainability reporting are becoming tightly connected. From a solution perspective, this strengthens the integration between SAP EHS, SAP Sustainability Footprint Management, and SAP Sustainability Control Tower. Customers will benefit from more consistent emissions data, integrated compliance reporting, and harmonized master data across production, procurement, and asset management.</P><P class="lia-align-justify" style="text-align : justify;">For customers, these developments reinforce one central message from our project work: Early architectural discipline pays off. Organizations that invest early in clean-core principles, standardized integration content, high master data quality, and clear extensibility governance are best positioned to benefit from future SAP innovations.</P><P class="lia-align-justify" style="text-align : justify;">&nbsp;</P><H1 id="toc-hId-458388644">4. Engage with Us</H1><P><SPAN>To follow the series, make sure to subscribe to the&nbsp;<A href="https://community.sap.com/t5/tag/SAP%20EHS%20Public%20Cloud/tg-p/board-id/scm-blog-members" target="_self"><STRONG>SAP EHS Public Cloud</STRONG></A>&nbsp;</SPAN><SPAN>blog tag.</SPAN></P><P><SPAN>We welcome your thoughts and feedback in the comments!</SPAN></P><P><STRONG>Acknowledgements</STRONG></P><P>This blog post series is the result of close collaboration within our EHS implementation team. I would like to express my sincere appreciation to my colleagues, whose expertise, insights, and project experience significantly contributed to the depth and quality of this guide.<BR /><BR />A special thank you goes to:</P><UL><LI><a href="https://community.sap.com/t5/user/viewprofilepage/user-id/149209">@Westphal</a>&nbsp;</LI><LI><a href="https://community.sap.com/t5/user/viewprofilepage/user-id/1837358">@qkroiss</a>&nbsp;</LI><LI><a href="https://community.sap.com/t5/user/viewprofilepage/user-id/651788">@asutoshmaharana2326</a>&nbsp;</LI><LI><a href="https://community.sap.com/t5/user/viewprofilepage/user-id/2265421">@kanwal_singh</a></LI><LI><a href="https://community.sap.com/t5/user/viewprofilepage/user-id/1801652">@Suraj_Ashray1</a>&nbsp;</LI></UL><P>Their contributions were instrumental in shaping the content of this blog post. I am truly grateful for their collaborations and support.</P> 2025-12-10T10:36:35.961000+01:00 https://community.sap.com/t5/enterprise-resource-planning-blog-posts-by-sap/cloud-badi-to-update-sales-document-business-data/ba-p/14297400 Cloud BAdI to Update Sales Document Business Data 2025-12-26T12:57:10.931000+01:00 zhaoyo https://community.sap.com/t5/user/viewprofilepage/user-id/131840 <H1 id="toc-hId-1629967357" id="toc-hId-1638425800">Cloud BAdIs to Update Sales Document Business Data</H1><P>As I explained in blog&nbsp;<A href="https://community.sap.com/t5/enterprise-resource-planning-blog-posts-by-sap/sales-document-badi-overview-in-sap-s-4hana-public-cloud/ba-p/14187206" target="_self">Sales Document BAdI Overview</A>, following Cloud BAdIs can be used to modify some business data (standard fields) of sales document:</P><UL><LI><SPAN class="">Modification of Business Data in Sales Document Headers - <A href="https://api.sap.com/badi/SD_SLS_MODIFY_HEAD_BUSINESS" target="_self" rel="noopener noreferrer">SD_SLS_MODIFY_HEAD_BUSINESS</A>&nbsp;</SPAN></LI><LI><SPAN class="">Modification of Business Data in Sales Document Items - <A href="https://api.sap.com/badi/SD_SLS_MODIFY_ITEM_BUSINESS" target="_self" rel="noopener noreferrer">SD_SLS_MODIFY_ITEM_BUSINESS</A></SPAN></LI></UL><P>If you are familiar with the sales document data model, you will see these Cloud BAdIs mainly cover the sales document business data which are defined in the database table VBKD.&nbsp;</P><P>Since the modification of business data BAdIs are kind of transactional BAdI, which are triggered multiple times during the sales document processing, the fields modification result could be checked at runtime if you are using UI to process sales documents.&nbsp;</P><P>Of cause not all business data fields defined in the database table VBKD are modifiable via BAdI. The changeable fields in these BAdIs are normally independent from other business processes.&nbsp;</P><H2 id="toc-hId-1562714269" id="toc-hId-1570995014">BAdI Parameters</H2><P>There are following typical parameters in BAdI SD_SLS_MODIFY_HEAD_BUSINESS:</P><TABLE border="1" width="100%"><TBODY><TR><TD width="25%" height="30px">Parameter Name</TD><TD width="25%" height="30px">Description</TD><TD width="13.900634249471459%" height="30px">Parameter Type</TD><TD width="36.09936575052854%" height="30px">Purpose</TD></TR><TR><TD width="25%" height="85px">SALESDOCUMENT</TD><TD width="25%" height="85px">Sales document header</TD><TD width="13.900634249471459%" height="85px">Importing</TD><TD width="36.09936575052854%" height="85px">Contains sales document header data (including custom fields) that customer can use to write custom logic</TD></TR><TR><TD height="85px">SALESDOCUMENTPARTNERS</TD><TD height="85px">Sales document header partners</TD><TD height="85px">Importing</TD><TD height="85px">Contains sales document header partner information</TD></TR><TR><TD width="25%" height="57px"><SPAN>SALESDOCUMENT_BUSINESSDATA</SPAN></TD><TD width="25%" height="57px">Sales document business data</TD><TD width="13.900634249471459%" height="57px">Changing</TD><TD width="36.09936575052854%" height="57px">Contains all changeable fields on sales document header level</TD></TR></TBODY></TABLE><P>There are following typical parameters in BAdI SD_SLS_MODIFY_ITEM_BUSINESS:</P><TABLE border="1" width="100%"><TBODY><TR><TD width="25%" height="30px">Parameter Name</TD><TD width="25%" height="30px">Description</TD><TD width="13.900634249471459%" height="30px">Parameter Type</TD><TD width="36.09936575052854%" height="30px">Purpose</TD></TR><TR><TD width="25%" height="85px">SALESDOCUMENT</TD><TD width="25%" height="85px">Sales document header</TD><TD width="13.900634249471459%" height="85px">Importing</TD><TD width="36.09936575052854%" height="85px">Contains sales document header data (including custom fields) that customer can use to write custom logic</TD></TR><TR><TD><SPAN>SALESDOCUMENTITEM</SPAN></TD><TD>Sales document item</TD><TD>Importing</TD><TD>Contains sales document item data (including custom fields) that customer can use to write custom logic</TD></TR><TR><TD height="85px">SALESDOCUMENTPARTNERS</TD><TD height="85px">Sales document header partners</TD><TD height="85px">Importing</TD><TD height="85px">Contains sales document header partner information</TD></TR><TR><TD><SPAN>SALESDOCUMENTITEMPARTNERS</SPAN><SPAN><BR /></SPAN></TD><TD><SPAN>Sales document item partners</SPAN></TD><TD>Importing</TD><TD>Contains sales document item partner information</TD></TR><TR><TD width="25%" height="57px"><SPAN>SALESDOCUMENTITEM_BUSINESSDATA</SPAN></TD><TD width="25%" height="57px">Sales document item business data</TD><TD width="13.900634249471459%" height="57px">Changing</TD><TD width="36.09936575052854%" height="57px">Contains all changeable fields on sales document item level</TD></TR></TBODY></TABLE><P>In the latest SAP S/4HANA Public Cloud version CE2602, following fields on sales document header level are modifiable in the BAdI&nbsp;SD_SLS_MODIFY_HEAD_BUSINESS:</P><UL><LI>Pricing Date</LI><LI>Customer Purchase Order&nbsp;</LI><LI>Customer Purchase Order Date</LI><LI>Incoterms Version</LI><LI>Incoterms</LI><LI>Incoterms Location 1</LI><LI>Incoterms Location 2</LI></UL><P>Following fields on sales document item level are modifiable in the BAdI SD_SLS_MODIFY_ITEM_BUSINESS:</P><UL><LI>Pricing Date</LI><LI>Customer Purchase Order&nbsp;</LI><LI>Customer Purchase Order Date</LI><LI>Incoterms Version</LI><LI>Incoterms</LI><LI>Incoterms Location 1</LI><LI>Incoterms Location 2</LI></UL><H2 id="toc-hId-1374481509">Business Example</H2><P>Due to fluctuation of raw material, the Supply company XYZ has special agreement with buyers to set the pricing date of sales orders based on different criteria. According to the business process of company XYZ, for different sales office, the pricing date offset is defined to make sure the pricing date is calculated with realistic time period. For example, when sales orders created from certain sales office, the pricing date is calculated 7 days after the requested delivery date. But there are exceptional case for some defined customer groups, the pricing date shall be calculated differently.&nbsp;</P><H2 id="toc-hId-1177968004">Solution via Extensibility and Process Flexibility</H2><H3 id="toc-hId-1110537218">Business Rules to Proposal Pricing Date</H3><P>According to the standard feature "Flexible Proposal of Pricing Dates" (see detail in <A href="https://help.sap.com/docs/SAP_S4HANA_CLOUD/a376cd9ea00d476b96f18dea1247e6a5/8ada17e3b1e44f7b9fe481f9c0d667d3.html" target="_self" rel="noopener noreferrer">SAP_HELP</A>), customer can define business rules to control calculation of pricing date.&nbsp;</P><P>Therefore, I can define a business rule like below to influence pricing date calculation.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="zhaoyo_0-1766737150858.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/355687iE1DF0E1B445A550C/image-size/large?v=v2&amp;px=999" role="button" title="zhaoyo_0-1766737150858.png" alt="zhaoyo_0-1766737150858.png" /></span></P><P>The "Baseline Date" in the CPF decision table defines the reference date of pricing date calculation. Below are possible options of baseline date:</P><UL><LI>null: Today</LI><LI>A: Requested delivery date (sales document header)</LI><LI>B: Valid-from date (sales document header)</LI><LI>C: Contract start date (sales document header/item)</LI><LI><span class="lia-unicode-emoji" title=":anguished_face:">😧</span>Document creation date</LI></UL><P>In SSCUI 104275, this CPF formula is assigned to routine 3000003 for flexible pricing date proposal</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="zhaoyo_1-1766740009430.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/355689iAF3B572826DFEBDC/image-size/large?v=v2&amp;px=999" role="button" title="zhaoyo_1-1766740009430.png" alt="zhaoyo_1-1766740009430.png" /></span></P><P>Then open the SSCUI 103823 to assign the routine 3000003 to sales order type "OR"</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="zhaoyo_2-1766740164057.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/355714i6567E90EE39564F5/image-size/large?v=v2&amp;px=999" role="button" title="zhaoyo_2-1766740164057.png" alt="zhaoyo_2-1766740164057.png" /></span></P><P>Once this CPF formula is enabled in sales order, we can test the pricing date proposal of sales orders.&nbsp;</P><P>Create a new sales order via VA01, both requested delivery date and pricing date are defaulted as current date (26.12.2025)</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="zhaoyo_4-1766741009272.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/355717i847EBF009922327E/image-size/large?v=v2&amp;px=999" role="button" title="zhaoyo_4-1766741009272.png" alt="zhaoyo_4-1766741009272.png" /></span></P><P>Go to sales order header to change the sales office to "100".</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="zhaoyo_5-1766741091338.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/355718iF441C06B987F35EB/image-size/large?v=v2&amp;px=999" role="button" title="zhaoyo_5-1766741091338.png" alt="zhaoyo_5-1766741091338.png" /></span></P><P>Once the sales office is changed to "100", the pricing date is updated immediately based on CPF business rule: 3 days after current date.&nbsp;</P><P>If I change the sales office to 101 again, the pricing date is updated accordingly to 7 days after.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="zhaoyo_6-1766741251763.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/355719i4D73318BB0D9D3DF/image-size/large?v=v2&amp;px=999" role="button" title="zhaoyo_6-1766741251763.png" alt="zhaoyo_6-1766741251763.png" /></span></P><P><span class="lia-unicode-emoji" title=":weary_cat_face:">🙀</span>Hold on......</P><P>This blog is for Cloud BAdI, but here only the CPF is used. Do I miss any thing?&nbsp;<span class="lia-unicode-emoji" title=":thinking_face:">🤔</span></P><P>If you also have similar concern, please continue with below chapter.&nbsp;</P><H3 id="toc-hId-914023713">How Cloud BAdI Works</H3><P>As I explained earlier, the pricing date is a changeable field in modify business data BAdI. The modify business data BAdI can also be used to modify pricing date on top of CPF proposed value.&nbsp;</P><P>In the CPF decision table, the sales office is defined as key differentiator to control pricing date calculation. If the CPF criteria is not sufficient to fulfill the business requirement to determine the pricing date, BAdI can be used with more specific custom logic. For example, in the BAdI logic, I can make certain customers as exceptional case to propose pricing date.&nbsp;</P><P>Open the tile "Custom Logic" to create a BAdI implementation for Cloud BAdI SD_SLS_MODIFY_HEAD_BUSINESS.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="zhaoyo_7-1766742324546.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/355720iDFD171EF4DE96862/image-size/large?v=v2&amp;px=999" role="button" title="zhaoyo_7-1766742324546.png" alt="zhaoyo_7-1766742324546.png" /></span></P><P>Implement the custom logic as below to always use "requested delivery date" as "pricing date" based on certain customer group.</P><pre class="lia-code-sample language-abap"><code>* This method can be used to set values to sales document header business data fields. * Example: * * First, copy the values from the business data fields to the output parameter using a move-corresponding statement. * If you use developer extensibility and multiple implementations, embed the move-corresponding statement in an if statement. * if salesdocument_businessdata is initial. move-corresponding salesdocument to salesdocument_businessdata. endif. * Update the pricing date if salesdocument-salesorganization = '1010' and salesdocument-salesdocumenttype = 'TA'. if salesdocument-customergroup = '02'. "special customer salesdocument_businessdata-pricingdate = salesdocument-requesteddeliverydate. endif. endif.</code></pre><P>Publish the BAdI implementation.&nbsp;</P><P>Now, let's test the sales order creation with customer 10100001 who has the customer group "01" maintained, and another sales order with customer 10100004 who has the customer group "02" maintained.&nbsp;</P><P>Create a sales order via Fiori v2 application.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="zhaoyo_0-1766749276362.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/355736iBCE4E11E1258D16E/image-size/large?v=v2&amp;px=999" role="button" title="zhaoyo_0-1766749276362.png" alt="zhaoyo_0-1766749276362.png" /></span></P><P>The pricing date is determined by business rules in CPF decision table. Because the customer group for customer 10100001 is "01", the BAdI logic is not processed to set the pricing date.&nbsp;</P><P>Create another sales order with customer 10100004, that the customer group "02" is defined.&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="zhaoyo_1-1766749435968.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/355737i65654610C3E8F5D6/image-size/large?v=v2&amp;px=999" role="button" title="zhaoyo_1-1766749435968.png" alt="zhaoyo_1-1766749435968.png" /></span></P><P>Even the sales office "100" is determined from customer master data, but because the customer group is "02" which fits to the custom logic in BAdI implementation, the pricing date is determined same as requested delivery date.&nbsp;</P><P>In conclusion, the BAdI logic will overrule the pricing date which is proposed by CPF business rules.&nbsp;</P><H1 id="toc-hId-459344770">Moving Forward</H1><P>The sales document business data BAdIs are well defined to influence sales document standard fields during document processing. Please always check if those BAdIs can fulfill your business requirements before introducing custom fields or checking other workarounds.&nbsp;</P><P>We will continue investing on sales document business data modification BAdIs to enable more changeable standard fields.&nbsp;On the other hand, we also expect customers can raise requirement if any field is missing in those BAdIs. Please feel free to submit your&nbsp;requirement through the Customer Influence Portal, see detail in SAP note <A href="https://launchpad.support.sap.com/#/notes/2963059" target="_self" rel="noopener noreferrer">2963059</A>. Stay tuned for new features planned in our roadmap.&nbsp;</P> 2025-12-26T12:57:10.931000+01:00 https://community.sap.com/t5/enterprise-resource-planning-blog-posts-by-sap/cloud-badis-to-check-sales-document-and-items/ba-p/14299492 Cloud BAdIs to Check Sales Document and Items 2025-12-31T11:08:18.730000+01:00 zhaoyo https://community.sap.com/t5/user/viewprofilepage/user-id/131840 <H1 id="toc-hId-1629967357" id="toc-hId-1638485663">Cloud BAdIs to Check Sales Document and Items</H1><P>As I explained in blog&nbsp;<A href="https://community.sap.com/t5/enterprise-resource-planning-blog-posts-by-sap/sales-document-badi-overview-in-sap-s-4hana-public-cloud/ba-p/14187206" target="_self">Sales Document BAdI Overview</A>, there are Cloud BAdIs to perform validation checks for entities of sales document in different processing phases.&nbsp;</P><UL><LI><SPAN class="">Check of Header Data in Sales Documents - <A href="https://api.sap.com/badi/SD_SLS_CHECK_HEAD" target="_self" rel="noopener noreferrer">SD_SLS_CHECK_HEAD</A></SPAN></LI><LI><SPAN class="">Check of Item Data in Sales Documents - <A href="https://api.sap.com/badi/SD_SLS_CHECK_ITEM" target="_self" rel="noopener noreferrer">SD_SLS_CHECK_ITEM</A></SPAN></LI><LI>Check of Delivery Schedule Data in Sales Scheduling Agreements -&nbsp;<A href="https://api.sap.com/badi/SD_SLS_CHECK_DELIVSCHED" target="_self" rel="noopener noreferrer">SD_SLS_CHECK_DELIVSCHED</A></LI><LI>Check of Sales Document Items Before Deletion -&nbsp;<A href="https://api.sap.com/badi/SD_SLS_CHECK_DELETE_ITEM" target="_self" rel="noopener noreferrer">SD_SLS_CHECK_DELETE_ITEM</A></LI><LI>Check of Sales Documents Before Saving -&nbsp;<A href="https://api.sap.com/badi/SD_SLS_CHECK_BEFORE_SAVE" target="_self" rel="noopener noreferrer">SD_SLS_CHECK_BEFORE_SAVE</A></LI></UL><H2 id="toc-hId-1571054877">Sales Document Entity Check BAdIs</H2><P>Following Cloud BAdIs are used to check on certain sales document entities (business context), relevant messages can be raised from the BAdI implementation logic. These BAdIs are processed in transactional manner which means these BAdIs will be triggered multiple times during sales document processing.&nbsp;</P><TABLE border="1" width="100%"><TBODY><TR><TD width="25%" height="30px"><STRONG>BAdI Name</STRONG></TD><TD width="25%" height="30px"><STRONG>Description</STRONG></TD><TD width="25%" height="30px"><STRONG>Business Context</STRONG></TD><TD width="25%" height="30px"><STRONG>Purpose/Usage</STRONG></TD></TR><TR><TD width="25%" height="139px"><SPAN>SD_SLS_CHECK_HEAD</SPAN></TD><TD width="25%" height="139px"><SPAN class="">Check of Header Data in Sales Documents</SPAN></TD><TD width="25%" height="139px">Sales: Sales Document</TD><TD width="25%" height="139px">You can implement custom logic to check sales document header data and raise messages</TD></TR><TR><TD width="25%" height="30px"><SPAN>SD_SLS_CHECK_ITEM</SPAN></TD><TD width="25%"><SPAN class="">Check of Item Data in Sales Documents</SPAN></TD><TD width="25%">Sales: Sales Document Item</TD><TD width="25%" height="30px">You can implement custom logic to check sales document item and raise messages</TD></TR><TR><TD width="25%">SD_SLS_CHECK_DELIVSCHED<SPAN><BR /></SPAN></TD><TD width="25%"><SPAN class="">Check of Delivery Schedule Data in Sales Scheduling Agreements</SPAN></TD><TD width="25%">Sales: Sales Scheduling Agreement Delivery Schedule</TD><TD width="25%">You can implement custom logic to check sales scheduling agreement delivery schedule and raise messages</TD></TR></TBODY></TABLE><P>It is important to know that messages raised in above BAdI implementation will <STRONG>not prevent from saving the sales documents, even for the error messages</STRONG>.&nbsp;</P><P>Following message types are supported:</P><UL><LI>I - Information message</LI><LI>W - Warning message</LI><LI>E - Error message</LI></UL><H3 id="toc-hId-1503624091">Parameters of BAdI SD_SLS_CHECK_HEAD</H3><P>There are following parameters defined in BAdI SD_SLS_CHECK_HEAD</P><TABLE border="1" width="100%"><TBODY><TR><TD width="25%" height="30px">Parameter Name</TD><TD width="25%" height="30px">Description</TD><TD width="13.900634249471459%" height="30px">Parameter Type</TD><TD width="36.09936575052854%" height="30px">Purpose</TD></TR><TR><TD><SPAN>DOCUMENTPROCESSINGMODE</SPAN></TD><TD>Sales Document Processing Mode</TD><TD>Importing</TD><TD><P>Contains information on whether the document is currently in one of the following processing modes: CREATE, CHANGE, or DISPLAY</P></TD></TR><TR><TD width="25%" height="85px">SALESDOCUMENT</TD><TD width="25%" height="85px">Sales document header</TD><TD width="13.900634249471459%" height="85px">Importing</TD><TD width="36.09936575052854%" height="85px">Contains sales document header data currently being processed</TD></TR><TR><TD><SPAN>SALESDOCUMENTPARTNERS</SPAN></TD><TD>Sales Document Partners</TD><TD>Importing</TD><TD>Contains sales document header partners currently being processed</TD></TR><TR><TD><SPAN>SALESDOCUMENT_EXTENSION</SPAN></TD><TD>Sales Document Custom Fields</TD><TD>Importing</TD><TD><SPAN>Contains the values of extension fields for the sales document header</SPAN></TD></TR><TR><TD><SPAN>MESSAGES</SPAN></TD><TD>Messages</TD><TD>Changing</TD><TD>Customer can pass any message texts (free text) with allowed message types into this parameter</TD></TR></TBODY></TABLE><H3 id="toc-hId-1307110586">Parameters of BAdI SD_SLS_CHECK_ITEM</H3><P>There are following parameters defined in BAdI SD_SLS_CHECK_ITEM</P><TABLE border="1" width="100%"><TBODY><TR><TD width="25%" height="57px">Parameter Name</TD><TD width="25%" height="57px">Description</TD><TD width="13.900634249471459%" height="57px">Parameter Type</TD><TD width="36.09936575052854%" height="57px">Purpose</TD></TR><TR><TD width="25%" height="159px"><SPAN>DOCUMENTPROCESSINGMODE</SPAN></TD><TD width="25%" height="159px">Sales Document Processing Mode</TD><TD width="13.900634249471459%" height="159px">Importing</TD><TD width="36.09936575052854%" height="159px"><P>Contains information on whether the document is currently in one of the following processing modes: CREATE, CHANGE, or DISPLAY</P></TD></TR><TR><TD width="25%" height="139px"><SPAN>DOCUMENTITEMPROCESSINGMODE</SPAN></TD><TD width="25%" height="139px">Sales Document Item Processing Mode</TD><TD width="13.900634249471459%" height="139px">Importing</TD><TD width="36.09936575052854%" height="139px"><SPAN>Contains information on whether the document item is currently in one of the following processing modes: CREATE, CHANGE, or DISPLAY</SPAN></TD></TR><TR><TD width="25%" height="85px">SALESDOCUMENT</TD><TD width="25%" height="85px">Sales document header</TD><TD width="13.900634249471459%" height="85px">Importing</TD><TD width="36.09936575052854%" height="85px">Contains sales document header data currently being processed</TD></TR><TR><TD width="25%" height="57px"><SPAN>SALESDOCUMENTITEM</SPAN></TD><TD width="25%" height="57px">Sales document item</TD><TD width="13.900634249471459%" height="57px">Importing</TD><TD width="36.09936575052854%" height="57px">Contains sales document item data currently being processed</TD></TR><TR><TD width="25%" height="57px"><SPAN>SALESDOCUMENTSCHEDULELINES</SPAN></TD><TD width="25%" height="57px">Sales Document Schedule Lines</TD><TD width="13.900634249471459%" height="57px">Importing</TD><TD width="36.09936575052854%" height="57px"><SPAN>Contains information about sales document schedule lines</SPAN></TD></TR><TR><TD width="25%" height="85px"><SPAN>SALESDOCUMENTPARTNERS</SPAN></TD><TD width="25%" height="85px">Sales Document Partners</TD><TD width="13.900634249471459%" height="85px">Importing</TD><TD width="36.09936575052854%" height="85px">Contains sales document header partners currently being processed</TD></TR><TR><TD width="25%" height="85px"><SPAN>SALESDOCUMENTITEMPARTNERS</SPAN></TD><TD width="25%" height="85px">Sales Document Item Partners</TD><TD width="13.900634249471459%" height="85px">Importing</TD><TD width="36.09936575052854%" height="85px"><SPAN>Contains sales document item partners currently being processed</SPAN></TD></TR><TR><TD width="25%" height="85px"><SPAN>SALESDOCUMENT_EXTENSION</SPAN></TD><TD width="25%" height="85px">Sales Document Custom Fields</TD><TD width="13.900634249471459%" height="85px">Importing</TD><TD width="36.09936575052854%" height="85px"><SPAN>Contains the values of extension fields for the sales document header</SPAN></TD></TR><TR><TD width="25%" height="30px"><SPAN>SALESDOCUMENTITEM_EXTENSION</SPAN><SPAN><BR /></SPAN></TD><TD width="25%" height="30px">Sales Document Item Custom Field</TD><TD width="13.900634249471459%" height="30px">Importing</TD><TD width="36.09936575052854%" height="30px"><SPAN>Contains the values of extension fields for the sales document item</SPAN></TD></TR><TR><TD width="25%"><SPAN>MESSAGES</SPAN></TD><TD width="25%">Messages</TD><TD width="13.900634249471459%">Changing</TD><TD width="36.09936575052854%">Customer can pass any message texts (free text) with allowed message types into this parameter</TD></TR></TBODY></TABLE><H3 id="toc-hId-1110597081">Parameters of BAdI SD_SLS_CHECK_DELIVSCHED</H3><P>There are following parameters defined in BAdI SD_SLS_CHECK_DELIVSCHED</P><TABLE border="1" width="100%"><TBODY><TR><TD width="25%" height="30px">Parameter Name</TD><TD width="25%" height="30px">Description</TD><TD width="13.900634249471459%" height="30px">Parameter Type</TD><TD width="36.09936575052854%" height="30px">Purpose</TD></TR><TR><TD width="25%"><SPAN>DOCUMENTPROCESSINGMODE</SPAN></TD><TD width="25%">Sales Document Processing Mode</TD><TD width="13.900634249471459%">Importing</TD><TD width="36.09936575052854%"><P>Contains information on whether the document is currently in one of the following processing modes: CREATE, CHANGE, or DISPLAY</P></TD></TR><TR><TD width="25%"><SPAN>DOCUMENTITEMPROCESSINGMODE</SPAN></TD><TD width="25%" height="139px">Sales Document Item Processing Mode</TD><TD width="13.900634249471459%" height="139px">Importing</TD><TD width="36.09936575052854%" height="139px"><SPAN>Contains information on whether the document item is currently in one of the following processing modes: CREATE, CHANGE, or DISPLAY</SPAN></TD></TR><TR><TD width="25%" height="85px">SALESDOCUMENT</TD><TD width="25%" height="85px">Sales document header</TD><TD width="13.900634249471459%" height="85px">Importing</TD><TD width="36.09936575052854%" height="85px">Contains sales document header data currently being processed</TD></TR><TR><TD width="25%"><SPAN>SALESDOCUMENTITEM</SPAN></TD><TD width="25%" height="57px">Sales document item</TD><TD width="13.900634249471459%" height="57px">Importing</TD><TD width="36.09936575052854%" height="57px">Contains sales document item data currently being processed</TD></TR><TR><TD width="25%"><SPAN>DELIVERYSCHEDULE</SPAN></TD><TD width="25%">Sales Scheduling Agreement Delivery Schedule</TD><TD width="13.900634249471459%">Importing</TD><TD width="36.09936575052854%"><SPAN>Contains information about the sales scheduling agreement delivery schedules currently being processed</SPAN></TD></TR><TR><TD width="25%"><SPAN>SALESDOCUMENT_EXTENSION</SPAN></TD><TD width="25%">Sales Document Custom Fields</TD><TD width="13.900634249471459%">Importing</TD><TD width="36.09936575052854%"><SPAN>Contains the values of extension fields for the sales document header</SPAN></TD></TR><TR><TD width="25%"><SPAN>SALESDOCUMENTITEM_EXTENSION</SPAN></TD><TD width="25%" height="30px">Sales Document Item Custom Field</TD><TD width="13.900634249471459%" height="30px">Importing</TD><TD width="36.09936575052854%" height="30px"><SPAN>Contains the values of extension fields for the sales document item</SPAN></TD></TR><TR><TD width="25%"><SPAN>DELIVERYSCHEDULE _EXTENSION</SPAN></TD><TD width="25%">Sales Scheduling Agreement Delivery Schedule Custom Fields</TD><TD width="13.900634249471459%">Importing</TD><TD width="36.09936575052854%"><SPAN>Contains the values of extension fields for the sales scheduling agreement delivery schedules</SPAN></TD></TR><TR><TD width="25%"><SPAN>MESSAGES</SPAN></TD><TD width="25%">Messages</TD><TD width="13.900634249471459%">Changing</TD><TD width="36.09936575052854%">Customer can pass any message texts (free text) with allowed message types into this parameter</TD></TR></TBODY></TABLE><H2 id="toc-hId-785000857">Check BAdI for Sales Document Item Deletion&nbsp;</H2><P>This BAdI is defined to allow customers implement custom logic to control whether deletion of sales document item is possible or not. This BAdI is called as soon as the sales document item deletion occurs. The check results can be communicated via messages to be added to a message table.&nbsp;</P><P>There are following parameters defined in BAdI SD_SLS_CHECK_DELETE_ITEM</P><TABLE border="1" width="100%"><TBODY><TR><TD width="25%" height="30px">Parameter Name</TD><TD width="25%" height="30px">Description</TD><TD width="13.900634249471459%" height="30px">Parameter Type</TD><TD width="36.09936575052854%" height="30px">Purpose</TD></TR><TR><TD width="25%"><SPAN>DOCUMENTPROCESSINGMODE</SPAN></TD><TD width="25%">Sales Document Processing Mode</TD><TD width="13.900634249471459%">Importing</TD><TD width="36.09936575052854%"><P>Contains information on whether the document is currently in one of the following processing modes: CREATE, CHANGE, or DISPLAY</P></TD></TR><TR><TD width="25%"><SPAN>DOCUMENTITEMPROCESSINGMODE</SPAN></TD><TD width="25%" height="139px">Sales Document Item Processing Mode</TD><TD width="13.900634249471459%" height="139px">Importing</TD><TD width="36.09936575052854%" height="139px"><SPAN>Contains information on whether the document item is currently in one of the following processing modes: CREATE, CHANGE, or DISPLAY</SPAN></TD></TR><TR><TD width="25%" height="85px">SALESDOCUMENT</TD><TD width="25%" height="85px">Sales document header</TD><TD width="13.900634249471459%" height="85px">Importing</TD><TD width="36.09936575052854%" height="85px">Contains sales document header data currently being processed</TD></TR><TR><TD width="25%"><SPAN>SALESDOCUMENTITEM</SPAN></TD><TD width="25%" height="57px">Sales document item</TD><TD width="13.900634249471459%" height="57px">Importing</TD><TD width="36.09936575052854%" height="57px">Contains sales document item data currently being processed</TD></TR><TR><TD width="25%" height="85px"><SPAN>SALESDOCUMENTPARTNERS</SPAN></TD><TD width="25%" height="85px">Sales Document Partners</TD><TD width="13.900634249471459%" height="85px">Importing</TD><TD width="36.09936575052854%" height="85px">Contains sales document header partners currently being processed</TD></TR><TR><TD width="25%" height="85px"><SPAN>SALESDOCUMENTITEMPARTNERS</SPAN></TD><TD width="25%" height="85px">Sales Document Item Partners</TD><TD width="13.900634249471459%" height="85px">Importing</TD><TD width="36.09936575052854%" height="85px"><SPAN>Contains sales document item partners currently being processed</SPAN></TD></TR><TR><TD width="25%" height="85px"><SPAN>SALESDOCUMENT_EXTENSION</SPAN></TD><TD width="25%" height="85px">Sales Document Custom Fields</TD><TD width="13.900634249471459%" height="85px">Importing</TD><TD width="36.09936575052854%" height="85px"><SPAN>Contains the values of extension fields for the sales document header</SPAN></TD></TR><TR><TD width="25%" height="30px"><SPAN>SALESDOCUMENTITEM_EXTENSION</SPAN><SPAN><BR /></SPAN></TD><TD width="25%" height="30px">Sales Document Item Custom Field</TD><TD width="13.900634249471459%" height="30px">Importing</TD><TD width="36.09936575052854%" height="30px"><SPAN>Contains the values of extension fields for the sales document item</SPAN></TD></TR><TR><TD><SPAN>OPERATIONCONTEXT<BR /></SPAN></TD><TD>Sales document operation context</TD><TD>Importing</TD><TD>C<SPAN>ontains information about the context of the current operation</SPAN></TD></TR><TR><TD>NO_DELETION<SPAN><BR /></SPAN></TD><TD>No Deletion</TD><TD>Changing</TD><TD><SPAN>an be filled with value&nbsp;</SPAN><STRONG><I>X</I></STRONG><SPAN>&nbsp;to disallow deletion of the item</SPAN></TD></TR><TR><TD width="25%"><SPAN>MESSAGES</SPAN></TD><TD width="25%">Messages</TD><TD width="13.900634249471459%">Changing</TD><TD width="36.09936575052854%">Customer can pass any message texts (free text) with allowed message types into this parameter</TD></TR></TBODY></TABLE><P>Following message types are supported:</P><UL><LI>I - Information message</LI><LI>W - Warning message</LI><LI>E - Error message</LI></UL><H2 id="toc-hId-588487352">Sales Document Check Before Save BAdI</H2><P>Different from above check BAdIs, the Cloud BAdI SD_SLS_CHECK_BEFORE_SAVE is called in sales document saving phase. Customer can implement custom logic to check sales document data before save and decide to abort the document saving. The check results can be communicated via messages to be added to a message table.&nbsp;</P><P>There are following parameters defined in BAdI SD_SLS_CHECK_DELETE_ITEM</P><TABLE border="1" width="100%"><TBODY><TR><TD width="25%" height="30px">Parameter Name</TD><TD width="25%" height="30px">Description</TD><TD width="13.900634249471459%" height="30px">Parameter Type</TD><TD width="36.09936575052854%" height="30px">Purpose</TD></TR><TR><TD width="25%"><SPAN>DOCUMENTPROCESSINGMODE</SPAN></TD><TD width="25%">Sales Document Processing Mode</TD><TD width="13.900634249471459%">Importing</TD><TD width="36.09936575052854%"><P>Contains information on whether the document is currently in one of the following processing modes: CREATE, CHANGE, or DISPLAY</P></TD></TR><TR><TD width="25%" height="85px">SALESDOCUMENT</TD><TD width="25%" height="85px">Sales document header</TD><TD width="13.900634249471459%" height="85px">Importing</TD><TD width="36.09936575052854%" height="85px">Contains sales document header data currently being processed</TD></TR><TR><TD width="25%"><SPAN>SALESDOCUMENTITEMS</SPAN></TD><TD width="25%" height="57px">Sales document item</TD><TD width="13.900634249471459%" height="57px">Importing</TD><TD width="36.09936575052854%" height="57px">Contains sales document item data currently being processed</TD></TR><TR><TD width="25%"><SPAN>SALESDOCUMENTSCHEDULELINES</SPAN><SPAN><BR /></SPAN></TD><TD width="25%">Sales document schedule line</TD><TD width="13.900634249471459%">Importing</TD><TD width="36.09936575052854%"><SPAN>Contains information about sales document schedule lines</SPAN></TD></TR><TR><TD width="25%" height="85px"><SPAN>SALESDOCUMENTPARTNERS</SPAN></TD><TD width="25%" height="85px">Sales Document Partners</TD><TD width="13.900634249471459%" height="85px">Importing</TD><TD width="36.09936575052854%" height="85px">Contains sales document header partners currently being processed</TD></TR><TR><TD width="25%" height="85px"><SPAN>SALESDOCUMENTITEMPARTNERS</SPAN></TD><TD width="25%" height="85px">Sales Document Item Partners</TD><TD width="13.900634249471459%" height="85px">Importing</TD><TD width="36.09936575052854%" height="85px"><SPAN>Contains sales document item partners currently being processed</SPAN></TD></TR><TR><TD width="25%" height="85px"><SPAN>SALESDOCUMENT_EXTENSION</SPAN></TD><TD width="25%" height="85px">Sales Document Custom Fields</TD><TD width="13.900634249471459%" height="85px">Importing</TD><TD width="36.09936575052854%" height="85px"><SPAN>Contains the values of extension fields for the sales document header</SPAN></TD></TR><TR><TD width="25%" height="30px"><SPAN>SALESDOCUMENTITEM_EXTENSION</SPAN><SPAN><BR /></SPAN></TD><TD width="25%" height="30px">Sales Document Item Custom Field</TD><TD width="13.900634249471459%" height="30px">Importing</TD><TD width="36.09936575052854%" height="30px"><SPAN>Contains the values of extension fields for the sales document item</SPAN></TD></TR><TR><TD width="25%"><SPAN>DELIVERYSCHEDULE</SPAN></TD><TD width="25%">Sales Scheduling Agreement Delivery Schedule</TD><TD width="13.900634249471459%">Importing</TD><TD width="36.09936575052854%"><SPAN>Contains information about the sales scheduling agreement delivery schedules currently being processed</SPAN></TD></TR><TR><TD width="25%"><SPAN>DELIVERYSCHEDULE _EXTENSION</SPAN></TD><TD width="25%">Sales Scheduling Agreement Delivery Schedule Custom Fields</TD><TD width="13.900634249471459%">Importing</TD><TD width="36.09936575052854%"><SPAN>Contains the values of extension fields for the sales scheduling agreement delivery schedules</SPAN></TD></TR><TR><TD width="25%"><SPAN>ELECTRONICPAYMENTDETAILS</SPAN></TD><TD width="25%">Electronic Payment Details&nbsp;</TD><TD width="13.900634249471459%">&nbsp;Importing</TD><TD width="36.09936575052854%"><SPAN>Contains information about electronic payment details of the sales document currently being processed</SPAN></TD></TR><TR><TD width="25%"><SPAN>MESSAGES</SPAN></TD><TD width="25%">Messages</TD><TD width="13.900634249471459%">Changing</TD><TD width="36.09936575052854%">Customer can pass any message texts (free text) with allowed message types into this parameter</TD></TR></TBODY></TABLE><P>Following message types are supported:</P><UL><LI>I - Information message</LI><LI>W - Warning message</LI><LI>E - Error message</LI></UL><P>Only <STRONG>the error message will prevent from saving the sales document</STRONG>.&nbsp;</P><H3 id="toc-hId-521056566">Key Benefit of Check Before Save BAdI</H3><P>There are following key features of sales document check before save BAdI:</P><UL><LI>Based on validation check result, you can stop saving the sales document&nbsp;</LI><LI>You will get more reliable sales document data in check before save BAdI because the sales document data is relatively more stable in saving phase</LI><LI>You have full access of sales document entities in check before save BAdI</LI><LI>The check before save BAdI is more performant as it is only called once during document saving</LI></UL><H2 id="toc-hId-972996056" id="toc-hId-195460342">Business Example&nbsp;</H2><P>I'd like to use a business example to explain how to utilize check BAdIs to fulfill a business requirement.&nbsp;</P><P>Supplier company XYZ sells products to different customers. The customer order can be placed via Portal as self-service or placed manually by the sales representative.&nbsp;</P><P>Due to fluctuations in the prices of raw materials, company XYZ generally does not accept customer orders with long-term delivery requests. Company XYZ would like to implement custom logic to indicate the issue of long-term delivery and stop saving the sales order if it is requested to be delivered later than 1 month from the order creation date.&nbsp;</P><H2 id="toc-hId-776482551" id="toc-hId--1053163">Solution via Extensibility</H2><P>The BAdI SD_SLS_CHECK_HEAD and BAdI SD_SLS_CHECK_BEFORE_SAVE can work together to fulfill the requirement.&nbsp;</P><H3 id="toc-hId--143715318">Implement Custom Logic in SD_SLS_CHECK_HEAD</H3><P>As explained above, the BAdI SD_SLS_CHECK_HEAD can perform custom validation check during sales document processing, and this BAdI will not impact on the sales document save.&nbsp;</P><P>I can implement custom logic to indicate there is an issue when customer requested delivery date is too long.&nbsp;</P><P>Create a BAdI implementation for Cloud BAdI SD_SLS_CHECK_HEAD.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="zhaoyo_0-1767168629344.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/357351iE07B05A6E24F4350/image-size/large?v=v2&amp;px=999" role="button" title="zhaoyo_0-1767168629344.png" alt="zhaoyo_0-1767168629344.png" /></span></P><P>Implement below custom logic to raise an error message when customer requested delivery date is 30 days away.</P><pre class="lia-code-sample language-abap"><code>* show error message if the customer requested delivery date is later than 30 days if documentprocessingmode = 'CREATE' or documentprocessingmode = 'CHANGE'. if salesdocument-salesdocumenttype = 'TA' or salesdocument-soldtoparty = '0010100080'. "check is customer requested delivery date is more than 30 days from today if salesdocument-requesteddeliverydate - salesdocument-creationdate &gt; 30. append value #( messagetype = 'E' messagetext = 'Customer Requested Date has to be within 30 days.' ) to messages. endif. endif. endif.</code></pre><P>Publish the BAdI and test the sales order creation from Fiori application.&nbsp;</P><P>Create a sales order for customer "10100080". When I set the requested delivery date to Feb 1st 2026, I get the error message notified in the sales order UI.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="zhaoyo_1-1767169711434.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/357356iF92CD42F931BDA8C/image-size/large?v=v2&amp;px=999" role="button" title="zhaoyo_1-1767169711434.png" alt="zhaoyo_1-1767169711434.png" /></span></P><P>But I can continue with clicking the Create button to save the sales order.</P><P>A dialog box is popped up before continuing saving the sales order.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="zhaoyo_2-1767170054010.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/357358i3FF8034162C8DCC7/image-size/large?v=v2&amp;px=999" role="button" title="zhaoyo_2-1767170054010.png" alt="zhaoyo_2-1767170054010.png" /></span></P><P>Press save button to continue. Eventually the sales order can be saved.&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="zhaoyo_3-1767170143062.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/357359i79CC348236F43DDA/image-size/large?v=v2&amp;px=999" role="button" title="zhaoyo_3-1767170143062.png" alt="zhaoyo_3-1767170143062.png" /></span></P><H3 id="toc-hId--340228823">Implement Custom Logic in SD_SLS_CHECK_BEFORE_SAVE</H3><P>In order to reduce the risk of creating sales orders with long customer requested delivery date, we can implement custom logic in BAdI SD_SLS_CHECK_BEFORE_SAVE to prevent from saving the sales order if the customer requested delivery date is 30 days away.&nbsp;</P><P>Create a BAdI implementation for SD_SLS_CHECK_BEFORE_SAVE.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="zhaoyo_0-1767172491237.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/357365i6D0754E9AD3E9961/image-size/large?v=v2&amp;px=999" role="button" title="zhaoyo_0-1767172491237.png" alt="zhaoyo_0-1767172491237.png" /></span></P><P>Implement custom logic below to check requested delivery date and raise an error message if the customer requested delivery date is 30 days away from order creation date.</P><pre class="lia-code-sample language-abap"><code>* Check if the customer requested delivery date is 30 days later from the order creation date * The sales order shall not be saved if the customer requested delivery date is later than 30 days if documentprocessingmode = 'CREATE' or documentprocessingmode = 'CHANGE'. if salesdocument-salesdocumenttype = 'TA'. "get sold-to party read table salesdocumentpartners into data(ls_partner) with key partnerfunction = 'AG'. if ls_partner-customer = '0010100080'. "check is customer requested delivery date is more than 30 days from today if salesdocument-requesteddeliverydate - salesdocument-creationdate &gt; 30. append value #( messagetype = 'E' messagetext = 'Customer Requested Date has to be within 30 days.' ) to messages. endif. endif. endif. endif.</code></pre><P>Publish the BAdI implementation and test sales order behavior in Fiori UI.</P><P>Create a sales order with customer "10100080" and set the customer requested delivery date to Feb 1st 2026.&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="zhaoyo_1-1767172723418.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/357366i2FEA5B0527C20443/image-size/large?v=v2&amp;px=999" role="button" title="zhaoyo_1-1767172723418.png" alt="zhaoyo_1-1767172723418.png" /></span></P><P>The error message is raised from the implementation of BAdI SD_SLS_CHECK_HEAD.</P><P>Click button "Save" to try to save the sales order.&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="zhaoyo_2-1767173236872.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/357369i79FF64E181B385A9/image-size/large?v=v2&amp;px=999" role="button" title="zhaoyo_2-1767173236872.png" alt="zhaoyo_2-1767173236872.png" /></span></P><P>The error message is raised and sales order save is failed. It is because the error message raised in BAdI SD_SLS_CHECK_BEFORE_SAVE prevent the document save.&nbsp;</P><H1 id="toc-hId-238058885" id="toc-hId-50063686">Moving Forward</H1><P>Now, I believe I have better understanding of different Cloud BAdIs to perform validation checks against sales document.</P><P>You can use transactional BAdIs to perform validation check at runtime, especially when you use sales document UI to create/update sales documents. The BAdI SD_SLS_CHECK_HEAD and SD_SLS_CHECK_ITEM are processed whenever the relevant entities are in processing.&nbsp;</P><P>The BAdI SD_SLS_CHECK_BEFORE_SAVE is triggered only once before save. You can access to all entities of sales document to perform validation check with more reliable value. It is possible to stop saving if the validation check is failed in custom logic.&nbsp;</P><P>In the future, according to customer requirements, the check BAdIs would be enhanced to support more import parameters and entities. Please feel free to submit your&nbsp;requirement through the Customer Influence Portal, see detail in SAP note <A href="https://launchpad.support.sap.com/#/notes/2963059" target="_self" rel="noopener noreferrer">2963059</A>. Stay tuned for new features planned in our roadmap.&nbsp;</P> 2025-12-31T11:08:18.730000+01:00 https://community.sap.com/t5/abap-blog-posts/custom-form-with-custom-data-source-in-sap-public-cloud-grow-with-sap/ba-p/14307568 Custom Form with Custom Data Source in SAP Public Cloud (Grow with SAP) 2026-01-15T14:42:13.195000+01:00 Gourab_Dey https://community.sap.com/t5/user/viewprofilepage/user-id/13422 <H1 id="toc-hId-1658744417">INTRODUCTION</H1><P>In <a href="https://community.sap.com/t5/c-khhcw49343/SAP+S%25252F4HANA+Cloud+Public+Edition/pd-p/08e2a51b-1ce5-4367-8b33-4ae7e8b702e0" class="lia-product-mention" data-product="1199-1">SAP S/4HANA Cloud Public Edition</a>, there are scenarios where standard output forms and data sources do not fully meet business requirements.</P><P>This blog post explains how to create a <STRONG>custom output form using a custom data source</STRONG> in <STRONG>SAP S/4HANA Cloud (Grow with SAP)</STRONG>.</P><H2 id="toc-hId-1591313631">Motivation Behind Writing This Blog Post</H2><P>There have been significant changes in the approach to <STRONG>Form Development,</STRONG> especially in SAP <STRONG>S/4HANA Public Cloud</STRONG> systems. Gone are the days where the form were developed using <STRONG>SFP transactions</STRONG> and driver program is developed to call the form using <STRONG>Function Module.</STRONG>&nbsp;In the SAP Public Cloud, Form development follows a fundamentally different, cloud-compliant model aligned with clean-core principles</P><P>As a result of this shift, most available blog posts and tutorial videos focus on building or customizing forms using <STRONG>standard SAP-delivered data sources</STRONG>. However, there is limited information on how to create <STRONG>custom forms based on custom data sources</STRONG> within these new constraints. This blog post aims to close that gap by providing detailed implementation steps for building a custom form using a custom data source in SAP S/4HANA Public Cloud.</P><H2 id="toc-hId-1394800126">What is not about?</H2><P>The form is developed directly in the <STRONG>S/4HANA Cloud tenant</STRONG>. Please note that this blog post&nbsp;<STRONG>does not cover “<a href="https://community.sap.com/t5/c-khhcw49343/SAP+Forms+service+by+Adobe/pd-p/73555000100800000066" class="lia-product-mention" data-product="629-1">SAP Forms service by Adobe</a>” on <a href="https://community.sap.com/t5/c-khhcw49343/SAP+Business+Technology+Platform/pd-p/73555000100700000172" class="lia-product-mention" data-product="1215-1">SAP Business Technology Platform</a></STRONG>. Instead, it focuses on form development within the public cloud system itself (Developer Extensibility)</P><H2 id="toc-hId-1198286621">When Should You Follow This Approach?</H2><P>You should consider creating a custom form with a custom data source in the following scenarios:</P><UL><LI><STRONG>SAP has not provided a standard data source</STRONG> for the required business object.<BR />Examples include:<UL><LI>Purchase Requisition Output</LI><LI>Supplier Invoice Output</LI></UL></LI><LI><STRONG>You have developed a custom application or custom business object</STRONG>, and an output form is required.<BR />Since the development is custom, there will naturally be <STRONG>no standard form or data source</STRONG> available for output generation</LI></UL><P>In such cases, defining a custom data source and binding it to a custom form becomes the correct and often the only viable approach.</P><H2 id="toc-hId-1001773116">When Should You Not Follow This Approach?</H2><P>You should <STRONG>avoid</STRONG> this approach when a standard solution already exists:</P><UL><LI>If <STRONG>SAP provides a standard data source and a standard form template</STRONG>, you should use them instead of creating custom ones,<BR />Example: Purchase Order outputs already have standard data sources and form templates available.</LI><LI>When standard data sources are available, always prefer the <STRONG>“Form Template” Fiori app</STRONG> to customize the output.<BR /><A href="https://learning.sap.com/videos/customization-of-content-form-templates-sap-s-4hana-finance" target="_blank" rel="noopener noreferrer">Customization of Content Form Templates - SAP S/4HANA Finance</A></LI></UL><H2 id="toc-hId-805259611"><STRONG>Prerequisites&nbsp;</STRONG></H2><H3 id="toc-hId-737828825"><STRONG>Tools</STRONG></H3><UL><LI><STRONG>Adobe LiveCycle Designer</STRONG><BR />Required for designing and modifying Adobe-based output forms. The tool is used to define the layout, structure, and binding of the form fields to the data source.</LI><LI><STRONG>ABAP Development Toolkit (ADT)</STRONG><BR />Required for designing and modifying Adobe-based output forms. The tool is used to define the layout, structure, and binding of the form fields to the data source.</LI></UL><H3 id="toc-hId-541315320">Skills</H3><UL><LI>Knowledge on Adobe Form</LI><LI>Knowledge on RAP Development Framework</LI></UL><H2 id="toc-hId-215719096">Code References</H2><P>All example code referenced in this article is <STRONG>available in the Git repository</STRONG> linked below. To keep the blog post concise and focused, the source code is not reproduced here in full, as including it would unnecessarily lengthen the post.<BR /><A href="https://github.com/gourabdey-sap/form-development-in-s4hc" target="_blank" rel="noopener nofollow noreferrer">GitHub - gourabdey-sap/form-development-in-s4hc: Custom Form Development with Custom Data Source in S4HC</A></P><H1 id="toc-hId--109877128"><STRONG>TECHNICAL IMPLEMENTATION</STRONG></H1><P>As an example for <STRONG>custom form development using a custom data source</STRONG>, we will use the <STRONG>Purchase Requisition (PR) form</STRONG>. This example is chosen because the Purchase Requisition process is <STRONG>well known and familiar to most readers</STRONG>, making it easier to understand and relate to the concepts discussed.</P><H2 id="toc-hId-169946443"><STRONG>Step 1 - Custom CDS View Creation</STRONG></H2><P>We will create a <STRONG>RAP BO</STRONG> for Purchase Requisition form output requirement. I usually prefer defining a Root CDS view to keep the design <STRONG>future-proof</STRONG>. This approach allows for easy functional enhancements later without requiring changes to the existing CDS hierarchy.</P><P>That said, if your objective is <STRONG>only to call the form</STRONG>, a standard CDS view is sufficient. In such cases, creating a Root CDS view (RAP Business Object) is <STRONG>not mandatory</STRONG>.</P><P>We will create <STRONG>two interface CDS views</STRONG> and <STRONG>two corresponding consumption CDS views</STRONG>:</P><UL><LI>One set for <STRONG>header data</STRONG></LI><LI>One set for <STRONG>item data</STRONG></LI></UL><P><FONT size="5"><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Gourab_Dey_18-1768473503311.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/361560iCB321D3D2E10E858/image-size/large?v=v2&amp;px=999" role="button" title="Gourab_Dey_18-1768473503311.png" alt="Gourab_Dey_18-1768473503311.png" /></span></FONT></P><P><FONT size="4">The source code for the CDS can be found in <A title="GitHub Repo" href="https://github.com/gourabdey-sap/form-development-in-s4hc/tree/main/cds" target="_blank" rel="noopener nofollow noreferrer">GitHub Repo</A>&nbsp;.</FONT></P><H2 id="toc-hId--26567062"><STRONG>Step 2 - Marking the Header Consumption CDS as Form Data Provider</STRONG></H2><P>Add the following annotation to the <STRONG>header consumption CDS view</STRONG>. This annotation is required <STRONG>only for the header consumption view</STRONG> and <STRONG>must not be added to the item CDS view</STRONG></P><pre class="lia-code-sample language-abap"><code>@ObjectModel.supportedCapabilities: [ #OUTPUT_FORM_DATA_PROVIDER ]</code></pre><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Gourab_Dey_19-1768473606489.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/361561iCDC2E60FCB0937FE/image-size/large?v=v2&amp;px=999" role="button" title="Gourab_Dey_19-1768473606489.png" alt="Gourab_Dey_19-1768473606489.png" /></span></P><H2 id="toc-hId--223080567"><STRONG>Step 3 - Creating Form Data Provider (Data Source)</STRONG></H2><P>Next, we need to create a <STRONG>Service Definition</STRONG> to act as the <STRONG>form data provider (data source)</STRONG>. Both the <STRONG>header</STRONG> and <STRONG>item</STRONG> entities must be exposed in this service definition.&nbsp;</P><P>An important point to note is the <STRONG>leading entity annotation</STRONG>, defined using&nbsp;<STRONG>@ObjectModel.leadingEntity.name</STRONG></P><pre class="lia-code-sample language-abap"><code>@EndUserText.label: 'PR Form Data Provider' @ObjectModel.leadingEntity.name: 'ZMM_C_PRHEADER' define service ZMM_PR_FORM_DATA { expose ZMM_C_PrHeader as Header; expose ZMM_C_PrItem as Item; }</code></pre><H3 id="toc-hId--712997079">Key Point Consideration:</H3><UL><LI>Only<STRONG> one CDS entity</STRONG> must be designated as the <STRONG>Form Data Provider.</STRONG> In this scenario, the <STRONG>header CDS view</STRONG> (ZMM_C_PrHeader) is the sole data provider and is annotated with <STRONG>@ObjectModel.supportedCapabilities: [ #OUTPUT_FORM_DATA_PROVIDER].</STRONG><BR />The item CDS view<STRONG> must not contain</STRONG> this annotation.</LI><LI>The <STRONG>Service Definition</STRONG> should have the <STRONG>leading entity defined in upper case.</STRONG> The Data Definition name of the header view is&nbsp;<SPAN><STRONG>ZMM_C_PrHeader</STRONG> still, the leading entity has to be provided as&nbsp;<STRONG>ZMM_C_PRHEADER.</STRONG></SPAN></LI></UL><pre class="lia-code-sample language-abap"><code>@ObjectModel.leadingEntity.name: 'ZMM_C_PRHEADER'​</code></pre><UL><LI><STRONG>Service Binding </STRONG>creation is <STRONG>not required</STRONG>&nbsp;for rendering the form. Only&nbsp;<STRONG>Service Definition&nbsp;</STRONG>is enough,<STRONG><BR /></STRONG><STRONG>But, </STRONG>still in this blog post <STRONG>Service Binding </STRONG>will be required for generation of RAP Application.&nbsp;</LI></UL><H2 id="toc-hId--616107577"><STRONG>Step 4 - Form Creation</STRONG></H2><P><STRONG>Create new Form</STRONG> using Path: <STRONG>Right Click on Package &gt; New &gt; Other ABAP Repository Object &gt; Form.&nbsp;</STRONG>Provide the form name as required. I have given as&nbsp;<STRONG><SPAN>ZMM_PR_OUTPUT.</SPAN></STRONG></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Gourab_Dey_0-1768479657955.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/361627iDDC83FC67892832A/image-size/medium?v=v2&amp;px=400" role="button" title="Gourab_Dey_0-1768479657955.png" alt="Gourab_Dey_0-1768479657955.png" /></span></P><H3 id="toc-hId--1106024089"><STRONG>Data Provider:&nbsp;</STRONG></H3><P>Select the data provider as the Service Definition been created in Step 3. In this example, this will be&nbsp;<STRONG>ZMM_PR_FORM_DATA.&nbsp;</STRONG></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Gourab_Dey_0-1768462920108.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/361484i6EC4D617859B8A74/image-size/large?v=v2&amp;px=999" role="button" title="Gourab_Dey_0-1768462920108.png" alt="Gourab_Dey_0-1768462920108.png" /></span></P><P>Save the form (Ctrl/Cmd + S).&nbsp;</P><P><STRONG>Please note:</STRONG> The form cannot be activated yet as the layout is still not developed.&nbsp;</P><H2 id="toc-hId--1009134587"><STRONG>Step 5 - Download XML Schema (XSD File)</STRONG></H2><P>To download the XSD file of form, click on "Download Schema" button.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Gourab_Dey_1-1768463736174.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/361493i310681CAD618C778/image-size/large?v=v2&amp;px=999" role="button" title="Gourab_Dey_1-1768463736174.png" alt="Gourab_Dey_1-1768463736174.png" /></span></P><P>Click on export and give the file name. I have given the file name as "PR Schema.xsd".</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Gourab_Dey_2-1768463972939.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/361496iAAC0E67BA56199ED/image-size/medium?v=v2&amp;px=400" role="button" title="Gourab_Dey_2-1768463972939.png" alt="Gourab_Dey_2-1768463972939.png" /></span></P><H2 id="toc-hId--1205648092">Step 6 - Create Form Layout</H2><P>Open&nbsp;<STRONG>Adobe LiveCycle Designer (ALD)&nbsp;</STRONG>locally in the system. You can search for the application<STRONG> "Adobe LiveCycle Designer"</STRONG> in your system and should be able to open it, provided this is installed locally in your system.</P><P>Once the Adobe LiveCycle Designer is open, click on <STRONG>New Form</STRONG>.&nbsp;Or alternatively you can use the menu <STRONG>File &gt; New Form</STRONG> (Ctrl/Cmd + N)&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Gourab_Dey_4-1768464323911.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/361499i01C72B043D28C58A/image-size/medium?v=v2&amp;px=400" role="button" title="Gourab_Dey_4-1768464323911.png" alt="Gourab_Dey_4-1768464323911.png" /></span></P><P>Select the <STRONG>orientation</STRONG> as required and click on <STRONG>Finish</STRONG>.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Gourab_Dey_5-1768464407079.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/361500i192A6DB8EDEBEF5F/image-size/medium?v=v2&amp;px=400" role="button" title="Gourab_Dey_5-1768464407079.png" alt="Gourab_Dey_5-1768464407079.png" /></span></P><P>Use the menu <STRONG>File &gt; New Data Connection </STRONG>to link to the <STRONG>XSD file</STRONG>.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Gourab_Dey_6-1768465222240.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/361502i20573A5983E163C5/image-size/medium?v=v2&amp;px=400" role="button" title="Gourab_Dey_6-1768465222240.png" alt="Gourab_Dey_6-1768465222240.png" /></span></P><P>Select the XSD file downloaded from Step 5. Click on finish.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Gourab_Dey_8-1768465291946.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/361504i394BF59EC1E755F5/image-size/medium?v=v2&amp;px=400" role="button" title="Gourab_Dey_8-1768465291946.png" alt="Gourab_Dey_8-1768465291946.png" /></span></P><P>The field details can be seen the&nbsp;<STRONG>Data View&nbsp;</STRONG>tab. If you don't have data view tab, then you can add it from the menu <STRONG>Windows &gt; Data View</STRONG></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Gourab_Dey_9-1768465404425.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/361505iDA6CAA4B2A094C31/image-size/large?v=v2&amp;px=999" role="button" title="Gourab_Dey_9-1768465404425.png" alt="Gourab_Dey_9-1768465404425.png" /></span></P><P>Rename the Page and bind it to the header Node.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Gourab_Dey_10-1768465601293.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/361506iAA87871BC517A59A/image-size/large?v=v2&amp;px=999" role="button" title="Gourab_Dey_10-1768465601293.png" alt="Gourab_Dey_10-1768465601293.png" /></span></P><P>Then save the form as XDP file (Ctrl/Cmd + S).</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Gourab_Dey_11-1768465718150.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/361507iC82A01304C981826/image-size/medium?v=v2&amp;px=400" role="button" title="Gourab_Dey_11-1768465718150.png" alt="Gourab_Dey_11-1768465718150.png" /></span></P><H2 id="toc-hId--1402161597">Step 7 - Designing the Form</H2><P>As both form is created and the connection is established with XSD file, we can work on the layout development as required.</P><P>As an example, I will have a very basic layout where some of the fields from <STRONG>header</STRONG> will be bound and we will have a table which will have <STRONG>item details.&nbsp;</STRONG></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Gourab_Dey_14-1768467110411.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/361544iDDAD9A4BA37497CE/image-size/large?v=v2&amp;px=999" role="button" title="Gourab_Dey_14-1768467110411.png" alt="Gourab_Dey_14-1768467110411.png" /></span></P><P>You would need the data in XML format. We will download it subsequent section. We will also see how to preview the form locally in the system.&nbsp;</P><H2 id="toc-hId--1598675102">Step 8 - Generate Sample Data</H2><P>Right click on Preview <STRONG>PDF tab &gt; Select Preview Tab</STRONG></P><P>Click on <STRONG>Generate Preview Data</STRONG> &gt; Click on the <STRONG>button</STRONG> below Data File Name</P><P>Provide the name of the file and Click <STRONG>Save.&nbsp;</STRONG></P><P>Then click on <STRONG>Generate Button</STRONG>, which will generate some sample data. Click on <STRONG>Ok.</STRONG></P><P>With this we have some example data been generated and we can <STRONG>Preview&nbsp;</STRONG>the form locally.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Gourab_Dey_16-1768469719865.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/361557i307D0017183FC50A/image-size/large?v=v2&amp;px=999" role="button" title="Gourab_Dey_16-1768469719865.png" alt="Gourab_Dey_16-1768469719865.png" /></span></P><H2 id="toc-hId--1627004916">Step 9 - Preview the Form</H2><P>Click on the <STRONG>Preview Tab </STRONG>to have a look at the form layout been developed.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Gourab_Dey_17-1768469987825.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/361558i4CCCEE61867320C0/image-size/large?v=v2&amp;px=999" role="button" title="Gourab_Dey_17-1768469987825.png" alt="Gourab_Dey_17-1768469987825.png" /></span></P><P>This is how the form layout appears locally during preview. Some fields are displayed in light blue in the local preview; however, when the form is executed within <STRONG>S/4HANA Cloud (S/4HC)</STRONG>, this blue coloring will not be visible.</P><P>The sample forms, example data and XSD scheme can be found in <A title="GitHub Repo" href="https://github.com/gourabdey-sap/form-development-in-s4hc/blob/main/form/PR%20Form.xdp" target="_blank" rel="noopener nofollow noreferrer">GitHub Repo&nbsp;</A></P><H2 id="toc-hId--1823518421">Step 10 - Upload the Form in S4</H2><P>Open the form been created in <STRONG>Step 4 </STRONG>and&nbsp;upload the developed form using <STRONG>Upload Layout.&nbsp;</STRONG></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Gourab_Dey_12-1768466908443.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/361540i90D90667C99281B7/image-size/large?v=v2&amp;px=999" role="button" title="Gourab_Dey_12-1768466908443.png" alt="Gourab_Dey_12-1768466908443.png" /></span></P><P>Now you should be able to activate the form.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Gourab_Dey_13-1768467032899.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/361541i1B42806309C5196B/image-size/large?v=v2&amp;px=999" role="button" title="Gourab_Dey_13-1768467032899.png" alt="Gourab_Dey_13-1768467032899.png" /></span></P><P>So, we have successfully created the form and uploaded in S4HC.</P><H2 id="toc-hId--2020031926">Step 11 - Adding Attachment Related field in Header Consumption View</H2><P>For showing the attachment using CDS, we would need below 3 fields</P><UL><LI>File Name - Name of the file</LI><LI>Mime Type - For PDF, this will be always</LI><LI>Attachment - The PR Output PDF</LI></UL><P>So, we will achieve this by using virtual element of CDS.&nbsp;</P><H3 id="toc-hId-1785018858"><STRONG>Important Annotation:</STRONG></H3><P><STRONG>Virtual Field</STRONG></P><pre class="lia-code-sample language-abap"><code>@ObjectModel.virtualElementCalculatedBy: 'ABAP:ZCL_MM_PR_FORM'</code></pre><P><STRONG>Attachment Field</STRONG></P><pre class="lia-code-sample language-abap"><code>@Semantics.largeObject:{ mimeType: 'MimeType', fileName: 'FileName', contentDispositionPreference: #ATTACHMENT }</code></pre><P><STRONG>Mime Type</STRONG></P><pre class="lia-code-sample language-abap"><code>@Semantics.mimeType: true</code></pre><H3 id="toc-hId-1588505353"><STRONG>CDS Source Code</STRONG></H3><pre class="lia-code-sample language-abap"><code>@AccessControl.authorizationCheck: #NOT_REQUIRED @EndUserText.label: 'Purchase Requisition Header' @ObjectModel.supportedCapabilities: [ #OUTPUT_FORM_DATA_PROVIDER ] @Metadata.allowExtensions: true define root view entity ZMM_C_PrHeader provider contract transactional_query as projection on ZMM_I_PrHeader { key PurchaseRequisition, PurReqnDescription, PurchaseRequisitionType, LastChangeDateTime, @ObjectModel.virtualElementCalculatedBy: 'ABAP:ZCL_MM_PR_FORM' virtual FileName : abap.char( 50 ), @ObjectModel.virtualElementCalculatedBy: 'ABAP:ZCL_MM_PR_FORM' @Semantics.mimeType: true virtual MimeType : abap.char( 50 ), @ObjectModel.virtualElementCalculatedBy: 'ABAP:ZCL_MM_PR_FORM' @Semantics.largeObject:{ mimeType: 'MimeType', fileName: 'FileName', contentDispositionPreference: #ATTACHMENT } virtual Attachment : abap.rawstring( 0 ), /* Associations */ _Item : redirected to composition child ZMM_C_PrItem }</code></pre><H2 id="toc-hId-1685394855">Step 12 - Logic for Virtual Elements&nbsp;</H2><P>The calculation class for virtual element should implement the interface&nbsp;<SPAN><STRONG>if_sadl_exit_calc_element_read</STRONG>.</SPAN></P><P><SPAN>The interface has 2 methods.</SPAN></P><UL><LI><SPAN><STRONG>get_calculation_info</STRONG> :</SPAN><UL><LI><SPAN>The fields which are used in the logic required to be added to the field&nbsp;<STRONG>et_requested_orig_elements</STRONG>.</SPAN></LI><LI><SPAN>For our case, only Purchase Requisition number is enough.</SPAN></LI></UL></LI><LI><SPAN><STRONG>calculate</STRONG>:</SPAN><UL><LI><SPAN>The actual logic for virtual fields will go here.&nbsp;</SPAN></LI><LI><SPAN>The required fields have to be populated in internal table&nbsp;<STRONG>ct_calculated_data.</STRONG></SPAN></LI></UL></LI></UL><P>Complete code for the class is available <A title="here" href="https://github.com/gourabdey-sap/form-development-in-s4hc/blob/main/class/virtual%20elements.txt" target="_self" rel="nofollow noopener noreferrer">here</A>.</P><H2 id="toc-hId-1488881350">Step 13 - Calling the Adobe Form</H2><H3 id="toc-hId-998964838"><STRONG>Rending the Form (line no 23-31)</STRONG></H3><UL><LI>The form is rendered using the method&nbsp;<STRONG>cl_fp_ads_util=&gt;render_pdf.</STRONG></LI><LI>This requires the data and the layout.</LI></UL><H3 id="toc-hId-802451333"><STRONG>Reading data in XML format (line 9-14)</STRONG></H3><UL><LI>The XML data are being read using the object of <STRONG>CL_FP_FDP_SERVICES.</STRONG>&nbsp;</LI><LI>It requires the key of the <STRONG>Root/Header CDS, </STRONG>which is defined as lead entity in the <STRONG>Service Definition</STRONG> in <STRONG>Step 3</STRONG>. In our case, only Purchase Requisition is the key. If multiple keys are there, value should be passed for all keys.</LI><LI>The Purchase requisition <STRONG>data is fetched</STRONG> in the line 13 in the variable <STRONG>LV_DATA </STRONG>in <STRONG>XSTRING&nbsp;</STRONG>format.</LI></UL><H3 id="toc-hId-605937828"><STRONG>Reading data in Form Layout (line no 19)</STRONG></H3><UL><LI>We would also need the form layout (<STRONG>Adobe Form</STRONG> which was designed and uploaded in <STRONG>Step 10</STRONG>) to render the form.</LI><LI>The form layout is fetched and assigned to <STRONG>LV_XML&nbsp;</STRONG>in <STRONG>XSTRING </STRONG>format.</LI></UL><H3 id="toc-hId-577608014"><STRONG>Getting reference to Form API</STRONG></H3><UL><LI>Passing the <STRONG>Service Definition</STRONG> created in <STRONG>Step 3</STRONG> to get the reference.</LI><LI>This API will be used to get the data from the <STRONG>Form Data Provider&nbsp;</STRONG>in XML format.</LI><LI>The parameter <STRONG>iv_max_depth</STRONG> represents navigation level. In this example, we have Header and Item so, 1 level depth should be fine</LI></UL><pre class="lia-code-sample language-abap"><code> METHOD get_pdf. mc_duplicate_call = abap_true. DATA(lo_fdp_api) = cl_fp_fdp_services=&gt;get_instance( iv_max_depth = 1 iv_service_definition = `ZMM_PR_FORM_DATA` ). DATA(lt_keys) = lo_fdp_api-&gt;get_keys( ). lt_keys[ name = 'PURCHASEREQUISITION' ]-value = im_v_pr. DATA(lv_data) = lo_fdp_api-&gt;read_to_xml_v2( it_select = lt_keys ). DATA(lv_string) = cl_abap_conv_codepage=&gt;create_in( )-&gt;convert( lv_data ). DATA(lv_xml) = lo_fdp_api-&gt;get_xsd_v2( ). DATA(lv_string2) = cl_abap_conv_codepage=&gt;create_in( )-&gt;convert( lv_xml ). DATA(lo_reader) = cl_fp_form_reader=&gt;create_form_reader( `ZMM_PR_OUTPUT` ). DATA(ls_layout) = lo_reader-&gt;get_layout( ). cl_fp_ads_util=&gt;render_pdf( EXPORTING iv_xml_data = lv_data iv_xdp_layout = ls_layout iv_locale = 'en_US' IMPORTING ev_pdf = rt_v_pdf ). mc_duplicate_call = abap_false. ENDMETHOD.</code></pre><H2 id="toc-hId-674497516">Step 14 - Service Binding</H2><P>Create a&nbsp;<STRONG>Service Binding&nbsp;</STRONG>for the RAP application. This should be <STRONG>OData v4</STRONG>, as attachment does not work in OData V2 using CDS Annotation.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Gourab_Dey_1-1768482191111.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/361637i4969C0E2083D1D55/image-size/large?v=v2&amp;px=999" role="button" title="Gourab_Dey_1-1768482191111.png" alt="Gourab_Dey_1-1768482191111.png" /></span></P><P><STRONG>Preview the Application.:</STRONG></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Gourab_Dey_2-1768482397264.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/361661i835F459D76D67295/image-size/large?v=v2&amp;px=999" role="button" title="Gourab_Dey_2-1768482397264.png" alt="Gourab_Dey_2-1768482397264.png" /></span></P><H2 id="toc-hId-477984011">Step 15 - Download the Form</H2><P>Click the link in the <STRONG>Attachment</STRONG> column of any row to download the PDF. <STRONG>Mission accomplished!</STRONG> <span class="lia-unicode-emoji" title=":rocket:">🚀</span></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Gourab_Dey_4-1768482847574.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/361666i60F1716F733AF33E/image-size/medium?v=v2&amp;px=400" role="button" title="Gourab_Dey_4-1768482847574.png" alt="Gourab_Dey_4-1768482847574.png" /></span></P><H1 id="toc-hId-574873513">CONCLUSION</H1><P>Below is the recap of the activities done so far</P><UL><LI>Created the necessary <STRONG>CDS views</STRONG> to fetch the required data, covering both <STRONG>header</STRONG> and <STRONG>item</STRONG> information.</LI><LI>Designated the header consumption CDS view as the <STRONG>Form Data Provider</STRONG> using the appropriate annotation.</LI><LI>Created the <STRONG>Adobe Form</STRONG> in <STRONG>SAP S/4HANA Cloud</STRONG> and exported the corresponding <STRONG>XSD schema</STRONG>.</LI><LI>Designed the form layout locally using <STRONG>Adobe LiveCycle Designer</STRONG>, with the XSD schema used for data binding.</LI><LI>Generated <STRONG>sample XML data</STRONG> locally and used it to preview and validate the form layout.</LI><LI>Uploaded the completed form layout back into <STRONG>S/4HANA Cloud</STRONG> and successfully activated the form.</LI><LI>Created the <STRONG>virtual elements&nbsp;</STRONG>in the consumption view for attachments. Logic has been added fill the Filename, Mime Type and PDF.</LI><LI><STRONG>Service Binding&nbsp;</STRONG>has been created for the for the RAP application (OData V4) and able to download the PDF which is a <STRONG>custom form</STRONG> with <STRONG>custom data source</STRONG>.</LI></UL><H3 id="toc-hId--208446006">One More Thing… 🧠 (For the Curious Minds)</H3><P><EM>If you’ve made it this far, here’s a small <STRONG>challenge for fellow SAP explorers</STRONG>: SAP standard output transactions allow you to download the form XML using the magical command&nbsp;<STRONG>#&amp;&amp;DOWNLOAD_FORM_DATA_XML&amp;&amp;#<BR /></STRONG></EM></P><P>Now the fun part:</P><P><span class="lia-unicode-emoji" title=":backhand_index_pointing_right:">👉</span><STRONG>Why not bring the same superpower to your custom form?</STRONG></P><P>Try adding a provision to download the XML data <STRONG>using the very same command</STRONG>—not a workaround, not a shortcut, but <STRONG>exactly the SAP way</STRONG>.<BR />Bonus points if your implementation is so seamless that it feels like it shipped straight from Walldorf <span class="lia-unicode-emoji" title=":winking_face:">😉</span></P><H3 id="toc-hId--404959511">Signing Off</H3><P><EM>Shared from experience. Use it, challenge it, and improve it—let’s grow together with SAP Grow.<BR /></EM></P> 2026-01-15T14:42:13.195000+01:00 https://community.sap.com/t5/enterprise-resource-planning-blog-posts-by-sap/sap-cloud-erp-s-4hana-cloud-public-edition-2602%E4%BA%AE%E7%82%B9%E5%89%8D%E7%9E%BB-%E5%8F%AF%E6%8B%93%E5%B1%95%E6%80%A7-extensibility/ba-p/14306399 SAP Cloud ERP (S/4HANA Cloud Public Edition) 2602亮点前瞻 — 可拓展性 (Extensibility) 2026-01-20T02:00:00.175000+01:00 Zhehui_Xia28 https://community.sap.com/t5/user/viewprofilepage/user-id/40727 <P><SPAN>大家好,我们即将迎来 SAP S/4HANA Cloud Public Edition 2602 大版本的更新。在本篇博客中,我将会重点展示在 SAP S/4HANA Cloud Public Edition 2602 当中可拓展性部分的亮点更新内容。</SPAN></P><H2 id="toc-hId-1787795517">API 功能的增强与变更</H2><P>API可以帮助我们实现系统间的集成。在2602版本,多个API都迎来了显著的变更:</P><UL><LI><STRONG>业务伙伴API (API_BUSINESS_PARTNER)</STRONG>:新增了“重复检查 (Duplicate Check)”操作。现在,您可以在创建新的业务伙伴之前,通过GET操作来验证具有特定参数的业务伙伴是否已存在,有效避免了主数据的重复创建。</LI><LI><STRONG>成本率API (Cost Rate API)</STRONG>:ODATA V2版本的成本率API已被标记为“弃用”,并将在2702版本中正式停用。取而代之的是功能更强的ODATA V4版本。建议用户尽快迁移到新的API。</LI><LI><STRONG>客户退货、贷项/借项凭证请求API</STRONG>:这是一个<STRONG>需要立即关注的关键变更</STRONG>。为了提升数据完整性,系统对客户退货 (A2X) OData V4 API等相关API加强了数据校验。现在,API将限制在创建凭证时向某些字段传递初始值(空值),以避免后端逻辑覆盖可能导致的混淆和不一致。</LI><LI><STRONG>商业项目API</STRONG>:为防止数据不一致,当资源供应存在未批准的时间记录时,系统将限制通过API删除该资源供应。</LI></UL><H2 id="toc-hId-1591282012">关键用户扩展性增强</H2><P>对于业务专家和关键用户而言,2602版本在<STRONG>自定义字段</STRONG>方面带来了几点重要的提升:</P><UL><LI><STRONG>销售开票凭证自定义字段容量翻倍</STRONG>:销售开票凭证(包括发票、预制发票和开票请求)的抬头和行项目级别自定义字段容量从约3400字节增加到约6800字节,让您能够创建更多或更长的自定义字段。</LI><LI><STRONG>自定义字段数据流打通</STRONG>:<UL><LI><STRONG>从产品主数据到销售凭证</STRONG>:现在可以通过简单的配置,实现自定义字段从产品主数据自动带到销售凭证行项目,并且允许在销售凭证中修改。</LI><LI><STRONG>从SD开票到FI-CA总账</STRONG>:在将SD开票凭证传输到合同应收应付(FI-CA)时,添加到SD开票项目中的自定义字段及其值,现在可以自动继承到FI-CA凭证的总账行项目中。</LI><LI><STRONG>零售站点维护</STRONG>:关键用户根据业务需求,对<STRONG>“维护零售站点”</STRONG>应用进行自定义字段拓展。相关字段包括:零售站点 (Retail Site -&nbsp;RFM_SITE)、站点商品类别 (Site Merchandise Category -&nbsp;RFM_SITEMERCHANDISECATEGORY)、零售供应站点 (Retail Supplying Site -&nbsp;RFM_SITESUPPLYINGSITE)、站点商品类别供应站点 (Site Merchandise Category Supplying Site -&nbsp;RFM_SITEMRCHDSCATSUPPLYINGSITE)。此外,<SPAN>您可以通过在 SAP Business Application Studio 中创建 SAPUI5 适配项目来扩展该应用程序的源代码,并将其部署到公有云系统上。</SPAN></LI></UL></LI></UL><P>此外,也有一些新增<STRONG>业务增强点</STRONG>。例如,在2602中,新增了催款通知的BAdI,允许在运行时将客户特定的字段填充到FI-CA催款通知中,这些字段可以直接在打印表单中使用。</P><H2 id="toc-hId-1394768507">自定义业务对象APP更新</H2><P><SPAN><STRONG>“自定义业务对象”</STRONG>应用发布了新版本。您可以使用此应用创建包含字段、节点和行为的自定义业务对象。基于此类自定义业务对象,您可以生成一个包含数据库表、CDS 视图、OData 服务和 Fiori Elements 用户界面(UI)的应用程序。该应用的旧版本基于 BOPF 框架生成应用程序,而新版本则使用 RAP 框架。这个新应用允许您根据 Clean Core 的原则开发云就绪的应用程序。</SPAN></P><P><SPAN>新版本的APP包含如下几点功能:</SPAN></P><P><SPAN>• 生成功能齐全且包含用户界面(UI)的 RAP 业务对象<BR />• 使用实体操作语言(EML)为业务对象添加行为<BR />• 在自定义业务对象之间创建关联以实现重用<BR />• 使用变更凭证跟踪自定义业务对象中的更改</SPAN></P><P><SPAN><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="blogpic1.png" style="width: 701px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/361476iB0F3223B72561EE8/image-size/large?v=v2&amp;px=999" role="button" title="blogpic1.png" alt="blogpic1.png" /></span></SPAN></P><P>&nbsp;</P><H2 id="toc-hId-1198255002"><STRONG>自定义CDS视图的重要更新</STRONG></H2><P>如果您的自定义CDS视图是基于 I_ProjectBillingElement 创建的,请注意本次有<STRONG>需要立即处理的关键更新</STRONG>。为提升性能,系统底层的 I_ProjectBillingElement 视图已将一个旧的关联 (_WBSElement) 替换为新的关联 (_EnterpriseProjectElement)。</P><P>需要执行的操作分为两种情况:</P><P>对于<STRONG>关键用户可拓展性</STRONG>:操作相对简单。只需进入 Custom CDS Views 应用,找到层级最顶端的那个自定义视图,然后重新发布即可。<BR />对于3SL中利用了<STRONG>开发者可拓展性</STRONG>:操作更为复杂。需要手动修改自定义视图的代码,显式地添加新的 _EnterpriseProjectElement 关联以及 ProjectElementUUID 字段。</P><P>请注意,<SPAN>如果不进行更新,系统将无法正确应用数据权限控制,导致用户获得</SPAN><STRONG>无限制的数据访问权限</STRONG><SPAN>,这是一个严重的安全漏洞。<BR /></SPAN></P><P>&nbsp;</P><P><SPAN>以上就是在2602版本中可拓展性的亮点更新。更多详细内容,请参考:<U><A href="https://help.sap.com/whats-new/7d3d11840a6543329e72391cf4d48e2d?locale=en-US&amp;state=PRODUCTION&amp;version=1" target="_blank" rel="noopener noreferrer">What’s New Viewer</A></U></SPAN></P> 2026-01-20T02:00:00.175000+01:00 https://community.sap.com/t5/technology-blog-posts-by-sap/how-to-enable-bc-set-support-for-bc-app/ba-p/14313371 How to enable BC Set support for BC app 2026-01-23T11:06:48.347000+01:00 patrick_winkler https://community.sap.com/t5/user/viewprofilepage/user-id/729521 <H1 id="toc-hId-887480474" id="toc-hId-1659546876">Introduction</H1><P><SPAN>In order to use the "import from transport" function in the <A href="https://help.sap.com/docs/abap-cloud/abap-development-tools-user-guide/creating-business-configuration-sets" target="_blank" rel="noopener noreferrer">BC Set editor</A>, the data must be recorded in the context of a transport object (TOBJ) and the business configuration maintenance object (SMBC) must maintain the corresponding transport object attribute.</SPAN></P><P><SPAN>This blog explains the necessary steps to enable existing SMBC objects for the "import from transport" functionality.&nbsp;Newly generated SMBC objects are automatically enabled.<BR /><BR /></SPAN>This blog is relevant for</P><UL><LI><a href="https://community.sap.com/t5/c-khhcw49343/SAP+S%25252F4HANA+Cloud+Public+Edition/pd-p/08e2a51b-1ce5-4367-8b33-4ae7e8b702e0" class="lia-product-mention" data-product="1199-1">SAP S/4HANA Cloud Public Edition</a></LI><LI><a href="https://community.sap.com/t5/c-khhcw49343/SAP+BTP+ABAP+environment/pd-p/73555000100800001164" class="lia-product-mention" data-product="11-1">SAP BTP ABAP environment</a></LI></UL><P>Further reading:</P><UL><LI><A href="https://community.sap.com/t5/tag/business%20configuration%20maintenance%20object/tg-p/board-id/technology-blog-sap" target="_blank">Related blog posts</A></LI><LI>Learn how you can use<SPAN>&nbsp;</SPAN><A href="https://learning.sap.com/products/business-technology-platform/development/abap?url_id=text-sapcommunity-prdteng-ABAP" target="_blank" rel="noopener noreferrer">ABAP technology</A><SPAN>&nbsp;</SPAN>to develop innovative applications and business solutions across SAP’s portfolio on<SPAN>&nbsp;</SPAN><A href="https://learning.sap.com/products/business-technology-platform/development/abap" target="_blank" rel="noopener noreferrer">SAP Learning Site</A>.</LI></UL><H2 id="toc-hId-1592116090">Case 1: Transport object is already used in the BC app</H2><P><SPAN>As of release 2302, when you use the&nbsp;</SPAN><A href="https://help.sap.com/docs/btp/sap-business-technology-platform/generating-business-configuration-maintenance-object-with-generate-abap-repository-objects-wizard" target="_self" rel="noopener noreferrer">ADT wizard</A><SPAN>&nbsp;to generate a business configuration maintenance object (SMBC), a transport object (TOBJ) is generated by default and used in the behavior implementation. In this case you only need to maintain the new "Transport Object" attribute of the SMBC object.</SPAN></P><P>You can do this manually in the ADT editor of the SMBC object or programmatically. First you need to find out the name of the transport object. In most cases the name is equal to the name of the SMBC object. You can open the behavior implementation class and check the first couple of rows to verify the name of the transport object ( depending on the release the object was created: CO_TRANSPORT_OBJECT or TDAT_NAME )</P><pre class="lia-code-sample language-abap"><code>CLASS LHC_COMPANYCODEALL DEFINITION FINAL INHERITING FROM CL_ABAP_BEHAVIOR_HANDLER. PUBLIC SECTION. CONSTANTS: CO_ENTITY TYPE abp_entity_name VALUE `ZI_COMPANYCODE_S`, CO_TRANSPORT_OBJECT TYPE mbc_cp_api=&gt;indiv_transaction_obj_name VALUE `ZCOMPANYCODE`, CO_AUTHORIZATION_ENTITY TYPE abp_entity_name VALUE `ZI_COMPANYCODE`.</code></pre><pre class="lia-code-sample language-abap"><code>CLASS LHC_RAP_TDAT_CTS DEFINITION FINAL. PUBLIC SECTION. CLASS-METHODS: GET RETURNING VALUE(RESULT) TYPE REF TO IF_MBC_CP_RAP_TDAT_CTS. ENDCLASS. CLASS LHC_RAP_TDAT_CTS IMPLEMENTATION. METHOD GET. result = mbc_cp_api=&gt;rap_tdat_cts( tdat_name = 'ZTAB6'</code></pre><P>You can maintain the attribute "Transport Object" in the "Service Configuration" section of the SMBC object in the ADT editor. Save and activate.</P><P>You can update this attribute also programmatically:</P><pre class="lia-code-sample language-abap"><code>CLASS zset_tobj DEFINITION PUBLIC FINAL CREATE PUBLIC . PUBLIC SECTION. INTERFACES if_oo_adt_classrun . PROTECTED SECTION. PRIVATE SECTION. ENDCLASS. CLASS zset_tobj IMPLEMENTATION. METHOD if_oo_adt_classrun~main. DATA smbc_id TYPE TABLE OF if_mbc_cp_api_business_config=&gt;ty_technical_id WITH EMPTY KEY. SELECT ABAPObject FROM I_CustABAPObjDirectoryEntry WHERE ABAPObjectType = 'SMBC' AND ABAPObject LIKE '&lt;NAMESPACE&gt;%' INTO TABLE @smbc_id . LOOP AT smbc_id ASSIGNING FIELD-SYMBOL(&lt;smbc_id&gt;). out-&gt;write( |SMBC object: { &lt;smbc_id&gt; }| ). TRY. DATA(tobj) = mbc_cp_api=&gt;business_configuration_api( &lt;smbc_id&gt; )-&gt;read( )-transport_object. IF tobj IS NOT INITIAL. out-&gt;write( |TOBJ already set: { tobj }| ). ELSE. mbc_cp_api=&gt;business_configuration_api( &lt;smbc_id&gt; )-&gt;update_transport_object( transport_object = &lt;smbc_id&gt; "if the table list of the transport object does not match the table list of the behavior definition an exception is raised transport = '&lt;Workbench Request&gt;' ). "transport=space for local objects out-&gt;write( |TOBJ set: { mbc_cp_api=&gt;business_configuration_api( &lt;smbc_id&gt; )-&gt;read( )-transport_object }| ). ENDIF. CATCH cx_root INTO DATA(exc). out-&gt;write( |Error: { exc-&gt;get_text( ) }| ). ENDTRY. ENDLOOP. ENDMETHOD. ENDCLASS.</code></pre><H2 id="toc-hId-1395602585">Use Case 2: The BC app does not use a transport object</H2><P>Delete the existing BC app and create it again using the ADT wizard.</P><P>If you cannot do that, you can also use the ADT wizard to generate a new BC app for the table(s) with different object names. Move the generated transport object to the package of the old BC app and maintain the transport object attribute of the old SMBC object.<BR />If necessary, adjust the generated TOBJ by changing the table piece list.<BR />Adjust the old behavior implementation class by by replacing the existing method implementation with the equivalent method implementation of the new behavior implementation class. Adjust the constants to match the old object names.<BR />You can now delete the newly generated objects.</P><H2 id="toc-hId-1199089080">Transport object names</H2><P>The last character of the technical name of a transport object is its type. In the SMBC and TOBJ ADT editor, the technical name of the transport object is used. Use the input help to select a transport object.<BR />In the API calls in the behavior implementation class, the type of a transport object is either a separate parameter or T (Individual Transaction Object) by default. That is, remove the last character for the name of the transport object.<BR />Example:&nbsp;<BR />In ADT, the name of the transport object is "ZTOBJ1&nbsp; &nbsp; T" or "ZCOMPANYCODET". In the behavior implementation class, use "ZTOBJ1" or "ZCOMPANYCODE".</P><P>&nbsp;</P> 2026-01-23T11:06:48.347000+01:00 https://community.sap.com/t5/enterprise-resource-planning-blog-posts-by-sap/using-custom-logic-in-sap-s-4hana-cloud-to-change-field-status-of-purchase/ba-p/14312488 Using Custom Logic in SAP S/4HANA Cloud to change field status of Purchase Requisition 2026-01-26T04:50:48.909000+01:00 Zhehui_Xia28 https://community.sap.com/t5/user/viewprofilepage/user-id/40727 <H2 id="toc-hId-1765539711" id="toc-hId-1788600803">Problem Background:</H2><P><SPAN>We received a customer request: when creating a purchase requisition, they want the Valuation Price field to be optional, but in the current system this field is mandatory.</SPAN></P><H2 id="toc-hId-1569026206" id="toc-hId-1592087298">Solution:</H2><P>Attempt to meet the requirement through custom logic using a BAdI.</P><H2 id="toc-hId-1372512701" id="toc-hId-1395573793">Analysis Steps:</H2><P>1. After searching in SAP for Me, we found a KBA&nbsp;<A href="https://me.sap.com/notes/0003322867" target="_blank" rel="noopener noreferrer">3322867 - Valuation Price field is mandatory in Create Purchase Requisitions app - SAP for Me</A> which provides a solution to this problem. So we can try to use BAdI&nbsp;<SPAN><STRONG>MM_PUR_S4_PR_FLDCNTRL_SIMPLE</STRONG> to solve this problem.</SPAN></P><P><SPAN>2. We enter APP&nbsp;<STRONG>Custom Logic&nbsp;</STRONG>to create an implementation. The description of this BAdI is "Change of Field Control for Purchase Requisitions". In the documentation, we can get more information including supported fields. "PURCHASEREQUISITIONPRICE -&nbsp;Valuation Price" is included, that means our requirement can be fulfilled by this BAdI.</SPAN></P><P>3. With this BAdI, we can set four status for supported fields of Purchase Requisition: Hidden, Read-only, Mandatory, Optional.</P><UL><LI>'-': To hide the field</LI><LI>'*': To make the field read-only</LI><LI>'+': To make the field mandatory</LI><LI>'.': To make the field optional</LI></UL><P>4. The sample code of this BAdI is quite readable and easy. Based on this problem,&nbsp;<SPAN>implement the BAdI. The specific code is as follows.</SPAN></P><pre class="lia-code-sample language-abap"><code>FIELD-SYMBOLS &lt;fs&gt; TYPE mmpur_s_pr_fldsel. READ TABLE fieldselection_table ASSIGNING &lt;fs&gt; WITH KEY field = 'PURCHASEREQUISITIONPRICE'. IF sy-subrc EQ 0. &lt;fs&gt;-fieldstatus = '.'. ENDIF.</code></pre><P>5. After testing, the BAdI works prefect. This BAdI not only supports GUI APP - <STRONG>Create Purchase Requisition - Advanced</STRONG>, but also supports Fiori APP - <STRONG>Manage Purchase Requisitions - Professional</STRONG>.</P><H2 id="toc-hId-1175999196" id="toc-hId-1199060288">Conclusion:</H2><P>By reading this article and several previous blogs on similar scenarios, I hope you now understand how to use custom logic to apply certain restrictions when creating preliminary invoices for purchase orders.<BR />You can find more information about SAP S/4HANA Cloud procurement-related issues at the following link:<SPAN>&nbsp;</SPAN><A href="https://community.sap.com/t5/c-khhcw49343/SAP+S%25252F4HANA+Cloud+Public+Edition+Sourcing+and+Procurement/pd-p/a906d110-8210-4641-9e54-4744b42f06d0" target="_self">SAP S/4HANA Cloud Public Edition Sourcing and Procurement - SAP Community</A></P><P>You can also read more blogs about SAP S/4HANA Cloud procurement at the following link:<SPAN>&nbsp;</SPAN><A href="https://community.sap.com/t5/c-khhcw49343/SAP+S%25252F4HANA+Cloud+Public+Edition+Sourcing+and+Procurement/pd-p/a906d110-8210-4641-9e54-4744b42f06d0" target="_self">SAP S/4HANA Cloud Public Edition Sourcing and Procurement - SAP Community</A></P><P>If you have any suggestions or thoughts about this article, please feel free to share them in the comments section. I look forward to communicating with you. You are also welcome to follow my personal account, and I look forward to seeing you in the next blog post!</P> 2026-01-26T04:50:48.909000+01:00 https://community.sap.com/t5/technology-blog-posts-by-sap/sap-icc-introducing-new-refreshed-framework-two-paths-to-confidence/ba-p/14317798 SAP ICC Introducing New Refreshed Framework: Two Paths to Confidence 2026-01-29T14:37:02.527000+01:00 VenketesanGanesh https://community.sap.com/t5/user/viewprofilepage/user-id/1402488 <P>SAP always enables partners to extend its solutions in ways that foster innovation while preserving the stability of the core system. This rests on four architectural principles that shape how SAP builds solutions and how partners extend them.</P><UL><LI>Cloud-First architecture</LI><LI>Clean Core extensibility principle</LI><LI>Business AI and intelligent applications</LI><LI>Data-driven business operations</LI></UL><P>SAP Integration and Certification Center (SAP ICC) goal is maintaining ecosystem quality while avoiding disruptive changes that unnecessarily burden partners or customers.</P><P>The certification framework is designed to validate that partner applications enhance our value proposition, maintain the technical qualities required for continuous innovation, and align with our strategic direction and below priorities</P><UL><LI>Platform alignment matters</LI><LI>Upgrade resilience is essential</LI><LI>Standard integration methods</LI></UL><P>As a partner, if you are looking to extend SAP solutions, integrate your own solution, build a standalone application from scratch, or develop a comprehensive offering embracing SAP technology, the SAP ICC team provides you with the right services.</P><P><STRONG><A href="https://partneredge.sap.com/en/partnership/development/certify_software.html?" target="_blank" rel="noopener noreferrer">Two paths to confidence: Integration Certification and Interoperability Review.</A></STRONG></P><P>To know more please join us at the</P><P><STRONG>In-person events</STRONG></P><P>Location: SAP Labs India - Whitefield, Bengaluru - 560066</P><P>Date: 05th February 2026</P><P><A href="https://events.sap.com/in-sappartnermeet-upindia/en_us/home.html" target="_blank" rel="noopener noreferrer">SAP Partner Meet-up: Driving Innovations Together</A></P><P><STRONG>Webinar: </STRONG></P><UL><LI><STRONG><U><A href="https://events.teams.microsoft.com/event/606bb462-9ac1-425c-9807-3c34f0d1166f@42f7676c-f455-423c-82f6-dc2d99791af7" target="_blank" rel="noopener nofollow noreferrer">EMEA/APAC session</A></U></STRONG><BR />10:00–11:00 CET (UTC+1) → 14:30 IST, 17:00 SGT, 18:00 CST (China), 20:00 AEST</LI><LI><STRONG><U><A href="https://events.teams.microsoft.com/event/867210b0-0962-446f-8671-825a0dfec4ba@42f7676c-f455-423c-82f6-dc2d99791af7" target="_blank" rel="noopener nofollow noreferrer">NA/LAC session</A></U></STRONG><BR />12:00–13:00 ET (UTC‑5) → 11:00 CT (MX), 10:00 MT, 09:00 PT, 14:00 BRT</LI></UL> 2026-01-29T14:37:02.527000+01:00 https://community.sap.com/t5/technology-blog-posts-by-sap/kyma-evolution-transforming-sap-kyma-into-a-tailor-made-saas-platform-for/ba-p/14317418 Kyma Evolution: Transforming SAP Kyma into a tailor-made SaaS Platform for sbs extensions 2026-02-03T07:53:06.319000+01:00 ChristianWeiss https://community.sap.com/t5/user/viewprofilepage/user-id/136917 <H2 id="toc-hId-1788749541"><STRONG>Introduction</STRONG></H2><P><SPAN>Hello SAP Community!</SPAN></P><P data-unlink="true"><SPAN>As an Extensibility Expert, I’m constantly looking for the most efficient ways to build and operate enterprise-grade extensions for the SAP Cloud ERP following the <SPAN><A href="https://www.sap.com/resources/what-is-a-clean-core" target="_self" rel="noopener noreferrer">Clean Core principles</A><SPAN>. We all know the Cloud Application Programming Model (CAP) is the go-to framework for Cloud Native side-by-side Extensions on BTP, but where you run them on large scale matters just as much as how you code it.</SPAN></SPAN>&nbsp;</SPAN></P><P data-unlink="true"><SPAN>Today, I’m starting a 3-part series (<A href="https://community.sap.com/t5/technology-blog-posts-by-sap/part-2-runtime-architecture-amp-cost-efficiency-gains/ba-p/14317915" target="_self">Part 2,</A> <A href="https://community.sap.com/t5/technology-blog-posts-by-sap/part-3-automated-application-lifecycle-management-in-action/ba-p/14317937" target="_self">Part 3 )</A>&nbsp;"Kyma Evolution". We will explore how the powercouple of Kyma in combination with the <SPAN><A href="https://sap.github.io/cap-operator/" target="_self" rel="nofollow noopener noreferrer">CAP Operator</A><SPAN> provides a scalable, high-performance, cost-effective runtime for CAP Multitenancy SaaS applications. In case you don’t know SAP Kyma and its benefits yet, please have a look at the </SPAN></SPAN><SPAN><A href="https://learning.sap.com/courses/developing-applications-in-sap-btp-kyma-runtime/exploring-the-benefits-of-the-sap-btp-kyma-runtime_f093d2b5-a598-43bb-9a25-e224e97b747a" target="_self" rel="noopener noreferrer">Kyma Learning</A><SPAN> which explains it quite well.&nbsp;</SPAN></SPAN>&nbsp;</SPAN></P><H2 id="toc-hId-1592236036"><STRONG>The paradigm shift: From monolithic to a modular environment</STRONG></H2><P data-unlink="true"><SPAN>For a long time, SAP Kyma was seen as a fixed bundle of tools. You got everything, whether you needed it or not. That has changed. With the <SPAN><A href="https://help.sap.com/docs/btp/sap-business-technology-platform/kyma-modules" target="_self" rel="noopener noreferrer">Kyma Module Concept</A><SPAN>, the platform is now modular and extensible.&nbsp;</SPAN></SPAN>&nbsp;</SPAN><SPAN>Even more exciting is the introduction of <SPAN><A href="https://kyma-project.io/external-content/community-modules/docs/user/README.html" target="_self" rel="nofollow noopener noreferrer">Community Modules</A><SPAN>. This means Kyma is no longer limited to what SAP provides out-of-the-box. The community can now contribute extensions. One of the most powerful examples so far is the CAP Operator.&nbsp;</SPAN></SPAN>&nbsp;</SPAN><SPAN>By adding the CAP Operator as a module, you transform a generic Kyma cluster into a specialized CAP SaaS Runtime.</SPAN></P><H2 id="toc-hId-1395722531"><STRONG>The "Smart Broker": Why the CAP Operator is a game-changer</STRONG></H2><P><SPAN>When we compare Kyma to SAP BTP Cloud Foundry, the advantages of using a dedicated Operator become clear. While Cloud Foundry is a great general-purpose platform, the CAP Operator on Kyma acts as a "smart broker" specifically for CAP Applications.</SPAN></P><P><SPAN>Key Benefits for Partners and Customers:</SPAN></P><UL><LI><STRONG>100% Automated Lifecycle Management<SPAN>: </SPAN></STRONG>The Operator understands CAP. It handles application deployment, tenant management, DB model updates, and service bindings automatically and new capabilities like <A href="https://help.sap.com/docs/hana-cloud/sap-hana-cloud-multitenancy/introducing-sap-hana-cloud-multitenancy" target="_self" rel="noopener noreferrer">SAP HANA Cloud Native tenants </A>(<A href="https://www.sap.com/assetdetail/2025/01/fae009ce-f07e-0010-bca6-c68f7e60039b.html" target="_self" rel="noopener noreferrer">Videocast</A>) including tenant backup and restore management can be added once available.</LI><LI><STRONG>Cost-Efficiency via Higher Container Density<SPAN>: </SPAN></STRONG>In contrast to Cloud Foundry, Kyma allows for fine-grained resource limits. This means you can run more services on the same infrastructure, lowering your BTP bill when you are running multiple CAP Applications.</LI><LI><STRONG>Cost-Efficiency via Resource Sharing:</STRONG> Expensive Services like SAP HANA Cloud and Cloud Logging can be shared in CF and Kyma. However we will see in <A href="https://community.sap.com/t5/technology-blog-posts-by-sap/part-2-runtime-architecture-amp-cost-efficiency-gains/ba-p/14317915" target="_self">Part 2</A> that in the Kyma environment this will be more elegant and simplified using the CAP Operator.</LI><LI><STRONG>Enterprise Resilience &amp; Day-2 Ops:</STRONG> It provides built-in "Reconciliation Loops." If a tenant's database connection fails, the Operator detects and fixes it without human intervention.</LI><LI><STRONG>Advanced Networking &amp; Security (Zero Trust Architecture):</STRONG> One of the most significant advantages over Cloud Foundry is how Kyma handles connectivity. In Cloud Foundry, preventing a service from being publicly accessible often requires manual effort. In Kyma, thanks to the CAP Operator's integration with Istio, your internal&nbsp; services stay cluster-internal by default. You have full control over the attack surface.</LI><LI><STRONG><STRONG>Integrated Domain Management:</STRONG></STRONG><SPAN> Managing Custom Domains becomes a native experience using the CAP Operator. Instead of juggling external services for certificates, you can orchestrate your SaaS-brand URLs directly within the Kyma environment, providing a seamless, secure and automated experience.</SPAN></LI></UL><H2 id="toc-hId-1199209026"><STRONG>The ecosystem enablers: Extensibility using CAP Plugins + Kyma Modules</STRONG></H2><P><SPAN>SAP is providing enablers for the ecosystem on different levels:</SPAN></P><OL><LI><SPAN>At the Infrastructure Level (Kyma): We use Modules (like the CAP Operator) to make the runtime "CAP-aware."</SPAN></LI><LI><SPAN>At the Application Level (CAP): We use <A href="https://cap.cloud.sap/docs/plugins/" target="_blank" rel="noopener nofollow noreferrer">CAP Plugins</A>&nbsp;to add business features like multitenancy or audit logging with a single command.</SPAN></LI><LI>At CAP CLI Level: We can add plugins like <A href="https://github.com/cap-js/cap-operator-plugin" target="_self" rel="nofollow noopener noreferrer">CAP Operator Plugin</A> to the&nbsp;cds cli which provides capabilities to generate CAP Operator resources essential for deploying multi-tenant CAP Applications from your project setup.</LI></OL><P><SPAN>This synergy creates the ultimate development and operations experience. You use plugins to build fast and the Operator to run smart and it enables you to contribute and to add your specific capabilities at any level.</SPAN></P><H2 id="toc-hId-1002695521"><STRONG>Turning Kyma into a CAP Runtime</STRONG></H2><P><SPAN>The beauty of this evolution is simplicity. You can now add the CAP Operator Community Module directly from your Kyma Cockpit using the Add Modules or Modify Modules Button on the Cluster Details Screen.</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ChristianWeiss_0-1769755560640.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/367263i51979E8029DF7661/image-size/large?v=v2&amp;px=999" role="button" title="ChristianWeiss_0-1769755560640.png" alt="ChristianWeiss_0-1769755560640.png" /></span></P><P><SPAN>The Modules overview shows you the SAP Provided and Managed Modules under the Module Pane and the installed Community Modules in a separate Pane.</SPAN></P><P><SPAN>As a next step use the Add button on the Community Module Pane.</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ChristianWeiss_1-1769755560641.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/367261i5C2D6A8A40C33CED/image-size/large?v=v2&amp;px=999" role="button" title="ChristianWeiss_1-1769755560641.png" alt="ChristianWeiss_1-1769755560641.png" /></span></P><P><SPAN>On the next screen you need to choose the Add Source YAML’s button to get the list of community modules.&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ChristianWeiss_2-1769755560643.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/367262i9A4373899D1581FA/image-size/large?v=v2&amp;px=999" role="button" title="ChristianWeiss_2-1769755560643.png" alt="ChristianWeiss_2-1769755560643.png" /></span></P><P><SPAN>Just keep the defaults and press the Add button.</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ChristianWeiss_3-1769755560644.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/367264i3E837B923A2BDF69/image-size/large?v=v2&amp;px=999" role="button" title="ChristianWeiss_3-1769755560644.png" alt="ChristianWeiss_3-1769755560644.png" /></span></P><P><SPAN>This will load the list of currently available Community Modules from which you need to check the cap-operator Tile and press Add.&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ChristianWeiss_4-1769755560644.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/367265iB6084074BDFA8A2F/image-size/large?v=v2&amp;px=999" role="button" title="ChristianWeiss_4-1769755560644.png" alt="ChristianWeiss_4-1769755560644.png" /></span></P><P><SPAN>This will start the automatic installation of the CAP Operator Components into the namespace called cap-operator-system.&nbsp;</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ChristianWeiss_5-1769755560646.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/367266i317643E1C2BBD9A2/image-size/large?v=v2&amp;px=999" role="button" title="ChristianWeiss_5-1769755560646.png" alt="ChristianWeiss_5-1769755560646.png" /></span></P><P><SPAN>The installation and module status will be displayed in the overview and will turn into green after installation is successfully finished.</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ChristianWeiss_6-1769755560646.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/367267iDB28E33E752F9095/image-size/large?v=v2&amp;px=999" role="button" title="ChristianWeiss_6-1769755560646.png" alt="ChristianWeiss_6-1769755560646.png" /></span></P><P data-unlink="true"><SPAN>By doing this, you aren't just deploying code; you are creating an intelligent system that manages your S/4HANA Multitenancy extensions built with CAP for you as it adds <A href="https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources" target="_self" rel="nofollow noopener noreferrer">Custom Resources (CRs)</A> like CAPApplication, CAPApplicationVersion, CAP Tenant and other to your cluster. This will enable:&nbsp;</SPAN></P><UL><LI><SPAN>Quick and easy deployment of CAP application backends, router, and related networking components.</SPAN></LI><LI><SPAN>Integration with SAP Software-as-a-Service Provisioning service to handle asynchronous tenant subscription requests, executing provisioning / deprovisioning tasks as Kubernetes jobs.</SPAN></LI><LI><SPAN>Automated upgrades of known tenants as soon as new application versions are available.</SPAN></LI><LI><SPAN>Support for deployment of service-specific content / configuration as a Kubernetes job with every application version (for example, HTML5 application content to SAP HTML5 Application Repository Service).</SPAN></LI><LI>Management of TLS certificates and DNS entries related to the deployed application, with support of customer-specific domains.</LI></UL><P><SPAN>and further capabilities.</SPAN></P><H2 id="toc-hId-806182016"><STRONG>What’s Next?</STRONG></H2><P><SPAN>In <A href="https://community.sap.com/t5/technology-blog-posts-by-sap/part-2-runtime-architecture-amp-cost-efficiency-gains/ba-p/14317915" target="_self">Part 2</A>, we will dive deeper. We’ll look in more details of the runtime and at a cost benefits to prove why this modular approach is a win for your bottom line.&nbsp;</SPAN><SPAN>What are your thoughts on the modular Kyma concept? Have you tried the CAP Operator yet? Have you ideas for additional community modules for the ecosystem?</SPAN></P> 2026-02-03T07:53:06.319000+01:00 https://community.sap.com/t5/technology-blog-posts-by-sap/part-2-runtime-architecture-amp-cost-efficiency-gains/ba-p/14317915 Part 2: Runtime Architecture & Cost efficiency gains 2026-02-04T16:53:28.002000+01:00 ChristianWeiss https://community.sap.com/t5/user/viewprofilepage/user-id/136917 <H2 id="toc-hId-1788754343"><STRONG>Introduction</STRONG></H2><P><SPAN>In <A href="https://community.sap.com/t5/technology-blog-posts-by-sap/kyma-evolution-transforming-sap-kyma-into-a-tailor-made-saas-platform-for/ba-p/14317418" target="_self">Part 1</A>, we introduced the </SPAN><STRONG>CAP Operator</STRONG><SPAN><STRONG> as the brain to make out of your Kyma Cluster a runtime for CAP Multitenancy SaaS applications.</STRONG> Today, we dive into technical architecture. We will see why Kyma isn't just "another place to run containers," but can be turned into a highly optimized environment that saves costs by being smarter about how it uses resources, especially when compared to a traditional Cloud Foundry setup, important if you need to run CAP Multitenancy Applications on a large scale.</SPAN></P><H2 id="toc-hId-1592240838"><STRONG>1. The Core Architecture paradigm: Declarative Tenant Management</STRONG></H2><P><SPAN>While Cloud Foundry relies on imperative commands (like </SPAN><SPAN>cf push or cf deploy</SPAN><SPAN>), the CAP Operator uses </SPAN><A href="https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources" target="_blank" rel="noopener nofollow noreferrer">Custom Resources (CRs)</A><SPAN> the Kubernetes extensibility API for customization. The most important one for SaaS Multitenancy CAP Solutions is the </SPAN><STRONG>CAPTenant.</STRONG></P><P><SPAN>In Cloud Foundry, the </SPAN>Service Manager<SPAN> handles the creation of HDI containers, and it does the same in Kyma. However, the CAP Operator adds a layer of </SPAN><STRONG>"Operational Intelligence"</STRONG><SPAN>:</SPAN></P><UL><LI><STRONG>Autonomous Monitoring:</STRONG><SPAN> The Operator doesn't just trigger the Service Manager; it monitors the entire lifecycle of the tenant's database schema. If a </SPAN><SPAN>cds deploy</SPAN><SPAN> (migration) fails, the Operator detects the "Unhealthy" state and can automatically retry or alert, integrated directly into the Kubernetes event stream.</SPAN></LI><LI><STRONG>State Reconciliation:</STRONG><SPAN> It ensures that the state of your tenants always matches your configuration. If a tenant record is stuck, the Operator's reconciliation loop acts as an automated "Day-2" administrator.</SPAN></LI><LI><STRONG>Automatic creation of the Provider tenant</STRONG><SPAN>: The CAP Operator will automatically take care that the provider tenant for your SaaS Application is created and updated like for the Subscriber tenants, whereas in Cloud Foundry you will need to to care.&nbsp;</SPAN></LI></UL><H2 id="toc-hId-1395727333">2. The "Zero-Idle" secret: On-Demand MTXS Pods</H2><P><SPAN>In a typical CAP multitenancy setup, the</SPAN><STRONG> CAP MTXS component is the heavy lifter.</STRONG><SPAN> It handles onboarding, unsubscription and database upgrades.</SPAN></P><P><STRONG>The Cloud Foundry Challenge:</STRONG><SPAN> In CF, the MTXS logic often runs as one container</SPAN><SPAN>&nbsp;or a permanent process within your application instance. This means you are constantly paying for the RAM and CPU of this "waiting" process, even if no one is subscribing to your app for days.</SPAN></P><P><STRONG>The Kyma + CAP Operator Advantage:</STRONG><SPAN> The Operator implements what we call a </SPAN><STRONG>"Zero-Idle" policy</STRONG><SPAN> for provisioning tasks:</SPAN></P><UL><LI><STRONG>Trigger-based Lifecycle:</STRONG><SPAN> When a subscription event occurs, the CAP Operator spins up a </SPAN><STRONG>short-lived Job Pod</STRONG><SPAN> specifically for the MTXS task of that tenant. For more details on how the CAP Operator manages the tenant lifecycle please have a look at the </SPAN><A href="https://sap.github.io/cap-operator/docs/usage/tenant-provisioning/" target="_blank" rel="noopener nofollow noreferrer"><SPAN>Tenant Provisioning Documentation</SPAN></A><SPAN>.</SPAN></LI><LI><STRONG>Scale-to-Zero:</STRONG><SPAN>&nbsp;With the CAP Operator you can <STRONG>run upgrades of your database tenants in parallel</STRONG>. Once the tenant is successfully managed and the database tenant is ready, the MTXS Pod is terminated.</SPAN></LI><LI><STRONG>Cost Benefit:</STRONG><SPAN> You pay </SPAN>zero<SPAN> for the MTXS infrastructure during idle times. In large-scale landscapes with many extensions, this optimization can <STRONG>reduce your runtime memory footprint by </STRONG></SPAN><STRONG>20–30%</STRONG><SPAN>.</SPAN></LI></UL><H2 id="toc-hId-1199213828"><STRONG>3. Scaling without linear cost growth</STRONG></H2><P><SPAN>A common concern is that Kubernetes might be more expensive than Cloud Foundry. The reality is the opposite when scaling SaaS:</SPAN></P><OL><LI><STRONG>Bin-Packing:</STRONG><SPAN> Kubernetes allows for "Overcommitting." Since your applications and tenants aren't all active at the same millisecond, you can pack more application instances onto a single K8S Node than the rigid memory cells of CF allow.</SPAN></LI><LI><STRONG>Resource Pooling:</STRONG><SPAN> By using the CAP Operator to orchestrate the Service Manager, you can efficiently fill up large, cost-effective HANA Cloud instances. You avoid the "base cost" of having many small, underutilized HANA instances.</SPAN></LI><LI><STRONG>Efficiency Gains:</STRONG><SPAN> As you grow from 10 to 100 tenants, your infrastructure costs grow at a much flatter angle because the "management overhead" (like MTXS) only consumes resources when it's actually working.</SPAN></LI></OL><H2 id="toc-hId-1002700323"><STRONG>4. Centralized Observability: Selective Logging</STRONG></H2><P><SPAN>Logging is often an overlooked cost driver. While both BTP environments use the </SPAN><STRONG>SAP Cloud Logging Service which can be shared among multiple deployments</STRONG><SPAN>, the way how it's done and how they handle logging data (storage as the major cost driver) is fundamentally different.</SPAN></P><UL><LI><STRONG>Cloud Foundry:</STRONG><SPAN> Every app instance pushes all logs blindly to the service. You have little control over the volume.</SPAN></LI><LI><STRONG>Kyma (The Daemon Approach):</STRONG><SPAN> Kyma uses the </SPAN><STRONG>Telemetry Module</STRONG><SPAN> (Fluent Bit) running as a daemon on every node.&nbsp;</SPAN></LI><UL><LI><STRONG>Pre-Filtering:</STRONG><SPAN> You can define a </SPAN><SPAN>LogPipeline</SPAN><SPAN> to filter logs </SPAN><I><SPAN>before</SPAN></I><SPAN> they leave the cluster. For example, you can exclude send logs from specific production namespaces or filter the logs by specific attributes.</SPAN></LI><LI><STRONG>Centralized Sharing:</STRONG><SPAN> You don't need to bind every app. You define one central pipeline that securely routes logs from the entire cluster to a single Cloud Logging instance, providing a unified view with significantly lower ingest costs.</SPAN></LI></UL></UL><P><SPAN>On how to use the SAP Cloud Logging with SAP Kyma, please have a look into the </SPAN><A href="http://community.sap.com/t5/technology-blog-posts-by-sap/kyma-integration-with-sap-cloud-logging-part-1-introduction-and-shipping/ba-p/13648649" target="_blank"><SPAN>Kyma Integration with SAP Cloud Logging Blog</SPAN></A><SPAN>.</SPAN></P><H2 id="toc-hId-806186818"><STRONG>Summary: The Architect's choice</STRONG></H2><P><SPAN>Choosing Kyma and the CAP Operator isn't just about a "new technology." It's a strategic decision to move <STRONG>from </STRONG></SPAN><STRONG>reserved resources to on-demand resources and how to utilize them more efficiently. </STRONG></P><UL><LI><STRONG>CF:</STRONG><SPAN> Predictable, but you often pay for "idling" capacity.</SPAN></LI><LI><STRONG>Kyma + CAP Operator:</STRONG><SPAN> Dynamic, ensuring you only pay for what is actively serving your business or your tenants.</SPAN></LI></UL><H2 id="toc-hId-609673313"><STRONG>What’s Next?</STRONG></H2><P><SPAN>Now that we have seen how the Power couple ”BTP Kyma&amp;CAP Operator” enables you to lower your infrastructure cost in case of running CAP applications on large scale, we will see in <A href="https://community.sap.com/t5/technology-blog-posts-by-sap/part-3-automated-application-lifecycle-management-in-action/ba-p/14317937" target="_self">Part 3</A> how the CAP Operator helps you to run your Application Lifecycle Management 100% automated which is a further important pillar to reduce your overall TCO.</SPAN></P> 2026-02-04T16:53:28.002000+01:00 https://community.sap.com/t5/enterprise-resource-planning-blog-posts-by-members/transport-mechanism-of-key-user-extensibility-objects-in-public-cloud-amp/ba-p/14323649 Transport Mechanism of Key-User Extensibility Objects in Public Cloud & Private Cloud 2026-02-08T13:27:26.853000+01:00 Arnab_G https://community.sap.com/t5/user/viewprofilepage/user-id/151276 <P><FONT size="3">We are now quite familiar with the concept of <STRONG>Key User Extensibility/In-App Extensibility</STRONG> while working in a S/4 HANA Cloud environment. Key User Extensibility is available in both the environments of S/4 HANA Cloud (Public Edition &amp; Private Edition) and is the preferred mode of creating extension due to its highest Clean Core level and being lightweight.</FONT></P><P><FONT size="3">There are many blogposts available in the community showing creation and usage of the most commonly used Key User Extensibility Objects like Custom Fields / Custom Business Objects / Custom CDS Views etc.</FONT></P><P><FONT size="3">However, in this blog post we will discuss about the difference in approach to <STRONG><EM>Transport</EM></STRONG> the Key User Extensibility objects to higher environments (Dev -&gt; Test/QA -&gt;Prod) in <STRONG><EM>S/4 HANA Cloud, Public Edition &amp; S/4 HANA Cloud Private Edition</EM></STRONG> .</FONT></P><P><FONT size="3">Considering a use case of&nbsp; <STRONG>Custom fields</STRONG> for demonstration. Although for creation and modification of custom fields, the approach is similar in both Private and Public cloud but there are few differences in approach while it comes to transporting them and one of the key differences being -</FONT></P><P><FONT size="3"><STRONG><EM>A transport process for Key User Extensibility objects in Private Cloud are &nbsp;associated with an actual Transport Request number while in Public Cloud there is no actual Transport Request number associated while transporting them.</EM></STRONG></FONT></P><P><FONT size="3">In this blogpost we will focus on the Transportation part but however for explanation I have added brief details on the creation process too.</FONT></P><TABLE width="765px"><TBODY><TR><TD width="353.657px" height="50px"><P><FONT size="3" color="#993300"><STRONG>S/4 HANA Cloud, Public Edition</STRONG></FONT></P></TD><TD width="410.59px" height="50px"><P><FONT size="3" color="#993300"><STRONG>S/4 HANA Cloud, Private&nbsp;Edition</STRONG></FONT></P></TD></TR><TR><TD width="353.657px" height="1865px"><P><FONT color="#993300"><U><EM><STRONG><FONT size="3">Creation -</FONT></STRONG></EM></U></FONT></P><P><FONT size="3">Fiori Application used – <FONT color="#0000FF"><STRONG><EM>Custom Fields and Logic</EM></STRONG></FONT></FONT></P><P>&nbsp;</P><FONT size="3"><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Arnab_G_0-1770551963606.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/369959i4131BC6AF5D34F51/image-size/medium?v=v2&amp;px=400" role="button" title="Arnab_G_0-1770551963606.png" alt="Arnab_G_0-1770551963606.png" /></span></FONT><P>&nbsp;</P><P>&nbsp;</P><P><FONT size="3">Create the new custom field for the required business context and activate it for the required areas where you want to use this custom field -</FONT><BR /><BR /></P><FONT size="3"><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Arnab_G_1-1770551963610.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/369960iB03B2914386B071D/image-size/medium?v=v2&amp;px=400" role="button" title="Arnab_G_1-1770551963610.png" alt="Arnab_G_1-1770551963610.png" /></span></FONT><P>&nbsp;</P><P><BR /><BR /></P><FONT size="3"><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Arnab_G_2-1770551963613.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/369961i9545ACE31E9666CA/image-size/medium?v=v2&amp;px=400" role="button" title="Arnab_G_2-1770551963613.png" alt="Arnab_G_2-1770551963613.png" /></span></FONT><P>&nbsp;</P><P><FONT size="3">After Enabling Usage for the required areas, click on <STRONG><EM>Publish</EM></STRONG> for the field to be available on the selected contexts.</FONT></P><P>&nbsp;</P><P><FONT size="3">If you want to add this field to your Fiori Application’s UI then you can do that using the option <STRONG><EM>Adapt UI</EM></STRONG> from the particular Fiori application for which you have created and exposed the custom field.</FONT></P><P>&nbsp;</P><FONT size="3"><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Arnab_G_3-1770551963617.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/369962iD4AD3408228392B8/image-size/medium?v=v2&amp;px=400" role="button" title="Arnab_G_3-1770551963617.png" alt="Arnab_G_3-1770551963617.png" /></span></FONT><P>&nbsp;</P></TD><TD width="410.59px" height="1865px"><P><FONT size="3"><STRONG>*<EM>Same as Public Cloud in this context</EM><BR /></STRONG>Fiori Application used – <FONT color="#0000FF"><STRONG><EM>Custom Fields and Logic</EM></STRONG></FONT><STRONG><BR /><BR /></STRONG></FONT></P><FONT size="3"><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Arnab_G_4-1770551963620.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/369963i29E06A5021F65C34/image-size/medium?v=v2&amp;px=400" role="button" title="Arnab_G_4-1770551963620.png" alt="Arnab_G_4-1770551963620.png" /></span></FONT><P>&nbsp;</P><P><FONT size="3"><STRONG>&nbsp;</STRONG></FONT></P><P><FONT size="3">The steps for activating the usage of the custom field and publishing are also same in <EM><STRONG>S/4 HANA Private Cloud</STRONG></EM> as shown in the other column for <EM><STRONG>Public Cloud</STRONG></EM> so you can follow all the same screenshots given in the left column for Private Cloud environment also.</FONT><BR /><BR /><FONT size="3"><STRONG><EM>**Screenshots have not been repeated.</EM></STRONG></FONT></P></TD></TR><TR><TD width="353.657px" height="322px"><P><FONT color="#993300"><U><EM><FONT size="3"><STRONG>Transport process -</STRONG></FONT></EM></U></FONT></P><P><FONT size="3">No actual <STRONG><EM>Transport Request</EM></STRONG> number associated. Transport of Key User Extensibility objects happens using two Fiori Applications –</FONT></P><P><FONT size="3">&nbsp;<STRONG><EM><FONT color="#0000FF">Export Software Collection</FONT> (</EM></STRONG><STRONG><EM>To be used in Source System</EM></STRONG><STRONG><EM>)</EM></STRONG></FONT></P><P><FONT size="3">&nbsp;<STRONG><EM><FONT color="#0000FF">Import Collection</FONT> (</EM></STRONG><STRONG><EM>To be used in Target system</EM></STRONG><STRONG><EM>)</EM></STRONG></FONT></P><P>&nbsp;</P></TD><TD width="410.59px" height="322px"><P><FONT size="3">Transport happens with actual <EM><STRONG>Transport Request</STRONG></EM> number with two Fiori applications used –</FONT></P><P><FONT size="3">&nbsp;<FONT color="#0000FF"><STRONG><EM>Configure Software Packages</EM></STRONG></FONT></FONT></P><P><FONT size="3" color="#0000FF"><STRONG><EM>&nbsp;Register Extensions for Transport</EM></STRONG></FONT></P></TD></TR><TR><TD width="353.657px" height="1561px"><P><FONT color="#993300"><U><EM><FONT size="3"><STRONG>Transportation process in Source system -</STRONG></FONT></EM></U></FONT></P><P><FONT size="3">The transportation process is done by <STRONG><EM>Software Collection</EM></STRONG>.</FONT></P><P><FONT size="3">The first step is to create a <STRONG><EM>Software Collection</EM></STRONG> and add the Custom field in the collection. This is done by the Fiori App – <FONT color="#0000FF"><STRONG><EM>Export Software Collection</EM></STRONG></FONT></FONT><BR /><BR /></P><FONT size="3"><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Arnab_G_5-1770551963624.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/369964i3D5B477279780544/image-size/medium?v=v2&amp;px=400" role="button" title="Arnab_G_5-1770551963624.png" alt="Arnab_G_5-1770551963624.png" /></span></FONT><P>&nbsp;</P><P><FONT size="3">Once you create a Software collection you have to add your Custom field or whichever Extensibility object you are planning to move by clicking on <STRONG><EM>Add Items</EM></STRONG></FONT></P><FONT size="3"><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Arnab_G_6-1770551963625.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/369967i03CD72C02087124E/image-size/medium?v=v2&amp;px=400" role="button" title="Arnab_G_6-1770551963625.png" alt="Arnab_G_6-1770551963625.png" /></span></FONT><P>&nbsp;</P><P>&nbsp;</P><P><FONT size="3">You can filter your Objects by selecting the type of objects you want to add in the Software Collection</FONT></P><FONT size="3"><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Arnab_G_7-1770551963627.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/369966iCF2E09744BF50603/image-size/medium?v=v2&amp;px=400" role="button" title="Arnab_G_7-1770551963627.png" alt="Arnab_G_7-1770551963627.png" /></span></FONT><P>&nbsp;</P><P>&nbsp;</P><P><FONT size="3">Once everything is added you can click on <STRONG><EM>Check</EM></STRONG> and then finally <STRONG><EM>Export</EM></STRONG></FONT></P><FONT size="3"><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Arnab_G_8-1770551963628.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/369965i762683208204EE27/image-size/medium?v=v2&amp;px=400" role="button" title="Arnab_G_8-1770551963628.png" alt="Arnab_G_8-1770551963628.png" /></span></FONT><P>&nbsp;</P></TD><TD width="410.59px" height="1561px"><P><FONT size="3">First step go to the Fiori Application <FONT color="#0000FF"><STRONG><EM>Configure Software Packages</EM></STRONG> </FONT>and add registration for your package by clicking on the button <STRONG><EM>Add Registration</EM></STRONG></FONT></P><FONT size="3"><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Arnab_G_9-1770551963630.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/369968i163AB8E653387C18/image-size/medium?v=v2&amp;px=400" role="button" title="Arnab_G_9-1770551963630.png" alt="Arnab_G_9-1770551963630.png" /></span></FONT><P>&nbsp;</P><P>&nbsp;</P><P><FONT size="3">Add your Transport Number from the F4 search help available under the column <STRONG><EM>Transport Request</EM></STRONG> to assign the package to a particular Transport number available.</FONT><BR /><FONT size="3">Optionally you can turn on the <STRONG><EM>Automatic Request</EM></STRONG> handling for this package with the option available.</FONT></P><FONT size="3"><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Arnab_G_10-1770551963634.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/369969iF1100C70C6B21B0A/image-size/medium?v=v2&amp;px=400" role="button" title="Arnab_G_10-1770551963634.png" alt="Arnab_G_10-1770551963634.png" /></span></FONT><P>&nbsp;</P><P>&nbsp;</P><P><FONT size="3">Second step go to the Fiori Application <FONT color="#0000FF"><STRONG><EM>Register Extensions For Transport</EM></STRONG></FONT></FONT></P><P>&nbsp;</P><P><FONT size="3">Select your Custom field or the Extensibility object that you want to transport and click on <STRONG>Reassign to Package</STRONG> and select the package you registered in previous step.</FONT></P><P>&nbsp;</P><FONT size="3"><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Arnab_G_11-1770551963638.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/369970i85B70B485822C70A/image-size/medium?v=v2&amp;px=400" role="button" title="Arnab_G_11-1770551963638.png" alt="Arnab_G_11-1770551963638.png" /></span></FONT><P>&nbsp;</P><P>&nbsp;</P><P><FONT size="3">By default your Extensibility object will get assigned to the Transport to which the package is assigned but you can change the transport assignment by clicking on the option <STRONG><EM>Assign to Transport Request</EM></STRONG>.</FONT></P><P><FONT size="3">You can now go to Transaction Code <STRONG><EM>SE10</EM> </STRONG>and check the transport number under your name. The Custom field or the&nbsp; extensibility object that you added will be available in the Transport Request .</FONT></P><P><FONT size="3">You can release and move the transport to upper environments based on the transport mechanism that is being followed in your project.</FONT></P></TD></TR><TR><TD width="353.657px" height="1007px"><P><EM><U><FONT size="3" color="#993300"><STRONG>Transportation process in Target system -</STRONG></FONT></U></EM></P><P><FONT size="3">Based on architecture if it is a 3-Tier Public Cloud system then the next higher environment is going to be the <STRONG><EM>Test Environment</EM></STRONG> in Public Cloud.</FONT></P><P><FONT size="3">In the <STRONG><EM>Test Environment</EM></STRONG> open the application <FONT color="#0000FF"><STRONG><EM>Import Collection</EM></STRONG></FONT></FONT></P><P>&nbsp;</P><FONT size="3"><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Arnab_G_12-1770551963639.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/369971i2C244CDA8B6371D5/image-size/medium?v=v2&amp;px=400" role="button" title="Arnab_G_12-1770551963639.png" alt="Arnab_G_12-1770551963639.png" /></span></FONT><P>&nbsp;</P><P>&nbsp;</P><P><FONT size="3">Select your Software collection that you exported from source system and click on <STRONG><EM>Check and Import</EM></STRONG></FONT><BR /><BR /></P><FONT size="3"><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Arnab_G_13-1770551963642.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/369972i2C4A078DBA073364/image-size/medium?v=v2&amp;px=400" role="button" title="Arnab_G_13-1770551963642.png" alt="Arnab_G_13-1770551963642.png" /></span></FONT><P>&nbsp;</P><P>&nbsp;</P><P><FONT size="3">If you want to move your Software Collection to production environment then you can move it by the <STRONG><EM>Forward </EM></STRONG>option in the <EM><STRONG>Import Collection</STRONG></EM> app</FONT></P><FONT size="3"><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Arnab_G_14-1770551963642.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/369973i77016EDE452CCA32/image-size/medium?v=v2&amp;px=400" role="button" title="Arnab_G_14-1770551963642.png" alt="Arnab_G_14-1770551963642.png" /></span></FONT><P>&nbsp;</P></TD><TD width="410.59px" height="1007px"><P><FONT size="3">No such similar activity is required here. Transport will be moved and available in QA/Test environment with transport release mechanism followed.</FONT></P></TD></TR></TBODY></TABLE><P><FONT size="3"><STRONG>&nbsp;</STRONG></FONT></P><P><FONT size="3" color="#993300"><STRONG>**<U>Additional information</U> – </STRONG></FONT></P><P><FONT size="3">Use the Fiori Application <FONT color="#0000FF"><EM><STRONG>Extensibility Inventory</STRONG></EM></FONT> in both the S/4 HANA Cloud versions to check dependencies of objects before transporting.</FONT></P><P><FONT size="3"><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Arnab_G_15-1770551963643.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/369974iC946FCA18645C0FE/image-size/medium?v=v2&amp;px=400" role="button" title="Arnab_G_15-1770551963643.png" alt="Arnab_G_15-1770551963643.png" /></span></FONT></P><P>&nbsp;</P> 2026-02-08T13:27:26.853000+01:00 https://community.sap.com/t5/technology-blog-posts-by-members/unlock-s-4hana-cloud-secrets-hybrid-events-apis-strategy-for-seamless-btp/ba-p/14326758 Unlock S/4HANA Cloud Secrets: Hybrid Events+APIs Strategy for Seamless BTP Data Flows 2026-02-12T01:30:35.487000+01:00 tamitdassharma https://community.sap.com/t5/user/viewprofilepage/user-id/153763 <H2 id="toc-hId-1789646278">Strategic Financial Data Extraction from SAP S/4HANA Cloud Public Edition to SAP BTP</H2><H4 id="toc-hId-1851298211">Using Transfer Pricing as a Real-World Example</H4><P>Transfer pricing represents a perfect use case to demonstrate <STRONG>generic financial data extraction strategies</STRONG> from SAP S/4HANA Cloud Public Edition. Multinational organisations need GL, Controlling, Material Ledger, and Asset Accounting postings to flow reliably to external engines hosted on SAP BTP—but Public Cloud’s “no direct database access” constraint demands architecturally sound patterns.</P><H3 id="toc-hId-1525701987">Why Transfer Pricing Perfectly Illustrates the Challenge</H3><P><STRONG>The business need</STRONG>: Calculate inter-company markups (cost-plus, resale-minus) using real-time ACDOCA postings across multiple currencies, profit centres, and cost elements.<BR /><STRONG>The constraint</STRONG>: Pure cloud extensibility—no RFCs, no custom ABAP, no direct table extracts.&nbsp;<BR /><STRONG>The solution:</STRONG> Three proven patterns that work for any financial data integration scenario.</P><H3 id="toc-hId-1329188482">Pattern 1: Event Notifications (Real-Time Push Model)</H3><P><STRONG>How transfer pricing uses it</STRONG>: GL postings trigger automatic business event notifications routed through SAP Event Mesh to BTP applications.</P><P>&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Event Notification" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/371720i4CB6FC368836A2D3/image-size/large?v=v2&amp;px=999" role="button" title=" - visual selection-3.png" alt="Event Notification" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Event Notification</span></span></P><P><SPAN><STRONG>Generic applicability</STRONG>: Works for any posting-driven process—revenue recognition, inter-company reconciliation, compliance monitoring.&nbsp;</SPAN></P><DIV><STRONG>High-level activation</STRONG>:</DIV><OL><LI><SPAN><STRONG>Integration configuration apps</STRONG> → Activate accounting-related event notifications</SPAN></LI><LI><SPAN><STRONG>Communication scenarios</STRONG> → Configure outbound event destinations</SPAN></LI><LI><SPAN><STRONG>Event Mesh subscription</STRONG> → Point to BTP service endpoint</SPAN></LI><LI><SPAN><STRONG>Payload contains</STRONG>: Company codes, ledger amounts (local/group), profit centres, material valuations</SPAN></LI></OL><H3 id="toc-hId-1132674977">Pattern 2: Standard Query Services (Scheduled Pull Model)</H3><P><STRONG>How transfer pricing uses it</STRONG>: BTP service queries S/4HANA nightly for new/changed financial postings.</P><P>&nbsp;</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Query Service" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/371722iBABF11B5D5404615/image-size/large?v=v2&amp;px=999" role="button" title=" - visual selection-4.png" alt="Query Service" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Query Service</span></span><STRONG><SPAN>Key services (release-dependent availability):</SPAN></STRONG></P><UL><LI><SPAN><STRONG>Financial line item services</STRONG> → GL/CO/ML/AA postings</SPAN></LI><LI><SPAN><STRONG>Profitability services</STRONG> → Margin analysis data</SPAN></LI><LI><SPAN><STRONG>Material valuation services</STRONG> → Cost component details</SPAN></LI></UL><P><STRONG>Generic applicability</STRONG>: Perfect for scheduled reconciliation, historical backfills, or validation runs.</P><H3 id="toc-hId-936161472">Pattern 3: Hybrid Extraction (Production Resilience)</H3><P>Transfer pricing demands 99.9% coverage. Smart architects layer all three patterns:</P><TABLE border="1" width="100%"><TBODY><TR><TD width="25%"><STRONG>Use Case</STRONG></TD><TD width="25%"><STRONG>Primary Pattern</STRONG></TD><TD width="25%"><STRONG>Transfer Pricing Example</STRONG></TD><TD width="25%"><STRONG>Generic Use</STRONG></TD></TR><TR><TD width="25%">Real-time GL postings</TD><TD width="25%">Event notifications</TD><TD width="25%">Invoice → immediate markup</TD><TD width="25%">Any posting trigger</TD></TR><TR><TD>Historical catch-up</TD><TD>Standard APIs</TD><TD>Month-end reconciliation</TD><TD>Data migration</TD></TR><TR><TD>Day 1 implementation</TD><TD>Bulk extraction</TD><TD>Full ACDOCA baseline</TD><TD>Initial loads</TD></TR><TR><TD>Custom calculations</TD><TD>BTP processing</TD><TD>Exception overrides</TD><TD>Business rules</TD></TR></TBODY></TABLE><P><STRONG>&nbsp;Three-tier reference flow:</STRONG></P><H4 id="toc-hId-868730686"><STRONG><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Hybrid Extraction" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/371723i0FA6EF631F99C2FE/image-size/large?v=v2&amp;px=999" role="button" title=" - visual selection-5.png" alt="Hybrid Extraction" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Hybrid Extraction</span></span></STRONG><SPAN>BTP Implementation Patterns (Transfer Pricing Example)</SPAN></H4><H5 id="toc-hId-801299900"><SPAN>Cloud Application Programming Model (CAP)</SPAN></H5><pre class="lia-code-sample language-javascript"><code>service FinancialIntegration { entity Postings as projection on external financial services; entity PricingResults as projection on HANA staging; }</code></pre><P><SPAN><STRONG>&nbsp;Pattern</STRONG>: Event handlers + scheduled queries → unified HANA staging → business rules.</SPAN></P><H5 id="toc-hId-604786395"><SPAN>ABAP RESTful Application Programming (RAP)</SPAN></H5><pre class="lia-code-sample language-abap"><code>define root view entity FinancialDataView as select from standard financial services</code></pre><P><STRONG>Pattern</STRONG>: Analytical CDS views over external data → transactional services.</P><H4 id="toc-hId-279190171">Architect’s Production Checklist</H4><P><span class="lia-unicode-emoji" title=":white_heavy_check_mark:">✅</span> Tenant validation: Test events/APIs in your specific S/4HANA Cloud environment<BR /><span class="lia-unicode-emoji" title=":white_heavy_check_mark:">✅</span> Quota management: Monitor Event Mesh throughput + API rate limits<BR /><span class="lia-unicode-emoji" title=":white_heavy_check_mark:">✅</span> Fallback design: API polling validates event stream completeness<BR /><span class="lia-unicode-emoji" title=":white_heavy_check_mark:">✅</span> Quarterly readiness: SAP evolves event coverage and API fields continuously<BR /><span class="lia-unicode-emoji" title=":white_heavy_check_mark:">✅</span> Pure cloud: Zero custom code in production S/4HANA</P><H4 id="toc-hId--415040429">The Universal Pattern</H4><DIV>Transfer pricing proves the strategy works for complex financial scenarios. The same architecture applies to:</DIV><UL><LI><SPAN>Inter-company reconciliation</SPAN></LI><LI><SPAN>Revenue recognition automation</SPAN></LI><LI><SPAN>Compliance reporting engines</SPAN></LI><LI><SPAN>Analytics data pipelines</SPAN></LI><LI><SPAN>Any standard data object/model driven process</SPAN></LI></UL><P><SPAN><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Universal Pattern" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/371724i43222D4AB9F30955/image-size/large?v=v2&amp;px=999" role="button" title=" - visual selection-6.png" alt="Universal Pattern" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Universal Pattern</span></span></SPAN><SPAN><STRONG>Key takeaway</STRONG>: This isn’t “just for transfer pricing”—it’s your reusable blueprint for any S/4HANA Cloud → BTP data integration.&nbsp;</SPAN></P> 2026-02-12T01:30:35.487000+01:00 https://community.sap.com/t5/enterprise-resource-planning-blog-posts-by-sap/%EF%B8%8F-%E4%B8%BA%E4%BB%80%E4%B9%88-s-4hana-cloud-%E5%8E%9F%E6%9D%A5%E7%9A%84%E4%B8%A4%E7%B3%BB%E7%BB%9F%E5%AE%A2%E6%88%B7%E8%A6%81%E8%BD%AC%E5%90%91%E4%B8%89%E7%B3%BB%E7%BB%9F/ba-p/14326853 🌥️ 为什么 S/4HANA Cloud 原来的两系统客户要转向三系统? 2026-02-12T07:19:23.345000+01:00 Vincent_Zhu https://community.sap.com/t5/user/viewprofilepage/user-id/131883 <P>很多上 S/4HANA Cloud 的公司会问同一个问题:</P><BLOCKQUOTE><P><STRONG>我们之前用质量(Q)+ 生产(P)的“两系统”不也挺好吗?<BR />为什么 SAP 现在要我们改成“三系统”?会不会更复杂?</STRONG></P></BLOCKQUOTE><P>其实,SAP 推三系统不是为了“复杂”,而是为了让云 ERP <STRONG>更稳、更安全、更能支持企业未来的发展</STRONG>。下面用最简单的方式帮你理解。</P><HR /><H1 id="toc-hId-1660564515">🧩 1. 两系统 vs 三系统,用生活比喻怎么理解?</H1><P>先看两系统(2SL):</P><PRE><CODE>质量系统(做所有配置、测试) ↓ 生产系统(真正用来跑业务)</CODE></PRE><P>听起来省事,但会有一个大问题:</P><BLOCKQUOTE><P><STRONG>配置、测试和变更全挤在一个质量系统里,风险集中,升级或大变更容易干扰上线节奏。</STRONG></P></BLOCKQUOTE><P>现在的三系统(3SL)结构:</P><PRE><CODE>开发系统(做配置 + 扩展) ↓ 测试系统(专门用来测试) ↓ 生产系统(跑真正业务)</CODE></PRE><P>这是一个 “Development + Test + Production” 的体系,也是SAP系统之前如此成功的原因之一。</P><P>就像你开餐厅:</P><UL><LI><STRONG>开发系统</STRONG> = 后厨的试菜间(可以自由尝试)</LI><LI><STRONG>测试系统</STRONG> = 员工试吃区(必须确保稳定、菜品没问题)</LI><LI><STRONG>生产系统</STRONG> = 正式给客人的餐厅(不能出错、不能乱改)</LI></UL><P>三系统 = 把“试菜”“试吃”“正式上菜”都分开,让餐厅品质更稳定。</P><HR /><H1 id="toc-hId-1464051010"><span class="lia-unicode-emoji" title=":magnifying_glass_tilted_left:">🔍</span> 2. 两系统为什么不够用?</H1><P>SAP 官方给出的原因可以总结为四个词:<BR /><STRONG>发展、稳定、创新、合规</STRONG>。</P><H2 id="toc-hId-1396620224">(1)业务越来越复杂,需要更稳的变更流程</H2><P>旧的 Q 系统既是测试环境,又承担了变更准备、并行项目等任务。<BR />一旦多个项目同时动起来,就很容易互相干扰。<BR />三系统把开发与测试分开后,单独的开发、配置和测试的环境,<STRONG>项目并行、变更管理更安全</STRONG>。</P><H2 id="toc-hId-1200106719">(2)需要支持更多“开发能力”</H2><P>三系统加入了正式的开发系统(Dev),其中包含开发租户(D080环境),可做更高级的 ABAP Cloud 扩展。<BR />这让云系统也能支持更多个性化场景,而不会污染测试或生产环境。</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="1.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/371774i4A5977EF70FEE498/image-size/large?v=v2&amp;px=999" role="button" title="1.png" alt="1.png" /></span></P><H2 id="toc-hId-1003593214">(3)测试必须更专业,不能“和配置混在一起”</H2><P>在三系统中:</P><UL><LI>配置在 Dev100租户 做</LI><LI>测试在 Test租户 专门验证</LI><LI>生产只运行最终正确版本</LI></UL><P>这种分离让测试质量更高,也不会因为配置冲突导致混乱。</P><H2 id="toc-hId-807079709">(4)云升级节奏更快,三系统更能抗“升级风险”</H2><P>S/4HANA Cloud 公有云每季度都有创新功能发布。</P><P>如果你用两系统:<BR />升级期间 Q 系统要停用或冻结,可能影响你的项目时间线。</P><P>三系统可以:</P><UL><LI>Dev 做配置和升级适配</LI><LI>Test 做回归测试</LI><LI>Prod 等全部准备好后再升级</LI><LI>即使在升级期间,也不会冻结传输。例如,D在N版本,T在N+1版本,也同样可以传输。</LI></UL><P><STRONG>这样升级更稳,不会影响日常业务运行。</STRONG></P><HR /><H1 id="toc-hId-481483485">🧠 3. 一句话总结:为什么 SAP 要让客户都转三系统?</H1><P><span class="lia-unicode-emoji" title=":backhand_index_pointing_right:">👉</span> <STRONG>因为两系统已经不足以支持企业数字化的复杂度、并发项目数量、定制化扩展需求,以及云时代更快的更新节奏。</STRONG><BR />三系统能保证更高的质量、更低的风险、更强的灵活性。</P><HR /><H1 id="toc-hId-284969980"><span class="lia-unicode-emoji" title=":office_building:">🏢</span> 4. 那对企业实际有什么好处?</H1><H3 id="toc-hId-346621913">✔ 业务变更更可控</H3><P>所有新配置、新开发先在 Dev 做,再在 Test 验证,不会影响生产。</P><H3 id="toc-hId-150108408">✔ 上线风险更低</H3><P>Test 环境专注测试,质量更高,减少“带病上线”。</P><H3 id="toc-hId--121636466">✔ 支持更强的扩展能力</H3><P>Dev 系统包含 ABAP 开发租户,企业有更多自主扩展的空间。</P><H3 id="toc-hId--318149971">✔ 更适合多国家、多业务线的公司</H3><P>三系统可以免费申请并行线(Parallel Lines)环境,可多两个环境(D120和T120),更加灵活的满足项目实施和日常使用的场景:独立的配置、测试、数据迁移、培训等场景。</P><H3 id="toc-hId--514663476">✔ 适应云时代更快的创新节奏</H3><P>客户可以在更多测试空间里准备升级,不会因升级影响项目计划。</P><HR /><H1 id="toc-hId--124370967"><span class="lia-unicode-emoji" title=":package:">📦</span> 5. SAP 已经启动“两系统客户升级到三系统”的计划(3SL Conversion Program)</H1><BLOCKQUOTE><P><STRONG>SAP 热烈欢迎所有两系统客户加入三系统转换计划,并准备把所有用户统一迁移到最新的三系统架构(基于 SAP Central Business Configuration)。目前已经有超过50家两系统的客户成功升级到了三系统,这其中,既有来自中国的客户,也有来自全球其他国家的客户。如有兴趣了解更多关于三系统和三系统转换的信息,可参考链接:<A href="https://pages.community.sap.com/topics/s4hana-cloud/three-system-landscape" target="_blank" rel="noopener noreferrer">SAP S/4HANA Cloud Public Edition, Three-System Landscape | SAP Community</A></STRONG></P></BLOCKQUOTE><P>换句话说:</P><P>🟢 <STRONG>三系统将成为 S/4HANA Cloud 公有云的“标准配置”。</STRONG><BR />🟢 <STRONG>两系统将逐步退出历史舞台。</STRONG></P><HR /><H1 id="toc-hId--320884472"><span class="lia-unicode-emoji" title=":sparkles:">✨</span> 6. 用一个最简单的比喻总结</H1><P>三系统=<BR /><STRONG>“试做区(Dev) + 试运行区(Test) + 正式运行区(Prod)”</STRONG></P><P>两系统=<BR /><STRONG>“试做+试运行合并(Q) + 正式运行(P)”</STRONG></P><P>为什么要升级?</P><BLOCKQUOTE><P>因为做菜的人、吃菜的人、正式客人越来越多,让大家都挤在一个厨房里,风险太大了。</P></BLOCKQUOTE><P>三系统能让所有流程更专业化,也更安全。</P><P>关于<FONT color="#0000FF"><U><STRONG>两系统和三系统的区别</STRONG></U></FONT>,请浏览该文档:<A href="https://support.sap.com/content/dam/SAAP/SAP_Activate/2SL-3SL-Delta_Features_PUBLIC.pdf" target="_blank" rel="noopener noreferrer">2SL-3SL-Delta_Features_PUBLIC.pdf</A></P><HR /><H1 id="toc-hId--517397977"><span class="lia-unicode-emoji" title=":direct_hit:">🎯</span> 最后的重点</H1><P><STRONG>向三系统转型,不是增加复杂度,而是让企业在云端走得更稳、更快、更灵活。</STRONG></P><P><STRONG>如想了解关于三系统转换的更多内容或有任何问题,请随时联系!</STRONG></P> 2026-02-12T07:19:23.345000+01:00 https://community.sap.com/t5/integration-blog-posts/cannot-integrate-sap-cloud-alm/ba-p/14328928 Cannot integrate SAP Cloud ALM 2026-02-16T04:00:45.885000+01:00 Keratiya_D https://community.sap.com/t5/user/viewprofilepage/user-id/143675 <P>Dear All,</P><P><SPAN>I cannot connect communication arrangement with cloud ALM.</SPAN></P><P><SPAN>It's an error as below. Please kindly advice me how to setup?</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Keratiya_D_0-1771210728156.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/372875iF78082430D5F9B2B/image-size/medium?v=v2&amp;px=400" role="button" title="Keratiya_D_0-1771210728156.png" alt="Keratiya_D_0-1771210728156.png" /></span></P><P>Regards,</P><P>Keratiya D,</P> 2026-02-16T04:00:45.885000+01:00 https://community.sap.com/t5/enterprise-resource-planning-blog-posts-by-sap/how-to-validate-business-partner-s-cep-brazilian-postal-code-through/ba-p/14328321 How to Validate Business Partner’s CEP (Brazilian postal code) through Extensibility using ABAP 2026-02-19T18:11:34.521000+01:00 EduardaCosta https://community.sap.com/t5/user/viewprofilepage/user-id/1618672 <H1 id="toc-hId-1660619197">How to Validate Business Partner’s CEP (Brazilian postal code) through Extensibility using ABAP</H1><H3 id="toc-hId-1722271130">SAP Solutions:</H3><UL><LI>SAP S/4HANA Cloud, Public Edition (SAP Cloud ERP).</LI><LI>ABAP Development Tools (ADT) for Eclipse.</LI></UL><H3 id="toc-hId-1525757625">Third party API:</H3><P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; This blog utilizes the API <A href="https://viacep.com.br/" target="_blank" rel="noopener nofollow noreferrer">https://viacep.com.br/</A>. This is a free-to-use API provided by a third party, thus is not under any SAP responsibility. Keep in mind that its usage for CEP validation is at your own risk and that you can use any API of your choice.</P><H3 id="toc-hId-1329244120">Knowledge Required:</H3><UL><LI>How to connect ADT for Eclipse to an SAP S/4HANA Cloud Public Edition system.<UL><LI><A href="https://help.sap.com/docs/SAP_S4HANA_CLOUD/6aa39f1ac05441e5a23f484f31e477e7/4b962c243a3342189f8af460cc444883.html?locale=en-US" target="_blank" rel="noopener noreferrer">Connect to the ABAP System | SAP Help Portal</A></LI></UL></LI><LI>How to create an ABAP Class using ADT for Eclipse.<UL><LI><A href="https://community.sap.com/t5/application-development-and-automation-blog-posts/how-to-create-a-class-in-abap-00-6-steps-to-start/ba-p/13541653" target="_blank">How to create a Class in ABAP 00 - 6 Steps to start | SAP Community</A></LI><LI><A href="https://community.sap.com/t5/application-development-and-automation-blog-posts/how-to-create-a-class-in-abap-00-example-code-with-little-typing-adt-is/ba-p/13541746" target="_blank">How to create a class in ABAP 00 - example code, with little typing. AdT is great! | SAP Community</A></LI></UL></LI></UL><H3 id="toc-hId-1132730615">Step I – Create an ABAP Class</H3><P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; First of all, we need to create an ABAP class that makes the requests to the API. It should also handle the API response, which is in JSON format. Below, you will find a sample implementation of this class, but keep in mind that this is just an example and can be adjusted as needed.</P><pre class="lia-code-sample language-abap"><code>CLASS zbl_cl_get_request DEFINITION PUBLIC FINAL CREATE PUBLIC . PUBLIC SECTION. TYPES: BEGIN OF ty_address_br, cep TYPE c LENGTH 9, logradouro TYPE c LENGTH 100, complemento TYPE c LENGTH 100, bairro TYPE c LENGTH 60, localidade TYPE c LENGTH 40, uf TYPE c LENGTH 2, estado TYPE c LENGTH 40, regiao TYPE c LENGTH 20, ibge TYPE c LENGTH 10, gia TYPE c LENGTH 10, ddd TYPE c LENGTH 3, siafi TYPE c LENGTH 10, unidade TYPE c LENGTH 50, END OF ty_address_br. TYPES: tt_address_br TYPE STANDARD TABLE OF ty_address_br WITH DEFAULT KEY. CLASS-METHODS create RETURNING VALUE(ro_instance) TYPE REF TO zbl_cl_get_request. CLASS-METHODS get_data IMPORTING iv_postal_code TYPE string RETURNING VALUE(rs_data) TYPE ty_address_br . PROTECTED SECTION. PRIVATE SECTION. ENDCLASS. CLASS ZBL_CL_GET_REQUEST IMPLEMENTATION. METHOD get_data. DATA ls_viacep TYPE ty_address_br. TRY. DATA(lo_destination) = cl_http_destination_provider=&gt;create_by_url( 'https://viacep.com.br' ). CATCH cx_http_dest_provider_error INTO DATA(lo_http_dest_provider_error). "handle exception DATA(lv_http_dest_provider_error) = lo_http_dest_provider_error-&gt;get_text( ). ENDTRY. TRY. DATA(lo_http_client) = cl_web_http_client_manager=&gt;create_by_http_destination( lo_destination ). CATCH cx_web_http_client_error INTO DATA(lo_web_http_client_error). "handle exception DATA(lv_web_http_client_error) = lo_web_http_client_error-&gt;get_text( ). ENDTRY. " Set HTTP Method (GET, POST, etc.) DATA(lo_request) = lo_http_client-&gt;get_http_request( ). DATA(lv_uri) = '/ws/' &amp;&amp; iv_postal_code &amp;&amp; '/json/'. lo_request-&gt;set_uri_path( lv_uri ). " Send Request TRY. DATA(lo_response) = lo_http_client-&gt;execute( i_method = if_web_http_client=&gt;get ). CATCH cx_web_http_client_error INTO lo_web_http_client_error. "handle exception lv_web_http_client_error = lo_web_http_client_error-&gt;get_text( ). "handle exception ENDTRY. " Get Response DATA(lv_resp_satus) = lo_response-&gt;get_status( ). DATA(lv_resp_text) = lo_response-&gt;get_text( ). /ui2/cl_json=&gt;deserialize( EXPORTING json = lv_resp_text CHANGING data = ls_viacep ). rs_data = ls_viacep. ENDMETHOD. METHOD create. CREATE OBJECT ro_instance. ENDMETHOD. ENDCLASS.</code></pre><H3 id="toc-hId-936217110">Step II – Enable this Class to be Used in Key-User Extensibility</H3><P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; To use this class in the Custom Logic app inside SAP S/4HANA Cloud Public Edition, the property “Use in Key User apps”, under “API State”, must be set as “Yes”. This must be done in ADT for Eclipse.</P><DIV class=""><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Captura de tela 2026-02-13 135713.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/372487i74A5356B064647C2/image-size/large?v=v2&amp;px=999" role="button" title="Captura de tela 2026-02-13 135713.png" alt="Captura de tela 2026-02-13 135713.png" /></span></DIV><DIV class=""><H3 id="toc-hId-739703605">Step III – Implement the Custom Logic</H3><OL><LI>In the <STRONG>customizing</STRONG> tenant of SAP S/4HANA Cloud Public Edition, go to the <STRONG>Custom Logic </STRONG>app (<A href="https://fioriappslibrary.hana.ondemand.com/sap/fix/externalViewer/#/detail/Apps('F6957')/S36" target="_blank" rel="noopener nofollow noreferrer">F6957</A>) and click on the “Create” button.</LI><LI>Choose the BAdI “Validate BP BADI” (ID: “CMD_VALIDATE_BP”).</LI><LI>Give it a name and description.</LI><LI>Open the implementation and click on the button “Open Code Editor”.</LI><LI>Add the sample code below.</LI><LI>Publish the code, then start testing.</LI></OL><P><EM>Again, this is just an example and can be adjusted as needed.</EM></P></DIV><pre class="lia-code-sample language-abap"><code>DATA: ls_bp_address LIKE LINE OF it_bp_address, ls_message LIKE LINE OF ct_validationmessage, lv_message TYPE string, lv_postalcode TYPE string. *Clearing the variants, just in case CLEAR: lv_message, lv_postalcode. *Fiiling ls_bp_address with it_bp_address data LOOP AT it_bp_address INTO ls_bp_address. *Attributing the value for lv_postalcode lv_postalcode = ls_bp_address-postalcode. *Removing the '-' from the CEP REPLACE ALL OCCURRENCES OF SUBSTRING '-' IN lv_postalcode WITH ' '. *Checking if the BP country is Brazil IF ( ls_bp_address-country = 'BR' OR ls_bp_address-country = 'Brazil' ). DATA(lo_srv) = zbl_cl_get_request=&gt;create( ). DATA(ls_data) = lo_srv-&gt;get_data( iv_postal_code = lv_postalcode ). IF ls_data IS NOT INITIAL. *Cheking if the region from the CEP's code list is differnent from the one informed in the BP Master Data IF NOT ls_data-uf = ls_bp_address-region. CLEAR ls_message. ls_message-msgty = 'E'. ls_message-msgv1 = |Region informed: { ls_bp_address-region }. Region CEP: { ls_data-uf }|. APPEND ls_message TO ct_validationmessage. ENDIF. *Cheking if the city from the CEP's code list is differnt from the one informed in the BP Master Data IF NOT ls_data-localidade = ls_bp_address-cityname. CLEAR ls_message. ls_message-msgty = 'E'. ls_message-msgv1 = |City informed: { ls_bp_address-cityname }. City CEP: { ls_data-localidade }|. APPEND ls_message TO ct_validationmessage. ENDIF. *Cheking if the street from the CEP's code list is differnt from the one informed in the BP Master Data IF NOT ls_data-logradouro = ls_bp_address-streetname. CLEAR ls_message. ls_message-msgty = 'E'. ls_message-msgv1 = |Street informed: { ls_bp_address-streetname }. Street CEP: { ls_data-logradouro }|. APPEND ls_message TO ct_validationmessage. ENDIF. ENDIF. ENDIF. ENDLOOP.</code></pre><DIV class=""><H3 id="toc-hId-543190100">Step IV – Transport</H3><P>After testing, you can transport it.</P><UL><LI><A href="https://help.sap.com/docs/SAP_S4HANA_CLOUD/0f69f8fb28ac4bf48d2b57b9637e81fa/52b845ed9a2e45b8bd556fc395340ad2.html?locale=en-US&amp;version=2508.500" target="_blank" rel="noopener noreferrer">Creating Extension Items and Transporting Them | SAP Help Portal</A></LI></UL></DIV> 2026-02-19T18:11:34.521000+01:00 https://community.sap.com/t5/financial-management-blog-posts-by-sap/sap-s-4hana-public-cloud-edition-all-communication-scenarios-in-one-place/ba-p/14333677 SAP S/4HANA Public Cloud Edition – All Communication Scenarios in One Place (Bookmark) 2026-02-22T22:46:31.615000+01:00 Yogananda https://community.sap.com/t5/user/viewprofilepage/user-id/75 <DIV><FONT color="#3366FF"><EM>Make sure to bookmark this blog so you can easily revisit all communication scenarios in one place. Share it with your friends and colleagues—it’s a handy resource when searching across different SAP portals.</EM></FONT></DIV><DIV><H2 id="toc-hId-1790479526"><FONT color="#FF6600"><STRONG>What is a Communication Scenario ?</STRONG></FONT></H2><P>A <STRONG>Communication Scenario</STRONG> in SAP S/4HANA Public Cloud is a predefined, packaged set of:</P><UL><LI><STRONG>Inbound/Outbound APIs</STRONG> (OData, SOAP)</LI><LI><STRONG>Business events</STRONG> (for event-based integration)</LI><LI><STRONG>Message types</STRONG></LI><LI><STRONG>Authorizations</STRONG></LI></UL><P>These scenarios act as the integration between SAP S/4HANA Public Cloud and other SAP Products or external systems.</P><P>Think of a communication scenario as a “bundle” :</P><BLOCKQUOTE><P><EM>These are the APIs and permissions this external system is allowed to use, and here’s how the communication should happen.</EM></P></BLOCKQUOTE><P>Each Communication Scenario is delivered by SAP S/4HANA Public Product Release and cannot be modified—but you can activate and use them.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="2026-02-22_22-47-56.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/375243iC03AE2C63F84C3BD/image-size/large?v=v2&amp;px=999" role="button" title="2026-02-22_22-47-56.png" alt="2026-02-22_22-47-56.png" /></span></P></DIV><DIV><DIV><H2 id="toc-hId-1593966021"><FONT color="#FF6600"><STRONG>Key Components of a Communication Scenario</STRONG></FONT></H2><P>A typical scenario includes:</P><H3 id="toc-hId-1526535235"><STRONG>1. Communication User</STRONG></H3><P>A technical user used for authentication.<BR />Supports:</P><UL><LI>Basic Authentication</LI><LI>OAuth 2.0 (strongly recommended)</LI></UL><H3 id="toc-hId-1330021730"><STRONG>2. Communication System</STRONG></H3><P>Represents the external (non‑SAP) or SAP system you are integrating with.<BR />Defines:</P><UL><LI>Hostname / Token URLs</LI><LI>Outbound target URLs</LI><LI>Authentication method</LI></UL><H3 id="toc-hId-1133508225"><STRONG>3. Communication Arrangement</STRONG></H3><P>This is where everything comes together.</P><P>You assign:</P><UL><LI>The Communication Scenario</LI><LI>The Communication System</LI><LI>The Communication User</LI><LI>Any specific parameters (e.g., service URLs, outbound destinations)</LI></UL><P>If you think of it simply:</P><BLOCKQUOTE><P><STRONG>Scenario = Template</STRONG><BR /><STRONG>Arrangement = Active Configuration</STRONG></P></BLOCKQUOTE></DIV><H2 id="toc-hId-807912001"><FONT color="#FF6600"><STRONG>Why Are Communication Scenarios Important?</STRONG></FONT></H2><P>In S/4HANA Public Cloud, customers <STRONG>cannot</STRONG> create custom communication scenarios like in on‑premise or Private Cloud. This strict governance ensures:</P><UL><LI>Security and compliance</LI><LI>System stability</LI><LI>Standardized integration patterns</LI><LI>Ease of lifecycle management during upgrades</LI></UL><P>So instead of customizing scenarios, you configure and connect the right SAP‑delivered scenarios.</P></DIV><P><SPAN>APIs usually come with a predefined communication scenario. To use the APIs, you first need to create a communication arrangement based on the communication scenario.</SPAN></P><DIV><H2 id="toc-hId-611398496"><FONT color="#FF6600"><STRONG>How to Configure a Communication Scenario: Step-by-Step</STRONG></FONT></H2><H3 id="toc-hId-543967710"><STRONG>Step 1: Create a Communication User</STRONG></H3><P>SAP Fiori App: <STRONG>Maintain Communication Users</STRONG></P><UL><LI>Create user → assign password → store securely</LI><LI>Or create an OAuth technical user (preferred)</LI></UL><HR /><H3 id="toc-hId-347454205"><STRONG>Step 2: Create a Communication System</STRONG></H3><P>SAP Fiori App: <STRONG>Communication Systems</STRONG></P><P>Here you:</P><UL><LI>Assign the communication user</LI><LI>Maintain authentication method</LI><LI>Provide target host details</LI><LI>Configure OAuth token endpoint (if applicable)</LI></UL><HR /><H3 id="toc-hId-150940700"><STRONG>Step 3: Create Communication Arrangement</STRONG></H3><P>SAP Fiori App: <STRONG>Communication Arrangements</STRONG></P><P>Steps:</P><OL><LI>Select the communication scenario (e.g., <EM>SAP_COM_0008</EM>)</LI><LI>Assign the communication system</LI><LI>Review/activate inbound and outbound services</LI><LI>Copy Service URLs for external system use</LI></OL><P>Once activated, the APIs are ready for use.</P><HR /><H2 id="toc-hId-172598833"><FONT color="#FF6600"><STRONG>Testing Your Scenario</STRONG></FONT></H2><P>You can test APIs using tools like:</P><UL><LI>SAP Business Accelerator Hub (API Hub)</LI><LI>SAP Integration Suite (CPI)</LI><LI>SAP API Management</LI><LI>SAP BTP&nbsp; (Destinations, Side by Side Extensions, Extensibility Development)</LI><LI>Custom integrations</LI></UL></DIV><P><FONT color="#FF00FF"><SPAN>Check which communication scenario fits to your purposes best.</SPAN></FONT></P><P><FONT color="#993300"><SPAN>The following list gives you an overview of the most important communication scenarios&nbsp;available today</SPAN></FONT></P><TABLE width="726"><TBODY><TR><TD width="197"><STRONG>Communication Scenario ID</STRONG></TD><TD width="529"><STRONG>Description</STRONG></TD></TR><TR><TD>SAP_COM_0227</TD><TD>(Deprecated) Marketing - Campaign Execution - Twitter Integration</TD></TR><TR><TD>SAP_COM_0346</TD><TD>(Deprecated) Product Lifecycle Management - Product Structure Integration</TD></TR><TR><TD>SAP_COM_0901</TD><TD>ABAP Test Cockpit - ATC Run Integration</TD></TR><TR><TD>SAP_COM_0942</TD><TD>Advanced Backorder Processing Integration</TD></TR><TR><TD>SAP_COM_0438</TD><TD>Advanced Compliance Reporting Integration using SLHACR</TD></TR><TR><TD>SAP_COM_0A49</TD><TD>AI-Assisted Situation Handling Integration</TD></TR><TR><TD>SAP_COM_0454</TD><TD>Application Monitoring Integration (Obsolete)</TD></TR><TR><TD>SAP_COM_0508</TD><TD>Ariba Network - Buyer Integration via CIG Integration</TD></TR><TR><TD>SAP_COM_0081</TD><TD>Ariba Network - Supplier Integration</TD></TR><TR><TD>SAP_COM_0032</TD><TD>Ariba Network Integration</TD></TR><TR><TD>SAP_COM_0244</TD><TD>Asset Central Foundation for Maintenance Execution Integration</TD></TR><TR><TD>SAP_COM_0262</TD><TD>Asset Intelligence Network for Product Information Integration</TD></TR><TR><TD>SAP_COM_0395</TD><TD>Asset Management Master Data Integration</TD></TR><TR><TD>SAP_COM_0927</TD><TD>Assignment Status for Project Demands Integration</TD></TR><TR><TD>SAP_COM_0790</TD><TD>Assortment Module Integration</TD></TR><TR><TD>SAP_COM_0935</TD><TD>Available-to-Promise (ATP) Check Integration</TD></TR><TR><TD>SAP_COM_0379</TD><TD>Bank - Bank Integration</TD></TR><TR><TD>SAP_COM_0141</TD><TD>Batch Management - Batch IDoc/RFC Inbound Integration</TD></TR><TR><TD>SAP_COM_0337</TD><TD>Batch Management - Batch OData Inbound Integration</TD></TR><TR><TD>SAP_COM_0774</TD><TD>Batch Management - Batch SOAP Inbound Integration</TD></TR><TR><TD>SAP_COM_0855</TD><TD>Batch Management - Batch SOAP Outbound Integration</TD></TR><TR><TD>SAP_COM_0120</TD><TD>Billing Integration</TD></TR><TR><TD>SAP_COM_0745</TD><TD>Block Intercompany Postings Integration</TD></TR><TR><TD>SAP_COM_0349</TD><TD>Buffer Profile Integration</TD></TR><TR><TD>SAP_COM_0359</TD><TD>Buffer Sizing Integration</TD></TR><TR><TD>SAP_COM_0888</TD><TD>Business Data Orchestration - UI Integration</TD></TR><TR><TD>SAP_COM_0594</TD><TD>Business Data Orchestration Integration</TD></TR><TR><TD>SAP_COM_0121</TD><TD>Business Event Handling Integration (Obsolete)</TD></TR><TR><TD>SAP_COM_0A54</TD><TD>Business Event Log - SQL Read Integration</TD></TR><TR><TD>SAP_COM_0943</TD><TD>Business Object Cost Center Integration</TD></TR><TR><TD>SAP_COM_0A91</TD><TD>Business Object Project Settlement Rules Integration</TD></TR><TR><TD>SAP_COM_0091</TD><TD>Business Partner, Customer and Supplier Blocking Integration</TD></TR><TR><TD>SAP_COM_0008</TD><TD>Business Partner, Customer and Supplier Integration</TD></TR><TR><TD>SAP_COM_0394</TD><TD>Business Place Integration</TD></TR><TR><TD>SAP_COM_0698</TD><TD>Business Process Intelligence Integration</TD></TR><TR><TD>SAP_COM_0523</TD><TD>Business Process Monitoring Push Integration</TD></TR><TR><TD>SAP_COM_0366</TD><TD>Business Role Change Document Integration</TD></TR><TR><TD>SAP_COM_0A04</TD><TD>Business Role Read Integration</TD></TR><TR><TD>SAP_COM_0345</TD><TD>Business Situation Integration</TD></TR><TR><TD>SAP_COM_0376</TD><TD>Business Situation Master Data Integration</TD></TR><TR><TD>SAP_COM_0706</TD><TD>Business Solution Order Integration</TD></TR><TR><TD>SAP_COM_0327</TD><TD>Business User Change Document Integration</TD></TR><TR><TD>SAP_COM_0889</TD><TD>Business User Logon Details Read Integration</TD></TR><TR><TD>SAP_COM_0083</TD><TD>Central Finance Subsidiary Integration</TD></TR><TR><TD>SAP_COM_0A94</TD><TD>Central Payment Repository - Requested Payment Integration</TD></TR><TR><TD>SAP_COM_0A13</TD><TD>Certificate Read Integration</TD></TR><TR><TD>SAP_COM_0160</TD><TD>Classification Systems Integration</TD></TR><TR><TD>SAP_COM_0163</TD><TD>Classification Systems OData/SOAP Integration</TD></TR><TR><TD>SAP_COM_0A31</TD><TD>Cloud Integration Automation Integration</TD></TR><TR><TD>SAP_COM_0430</TD><TD>CMIS Repository Synchronization Integration</TD></TR><TR><TD>SAP_COM_0054</TD><TD>Commercial Project Integration</TD></TR><TR><TD>SAP_COM_0A07</TD><TD>Communication Arrangement Read Integration</TD></TR><TR><TD>SAP_COM_0400</TD><TD>Communication Management - HTTP Inbound Test Integration</TD></TR><TR><TD>SAP_COM_0401</TD><TD>Communication Management - HTTP Outbound Test Integration</TD></TR><TR><TD>SAP_COM_0A48</TD><TD>Communication Management Integration</TD></TR><TR><TD>YY1_GLACCOUNTLINEITEM</TD><TD>Communication Scenario for GLAccountLineItem</TD></TR><TR><TD>YY1_GLACCOUNTLINEITEM_V2</TD><TD>Communication Scenario for GLACCOUNTLINEITEM_V2</TD></TR><TR><TD>YY1_I_GLACCLINEITEM</TD><TD>Communication Scenarion for I_GLAccountLineItem</TD></TR><TR><TD>SAP_COM_0A06</TD><TD>Communication System Read Integration</TD></TR><TR><TD>SAP_COM_0A05</TD><TD>Communication User Read Integration</TD></TR><TR><TD>SAP_COM_0946</TD><TD>Complaint Handling Integration</TD></TR><TR><TD>SAP_COM_0070</TD><TD>Concur Integration</TD></TR><TR><TD>SAP_COM_0536</TD><TD>Concur POC Integration</TD></TR><TR><TD>SAP_COM_0A08</TD><TD>Content Security Policy Read Integration</TD></TR><TR><TD>SAP_COM_0682</TD><TD>Contract Accounting - Payment Information Integration</TD></TR><TR><TD>SAP_COM_0298</TD><TD>Contract Proposal Integration (Deprecated)</TD></TR><TR><TD>SAP_COM_0165</TD><TD>Convergent Invoicing Integration</TD></TR><TR><TD>SAP_COM_0158</TD><TD>Credit Memo Request Integration</TD></TR><TR><TD>SAP_COM_0722</TD><TD>CSN Exposure Integration</TD></TR><TR><TD>SAP_COM_0464</TD><TD>Custom Code Migration Integration</TD></TR><TR><TD>SAP_COM_0449</TD><TD>Custom Services for Citizen Integration</TD></TR><TR><TD>SAP_COM_0589</TD><TD>Customer Data Return Integration</TD></TR><TR><TD>SAP_COM_0134</TD><TD>Customer Material Info Record Integration</TD></TR><TR><TD>SAP_COM_0459</TD><TD>Customer Return Bulk Integration</TD></TR><TR><TD>SAP_COM_0497</TD><TD>Customer Return Bulk Replication Integration</TD></TR><TR><TD>SAP_COM_0157</TD><TD>Customer Return Integration</TD></TR><TR><TD>SAP_COM_0730</TD><TD>Customer Type Integration</TD></TR><TR><TD>SAP_COM_0080</TD><TD>Data Quality Management Integration</TD></TR><TR><TD>SAP_COM_0209</TD><TD>Data Warehouse - ODP Data Extraction Integration</TD></TR><TR><TD>SAP_COM_0159</TD><TD>Debit Memo Request Integration</TD></TR><TR><TD>SAP_COM_0570</TD><TD>Delivery Insights Integration (Obsolete)</TD></TR><TR><TD>SAP_COM_0571</TD><TD>Delivery Insights Replication App Integration (Obsolete)</TD></TR><TR><TD>SAP_COM_0106</TD><TD>Delivery Processing Integration</TD></TR><TR><TD>SAP_COM_0557</TD><TD>Digital Manufacturing for Network wth Quality Info Record Integration (Obsolete)</TD></TR><TR><TD>SAP_COM_0693</TD><TD>Digital Vehicle Integration</TD></TR><TR><TD>SAP_COM_0426</TD><TD>Direct Material Sourcing With Blockchain Integration</TD></TR><TR><TD>SAP_COM_0077</TD><TD>Distributed Manufacturing Integration (Deprecated)</TD></TR><TR><TD>SAP_COM_0854</TD><TD>Document and Reporting Compliance Cloud Edition Integration</TD></TR><TR><TD>SAP_COM_0703</TD><TD>Document Compliance - Electronic Document File Integration</TD></TR><TR><TD>SAP_COM_0626</TD><TD>Document Compliance Localization Extension Integration (Obsolete)</TD></TR><TR><TD>SAP_COM_0529</TD><TD>Document Compliance PEPPOL Integration</TD></TR><TR><TD>SAP_COM_0A82</TD><TD>Document Information Extraction Integration</TD></TR><TR><TD>SAP_COM_0872</TD><TD>DRC - External reporting system integration</TD></TR><TR><TD>SAP_COM_0548</TD><TD>E-Mail - Outbound Integration</TD></TR><TR><TD>SAP_COM_0A52</TD><TD>EBPP Payment Request Integration</TD></TR><TR><TD>SAP_COM_0448</TD><TD>eDocument - Argentina eInvoice Integration</TD></TR><TR><TD>SAP_COM_0669</TD><TD>eDocument - Chile eInvoice and Delivery Note Integration</TD></TR><TR><TD>SAP_COM_0670</TD><TD>eDocument - Colombia eInvoice and Incoming eInvoice Integration</TD></TR><TR><TD>SAP_COM_0255</TD><TD>eDocument - eInvoice and ePayment for Mexico Integration</TD></TR><TR><TD>SAP_COM_0689</TD><TD>eDocument - Greece electronic Tax register books Integration</TD></TR><TR><TD>SAP_COM_0417</TD><TD>eDocument - Hungary Invoice Registration Integration</TD></TR><TR><TD>SAP_COM_0629</TD><TD>eDocument - India eInvoice Solution Integration.</TD></TR><TR><TD>SAP_COM_0429</TD><TD>eDocument - India eWay Bill Solution Integration</TD></TR><TR><TD>SAP_COM_0418</TD><TD>eDocument - Italy eInvoice and Incoming eInvoice Integration</TD></TR><TR><TD>SAP_COM_0873</TD><TD>eDocument - Peru eInvoice and Delivery Note Integration</TD></TR><TR><TD>SAP_COM_0856</TD><TD>eDocument - Poland eInvoice Integration</TD></TR><TR><TD>SAP_COM_0631</TD><TD>eDocument - Portugal eInvoice Integration</TD></TR><TR><TD>SAP_COM_0494</TD><TD>eDocument - Portugal Transport Registration Integration</TD></TR><TR><TD>SAP_COM_0859</TD><TD>eDocument - Romania eInvoice Integration</TD></TR><TR><TD>SAP_COM_0898</TD><TD>eDocument - Saudi Arabia eInvoicing Integration</TD></TR><TR><TD>SAP_COM_0A19</TD><TD>eDocument - Serbia eInvoice Integration</TD></TR><TR><TD>SAP_COM_0877</TD><TD>eDocument - Slovakia eInvoice Integration</TD></TR><TR><TD>SAP_COM_0468</TD><TD>eDocument - South Korea eInvoice Integration</TD></TR><TR><TD>SAP_COM_0419</TD><TD>eDocument - Spain Invoice Registration Integration</TD></TR><TR><TD>SAP_COM_0846</TD><TD>eDocument - Switzerland eInvoice and Incoming eInvoice Integration</TD></TR><TR><TD>SAP_COM_0851</TD><TD>eDocument - Thailand eInvoice Integration</TD></TR><TR><TD>SAP_COM_0421</TD><TD>eDocument - Turkey eDelivery Note and Incoming eDelivery Note Integration</TD></TR><TR><TD>SAP_COM_0422</TD><TD>eDocument - Turkey eInvoice and Incoming eInvoice Integration</TD></TR><TR><TD>SAP_COM_0225</TD><TD>eDocument - VAT Register Books for Spain Integration</TD></TR><TR><TD>SAP_COM_0688</TD><TD>EHS - Authority Servers with E-Waste Documents Integration</TD></TR><TR><TD>SAP_COM_0857</TD><TD>Electronic Document - Egypt Electronic Invoice Integration</TD></TR><TR><TD>SAP_COM_0056</TD><TD>Employee Central Cost Center Integration</TD></TR><TR><TD>SAP_COM_0441</TD><TD>Employee Central Financial Master Data Integration</TD></TR><TR><TD>SAP_COM_0028</TD><TD>Employee Central Payroll Integration</TD></TR><TR><TD>SAP_COM_0535</TD><TD>Employee Central via SAP CPI Integration</TD></TR><TR><TD>SAP_COM_0001</TD><TD>Employee Integration</TD></TR><TR><TD>SAP_COM_0518</TD><TD>Enterprise Contract Management - DocuSign Integration</TD></TR><TR><TD>SAP_COM_0521</TD><TD>Enterprise Contract Management - External Linked Objects Integration</TD></TR><TR><TD>SAP_COM_0809</TD><TD>Enterprise Contract Management - Hub System Integration</TD></TR><TR><TD>SAP_COM_0868</TD><TD>Enterprise Contract Management - Icertis Integration</TD></TR><TR><TD>SAP_COM_0869</TD><TD>Enterprise Contract Management - Icertis Operational Integration</TD></TR><TR><TD>SAP_COM_0890</TD><TD>Enterprise Contract Management - Icertis UI Integration</TD></TR><TR><TD>SAP_COM_0823</TD><TD>Enterprise Contract Management - Microsoft Teams Integration</TD></TR><TR><TD>SAP_COM_0824</TD><TD>Enterprise Contract Management - Microsoft Teams Operational Integration</TD></TR><TR><TD>SAP_COM_0437</TD><TD>Enterprise Contract Management and Assembly Integration</TD></TR><TR><TD>SAP_COM_0A23</TD><TD>Enterprise Event Enablement - Direct Event Inbound Integration</TD></TR><TR><TD>SAP_COM_0A22</TD><TD>Enterprise Event Enablement - Direct Event Outbound Integration</TD></TR><TR><TD>SAP_COM_0092</TD><TD>Enterprise Eventing Integration</TD></TR><TR><TD>SAP_COM_0963</TD><TD>Enterprise Project - Blockable Function Integration</TD></TR><TR><TD>SAP_COM_0470</TD><TD>Enterprise Project - Central Finance Integration</TD></TR><TR><TD>SAP_COM_0250</TD><TD>Enterprise Project - Collaboration Integration</TD></TR><TR><TD>SAP_COM_0252</TD><TD>Enterprise Project - Collaboration UI Integration</TD></TR><TR><TD>SAP_COM_0656</TD><TD>Enterprise Project - Collaborative Project Integration</TD></TR><TR><TD>SAP_COM_0723</TD><TD>Enterprise Project - Internal Project Type Integration</TD></TR><TR><TD>SAP_COM_0726</TD><TD>Enterprise Project - Project Priority Integration</TD></TR><TR><TD>SAP_COM_0725</TD><TD>Enterprise Project - Project Processing Status Integration</TD></TR><TR><TD>SAP_COM_0724</TD><TD>Enterprise Project - Project Profile Integration</TD></TR><TR><TD>SAP_COM_0917</TD><TD>Enterprise Project Element - Deliverable Type Integration</TD></TR><TR><TD>SAP_COM_0308</TD><TD>Enterprise Project Integration</TD></TR><TR><TD>SAP_COM_0945</TD><TD>Enterprise Project Service Organization Integration</TD></TR><TR><TD>SAP_COM_0369</TD><TD>Environment, Health and Safety - Incident Reporting Integration</TD></TR><TR><TD>SAP_COM_0671</TD><TD>Environment, Health and Safety - Workers' Compensation Associations Integration</TD></TR><TR><TD>SAP_COM_0747</TD><TD>Environment, Health, and Safety - Automatic Data Collection Integration</TD></TR><TR><TD>SAP_COM_0A71</TD><TD>Environment, Health, and Safety - SAP SuccessFactors Learning Integration</TD></TR><TR><TD>SAP_COM_0602</TD><TD>Event Consumption Model Inbound Test Integration</TD></TR><TR><TD>SAP_COM_0634</TD><TD>Excise Tax EMCS Integration</TD></TR><TR><TD>SAP_COM_0568</TD><TD>Excise Tax Integration</TD></TR><TR><TD>SAP_COM_0694</TD><TD>Extensibility UI Text Translation Adaptation Integration</TD></TR><TR><TD>SAP_COM_0176</TD><TD>External Billing Document Request Integration</TD></TR><TR><TD>SAP_COM_0301</TD><TD>External HR Workforce Integration</TD></TR><TR><TD>SAP_COM_0177</TD><TD>External Sales and Use Tax Calculation Integration</TD></TR><TR><TD>SAP_COM_0326</TD><TD>External Scheduler - Application Job Administration Integration</TD></TR><TR><TD>SAP_COM_0064</TD><TD>External Scheduler - Application Job Scheduling Integration (Deprecated)</TD></TR><TR><TD>SAP_COM_0944</TD><TD>Factory Calendar - Pull Inbound Integration</TD></TR><TR><TD>SAP_COM_0732</TD><TD>Field Logistics - Manage Supplier Item Integration</TD></TR><TR><TD>SAP_COM_0752</TD><TD>Field Logistics - Pack Container Integration</TD></TR><TR><TD>SAP_COM_0753</TD><TD>Field Logistics - Shipment Voyage Integration</TD></TR><TR><TD>SAP_COM_0952</TD><TD>Field Logistics Shipment Container Integration</TD></TR><TR><TD>SAP_COM_0679</TD><TD>Field Logistics Supplier Item to Fieldglass Integration</TD></TR><TR><TD>SAP_COM_0074</TD><TD>Fieldglass Integration</TD></TR><TR><TD>SAP_COM_0321</TD><TD>Finance - Account Payable Configuration Integration</TD></TR><TR><TD>SAP_COM_0313</TD><TD>Finance - Account Payable Payment Advice Integration</TD></TR><TR><TD>SAP_COM_0251</TD><TD>Finance - Account Payable Positive Pay Integration</TD></TR><TR><TD>SAP_COM_0316</TD><TD>Finance - Account Receivable Bank Statement Integration</TD></TR><TR><TD>SAP_COM_0314</TD><TD>Finance - Account Receivable Payment Advice Integration</TD></TR><TR><TD>SAP_COM_0303</TD><TD>Finance - Accounting Analytics Integration</TD></TR><TR><TD>SAP_COM_0338</TD><TD>Finance - Accounting Correspondence Integration</TD></TR><TR><TD>SAP_COM_0277</TD><TD>Finance - Accounting Document Integration</TD></TR><TR><TD>SAP_COM_0179</TD><TD>Finance - Accounting Master Data Integration</TD></TR><TR><TD>SAP_COM_0590</TD><TD>Finance - Accounts Payable Discount Management Integration</TD></TR><TR><TD>SAP_COM_0759</TD><TD>Finance - Accounts Receivable Lockbox Integration</TD></TR><TR><TD>SAP_COM_0719</TD><TD>Finance - Accounts Receivable SEPA Mandate Integration</TD></TR><TR><TD>SAP_COM_0775</TD><TD>Finance - ACR Services for Partner Enablement Integration</TD></TR><TR><TD>SAP_COM_0129</TD><TD>Finance - Activity Type Integration</TD></TR><TR><TD>SAP_COM_0649</TD><TD>Finance - Advanced Payment Management - Watch List Screening Hits Integration</TD></TR><TR><TD>SAP_COM_0648</TD><TD>Finance - Advanced Payment Management - Watch List Screening Integration</TD></TR><TR><TD>SAP_COM_0315</TD><TD>Finance - Allocation Posting Integration</TD></TR><TR><TD>SAP_COM_0278</TD><TD>Finance - Bank Account Inbound Integration</TD></TR><TR><TD>SAP_COM_0279</TD><TD>Finance - Bank Account Outbound Integration</TD></TR><TR><TD>SAP_COM_0256</TD><TD>Finance - Bank Connectivity Integration</TD></TR><TR><TD>SAP_COM_0127</TD><TD>Finance - Bank Integration</TD></TR><TR><TD>SAP_COM_0388</TD><TD>Finance - Bank Reconciliation Integration</TD></TR><TR><TD>SAP_COM_0733</TD><TD>Finance - Brazilian ACR Reports Integration</TD></TR><TR><TD>SAP_COM_0284</TD><TD>Finance - Cash Management Inbound Integration</TD></TR><TR><TD>SAP_COM_0285</TD><TD>Finance - Cash Management Outbound Integration</TD></TR><TR><TD>SAP_COM_0126</TD><TD>Finance - Central Entity Integration</TD></TR><TR><TD>SAP_COM_0674</TD><TD>Finance - Central Finance SEPA Mandates Integration (Obsolete)</TD></TR><TR><TD>SAP_COM_0727</TD><TD>Finance - China Payment Requisition Integration</TD></TR><TR><TD>SAP_COM_0241</TD><TD>Finance - Cloud Consolidation Data Collection Integration</TD></TR><TR><TD>SAP_COM_0336</TD><TD>Finance - Cloud Consolidation Master Data for Group Reporting Integration</TD></TR><TR><TD>SAP_COM_0903</TD><TD>Finance - Cloud Consolidation Task for Group Reporting Integration</TD></TR><TR><TD>SAP_COM_0348</TD><TD>Finance - Cloud Consolidation Transaction Data for Group Reporting Integration</TD></TR><TR><TD>SAP_COM_0A83</TD><TD>Finance - Collections and Dispute Automation - Dispute Integration</TD></TR><TR><TD>SAP_COM_0639</TD><TD>Finance - Contract Accounting Collection Agency Integration</TD></TR><TR><TD>SAP_COM_0638</TD><TD>Finance - Contract Accounting External Cash Desk Integration</TD></TR><TR><TD>SAP_COM_0663</TD><TD>Finance - Contract Accounting Factoring Integration</TD></TR><TR><TD>SAP_COM_0696</TD><TD>Finance - Contract Accounting General Ledger Hub Integration</TD></TR><TR><TD>SAP_COM_0731</TD><TD>Finance - Contract Accounting Integration</TD></TR><TR><TD>SAP_COM_0511</TD><TD>Finance - Contract Accounting Integration for SAP Cash Application</TD></TR><TR><TD>SAP_COM_0167</TD><TD>Finance - Contract Accounting Master Data Integration</TD></TR><TR><TD>SAP_COM_0361</TD><TD>Finance - Contract Accounting Open Item Management Integration</TD></TR><TR><TD>SAP_COM_0716</TD><TD>Finance - Contract Accounting Promise to Pay Integration</TD></TR><TR><TD>SAP_COM_0380</TD><TD>Finance - Contract Accounting Security Deposits Integration</TD></TR><TR><TD>SAP_COM_0458</TD><TD>Finance - Contract Accounting SEPA Mandate Integration</TD></TR><TR><TD>SAP_COM_0579</TD><TD>Finance - Contract Accounting: Disconnection and Reconnection of Services</TD></TR><TR><TD>SAP_COM_0357</TD><TD>Finance - Cost Center Activity Type Integration</TD></TR><TR><TD>SAP_COM_0133</TD><TD>Finance - Cost Center Integration</TD></TR><TR><TD>SAP_COM_0173</TD><TD>Finance - Credit Management Integration</TD></TR><TR><TD>SAP_COM_0740</TD><TD>Finance - Credit Management Master Data Integration</TD></TR><TR><TD>SAP_COM_0B18</TD><TD>Finance - Currency Exchange Rates Integration</TD></TR><TR><TD>SAP_COM_0B17</TD><TD>Finance - Direct Debit Mandate Integration</TD></TR><TR><TD>SAP_COM_0705</TD><TD>Finance - EBRR Manual Accruals Integration</TD></TR><TR><TD>SAP_COM_0645</TD><TD>Finance - ELSTER Integration</TD></TR><TR><TD>SAP_COM_0543</TD><TD>Finance - EU VAT Registration Number Validation Integration</TD></TR><TR><TD>SAP_COM_0312</TD><TD>Finance - Event-Based Revenue Recognition Integration</TD></TR><TR><TD>SAP_COM_0563</TD><TD>Finance - Fixed Asset Integration</TD></TR><TR><TD>SAP_COM_0A93</TD><TD>Finance - Fixed Asset Master Data Integration</TD></TR><TR><TD>SAP_COM_0A95</TD><TD>Finance - Fixed Asset Posting Integration</TD></TR><TR><TD>SAP_COM_0A97</TD><TD>Finance - Fixed Asset Revaluation Index Integration</TD></TR><TR><TD>SAP_COM_0A96</TD><TD>Finance - Fixed Asset Usage Object for UoP Depreciation Integration</TD></TR><TR><TD>SAP_COM_0362</TD><TD>Finance - Freeze Period Integration</TD></TR><TR><TD>SAP_COM_0370</TD><TD>Finance - Group Reporting Planning Integration</TD></TR><TR><TD>SAP_COM_0248</TD><TD>Finance - Group Reporting Reported Financial Data Integration</TD></TR><TR><TD>SAP_COM_0377</TD><TD>Finance - Intercompany Matching Item Integration</TD></TR><TR><TD>SAP_COM_0125</TD><TD>Finance - Internal Order Integration</TD></TR><TR><TD>SAP_COM_0559</TD><TD>Finance - Master Data Integration for Cost Center Integration (Obsolete)</TD></TR><TR><TD>SAP_COM_0585</TD><TD>Finance - Master Data Service for Account Assignment Elements Integration</TD></TR><TR><TD>SAP_COM_0A62</TD><TD>Finance - Memo Records 2.0 Integration</TD></TR><TR><TD>SAP_COM_0654</TD><TD>Finance - One Time Password Integration</TD></TR><TR><TD>SAP_COM_0331</TD><TD>Finance - Payment Advice Integration</TD></TR><TR><TD>SAP_COM_0711</TD><TD>Finance - Payment Approval Integration</TD></TR><TR><TD>SAP_COM_0132</TD><TD>Finance - Payment Request Integration</TD></TR><TR><TD>SAP_COM_0002</TD><TD>Finance - Posting Integration</TD></TR><TR><TD>SAP_COM_0131</TD><TD>Finance - Profit Center Integration</TD></TR><TR><TD>SAP_COM_0368</TD><TD>Finance - Profit Center OData Integration</TD></TR><TR><TD>SAP_COM_0754</TD><TD>Finance - Reassign Costs and Revenues Integration</TD></TR><TR><TD>SAP_COM_0852</TD><TD>Finance - SAP SuccessFactors Payroll - Journal Entry Integration</TD></TR><TR><TD>SAP_COM_0844</TD><TD>Finance - Slovakia Bank Accounts Register Integration</TD></TR><TR><TD>SAP_COM_0130</TD><TD>Finance - Statistical Key Figure Integration</TD></TR><TR><TD>SAP_COM_0B07</TD><TD>Finance - Statistical Key Figure OData Integration</TD></TR><TR><TD>SAP_COM_0554</TD><TD>Finance - Third-party's Communication Client Integration</TD></TR><TR><TD>SAP_COM_0794</TD><TD>Finance - Transaction Data - Write - for Group Reporting Integration</TD></TR><TR><TD>SAP_COM_0923</TD><TD>Finance - Treasury Financial Transaction NPV Integration</TD></TR><TR><TD>SAP_COM_0A85</TD><TD>Finance - Treasury FX Exposure Management Integration</TD></TR><TR><TD>SAP_COM_0442</TD><TD>Finance - Treasury Payment Request Integration</TD></TR><TR><TD>SAP_COM_0332</TD><TD>Finance - Treasury Position Flow Integration</TD></TR><TR><TD>SAP_COM_0333</TD><TD>Finance - Treasury Posting Journal Integration</TD></TR><TR><TD>SAP_COM_0853</TD><TD>Finance – SAP SuccessFactors Payroll – UI Integration</TD></TR><TR><TD>SAP_COM_0580</TD><TD>Finance Employee Central Account Assignment Derivation Validation Integration</TD></TR><TR><TD>SAP_COM_0B00</TD><TD>Finance-Contract Accounting Accounts Receivable/Accounts Payable Integration</TD></TR><TR><TD>SAP_COM_0416</TD><TD>Financial Closing Integration</TD></TR><TR><TD>SAP_COM_0566</TD><TD>Financial Tasklist Integration</TD></TR><TR><TD>SAP_COM_0096</TD><TD>Financials - SAP Customer Engagement Center Integration</TD></TR><TR><TD>SAP_COM_0114</TD><TD>Foundation Master Data Integration</TD></TR><TR><TD>SAP_COM_0782</TD><TD>Goods Receipt Confirmation Integration</TD></TR><TR><TD>SAP_COM_0230</TD><TD>GRC - Process Control and Risk Management Integration</TD></TR><TR><TD>SAP_COM_0734</TD><TD>GRC - SAP Risk and Assurance Management Integration</TD></TR><TR><TD>SAP_COM_0391</TD><TD>GRC SAP Privacy Governance Integration</TD></TR><TR><TD>SAP_COM_0364</TD><TD>Handling Unit Integration</TD></TR><TR><TD>SAP_COM_0932</TD><TD>IC Configure - Variant Configuration Bundle Model Integration</TD></TR><TR><TD>SAP_COM_0093</TD><TD>Identity Management Integration</TD></TR><TR><TD>SAP_COM_0193</TD><TD>Identity Provisioning Integration</TD></TR><TR><TD>SAP_COM_0431</TD><TD>Image Based Ordering for S/4H Procurement ML Integration (Deprecated)</TD></TR><TR><TD>SAP_COM_0A42</TD><TD>Incident Management - OSHA Reporting Integration</TD></TR><TR><TD>SAP_COM_0546</TD><TD>Incoming China VAT Invoice Integration</TD></TR><TR><TD>SAP_COM_0110</TD><TD>Inspection Master Data Integration</TD></TR><TR><TD>SAP_COM_0810</TD><TD>Integration of Enterprise Contract Management - Connected System</TD></TR><TR><TD>SAP_COM_0446</TD><TD>Intelligent Accruals Recommendation Integration</TD></TR><TR><TD>SAP_COM_0718</TD><TD>Intelligent Product Proposal Integration</TD></TR><TR><TD>SAP_COM_0572</TD><TD>Intelligent Product Selection Consumption Integration</TD></TR><TR><TD>SAP_COM_0538</TD><TD>Intelligent Product Selection Integration</TD></TR><TR><TD>SAP_COM_0280</TD><TD>International Trade Content - Commodity Codes Integration</TD></TR><TR><TD>SAP_COM_0281</TD><TD>International Trade Content - Control Classes Integration</TD></TR><TR><TD>SAP_COM_0282</TD><TD>International Trade Content - Customs Tariff Numbers Integration</TD></TR><TR><TD>SAP_COM_0240</TD><TD>Invoice Process Integration</TD></TR><TR><TD>SAP_COM_0B08</TD><TD>Invoice Summary Output Integration</TD></TR><TR><TD>SAP_COM_1238</TD><TD>Invoice Summary Output Integration (Deprecated)</TD></TR><TR><TD>SAP_COM_0383</TD><TD>Joint Venture Accounting API Integration</TD></TR><TR><TD>SAP_COM_0381</TD><TD>Joint Venture Partner Billing Files Integration</TD></TR><TR><TD>SAP_COM_0882</TD><TD>Joule Integration</TD></TR><TR><TD>SAP_COM_0330</TD><TD>Kanban Control Cycle Integration</TD></TR><TR><TD>SAP_COM_0520</TD><TD>Kanban Summarized JIT Call Outbound Integration</TD></TR><TR><TD>SAP_COM_0540</TD><TD>Key Mapping Client Integration</TD></TR><TR><TD>SAP_COM_0539</TD><TD>Key Mapping Hub Integration</TD></TR><TR><TD>SAP_COM_0647</TD><TD>Launchpad Content Exposure to SAP BTP Integration</TD></TR><TR><TD>SAP_COM_0791</TD><TD>Legal Context Integration</TD></TR><TR><TD>SAP_COM_0178</TD><TD>Legal Document Integration</TD></TR><TR><TD>SAP_COM_0140</TD><TD>Legal Transaction Integration</TD></TR><TR><TD>SAP_COM_0396</TD><TD>Maintenance Planning Integration</TD></TR><TR><TD>SAP_COM_0397</TD><TD>Maintenance Processing Integration</TD></TR><TR><TD>SAP_COM_0B27</TD><TD>Manage External Tax Items Integration</TD></TR><TR><TD>SAP_COM_0765</TD><TD>Manage User-Defined Criteria Integration</TD></TR><TR><TD>SAP_COM_0667</TD><TD>Manufacturing - MRP Change Request Integration</TD></TR><TR><TD>SAP_COM_0522</TD><TD>Manufacturing Execution - Order and Confirmation Integration</TD></TR><TR><TD>SAP_COM_0156</TD><TD>Manufacturing Execution Integration</TD></TR><TR><TD>SAP_COM_0135</TD><TD>Marketing - Campaigns Integration (Obsolete)</TD></TR><TR><TD>SAP_COM_0371</TD><TD>Marketing - Event Inbound Integration</TD></TR><TR><TD>SAP_COM_1095</TD><TD>Marketing - Kubernetes Dialog Scaler Integration</TD></TR><TR><TD>SAP_COM_0022</TD><TD>Marketing - Reporting Integration</TD></TR><TR><TD>SAP_COM_0780</TD><TD>Master Data - Location Substitution Integration</TD></TR><TR><TD>SAP_COM_0708</TD><TD>Master Data - Product Exclusion Integration</TD></TR><TR><TD>SAP_COM_0779</TD><TD>Master Data - Product Substitution Control Integration</TD></TR><TR><TD>SAP_COM_0778</TD><TD>Master Data - Product Substitution Group Integration</TD></TR><TR><TD>SAP_COM_0707</TD><TD>Master Data - Product Substitution Integration</TD></TR><TR><TD>SAP_COM_0581</TD><TD>Master Data Service for Proj Control Object Integate (Deprecated)| (Obsolete)</TD></TR><TR><TD>SAP_COM_0108</TD><TD>Material Document Integration</TD></TR><TR><TD>SAP_COM_0263</TD><TD>Material Document Outbound Notification Integration</TD></TR><TR><TD>SAP_COM_0147</TD><TD>Material Price Changes and Inventory Values Integration</TD></TR><TR><TD>SAP_COM_0164</TD><TD>Material Stock Integration</TD></TR><TR><TD>SAP_COM_0447</TD><TD>Material Stock Quantity Replication Integration</TD></TR><TR><TD>SAP_COM_0A79</TD><TD>MDG - Cloud Integration - Business Partner Pull Integration</TD></TR><TR><TD>SAP_COM_0477</TD><TD>Message Monitoring - Error Propagation Integration</TD></TR><TR><TD>SAP_COM_0569</TD><TD>Message Monitoring - Outbound Integration of Error Propagation</TD></TR><TR><TD>SAP_COM_0578</TD><TD>Message Monitoring - SAP Alert Notification service for SAP BTP - Integration</TD></TR><TR><TD>SAP_COM_0947</TD><TD>Migration Cockpit API Integration</TD></TR><TR><TD>SAP_COM_0816</TD><TD>Migration Cockpit Direct Transfer Integration</TD></TR><TR><TD>SAP_COM_0259</TD><TD>Migration Cockpit Integration</TD></TR><TR><TD>SAP_COM_0678</TD><TD>Migration Cockpit Integration</TD></TR><TR><TD>SAP_COM_0181</TD><TD>OData Metadata Integration</TD></TR><TR><TD>SAP_COM_0B06</TD><TD>Omnichannel Promotion Pricing Services Integration</TD></TR><TR><TD>SAP_COM_0046</TD><TD>Open Catalog Integration</TD></TR><TR><TD>SAP_COM_0007</TD><TD>OpenText Business Event Integration</TD></TR><TR><TD>SAP_COM_0577</TD><TD>Outgoing China VAT Invoice Integration</TD></TR><TR><TD>SAP_COM_0881</TD><TD>Output Management - Output Queue Integration</TD></TR><TR><TD>SAP_COM_0399</TD><TD>Packing Instruction Integration</TD></TR><TR><TD>SAP_COM_0896</TD><TD>Packing Instruction Replication with Ariba Network Integration</TD></TR><TR><TD>SAP_COM_0A38</TD><TD>Payables and Receivables Financing with Taulia</TD></TR><TR><TD>SAP_COM_0644</TD><TD>Photo Replication for Workforce Integration</TD></TR><TR><TD>SAP_COM_0107</TD><TD>Physical Inventory Document Integration</TD></TR><TR><TD>SAP_COM_0A15</TD><TD>Planon Real Estate Management for SAP UI Integration</TD></TR><TR><TD>SAP_COM_0398</TD><TD>Plant Maintenance Execution Integration</TD></TR><TR><TD>SAP_COM_0319</TD><TD>Plant Maintenance Master Data Integration</TD></TR><TR><TD>SAP_COM_0322</TD><TD>Plant Maintenance Notification Integration</TD></TR><TR><TD>SAP_COM_0344</TD><TD>Plant Maintenance Order Integration</TD></TR><TR><TD>SAP_COM_0814</TD><TD>Portugal Series Validation Code Registration Integration</TD></TR><TR><TD>SAP_COM_0257</TD><TD>Portuguese Tax Authority Integration</TD></TR><TR><TD>SAP_COM_0920</TD><TD>PRA Accounting Data Integration</TD></TR><TR><TD>SAP_COM_0815</TD><TD>PRA Funds Notification Integration</TD></TR><TR><TD>SAP_COM_0919</TD><TD>PRA Production Data Integration</TD></TR><TR><TD>SAP_COM_0921</TD><TD>PRA Valuation Data Integration</TD></TR><TR><TD>SAP_COM_0940</TD><TD>PRA Well Completion Daily Pressure Integration</TD></TR><TR><TD>SAP_COM_0939</TD><TD>PRA Well Completion Downtime Integration</TD></TR><TR><TD>SAP_COM_0938</TD><TD>PRA WellTest Integration</TD></TR><TR><TD>SAP_COM_0806</TD><TD>PRA XI Inbound Integration</TD></TR><TR><TD>SAP_COM_0373</TD><TD>Predictive Journal Entry Data Integration</TD></TR><TR><TD>SAP_COM_0739</TD><TD>Predictive MRP Masterdata Integration</TD></TR><TR><TD>SAP_COM_0911</TD><TD>Preferred Supplier List Integration (Deprecated)</TD></TR><TR><TD>SAP_COM_0953</TD><TD>Preliminary Billing Document Integration</TD></TR><TR><TD>SAP_COM_0861</TD><TD>Price Calculation - UI Integration</TD></TR><TR><TD>SAP_COM_0294</TD><TD>Pricing Data Integration</TD></TR><TR><TD>SAP_COM_0295</TD><TD>Pricing Data Replication Integration</TD></TR><TR><TD>SAP_COM_0467</TD><TD>Printing - Notification Integration</TD></TR><TR><TD>SAP_COM_0A86</TD><TD>Printing - Print Queue Administration Integration</TD></TR><TR><TD>SAP_COM_0466</TD><TD>Printing - Pull Integration</TD></TR><TR><TD>SAP_COM_0524</TD><TD>Procurement - Ariba Contract Management Integration</TD></TR><TR><TD>SAP_COM_0450</TD><TD>Procurement - Ariba Sourcing Integration</TD></TR><TR><TD>SAP_COM_0451</TD><TD>Procurement - External Sourcing Integration</TD></TR><TR><TD>SAP_COM_0324</TD><TD>Procurement - Operational Supplier Evaluation Score Integration</TD></TR><TR><TD>SAP_COM_0760</TD><TD>Procurement - Supplier Quotation Management Integration (Deprecated)</TD></TR><TR><TD>SAP_COM_0526</TD><TD>Procurement – Ariba Supplier Risk Integration</TD></TR><TR><TD>SAP_COM_0633</TD><TD>Procurement Central Sourcing - Ariba Sourcing Integration</TD></TR><TR><TD>SAP_COM_0116</TD><TD>Procurement Master Data Integration</TD></TR><TR><TD>SAP_COM_0152</TD><TD>Product Allocation Object Integration</TD></TR><TR><TD>SAP_COM_0161</TD><TD>Product Allocation Sequence Integration</TD></TR><TR><TD>SAP_COM_0792</TD><TD>Product Assignment to Distribution Center Integration</TD></TR><TR><TD>SAP_COM_0115</TD><TD>Product Availability Information Integration</TD></TR><TR><TD>SAP_COM_0309</TD><TD>Product Classification Integration</TD></TR><TR><TD>SAP_COM_0797</TD><TD>Product Compliance - Integration</TD></TR><TR><TD>SAP_COM_0666</TD><TD>Product Compliance - Integration of Third-Party Regulatory Content</TD></TR><TR><TD>SAP_COM_0772</TD><TD>Product Compliance - Label Template Authoring Integration</TD></TR><TR><TD>SAP_COM_0A60</TD><TD>Product Compliance - Logistics Inbound Integration</TD></TR><TR><TD>SAP_COM_0786</TD><TD>Product Compliance - Regulatory Documentation Reference Service Integration</TD></TR><TR><TD>SAP_COM_0514</TD><TD>Product Compliance - Regulatory Documentation Service Integration</TD></TR><TR><TD>SAP_COM_0748</TD><TD>Product Compliance - Substance Volume Tracking Integration</TD></TR><TR><TD>SAP_COM_0009</TD><TD>Product Integration</TD></TR><TR><TD>SAP_COM_0339</TD><TD>Product Lifecycle Management - Change Record Integration</TD></TR><TR><TD>SAP_COM_0150</TD><TD>Product Lifecycle Management - Core Master Data Integration</TD></TR><TR><TD>SAP_COM_0151</TD><TD>Product Lifecycle Management - Engineering Change Management IDOC Integration</TD></TR><TR><TD>SAP_COM_0937</TD><TD>Product Lifecycle Management - EPD Integration</TD></TR><TR><TD>SAP_COM_0290</TD><TD>Product Lifecycle Management - Intelligent Product Design BOM Integration</TD></TR><TR><TD>SAP_COM_0214</TD><TD>Product Lifecycle Management - Intelligent Product Design DMS Integration</TD></TR><TR><TD>SAP_COM_0215</TD><TD>Product Lifecycle Management - Intelligent Product Design EADesigner Integration</TD></TR><TR><TD>SAP_COM_0291</TD><TD>Product Lifecycle Management - Intelligent Product Design RD Integration</TD></TR><TR><TD>SAP_COM_0428</TD><TD>Product Lifecycle Management - IPD Collaboration Change Record Integration</TD></TR><TR><TD>SAP_COM_0105</TD><TD>Product Lifecycle Management - Master Data Integration</TD></TR><TR><TD>SAP_COM_0254</TD><TD>Product Lifecycle Management - ML for Document Classification Integration</TD></TR><TR><TD>SAP_COM_0866</TD><TD>Product Lifecycle Management - PLM System Inbound Integration</TD></TR><TR><TD>SAP_COM_0867</TD><TD>Product Lifecycle Management - PLM System Outbound Integration</TD></TR><TR><TD>SAP_COM_0136</TD><TD>Product Lifecycle Management - Recipe Development Integration</TD></TR><TR><TD>SAP_COM_0A47</TD><TD>Product Lifecycle Management - UI Integration</TD></TR><TR><TD>SAP_COM_0149</TD><TD>Product Lifecycle Management - Variant Configuration Integration</TD></TR><TR><TD>SAP_COM_0751</TD><TD>Product Lifecycle Management - Variant Configuration Integration</TD></TR><TR><TD>SAP_COM_0910</TD><TD>Product Sourcing Integration (Deprecated)</TD></TR><TR><TD>SAP_COM_0104</TD><TD>Production Planning Integration</TD></TR><TR><TD>SAP_COM_0519</TD><TD>Production Planning Master Data Integration</TD></TR><TR><TD>SAP_COM_0328</TD><TD>Production Supply Area Integration</TD></TR><TR><TD>SAP_COM_0704</TD><TD>Production Volume Management Integration (Deprecated)</TD></TR><TR><TD>SAP_COM_0909</TD><TD>Project Billing Integration</TD></TR><TR><TD>SAP_COM_0111</TD><TD>Project Control Integration</TD></TR><TR><TD>SAP_COM_0925</TD><TD>Project Demand Category and Type Integration</TD></TR><TR><TD>SAP_COM_0783</TD><TD>Project Demand Integration</TD></TR><TR><TD>SAP_COM_0926</TD><TD>Project Demand Status Integration</TD></TR><TR><TD>SAP_COM_0843</TD><TD>Project Management in SAP Project and Resource Management - UI Integration</TD></TR><TR><TD>SAP_COM_0A09</TD><TD>Protection Allowlists Read Integration</TD></TR><TR><TD>SAP_COM_0761</TD><TD>Public Sector API Integration</TD></TR><TR><TD>SAP_COM_0101</TD><TD>Purchase Contract Integration</TD></TR><TR><TD>SAP_COM_0A29</TD><TD>Purchase Order Accruals Review Integration</TD></TR><TR><TD>SAP_COM_0053</TD><TD>Purchase Order Integration</TD></TR><TR><TD>SAP_COM_0238</TD><TD>Purchase Order Process Integration</TD></TR><TR><TD>SAP_COM_0113</TD><TD>Purchase Request for Quotation Integration</TD></TR><TR><TD>SAP_COM_0102</TD><TD>Purchase Requisition Integration</TD></TR><TR><TD>SAP_COM_0239</TD><TD>Purchase Requisition Process Integration</TD></TR><TR><TD>SAP_COM_0103</TD><TD>Purchase Scheduling Agreement Integration</TD></TR><TR><TD>SAP_COM_0123</TD><TD>Purchasing Category Integration</TD></TR><TR><TD>SAP_COM_0145</TD><TD>Purchasing Info Record Integration</TD></TR><TR><TD>SAP_COM_0166</TD><TD>Purchasing Quota Arrangement Integration</TD></TR><TR><TD>SAP_COM_0162</TD><TD>Purchasing Source Integration</TD></TR><TR><TD>SAP_COM_0588</TD><TD>Quality Certificate Exchange Integration</TD></TR><TR><TD>SAP_COM_0389</TD><TD>Quality Certificate Inbound Integration</TD></TR><TR><TD>SAP_COM_0358</TD><TD>Quality Info Record Integration</TD></TR><TR><TD>SAP_COM_0124</TD><TD>Quality Inspection Process (with BAPI) Integration</TD></TR><TR><TD>SAP_COM_0318</TD><TD>Quality Inspection Process Integration</TD></TR><TR><TD>SAP_COM_0153</TD><TD>Quality Notification and Defect Processing Integration</TD></TR><TR><TD>SAP_COM_0915</TD><TD>Read Access Log Integration</TD></TR><TR><TD>YY1_READWORKFORCEPERSON</TD><TD>Read workforce person</TD></TR><TR><TD>SAP_COM_0402</TD><TD>Remote Function Call - RFC Inbound Test Integration</TD></TR><TR><TD>SAP_COM_0636</TD><TD>Remote Function Call - RFC Metadata Integration</TD></TR><TR><TD>SAP_COM_0403</TD><TD>Remote Function Call - RFC Outbound Test Integration</TD></TR><TR><TD>SAP_COM_0404</TD><TD>Remote Function Call - WebSocket RFC Inbound Test Integration</TD></TR><TR><TD>SAP_COM_0405</TD><TD>Remote Function Call - Websocket RFC Outbound Test Integration</TD></TR><TR><TD>SAP_COM_0902</TD><TD>Renegotiation Integration</TD></TR><TR><TD>SAP_COM_0112</TD><TD>Reservation Integration</TD></TR><TR><TD>SAP_COM_0928</TD><TD>Resource Assignment Source for Project Demands Integration</TD></TR><TR><TD>SAP_COM_0A11</TD><TD>Resource Management in SAP Project and Resource Management - API Integration</TD></TR><TR><TD>SAP_COM_0840</TD><TD>Resource Management in SAP Project and Resource Management - UI Integration</TD></TR><TR><TD>SAP_COM_0560</TD><TD>Responsibility Management Team Integration</TD></TR><TR><TD>SAP_COM_0640</TD><TD>Retail Merchandise Management - Point of sale Master data Integration</TD></TR><TR><TD>SAP_COM_0652</TD><TD>Retail Merchandise Management - Point Of Sale Transaction Data Integration</TD></TR><TR><TD>SAP_COM_0795</TD><TD>Returns Inspection OData v4 Integration</TD></TR><TR><TD>SAP_COM_0701</TD><TD>Revenue Accounting Integration</TD></TR><TR><TD>YY1_RM_SCENARIO</TD><TD>RM api call</TD></TR><TR><TD>SAP_COM_0A33</TD><TD>S/4H Document and Reporting Compliance - SAP CIM Integration</TD></TR><TR><TD>SAP_COM_0228</TD><TD>S/4HANA Activate New Features - Innovation Discovery System Integration</TD></TR><TR><TD>SAP_COM_0837</TD><TD>S/4HANA QM/NCM - Quality Issue Resolution Integration</TD></TR><TR><TD>SAP_COM_0641</TD><TD>Sales - Document Information Extraction Service Integration</TD></TR><TR><TD>SAP_COM_0427</TD><TD>Sales Area Replication Integration</TD></TR><TR><TD>SAP_COM_0A10</TD><TD>Sales Contract Bulk Replication Integration</TD></TR><TR><TD>SAP_COM_0119</TD><TD>Sales Contract Integration</TD></TR><TR><TD>SAP_COM_0325</TD><TD>Sales Credit Management Integration</TD></TR><TR><TD>SAP_COM_0829</TD><TD>Sales Credit Management Outbound Integration</TD></TR><TR><TD>SAP_COM_0117</TD><TD>Sales Inquiry Integration</TD></TR><TR><TD>SAP_COM_0746</TD><TD>Sales Master Data Integration</TD></TR><TR><TD>SAP_COM_0B03</TD><TD>Sales Material Determination Record Integration</TD></TR><TR><TD>SAP_COM_0288</TD><TD>Sales Order Bulk Integration</TD></TR><TR><TD>SAP_COM_0287</TD><TD>Sales Order Bulk Replication Integration</TD></TR><TR><TD>SAP_COM_0109</TD><TD>Sales Order Integration</TD></TR><TR><TD>SAP_COM_0334</TD><TD>Sales Order Without Charge Integration</TD></TR><TR><TD>SAP_COM_0702</TD><TD>Sales Price Integration</TD></TR><TR><TD>SAP_COM_0A12</TD><TD>Sales Quotation Bulk Replication Integration</TD></TR><TR><TD>SAP_COM_0118</TD><TD>Sales Quotation Integration</TD></TR><TR><TD>SAP_COM_0382</TD><TD>Sales Scheduling Agreements Consignment Issue Integration</TD></TR><TR><TD>SAP_COM_0360</TD><TD>Sales Scheduling Agreements Integration</TD></TR><TR><TD>SAP_COM_0444</TD><TD>Sales Scheduling Agreements With Buyers Integration</TD></TR><TR><TD>SAP_COM_0223</TD><TD>Sales with Buyers Integration</TD></TR><TR><TD>SAP_COM_0848</TD><TD>Sales with SAP Business Network Integration</TD></TR><TR><TD>SAP_COM_0A69</TD><TD>SAP AI Core - GenAI - Customer Outbound Integration</TD></TR><TR><TD>SAP_COM_0443</TD><TD>SAP Analytics Cloud for Liquidity Planning Integration</TD></TR><TR><TD>SAP_COM_0087</TD><TD>SAP Analytics Cloud for Planning Integration</TD></TR><TR><TD>SAP_COM_0065</TD><TD>SAP Analytics Cloud Integration</TD></TR><TR><TD>SAP_COM_0545</TD><TD>SAP Ariba Buying Integration</TD></TR><TR><TD>SAP_COM_0A00</TD><TD>SAP Ariba Buying UI Integration</TD></TR><TR><TD>SAP_COM_0574</TD><TD>SAP BTP Connectivity Service - On Premise Integration</TD></TR><TR><TD>SAP_COM_0A34</TD><TD>SAP Build - Extensibility Integration</TD></TR><TR><TD>SAP_COM_0A61</TD><TD>SAP Build Process Automation - Master Data Governance Process Integration</TD></TR><TR><TD>SAP_COM_0743</TD><TD>SAP Business Accelerator Hub - Open Resource Discovery Integration</TD></TR><TR><TD>SAP_COM_0A84</TD><TD>SAP Business Network - Supplier Search UI Integration</TD></TR><TR><TD>SAP_COM_0042</TD><TD>SAP Business Warehouse Integration</TD></TR><TR><TD>SAP_COM_0A20</TD><TD>SAP Cash Application for ISLM Integration</TD></TR><TR><TD>SAP_COM_0650</TD><TD>SAP Cash Application Integration</TD></TR><TR><TD>SAP_COM_0897</TD><TD>SAP Central Invoice Management - UI Integration</TD></TR><TR><TD>SAP_COM_0690</TD><TD>SAP Cloud ALM - Change and Deployment Management Integration</TD></TR><TR><TD>SAP_COM_0527</TD><TD>SAP Cloud ALM for operations - Application Monitoring Push Integration</TD></TR><TR><TD>SAP_COM_0A43</TD><TD>SAP Cloud Application Event Hub - UI Integration</TD></TR><TR><TD>SAP_COM_0892</TD><TD>SAP Cloud Application Event Hub Integration</TD></TR><TR><TD>SAP_COM_0200</TD><TD>SAP Cloud Connector Integration (Obsolete)</TD></TR><TR><TD>SAP_COM_0838</TD><TD>SAP Cloud for Real Estate - UI Integration</TD></TR><TR><TD>SAP_COM_0213</TD><TD>SAP Cloud for Real Estate Contract Management Integration</TD></TR><TR><TD>SAP_COM_0066</TD><TD>SAP Cloud Identity Access Governance Integration</TD></TR><TR><TD>SAP_COM_0180</TD><TD>SAP Cloud Platform - Financials Integration</TD></TR><TR><TD>SAP_COM_0434</TD><TD>SAP Cloud Platform ABAP Environment - CRP Usage Integration</TD></TR><TR><TD>SAP_COM_0510</TD><TD>SAP Cloud Platform ABAP Environment - Software Component Test Integration</TD></TR><TR><TD>SAP_COM_0235</TD><TD>SAP Cloud Platform Business Rules - Inbound Integration</TD></TR><TR><TD>SAP_COM_0236</TD><TD>SAP Cloud Platform Business Rules - Outbound Integration</TD></TR><TR><TD>SAP_COM_0528</TD><TD>SAP Cloud Platform Master Data for Workforce Integration(obsolete)</TD></TR><TR><TD>SAP_COM_0575</TD><TD>SAP Cloud Platform Master Data Service for Workforce Integration (Obsolete)</TD></TR><TR><TD>SAP_COM_0835</TD><TD>SAP Collaboration Manager Integration</TD></TR><TR><TD>SAP_COM_0676</TD><TD>SAP Conversational AI Integration</TD></TR><TR><TD>SAP_COM_0683</TD><TD>SAP CP Notification Service Integration</TD></TR><TR><TD>SAP_COM_0576</TD><TD>SAP Data Intelligence - Metadata Explorer Integration</TD></TR><TR><TD>SAP_COM_0531</TD><TD>SAP Datasphere - ABAP CDS Extraction - OData Integration (Deprecated)</TD></TR><TR><TD>SAP_COM_0532</TD><TD>SAP Datasphere - ABAP CDS Extraction - WebSocket Integration</TD></TR><TR><TD>SAP_COM_0216</TD><TD>SAP Digital Payments Add-On Integration</TD></TR><TR><TD>SAP_COM_0653</TD><TD>SAP Digital Payments Add-On Integration</TD></TR><TR><TD>SAP_COM_0A67</TD><TD>SAP Document AI - UI Integration</TD></TR><TR><TD>SAP_COM_0597</TD><TD>SAP Document Management Service - Attachments Integration</TD></TR><TR><TD>SAP_COM_0194</TD><TD>SAP Document Management Service - Notification Inbound Integration</TD></TR><TR><TD>SAP_COM_0191</TD><TD>SAP Document Management Service - OAuth2.0 mTLS Outbound Integration</TD></TR><TR><TD>SAP_COM_0668</TD><TD>SAP Document Management Service - Outbound Integration</TD></TR><TR><TD>SAP_COM_0190</TD><TD>SAP Document Management Service - SAML Bearer Outbound Integration</TD></TR><TR><TD>SAP_COM_0A66</TD><TD>SAP Dynamic Forms Integration</TD></TR><TR><TD>SAP_COM_0011</TD><TD>SAP Enable Now Integration</TD></TR><TR><TD>SAP_COM_0B10</TD><TD>SAP FSM - Plant Maintenance - CPI Based Integration</TD></TR><TR><TD>SAP_COM_0B12</TD><TD>SAP FSM - Plant Maintenance - Direct Integration (P2P)</TD></TR><TR><TD>SAP_COM_0084</TD><TD>SAP Global Trade Services Integration</TD></TR><TR><TD>SAP_COM_0246</TD><TD>SAP GR/IR Account Reconciliation Status Proposals Integration (Obsolete)</TD></TR><TR><TD>SAP_COM_0A98</TD><TD>SAP Green Ledger - UI Integration</TD></TR><TR><TD>SAP_COM_0573</TD><TD>SAP HANA Spatial Services Integration</TD></TR><TR><TD>SAP_COM_0492</TD><TD>SAP Integration Suite, Advanced Event Mesh Integration</TD></TR><TR><TD>SAP_COM_0493</TD><TD>SAP Integration Suite, Advanced Event Mesh Integration, Validation Service</TD></TR><TR><TD>SAP_COM_0275</TD><TD>SAP Localization Hub - eDocuments - DCS Integration</TD></TR><TR><TD>SAP_COM_0047</TD><TD>SAP Localization Hub - eDocuments Integration</TD></TR><TR><TD>SAP_COM_0249</TD><TD>SAP Localization Hub - External Tax Calculation Engine Integration</TD></TR><TR><TD>SAP_COM_0549</TD><TD>SAP Maintenance Assistant Integration</TD></TR><TR><TD>SAP_COM_0841</TD><TD>SAP Market Rates Management - UI Integration</TD></TR><TR><TD>SAP_COM_0659</TD><TD>SAP Master Data Integration - Outbound Integration</TD></TR><TR><TD>SAP_COM_0060</TD><TD>SAP Order Management Integration</TD></TR><TR><TD>SAP_COM_0863</TD><TD>SAP Process Automation Integration</TD></TR><TR><TD>SAP_COM_0A63</TD><TD>SAP Real Estate - Finance Interface Integration</TD></TR><TR><TD>SAP_COM_0393</TD><TD>SAP Real Estate Contract API Integration</TD></TR><TR><TD>SAP_COM_0918</TD><TD>SAP Real Estate Master Data Event Integration</TD></TR><TR><TD>SAP_COM_0697</TD><TD>SAP Real Estate Master Data Integration</TD></TR><TR><TD>SAP_COM_0657</TD><TD>SAP Remittance Advices Integration</TD></TR><TR><TD>SAP_COM_0098</TD><TD>SAP S/4 HANA Extensibility Cockpit – Best Practices Explorer Integration</TD></TR><TR><TD>SAP_COM_0793</TD><TD>SAP S/4HANA Cloud for Credit Integration - Data Integration</TD></TR><TR><TD>SAP_COM_0826</TD><TD>SAP S/4HANA Cloud for Credit Integration - UI Integration</TD></TR><TR><TD>SAP_COM_0076</TD><TD>SAP S/4HANA Finance Cloud for Customer Payments Integration</TD></TR><TR><TD>SAP_COM_0887</TD><TD>SAP S/4HANA for Microsoft Teams - Contact Integration</TD></TR><TR><TD>SAP_COM_0A17</TD><TD>SAP S/4HANA for Microsoft Teams - Situation Notification Integration</TD></TR><TR><TD>SAP_COM_0A32</TD><TD>SAP S/4HANA for Microsoft Teams - Task Notification Integration</TD></TR><TR><TD>SAP_COM_0860</TD><TD>SAP S/4HANA for Microsoft Teams - UI Integration</TD></TR><TR><TD>SAP_COM_0930</TD><TD>SAP S/4HANA Migration Cockpit - Data Migration to BTP Integration</TD></TR><TR><TD>SAP_COM_0525</TD><TD>SAP S/4HANA Procurement Hub - Ariba Central Contract Management Integration</TD></TR><TR><TD>SAP_COM_0292</TD><TD>SAP S/4HANA Procurement Hub - Ariba GB - Hub to Ariba GB Integration</TD></TR><TR><TD>SAP_COM_0293</TD><TD>SAP S/4HANA Procurement Hub - Ariba GB - Hub to Subsidiary Integration</TD></TR><TR><TD>SAP_COM_0420</TD><TD>SAP S/4HANA Procurement Hub - Ariba GB - Subsidiary to Hub Integration</TD></TR><TR><TD>SAP_COM_0243</TD><TD>SAP S/4HANA Procurement Hub - Central Contract Management Integration</TD></TR><TR><TD>SAP_COM_0515</TD><TD>SAP S/4HANA Procurement Hub - Central Invoice Hub Integration (Obsolete)</TD></TR><TR><TD>SAP_COM_0516</TD><TD>SAP S/4HANA Procurement Hub - Central Invoice Satellite Integration</TD></TR><TR><TD>SAP_COM_0266</TD><TD>SAP S/4HANA Procurement Hub - Central Purchasing Inbound Integration</TD></TR><TR><TD>SAP_COM_0267</TD><TD>SAP S/4HANA Procurement Hub - Central Purchasing Outbound Integration.</TD></TR><TR><TD>SAP_COM_0736</TD><TD>SAP S/4HANA Procurement Hub - Central Request For Quotation Integration</TD></TR><TR><TD>SAP_COM_0512</TD><TD>SAP S/4HANA Procurement Hub - Central Sourcing Hub Integration</TD></TR><TR><TD>SAP_COM_0513</TD><TD>SAP S/4HANA Procurement Hub - Central Sourcing Satellite Integration</TD></TR><TR><TD>SAP_COM_0737</TD><TD>SAP S/4HANA Procurement Hub - Central Supplier Quotation Integration</TD></TR><TR><TD>SAP_COM_0673</TD><TD>SAP S/4HANA Procurement Hub - Centrally Managed PO with Supplier Integration</TD></TR><TR><TD>SAP_COM_0587</TD><TD>SAP S/4HANA Procurement Hub - Foundation Layer Hub Integration</TD></TR><TR><TD>SAP_COM_0586</TD><TD>SAP S/4HANA Procurement Hub - Foundation Layer Satellite Integration</TD></TR><TR><TD>SAP_COM_0090</TD><TD>SAP S/4HANA Procurement Hub Integration</TD></TR><TR><TD>SAP_COM_0672</TD><TD>SAP S/4HANA Procurement Hub-Central Purchase Contract with Supplier Integration</TD></TR><TR><TD>SAP_COM_0564</TD><TD>SAP Self-Billing Cockpit Integration</TD></TR><TR><TD>SAP_COM_0642</TD><TD>SAP Subscription Billing - API Integration</TD></TR><TR><TD>SAP_COM_0884</TD><TD>SAP Subscription Billing - Event Consumption Integration</TD></TR><TR><TD>SAP_COM_0845</TD><TD>SAP Subscription Billing - UI Integration</TD></TR><TR><TD>SAP_COM_0095</TD><TD>SAP Subscription Billing with Sales Billing Integration</TD></TR><TR><TD>SAP_COM_0686</TD><TD>SAP SuccessFactors Employee Central - UI Integration</TD></TR><TR><TD>SAP_COM_0A76</TD><TD>SAP Task Center - Task Consumption Integration</TD></TR><TR><TD>SAP_COM_0501</TD><TD>SAP Task Center Integration</TD></TR><TR><TD>SAP_COM_0922</TD><TD>SAP Treasury Management - Financial Transaction Integration</TD></TR><TR><TD>SAP_COM_0B26</TD><TD>SAP Treasury Management - Financial Transaction Integration</TD></TR><TR><TD>SAP_COM_0839</TD><TD>SAP Treasury Management - SAP Trading Platform Integration</TD></TR><TR><TD>SAP_COM_0226</TD><TD>SAP Treasury Management - SAP Trading Platform Integration (Deprecated)</TD></TR><TR><TD>SAP_COM_0954</TD><TD>SAP Treasury Management - Securities Master Data Integration</TD></TR><TR><TD>SAP_COM_0203</TD><TD>SAP Treasury Market Rate Integration</TD></TR><TR><TD>SAP_COM_0222</TD><TD>SAP Watch List Screening - Screening Hits Integration</TD></TR><TR><TD>SAP_COM_0219</TD><TD>SAP Watch List Screening - Screening Integration</TD></TR><TR><TD>SAP_COM_0013</TD><TD>SAP Web IDE Integration (Obsolete)</TD></TR><TR><TD>SAP_COM_0637</TD><TD>SAP Workflow Management Process Visibility Capability Integration</TD></TR><TR><TD>SAP_COM_0542</TD><TD>SAP Workflow Management Workflow Capability Integration</TD></TR><TR><TD>SAP_COM_0750</TD><TD>Security Audit Log Integration</TD></TR><TR><TD>SAP_COM_0961</TD><TD>Serial Number Management Integration</TD></TR><TR><TD>SAP_COM_0802</TD><TD>Service - Field Service Management UI Integration</TD></TR><TR><TD>SAP_COM_0717</TD><TD>Service - In-House Repair OData Integration</TD></TR><TR><TD>SAP_COM_0764</TD><TD>Service - Master Data Integration</TD></TR><TR><TD>SAP_COM_0933</TD><TD>Service - Repair Confirmation Integration</TD></TR><TR><TD>SAP_COM_0858</TD><TD>Service - Repair Confirmation SOAP Integration</TD></TR><TR><TD>SAP_COM_0742</TD><TD>Service - Repair Order Integration</TD></TR><TR><TD>SAP_COM_0677</TD><TD>Service - Repair Order SOAP Integration</TD></TR><TR><TD>SAP_COM_0744</TD><TD>Service - Repair Quotation Integration</TD></TR><TR><TD>SAP_COM_0687</TD><TD>Service - SAP Field Service Management - Direct Integration (P2P)</TD></TR><TR><TD>SAP_COM_0A50</TD><TD>Service - SAP FSM -CPI Based Integration</TD></TR><TR><TD>SAP_COM_0352</TD><TD>Service Confirmation OData Integration</TD></TR><TR><TD>SAP_COM_0423</TD><TD>Service Confirmation SOAP Integration</TD></TR><TR><TD>SAP_COM_0558</TD><TD>Service Contract OData Integration</TD></TR><TR><TD>SAP_COM_0789</TD><TD>Service Contract OData V4 Integration</TD></TR><TR><TD>SAP_COM_0436</TD><TD>Service Contract SOAP Integration</TD></TR><TR><TD>SAP_COM_0788</TD><TD>Service Contract Template Integration</TD></TR><TR><TD>SAP_COM_0A92</TD><TD>Service Document Settlement Rules Integration</TD></TR><TR><TD>SAP_COM_0146</TD><TD>Service Entry Sheet Integration</TD></TR><TR><TD>SAP_COM_0237</TD><TD>Service Entry Sheet Process Integration</TD></TR><TR><TD>SAP_COM_0350</TD><TD>Service Order OData Integration</TD></TR><TR><TD>SAP_COM_0424</TD><TD>Service Order SOAP Integration</TD></TR><TR><TD>SAP_COM_0715</TD><TD>Service Order Template Integration</TD></TR><TR><TD>SAP_COM_0355</TD><TD>Service Quotation Integration</TD></TR><TR><TD>SAP_COM_0530</TD><TD>Service Quotation Integration</TD></TR><TR><TD>SAP_COM_0831</TD><TD>SLT - CDS View Extraction Integration</TD></TR><TR><TD>SAP_COM_0026</TD><TD>Social Collaboration Integration</TD></TR><TR><TD>SAP_COM_0582</TD><TD>Software Assembly Integration</TD></TR><TR><TD>SAP_COM_0948</TD><TD>Software Component Management Integration</TD></TR><TR><TD>SAP_COM_0367</TD><TD>Sold-to Party Assignment of Sales Scheduling Agreement Integration</TD></TR><TR><TD>SAP_COM_0445</TD><TD>Sourcing and Procurement Scheduling Agreements With Suppliers Integration</TD></TR><TR><TD>SAP_COM_0224</TD><TD>Sourcing and Procurement with Suppliers Integration</TD></TR><TR><TD>SAP_COM_0A80</TD><TD>Stock Transport Order Integration</TD></TR><TR><TD>SAP_COM_0700</TD><TD>SuccessFactors Payment Options Check Integration</TD></TR><TR><TD>SAP_COM_0137</TD><TD>Supplier Activity Integration</TD></TR><TR><TD>SAP_COM_0138</TD><TD>Supplier Activity Task Integration</TD></TR><TR><TD>SAP_COM_0904</TD><TD>Supplier Confirmation Integration</TD></TR><TR><TD>SAP_COM_0827</TD><TD>Supplier Confirmation Process Integration</TD></TR><TR><TD>SAP_COM_0828</TD><TD>Supplier Confirmation Third-party Integration</TD></TR><TR><TD>SAP_COM_0139</TD><TD>Supplier Evaluation Response Integration</TD></TR><TR><TD>SAP_COM_0122</TD><TD>Supplier Evaluation Scorecard Integration</TD></TR><TR><TD>SAP_COM_0057</TD><TD>Supplier Invoice Integration</TD></TR><TR><TD>SAP_COM_0384</TD><TD>Supply Availability Protection Plan Integration</TD></TR><TR><TD>SAP_COM_0347</TD><TD>Support User Request Log Read Integration</TD></TR><TR><TD>SAP_COM_0664</TD><TD>Sustainability - Product Footprint Management Integration</TD></TR><TR><TD>SAP_COM_0883</TD><TD>Sustainability Data Exchange Integration</TD></TR><TR><TD>SAP_COM_0465</TD><TD>System for Cross-domain Identity Management Integration</TD></TR><TR><TD>YY1_TASK_CENTER_TEST</TD><TD>Task Center Test</TD></TR><TR><TD>SAP_COM_0620</TD><TD>Test Automation - Cloud ALM Integration</TD></TR><TR><TD>YY1_TESTCOMMUSER</TD><TD>Test for CFO Dashboard</TD></TR><TR><TD>SAP_COM_0253</TD><TD>Text Analysis - Purchasing (Deprecated)</TD></TR><TR><TD>SAP_COM_0850</TD><TD>Transportation Management - Advanced Shipping Notification Integration</TD></TR><TR><TD>SAP_COM_0756</TD><TD>Transportation Management - Freight Agreement Integration</TD></TR><TR><TD>SAP_COM_0906</TD><TD>Transportation Management - Freight Booking Integration</TD></TR><TR><TD>SAP_COM_0905</TD><TD>Transportation Management - Freight Order Integration</TD></TR><TR><TD>SAP_COM_0908</TD><TD>Transportation Management - Freight Unit Integration</TD></TR><TR><TD>SAP_COM_0813</TD><TD>Transportation Management - LSP Freight Booking Integration</TD></TR><TR><TD>SAP_COM_0534</TD><TD>Transportation Management - LSP Freight Order Integration</TD></TR><TR><TD>SAP_COM_0414</TD><TD>Transportation Management - Order-Based Transportation Consolidation Integration</TD></TR><TR><TD>SAP_COM_0767</TD><TD>Transportation Management - Rate Table Integration</TD></TR><TR><TD>SAP_COM_0660</TD><TD>UI Text Translation Adaptation Integration</TD></TR><TR><TD>SAP_COM_0086</TD><TD>UI Theme Designer Integration</TD></TR><TR><TD>SAP_COM_0623</TD><TD>UI Theme Designer Integration</TD></TR><TR><TD>SAP_COM_0929</TD><TD>Update Source for Project Demands Integration</TD></TR><TR><TD>SAP_COM_0537</TD><TD>Variant Configuration and Pricing Integration</TD></TR><TR><TD>SAP_COM_0323</TD><TD>Visual Business - GeoJSON Inbound Integration</TD></TR><TR><TD>SAP_COM_0A78</TD><TD>WalkMe Digital Adoption Platform - Outbound Integration</TD></TR><TR><TD>SAP_COM_0A65</TD><TD>Warehouse Management Control Cycle Integration</TD></TR><TR><TD>SAP_COM_0386</TD><TD>Warehousing - Attachment Service Integration</TD></TR><TR><TD>SAP_COM_0875</TD><TD>Warehousing - ERP Integration</TD></TR><TR><TD>SAP_COM_0385</TD><TD>Warehousing - Inbound Delivery Integration</TD></TR><TR><TD>SAP_COM_0374</TD><TD>Warehousing - Master Data Integration</TD></TR><TR><TD>SAP_COM_0378</TD><TD>Warehousing - Physical Inventory Integration</TD></TR><TR><TD>SAP_COM_0356</TD><TD>Warehousing - Process Outbound Delivery Order Integration</TD></TR><TR><TD>SAP_COM_0353</TD><TD>Warehousing - Process Warehouse Task Integration</TD></TR><TR><TD>SAP_COM_0755</TD><TD>Warehousing - Stock Integration</TD></TR><TR><TD>SAP_COM_0766</TD><TD>Warranty Claim Management Integration</TD></TR><TR><TD>SAP_COM_0632</TD><TD>Web Dynpro ABAP ALV for PDF Signing Integration (SAP_COM_0632)</TD></TR><TR><TD>SAP_COM_0914</TD><TD>Workforce Availability Integration</TD></TR><TR><TD>SAP_COM_0A35</TD><TD>Workforce Person OData Integration</TD></TR><TR><TD>SAP_COM_0027</TD><TD>Workforce Timesheet Integration</TD></TR><TR><TD>SAP_COM_0242</TD><TD>WSIL Integration</TD></TR></TBODY></TABLE> 2026-02-22T22:46:31.615000+01:00 https://community.sap.com/t5/technology-blog-posts-by-members/communication-arrangements-in-sap-s-4-hana-public-cloud/ba-p/14334468 Communication Arrangements in SAP S/4 HANA Public Cloud 2026-02-24T07:04:51.057000+01:00 YogiPavan https://community.sap.com/t5/user/viewprofilepage/user-id/1402526 <H1 id="toc-hId-1661424646">Communication Arrangements</H1><P>Communication Arrangements is one of the Key User Extensibility Tools.</P><P>With Communication Arrangements App,</P><UL><LI>Communication Arrangements details can be viewed.</LI><LI>Custom Communication Arrangements can be created with standard communication or custom communication scenarios using Communication Arrangements App.</LI></UL><H2 id="toc-hId-1593993860">Finding the Standard Communication Scenarios in SAP Business Accelerator Hub</H2><P>Navigate to <A href="https://api.sap.com/" target="_blank" rel="noopener noreferrer">SAP Business Accelerator Hub</A></P><P>Choose the Product</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="YogiPavan_0-1771855621110.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/375658iEA9EEDC572CBBA52/image-size/medium?v=v2&amp;px=400" role="button" title="YogiPavan_0-1771855621110.png" alt="YogiPavan_0-1771855621110.png" /></span></P><P>SAP S/4 HANA Cloud Public Edition</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="YogiPavan_1-1771855621155.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/375659i698AB13A8B9004E1/image-size/medium?v=v2&amp;px=400" role="button" title="YogiPavan_1-1771855621155.png" alt="YogiPavan_1-1771855621155.png" /></span></P><P>Navigate to APIs -&gt; ODATA V2 / ODATA V4.</P><P>Search Required API</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="YogiPavan_2-1771855621171.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/375660i9A5B928D20E27319/image-size/medium?v=v2&amp;px=400" role="button" title="YogiPavan_2-1771855621171.png" alt="YogiPavan_2-1771855621171.png" /></span></P><P>List of results for Purchase Order.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="YogiPavan_3-1771855621180.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/375663iD42F64D38F49413F/image-size/medium?v=v2&amp;px=400" role="button" title="YogiPavan_3-1771855621180.png" alt="YogiPavan_3-1771855621180.png" /></span></P><P>Purchase Order API Overview</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="YogiPavan_4-1771855621192.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/375662i706B5C40F29C58AD/image-size/medium?v=v2&amp;px=400" role="button" title="YogiPavan_4-1771855621192.png" alt="YogiPavan_4-1771855621192.png" /></span></P><H3 id="toc-hId-1526563074">API Resources</H3><P>Navigate to API Resources -&gt; Attributes -&gt; Communication Scenario</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="YogiPavan_5-1771855621199.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/375661iB44D681C94285D74/image-size/medium?v=v2&amp;px=400" role="button" title="YogiPavan_5-1771855621199.png" alt="YogiPavan_5-1771855621199.png" /></span></P><H3 id="toc-hId-1330049569">API Specifications</H3><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="YogiPavan_6-1771855621201.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/375664iE9824DD4ECFE29B0/image-size/medium?v=v2&amp;px=400" role="button" title="YogiPavan_6-1771855621201.png" alt="YogiPavan_6-1771855621201.png" /></span></P><H3 id="toc-hId-1133536064">Authentication Methods for API</H3><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="YogiPavan_7-1771855621204.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/375666i7168D64A7125829A/image-size/medium?v=v2&amp;px=400" role="button" title="YogiPavan_7-1771855621204.png" alt="YogiPavan_7-1771855621204.png" /></span></P><H3 id="toc-hId-937022559">Configuration Details for API</H3><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="YogiPavan_8-1771855621207.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/375665iE4CD21154B3C3A01/image-size/medium?v=v2&amp;px=400" role="button" title="YogiPavan_8-1771855621207.png" alt="YogiPavan_8-1771855621207.png" /></span></P><H3 id="toc-hId-740509054">Extensibility</H3><P>Custom Fields can be added to the API using below Business Contexts - Header and Items in Custom Fields App with Key User Extensibility.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="YogiPavan_9-1771855621212.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/375667i545B77110495E658/image-size/medium?v=v2&amp;px=400" role="button" title="YogiPavan_9-1771855621212.png" alt="YogiPavan_9-1771855621212.png" /></span></P><H3 id="toc-hId-543995549">API Reference</H3><P>List of Entity Sets Available in the APIs.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="YogiPavan_10-1771855621226.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/375668i39FE6FF5A43C430B/image-size/medium?v=v2&amp;px=400" role="button" title="YogiPavan_10-1771855621226.png" alt="YogiPavan_10-1771855621226.png" /></span></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="YogiPavan_11-1771855621243.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/375669i610F3D58D3732153/image-size/medium?v=v2&amp;px=400" role="button" title="YogiPavan_11-1771855621243.png" alt="YogiPavan_11-1771855621243.png" /></span></P><H2 id="toc-hId-218399325">Communication Scenarios</H2><P>Navigate to Display Communication Scenarios,</P><P>All these are Standard Communication Scenarios.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="YogiPavan_12-1771855689558.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/375673iEF5CB8CC1730087E/image-size/medium?v=v2&amp;px=400" role="button" title="YogiPavan_12-1771855689558.png" alt="YogiPavan_12-1771855689558.png" /></span></P><P>Standard Communication Scenarios of Purchase Order<STRONG> - SAP_COM_0053</STRONG></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="YogiPavan_13-1771855689565.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/375671iBE9CC1184D2F310C/image-size/medium?v=v2&amp;px=400" role="button" title="YogiPavan_13-1771855689565.png" alt="YogiPavan_13-1771855689565.png" /></span></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="YogiPavan_14-1771855689574.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/375672iEF00D108F6D62645/image-size/medium?v=v2&amp;px=400" role="button" title="YogiPavan_14-1771855689574.png" alt="YogiPavan_14-1771855689574.png" /></span></P><H2 id="toc-hId-21885820">Steps to Create Communication Arrangements</H2><H3 id="toc-hId--120776335">Maintain Communication Users</H3><P>Navigate to Maintain Communication Users App.</P><P>Maintain Communication Users is to create Communication Users for the API Access.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="YogiPavan_15-1771855727560.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/375675i286A45A55C434B69/image-size/medium?v=v2&amp;px=400" role="button" title="YogiPavan_15-1771855727560.png" alt="YogiPavan_15-1771855727560.png" /></span></P><P>Choose New button to create Communication User</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="YogiPavan_16-1771855727566.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/375674i025C7EE1C46C804C/image-size/medium?v=v2&amp;px=400" role="button" title="YogiPavan_16-1771855727566.png" alt="YogiPavan_16-1771855727566.png" /></span></P><P>Add User Name and Password.</P><P>Propose Password can be chosen to generate password by system.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="YogiPavan_17-1771855727572.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/375676i32E85C80B0DEF965/image-size/medium?v=v2&amp;px=400" role="button" title="YogiPavan_17-1771855727572.png" alt="YogiPavan_17-1771855727572.png" /></span></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="YogiPavan_18-1771855727577.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/375679i16A5EC7246973CAA/image-size/medium?v=v2&amp;px=400" role="button" title="YogiPavan_18-1771855727577.png" alt="YogiPavan_18-1771855727577.png" /></span></P><P>Save the Communication User.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="YogiPavan_19-1771855727584.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/375677iCC9C8D8E4CC54C4E/image-size/medium?v=v2&amp;px=400" role="button" title="YogiPavan_19-1771855727584.png" alt="YogiPavan_19-1771855727584.png" /></span></P><P>If communication User is added to any Communication system or communication Arrangements, here it shows those details.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="YogiPavan_20-1771855727588.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/375678iDFCFEFFBE355C677/image-size/medium?v=v2&amp;px=400" role="button" title="YogiPavan_20-1771855727588.png" alt="YogiPavan_20-1771855727588.png" /></span></P><H3 id="toc-hId--317289840">Communication System</H3><P>Navigate to Communication System App.</P><P>Communication System is to maintain communication system with host name and communication User.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="YogiPavan_21-1771855727592.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/375682i294F1B19975E5DB1/image-size/medium?v=v2&amp;px=400" role="button" title="YogiPavan_21-1771855727592.png" alt="YogiPavan_21-1771855727592.png" /></span></P><P>Provide Communication System ID and Name.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="YogiPavan_22-1771855727599.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/375681i955CE52C0F8B8026/image-size/medium?v=v2&amp;px=400" role="button" title="YogiPavan_22-1771855727599.png" alt="YogiPavan_22-1771855727599.png" /></span></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="YogiPavan_23-1771855727607.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/375680i786BDAB8879CFA3D/image-size/medium?v=v2&amp;px=400" role="button" title="YogiPavan_23-1771855727607.png" alt="YogiPavan_23-1771855727607.png" /></span></P><P>Add the Host Name</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="YogiPavan_24-1771855727612.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/375685i83C1EC9C9EAFACF8/image-size/medium?v=v2&amp;px=400" role="button" title="YogiPavan_24-1771855727612.png" alt="YogiPavan_24-1771855727612.png" /></span></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="YogiPavan_25-1771855727617.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/375684iB1BEF5B3569E12A7/image-size/medium?v=v2&amp;px=400" role="button" title="YogiPavan_25-1771855727617.png" alt="YogiPavan_25-1771855727617.png" /></span></P><P>Add necessary details</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="YogiPavan_26-1771855727622.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/375683iDE663518CD11D5F3/image-size/medium?v=v2&amp;px=400" role="button" title="YogiPavan_26-1771855727622.png" alt="YogiPavan_26-1771855727622.png" /></span></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="YogiPavan_27-1771855727627.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/375686i7551390CC2DF2328/image-size/medium?v=v2&amp;px=400" role="button" title="YogiPavan_27-1771855727627.png" alt="YogiPavan_27-1771855727627.png" /></span></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="YogiPavan_28-1771855727630.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/375687iB64E842688E20F3B/image-size/medium?v=v2&amp;px=400" role="button" title="YogiPavan_28-1771855727630.png" alt="YogiPavan_28-1771855727630.png" /></span></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="YogiPavan_29-1771855727634.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/375688iECCF862F1677AB72/image-size/medium?v=v2&amp;px=400" role="button" title="YogiPavan_29-1771855727634.png" alt="YogiPavan_29-1771855727634.png" /></span></P><P>Choose Add button to add Inbound Communication User.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="YogiPavan_30-1771855727637.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/375691i8C2C2727276265D8/image-size/medium?v=v2&amp;px=400" role="button" title="YogiPavan_30-1771855727637.png" alt="YogiPavan_30-1771855727637.png" /></span></P><P>Available Authentication Methods</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="YogiPavan_31-1771855727640.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/375690iA6EE91FC6DE823A6/image-size/medium?v=v2&amp;px=400" role="button" title="YogiPavan_31-1771855727640.png" alt="YogiPavan_31-1771855727640.png" /></span></P><P>Required details for SSL Client Certificate.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="YogiPavan_32-1771855727641.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/375689iC74B66B4856AF5B6/image-size/medium?v=v2&amp;px=400" role="button" title="YogiPavan_32-1771855727641.png" alt="YogiPavan_32-1771855727641.png" /></span></P><P>Required details for OAuth 2.0</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="YogiPavan_33-1771855727643.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/375693i7A677A7E51FC1E99/image-size/medium?v=v2&amp;px=400" role="button" title="YogiPavan_33-1771855727643.png" alt="YogiPavan_33-1771855727643.png" /></span></P><P>Choose the Authentication Method, and choose User Name/Client ID.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="YogiPavan_34-1771855727649.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/375694i491821DD4CEF89A3/image-size/medium?v=v2&amp;px=400" role="button" title="YogiPavan_34-1771855727649.png" alt="YogiPavan_34-1771855727649.png" /></span></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="YogiPavan_35-1771855727656.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/375692i9792E98622AFB214/image-size/medium?v=v2&amp;px=400" role="button" title="YogiPavan_35-1771855727656.png" alt="YogiPavan_35-1771855727656.png" /></span></P><P>Click on Ok after choosing Communication User.</P><P>Communication User is added.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="YogiPavan_36-1771855727660.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/375695iE2221533F697371D/image-size/medium?v=v2&amp;px=400" role="button" title="YogiPavan_36-1771855727660.png" alt="YogiPavan_36-1771855727660.png" /></span></P><P>&nbsp;Communication System is saved.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="YogiPavan_37-1771855727664.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/375696i409EAEA218A15A56/image-size/medium?v=v2&amp;px=400" role="button" title="YogiPavan_37-1771855727664.png" alt="YogiPavan_37-1771855727664.png" /></span></P><H3 id="toc-hId--513803345">Communication Arrangements</H3><P>Navigate to Communication Arrangements app.</P><P>Communication Arrangements is to generate Inbound Service URLs by adding Communication System and Communication User.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="YogiPavan_38-1771855752428.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/375698iF9154FDF5E323E16/image-size/medium?v=v2&amp;px=400" role="button" title="YogiPavan_38-1771855752428.png" alt="YogiPavan_38-1771855752428.png" /></span></P><P>Choose New Option to create Custom Communication Arrangements.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="YogiPavan_39-1771855752435.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/375697i34F5DC612DE3CFC9/image-size/medium?v=v2&amp;px=400" role="button" title="YogiPavan_39-1771855752435.png" alt="YogiPavan_39-1771855752435.png" /></span></P><P>Standard or Custom Communication Scenarios is required to create Custom Communication Arrangements.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="YogiPavan_40-1771855752443.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/375699iE3E446810F5109ED/image-size/medium?v=v2&amp;px=400" role="button" title="YogiPavan_40-1771855752443.png" alt="YogiPavan_40-1771855752443.png" /></span></P><P>Search for the Standard or Custom Communication Scenario</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="YogiPavan_41-1771855752452.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/375702i0B61C59F73E0F242/image-size/medium?v=v2&amp;px=400" role="button" title="YogiPavan_41-1771855752452.png" alt="YogiPavan_41-1771855752452.png" /></span></P><P>‘SAP_COM_0053’ is the Standard Communication Scenario for the Purchase Order API.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="YogiPavan_42-1771855752457.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/375700iE6D496F341CFAAC7/image-size/medium?v=v2&amp;px=400" role="button" title="YogiPavan_42-1771855752457.png" alt="YogiPavan_42-1771855752457.png" /></span></P><P>Arrangement appears automatically based on Communication Scenario and it can be changed.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="YogiPavan_43-1771855752462.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/375701i313B5CE3C3DA1A4E/image-size/medium?v=v2&amp;px=400" role="button" title="YogiPavan_43-1771855752462.png" alt="YogiPavan_43-1771855752462.png" /></span></P><P>Click on Create button to create Communication Arrangement.</P><P>List of Inbound Services available for that Communication Scenario.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="YogiPavan_44-1771855752471.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/375704iCBEE14F928970DD9/image-size/medium?v=v2&amp;px=400" role="button" title="YogiPavan_44-1771855752471.png" alt="YogiPavan_44-1771855752471.png" /></span></P><P>WSDL/Service Metadata will be generated once Saved the Communication Arrangement.</P><P>Communication System and Communication User is required to create Communication Arrangements.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="YogiPavan_45-1771855752475.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/375703iED400C71B6957921/image-size/medium?v=v2&amp;px=400" role="button" title="YogiPavan_45-1771855752475.png" alt="YogiPavan_45-1771855752475.png" /></span></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="YogiPavan_46-1771855752478.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/375705i6B78CABFB888321B/image-size/medium?v=v2&amp;px=400" role="button" title="YogiPavan_46-1771855752478.png" alt="YogiPavan_46-1771855752478.png" /></span></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="YogiPavan_47-1771855752479.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/375706i217069A41681AAFA/image-size/medium?v=v2&amp;px=400" role="button" title="YogiPavan_47-1771855752479.png" alt="YogiPavan_47-1771855752479.png" /></span></P><P>WSDL/Service Metadata is generated.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="YogiPavan_48-1771855752488.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/375708i8817DD7E862A6522/image-size/medium?v=v2&amp;px=400" role="button" title="YogiPavan_48-1771855752488.png" alt="YogiPavan_48-1771855752488.png" /></span></P><H2 id="toc-hId--416913843">Service Metadata</H2><P>Service URL is available in Communication Arrangement.</P><P>Access the Service URLs through the Communication User details.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="YogiPavan_49-1771855752493.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/375707i32CE7893D3F9120B/image-size/medium?v=v2&amp;px=400" role="button" title="YogiPavan_49-1771855752493.png" alt="YogiPavan_49-1771855752493.png" /></span></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="YogiPavan_50-1771855752500.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/375709iCC91CD30CF5F57D5/image-size/medium?v=v2&amp;px=400" role="button" title="YogiPavan_50-1771855752500.png" alt="YogiPavan_50-1771855752500.png" /></span></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="YogiPavan_51-1771855752520.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/375710i3D346968F6F54C0B/image-size/medium?v=v2&amp;px=400" role="button" title="YogiPavan_51-1771855752520.png" alt="YogiPavan_51-1771855752520.png" /></span></P><H1 id="toc-hId--320024341">Conclusion</H1><P>standard communication or custom communication scenarios are used to create Communication Arrangements.</P><P>In Communication Arrangements, OData URLs are generated based on inbound Service.</P><H1 id="toc-hId--516537846">References</H1><UL><LI><A href="https://help.sap.com/docs/SAP_S4HANA_CLOUD/0f69f8fb28ac4bf48d2b57b9637e81fa/fab3fd449cf74c6384622b98831e989e.html" target="_blank" rel="noopener noreferrer">Communication Arrangements | SAP Help Portal</A></LI><LI><A href="https://help.sap.com/docs/SAP_S4HANA_CLOUD/0f69f8fb28ac4bf48d2b57b9637e81fa/eef80dda3867461c92ac1273689ed36f.html" target="_blank" rel="noopener noreferrer">Maintain Communication Users | SAP Help Portal</A></LI><LI><A href="https://help.sap.com/docs/SAP_S4HANA_CLOUD/0f69f8fb28ac4bf48d2b57b9637e81fa/15663c157670410ca366623dff329396.html" target="_blank" rel="noopener noreferrer">Communication Systems | SAP Help Portal</A></LI><LI><A href="https://help.sap.com/docs/SAP_S4HANA_CLOUD/0f69f8fb28ac4bf48d2b57b9637e81fa/7d42c4b1d7d14bb6b12e2fd6d75f48ed.html" target="_blank" rel="noopener noreferrer">Integration | SAP Help Portal</A></LI><LI><A href="https://help.sap.com/docs/SAP_S4HANA_CLOUD/0f69f8fb28ac4bf48d2b57b9637e81fa/7139c1648de84c0bbd7637589ed7c92a.html" target="_blank" rel="noopener noreferrer">Extend and Integrate Your SAP S/4HANA Cloud Public Edition | SAP Help Portal</A></LI></UL> 2026-02-24T07:04:51.057000+01:00 https://community.sap.com/t5/enterprise-resource-planning-blog-posts-by-sap/on-stack-partner-reference-app-a-guide-to-clean-core-extensions-in-sap-s/ba-p/14335847 On-Stack Partner Reference App: A Guide to Clean-Core Extensions in SAP S/4HANA Cloud Public Edition 2026-03-02T14:06:51.614000+01:00 amitha_kamath https://community.sap.com/t5/user/viewprofilepage/user-id/190212 <P>As SAP partners and customers continue to innovate in the SAP cloud ERP space, one principle remains non-negotiable:&nbsp;<STRONG>keep the core clean</STRONG>. While SAP’s extensibility guidelines often favor side-by-side builds on the SAP Business Technology Platform (SAP BTP), some scenarios require tighter, real-time integration with core processes. For these tightly coupled cases, on-stack extensibility within SAP S/4HANA Cloud Public Edition provides the essential solution. It offers a powerful way to enhance standard business processes—without modifying SAP-delivered code—enabling end users to innovate securely and at scale.</P><P>To bridge theory and practice, the <A href="https://github.com/SAP-samples/on-stack-partner-reference-extension" target="_self" rel="nofollow noopener noreferrer">On-Stack Partner Reference Application</A> provides a practical blueprint for building these clean-core extensions. Using modern ABAP and RAP principles, it demonstrates how to extend standard SAP applications in a secure, upgrade-stable, and scalable way, fully aligned with SAP guidelines.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="screenshot1.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/378592i7C6B45ABE61949A5/image-size/large?v=v2&amp;px=999" role="button" title="screenshot1.png" alt="screenshot1.png" /></span></P><P>&nbsp;<STRONG>When to Choose On-Stack Extensibility</STRONG></P><P>While a side-by-side architecture on SAP Business Technology Platform is a powerful approach, it isn’t the ideal fit for every business need. Sometimes, an extension must be tightly woven into the main system to deliver the best results. On-stack extensibility is the recommended path for these tightly coupled scenarios, especially when your solution requires:</P><UL><LI>Deep integration with standard business processes</LI><LI>Seamless navigation across SAP Fiori applications</LI><LI>A harmonized user experience</LI><LI>Enhancements that are upgrade-safe within the same system</LI></UL><P>On-stack extensibility allows developers and organizations to achieve these goals by building directly within the SAP S/4HANA Cloud stack. This approach preserves the clean-core architecture, ensuring the system remains stable and maintainable. The Partner Reference Application demonstrates the recommended “golden path” for achieving this perfect balance.</P><P><STRONG>The Reference Scenario: Loyalty Hub</STRONG></P><P>When on-stack extensibility is the right approach, the On-Stack Partner Reference Application provides a hands-on example that demonstrates how to extend standard SAP processes securely and efficiently. It goes beyond theory to present a full end-to-end scenario that partners can explore, adapt, and use as a practical blueprint.</P><P>The scenario uses a <STRONG>Loyalty Hub application</STRONG> integrated with the standard <EM>Manage Sales Orders – Version 2</EM> SAP Fiori application. Its goal is to help organizations manage customer loyalty programs directly within sales operations, while preserving seamless navigation between standard SAP functionality and the custom extension.</P><P>To make the scenario concrete, we demonstrate the application using <STRONG>two personas</STRONG>:</P><UL><LI><STRONG>Aarti</STRONG>, the loyalty administrator, manages memberships, awards loyalty points, and issues gift cards</LI><LI><STRONG>Julia</STRONG>, the sold-to party or customer, earns points, redeems rewards, and applies gift cards during sales transactions</LI></UL><P>This approach highlights both administrative and customer perspectives, showing how Loyalty Hub supports real-world workflows and interactions. Here’s how the Loyalty Hub works from both the administrative and customer perspectives:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="screenshot julia.png" style="width: 831px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/376581iA7EE86964EC35C83/image-size/large?v=v2&amp;px=999" role="button" title="screenshot julia.png" alt="screenshot julia.png" /></span></P><P><STRONG>Key Capabilities</STRONG></P><P>The application delivers comprehensive loyalty management:</P><UL><LI>Handles memberships, tiers, and related transactions</LI><LI>Tracks and awards loyalty points automatically in response to sales order events</LI><LI>Issues and redeems gift cards tied to customer orders</LI><LI>Sends automated notifications for points updates and tier changes</LI><LI>Supports both administrator workflows and end-user interactions</LI></UL><P><STRONG>Technical and Operational Design</STRONG></P><UL><LI>Built with <STRONG>ABAP RAP</STRONG> and custom business objects in the <STRONG>Z namespace</STRONG></LI><LI>Data modeled using <STRONG>CDS</STRONG>, ensuring separation from standard SAP objects and upgrade stability</LI><LI>User interfaces designed with <STRONG>SAP Fiori elements</STRONG>, supporting flexible extensions and semantic navigation</LI><LI>SAP-standard <STRONG>authentication and role-based authorization</STRONG> for secure access</LI><LI>Operational readiness includes scheduled jobs for membership evaluation, number range handling for controlled object creation, and application logging/messaging for monitoring and troubleshooting</LI></UL><P>This scenario illustrates how partners can innovate within the SAP S/4HANA Cloud stack, extending functionality while preserving clean-core principles, upgrade safety, and a consistent SAP user experience — all while reflecting both administrative and customer perspectives.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="amitha_kamath_2-1771955906917.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/376576iC773924D43538EC5/image-size/medium?v=v2&amp;px=400" role="button" title="amitha_kamath_2-1771955906917.png" alt="amitha_kamath_2-1771955906917.png" /></span></P><P><STRONG>Key Business Value</STRONG></P><P>The reference application helps your organization accelerate development while staying fully compliant with clean-core principles. By using it as a guide, your teams can:</P><UL><LI>Gain a reference architecture aligned with SAP standards.</LI><LI>Use proven patterns to integrate with standard applications.</LI><LI>Learn to build reusable and deployable solutions.</LI><LI>Accelerate the delivery of robust and upgrade-safe extensions.</LI></UL><P>The Loyalty Hub demonstrates that innovation and compliance can coexist—adding real business value without compromising the SAP clean core. The best way to understand the power of this approach is to see it in action.</P><P>You can get started and try the Loyalty Hub example by accessing the complete reference application on GitHub. By following this framework, you can confidently deliver the innovative, compliant, and upgrade-safe solutions your business requires.</P><P><A href="https://github.com/SAP-samples/on-stack-partner-reference-extension" target="_self" rel="nofollow noopener noreferrer">On Stack Partner Reference Extension for SAP S/4HANA Cloud Public Edition</A></P><P><STRONG>Explore Other Reference Applications</STRONG></P><P>Depending on your extensibility strategy,&nbsp;<STRONG>you can also explore</STRONG>:</P><UL><LI><A href="https://github.com/SAP-samples/abap-partner-reference-application/" target="_self" rel="nofollow noopener noreferrer">Partner Reference Application for SAP BTP ABAP</A>&nbsp;, <A href="https://community.sap.com/t5/enterprise-resource-planning-blog-posts-by-sap/how-sap-s-abap-cloud-partner-reference-app-simplifies-multi-tenant-side-by/ba-p/14223705" target="_self">Blog</A></LI><LI><A href="https://github.com/SAP-samples/cross-stack-partner-reference-extension" target="_self" rel="nofollow noopener noreferrer">Cross-Stack Partner Reference Extension</A></LI><LI><A href="https://github.com/SAP-samples/partner-reference-application" target="_self" rel="nofollow noopener noreferrer">Partner Reference Application for SAP BTP and CAP</A></LI></UL><P>Together, these resources guide&nbsp;<STRONG>developers and architects</STRONG>&nbsp;across on-stack, side-by-side, and cross-stack extension patterns—helping them choose the right architecture while staying aligned with SAP’s clean-core and cloud-first principles.</P> 2026-03-02T14:06:51.614000+01:00