https://raw.githubusercontent.com/ajmaradiaga/feeds/main/scmt/topics/ABAP-Testing-and-Analysis-blog-posts.xmlSAP Community - ABAP Testing and Analysis2026-02-20T12:10:01.153889+00:00python-feedgenABAP Testing and Analysis blog posts in SAP Communityhttps://community.sap.com/t5/technology-blog-posts-by-members/include-released-successor-objects-from-quot-cloudification-repo-quot-in/ba-p/14136908Include released successor objects from "cloudification repo" in your ABAP custom code migration2025-07-17T15:35:03.728000+02:00lutzi3https://community.sap.com/t5/user/viewprofilepage/user-id/168005<P>Many SAP customers are currently in the phase of migrating their SAP ERP systems to S/4HANA. For those who choose a brownfield or bluefield approach the old ERP system is converted and the customers extensions and own applications (Z* objects) become part of the new system.</P><P>Then, the process of Custom Code Adaptation kicks in where the ERP functionality is analyzed and corrected in a way that the objects run again in S/4HANA. See <A href="https://community.sap.com/t5/technology-blog-posts-by-sap/get-started-with-the-abap-custom-code-migration-process/bc-p/14049622" target="_blank">https://community.sap.com/t5/technology-blog-posts-by-sap/get-started-with-the-abap-custom-code-migration-process/bc-p/14049622</A> or <A href="https://community.sap.com/t5/enterprise-resource-planning-blog-posts-by-sap/sap-s-4hana-system-conversion-custom-code-adaptation-process/ba-p/13337309" target="_blank">https://community.sap.com/t5/enterprise-resource-planning-blog-posts-by-sap/sap-s-4hana-system-conversion-custom-code-adaptation-process/ba-p/13337309</A> for more details.</P><P>The custom code correction process can be time consuming and challenging depending on the size and complexity of the original ERP system. A big part of the custom code objects will be touched. The basis for the checks and corrections is the ABAP Test Cockpit (ATC) with the check variant for S/4HANA (e.g. S4HANA_READINESS_2023).</P><P>In case the customer wants to move functionality to SAP BTP ABAP or the S/4HANA (public) Cloud versions it is not sufficient to make the old ERP code just S/4HANA ready. The cloud versions have a heavily restricted set of the ABAP language (so called <A href="https://help.sap.com/doc/abapdocu_latest_index_htm/latest/en-US/abenabap_versions.htm" target="_blank" rel="noopener noreferrer">language version 5</A> ) and furthermore access to SAP standard objects is allowed to (relatively few) released objects only. For instance, you must not use the MARA table to read materials but the I_PRODUCT CDS. This information is stored in the so called cloudification repository (<A href="https://community.sap.com/t5/enterprise-resource-planning-blog-posts-by-sap/how-to-check-your-custom-code-for-abap-cloud/ba-p/13567124" target="_blank">https://community.sap.com/t5/enterprise-resource-planning-blog-posts-by-sap/how-to-check-your-custom-code-for-abap-cloud/ba-p/13567124</A> ) which is regularly updated. (See <A href="https://github.com/SAP/abap-atc-cr-cv-s4hc" target="_blank" rel="noopener nofollow noreferrer">https://github.com/SAP/abap-atc-cr-cv-s4hc</A> for the Raw data).</P><P>It contains as well successor information for some of the old ERP objects in particular for the data base tables which makes it particularly interesting for the custom code migration process. See note <A href="https://launchpad.support.sap.com/#/notes/3284711" target="_blank" rel="noopener noreferrer">https://launchpad.support.sap.com/#/notes/3284711</A> for installation of the according ATC check / check "Usage of Released APIs (Cloudification Repository)" in releases before 2023 FP 3.</P><P>The idea is now to use the <STRONG>officially released successors for the objects which need to be corrected</STRONG> anyway during the migration ERP -> S/4HANA.</P><P>A (simple) example: When accessing table SKA1 corrections could be necessary because of the new account type attributes e.g. GLACCOUNT_TYPE in S/4; secondary cost elements are saved now as well. This is found by the S4HANA_READINESS_2023. The same access is found by the "Usage of Released APIs (Cloudification Repository)" check as well:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="lutzi3_1-1750868218556.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/278795iABEA7BB84A2CEA10/image-size/large?v=v2&px=999" role="button" title="lutzi3_1-1750868218556.png" alt="lutzi3_1-1750868218556.png" /></span></P><P>The solution to solve both issues is to check if secondary cost elements are concerned and to follow the recommendation in the finding. In the correction the successor object (DDLS I_GLACCOUNTINCHARTOFACCOUNTS) should be used directly:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="lutzi3_2-1750868251695.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/278796iC26AC3CAF29D6544/image-size/large?v=v2&px=999" role="button" title="lutzi3_2-1750868251695.png" alt="lutzi3_2-1750868251695.png" /></span></P><P> </P><P>This combination approach makes a part of the own developments "cloud ready" and "S/4HANA ready" at the same time without a big additional effort. And anyway, it is better for upgrade stability to use officially released objects!</P><P>Here are 3 possible approaches to achieve this:</P><H2 id="toc-hId-1733313264">Approach 1: Out of the box: Combined Check</H2><P>Create a Z ATC Check variant and select the checks from S4HANA_READINESS* and the check "Usage of Released APIs (Cloudification Repository)" . The easiest would be to copy S4HANA_READINESS* and then to select in the maintenance of the check variants (via transaction /nSCI):</P><P> </P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="lutzi3_0-1750869196948.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/278802i1DD4B336CBE0FBB5/image-size/medium?v=v2&px=400" role="button" title="lutzi3_0-1750869196948.png" alt="lutzi3_0-1750869196948.png" /></span></P><P> </P><P>Once you run the check you will see the result as in this example:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="lutzi3_1-1750869196955.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/278801iD2CC420733DC8702/image-size/large?v=v2&px=999" role="button" title="lutzi3_1-1750869196955.png" alt="lutzi3_1-1750869196955.png" /></span></P><P> </P><P>The findings from the combined check contain already all needed information but there are two shortcomings: the list contains many irrelevant entries; not all check categories (only when the successor is defined) nor all findings are relevant in the context of S/4HANA custom code adoption (e.g. Successor I_COUNTRY for T005 table doesn’t solve a Custom Code Migration issue).</P><H2 id="toc-hId-1536799759">Approach 2: Add information from Cloudification Repo manually</H2><P>Instead of a combined check variant the successor information could be added via Excel / VLOOKUP (SVERWEIS in German) as well using these steps:</P><OL><LI>Run the standard ATC check for Custom Code Analysis (e.g. S4HANA_READINESS_2023)</LI><LI>Download the detailed list from ATC to Excel (include in any case the field reference object / Referenzobjekt)</LI><LI>Download the cloudification repo from here <A href="https://github.com/SAP/abap-atc-cr-cv-s4hc/blob/main/src/objectReleaseInfoLatest.csv" target="_blank" rel="noopener nofollow noreferrer">https://github.com/SAP/abap-atc-cr-cv-s4hc/blob/main/src/objectReleaseInfoLatest.csv</A></LI><LI>Open the data in Excel and copy the sheet to your original excel in a new tab</LI><LI>Add a new column to the first tab from ATC data and combine the data via VLOOKUP: find a possible successor objects in the released objects for the reference objects</LI></OL><P>A possible result could look like this:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="lutzi3_0-1750917331297.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/278960i007475D15532D91F/image-size/large?v=v2&px=999" role="button" title="lutzi3_0-1750917331297.png" alt="lutzi3_0-1750917331297.png" /></span></P><P> </P><P>I added an example excel for convenience reasons to Github here: <A href="https://github.com/Lutzi3/cloud_mig_atc/blob/main/ATC_S4HANA_CLOUDIF_REPO_EXAMPLE.xlsx" target="_blank" rel="noopener nofollow noreferrer">https://github.com/Lutzi3/cloud_mig_atc/blob/main/ATC_S4HANA_CLOUDIF_REPO_EXAMPLE.xlsx</A> </P><P>Then, when processing the ATC findings, the successor objects from Excel can be used directly in the corrections.</P><H2 id="toc-hId-1340286254">Approach 3: Using a custom enhancement to the SAP ATC S/4HANA: Released objects as additional information</H2><P>In order to avoid the manual Excel steps and to have a lean combined list of the relevant findings only there is also the possibility to enhance the "additional information" section via an implicit enhancement or via another copy of the standard check classes in the S/4HANA Custom Code area. If you decide for the enhancement you can use the methode GET_DETAIL_FROM_DATA_BUFFER from the central utility class CL_CI_S4H_COMMON and add the successor object information there.</P><P>The result is that if there is the successor object available it will be put to the Additional Information Section of the findings as shows the following example:</P><P> </P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="lutzi3_0-1751026443405.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/279803i0A0D2003AFA8C10C/image-size/large?v=v2&px=999" role="button" title="lutzi3_0-1751026443405.png" alt="lutzi3_0-1751026443405.png" /></span></P><P> </P><P>There is an example version on Github for this as well: <A href="https://github.com/Lutzi3/cloud_mig_atc" target="_blank" rel="noopener nofollow noreferrer">https://github.com/Lutzi3/cloud_mig_atc</A> </P><P>Now the existing ATC S4HANA readiness check is enhanced by the new released object information such as that you can directly correct the old ERP object reference and replace it by the latest officially released SAP cloud ready object!</P>2025-07-17T15:35:03.728000+02:00https://community.sap.com/t5/technology-blog-posts-by-sap/abap-cloud-sessions-at-sap-teched-in-2025/ba-p/14175995ABAP Cloud Sessions at SAP TechEd in 20252025-08-22T17:20:44.662000+02:00CarineTchoutouohttps://community.sap.com/t5/user/viewprofilepage/user-id/1462<P class="lia-align-center" style="text-align: center;"><STRONG><span class="lia-unicode-emoji" title=":fire:">🔥</span></STRONG> Check out the<STRONG><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/abap-cloud-sessions-at-devtoberfest-2025/ba-p/14188138" target="_self">🟢ABAP Cloud sessions at the SAP's Devtoberfest 2025</A></STRONG>! <STRONG><span class="lia-unicode-emoji" title=":fire:">🔥</span></STRONG></P><P>Hey Everyone!</P><P><STRONG><A href="https://www.sap.com/events/teched.html" target="_blank" rel="noopener noreferrer">SAP TechEd in 2025</A></STRONG> kicks off on the 4th of November 2025, and preparations <SPAN>are now in full swing at SAP!</SPAN></P><P><SPAN>SAP TechEd is the leading tech conference for all developers, IT professionals, business experts, tech visionaries, innovators, and leaders eager to gain in-depth knowledge of SAP’s solutions, platforms, and technologies, along with insights into their future direction. It also offer an opportunity to network and connect with peers and SAP experts. </SPAN></P><P>In 2025, <STRONG>SAP TechEd </STRONG><SPAN><STRONG>goes hybrid</STRONG>, kicking off with parallel events </SPAN><SPAN>in Berlin, Louisville, and online – </SPAN><SPAN>followed by SAP TechEd on Tour stops in Australia, India, UK, and Germany for a unique opportunity for an in-depth, in-person learning experience. Except for the Berlin and Bangalore stops, the on-site events are organized in partnership with, and hosted by, SAP User Groups and SAPinsider. </SPAN></P><P>The choice is yours: join us on-site in Berlin or Louisville (at ASUG Tech Connect), or online for the first events in the series! </P><P class="lia-align-center" style="text-align: center;"><STRONG>Save the date and </STRONG><STRONG>register now</STRONG>!<BR /><span class="lia-unicode-emoji" title=":calendar:">📅</span>November 4 - 6, 2025<BR /><A href="https://www.sap.com/events/teched/berlin/flow/sap/te25/catalog-inperson/page/catalog" target="_blank" rel="noopener noreferrer">Berlin</A> | <A href="https://www.sap.com/events/teched/virtual/flow/sap/tev25/catalog-virtual/page/catalog" target="_blank" rel="noopener noreferrer">Virtual</A> (<EM>free of charge</EM>) | <A href="https://www.sap.com/events/2025-11-04-us-pe-asug-tech-connect.html" target="_blank" rel="noopener noreferrer">Louisville</A></P><P class="lia-align-left" style="text-align : left;"> </P><H1 id="toc-hId-1607895114">ABAP Cloud at SAP TechEd in 2025</H1><P><span class="lia-unicode-emoji" title=":wrench:">🔧</span><STRONG> What to Expect</STRONG></P><P><A href="https://help.sap.com/docs/abap-cloud" target="_blank" rel="noopener noreferrer"><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="CarineTchoutouo_0-1755888895164.png" style="width: 102px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/304101iB764B49D270DC480/image-dimensions/102x46?v=v2" width="102" height="46" role="button" title="CarineTchoutouo_0-1755888895164.png" alt="CarineTchoutouo_0-1755888895164.png" /></span></A>ABAP continues to evolve, and SAP TechEd events in 2025 are the best place to see what’s next. Beyond the integration of ABAP Cloud into SAP Build announced last year, and the integration of SAP Joule for Developers into the ABAP development tools along with the ABAP AI SK to infuse AI into your business processes earlier this year, you’ll have the opportunity to explore the latest innovations and updates in ABAP Cloud, AI-based custom code transformation, clean core practices, and the new clean core levels approach for SAP S/4HANA extensibility in both the private cloud and on-premise.</P><P><span class="lia-unicode-emoji" title=":light_bulb:">💡</span><STRONG> Why Attending ABAP Sessions Matters</STRONG></P><UL><LI>Get a <STRONG>clear direction</STRONG> for your ABAP strategy, whether you're on ECC, S/4HANA, or SAP BTP</LI><LI>Learn how to <STRONG>modernize custom development</STRONG> without touching the core</LI><LI>See how <STRONG>SAP Joule for Developers, ABAP AI capabilities </STRONG>can support faster, cleaner development</LI><LI>Take home <STRONG>practical skills</STRONG> for RAP, testing, ABAP Test Cockpit, governance, and more</LI></UL><P><SPAN>Access the SAP TechEd 2025 session catalogs: <A href="https://www.sap.com/events/teched/berlin/flow/sap/te25/catalog-inperson/page/catalog" target="_blank" rel="noopener noreferrer">SAP TechEd Berlin</A> | <A href="https://www.sap.com/events/teched/virtual/flow/sap/tev25/catalog-virtual/page/catalog" target="_blank" rel="noopener noreferrer">SAP TechEd Virtual</A> | <A href="https://events.asug.com/event/e7bd56fe-4c89-4e90-bc2c-ff75b4cc099b/agenda" target="_blank" rel="noopener nofollow noreferrer">ASUG Tech Connect</A>. | <A href="https://events.sap.com/apj-savethedatetechedontourbangalore2025/en_us/home.html#%20" target="_blank" rel="noopener noreferrer">SAP TechEd Bangalore 2025</A>.</SPAN></P><HR /><H1 id="toc-hId-1411381609">ABAP Cloud Sessions at SAP TechEd <FONT color="#0000FF">Berlin</FONT> 2025 </H1><P data-unlink="true"><span class="lia-unicode-emoji" title=":calendar:">📅</span><STRONG> <A href="https://www.sap.com/events/teched/berlin.html" target="_blank" rel="noopener noreferrer">Event Info</A>:</STRONG> </P><UL><LI><STRONG>Dates</STRONG>: November 4–6, 2025</LI><LI><STRONG>Location</STRONG>: Messe Berlin (Berlin, Germany)</LI><LI><STRONG>Session formats</STRONG>: Strategy talks, roadmap updates, deep dives, community talks, and hands-on workshops</LI><LI><STRONG>9 Content tracks</STRONG>: ABAP sessions primarily in the tracks "Application Development & Automation (<SPAN class="">AD</SPAN>)" and "<SPAN>Digital Transformation with Cloud <SPAN class="">ERP</SPAN> (<SPAN class="">DT</SPAN>)" </SPAN></LI></UL><HR /><H2 id="toc-hId-1343950823"><span class="lia-unicode-emoji" title=":microphone:">🎤</span>Keynote</H2><P><STRONG><SPAN><A href="https://www.sap.com/events/teched/virtual/flow/sap/tev25/catalog-virtual/page/catalog/session/1757430182306001kAaH" target="_blank" rel="noopener noreferrer">KEY102v | Welcome to SAP TechEd 2025</A><BR /></SPAN></STRONG>AI, clean core, data, and agents are changing enterprise tech, but it all comes down to developers. See how SAP is equipping you with the tools, platforms, and learning to turn bold ideas into reality. Experience big announcements, live demos, and a clear view of what’s next.<BR /><U>Schedule</U>: Tuesday, 4 November 2025 | <SPAN>8:30 AM - 9:00 AM CET</SPAN><BR /><U>Speakers</U>: </P><UL><LI><SPAN>Muhammad Alam, Executive Board, SAP Product & Engineering, SAP</SPAN></LI><LI><SPAN>Josh Bentley, Head of SAP Community, SAP</SPAN></LI><LI><SPAN>Anne Katherine Petteroe, Community Advocate, SAP</SPAN></LI><LI><SPAN>Nora Von Thenen, Developer Advocate, SAP</SPAN></LI></UL><P><STRONG><A href="https://www.sap.com/events/teched/berlin/flow/sap/te25/catalog-inperson/page/catalog/session/1755527936875001jfGl" target="_blank" rel="noopener noreferrer">KEY100 | Beyond the hype: How SAP is supercharging developers for what's next</A><BR /></STRONG>Some experts argue there’s a developer shortage. Others will say developers are no longer needed due to AI. Let’s get real: developers, architects, and technologists are here to stay, and their roles are more important than ever. Explore how the latest technology, tools, AI, agents, and learning from SAP can help you adapt these changing roles. <BR /><U>Schedule</U><SPAN>: Tuesday, 4 November 2025 | 4:00 PM – 5:30 PM CET</SPAN><BR /><SPAN><U>Speakers</U>: </SPAN></P><UL><LI><SPAN>Muhammad Alam, Executive Board, SAP Product & Engineering, SAP</SPAN></LI><LI><SPAN>Philipp Herzig, Chief Technology Officer, SAP</SPAN></LI><LI><SPAN>Michael Ameling, President SAP BTP, SAP</SPAN></LI></UL><P><SPAN><A href="https://www.sap.com/events/teched/virtual/flow/sap/tev25/catalog-virtual/page/catalog/session/1756158891669001xbne" target="_blank" rel="noopener noreferrer"><STRONG>KEY101v | Draft day for developers: Turning new technology into real-world wins</STRONG></A><BR />The picks are in, and developers, their tools, and frameworks are first-round talent. Get a front-row seat to SAP’s latest innovations built to accelerate how you code, automate, and scale. Explore how you can use SAP’s newest AI capabilities, generative agents, and enhanced tooling to build faster and smarter with less friction and more impact.<BR /><U>Speakers</U>: Developer Advocates, SAP<BR /><U>Schedule</U>: Wednesday, 5 November 2025 | 9:00 AM - 9:45 AM CET<BR /></SPAN></P><P><SPAN><A href="https://www.sap.com/events/teched/virtual/flow/sap/tev25/catalog-virtual/page/catalog/session/1757430187053001kKXE" target="_blank" rel="noopener noreferrer"><STRONG>KEY103v | SAP TechEd closing</STRONG></A><BR />Wrap up SAP TechEd with highlights, key takeaways, and a look at what’s ahead. From breakthrough demos to developer wins, celebrate what you’ve learned, where you’ve connected, and how you can keep the momentum going long after SAP TechEd is over. <BR /><U>Speakers</U>: Josh Bentley (SAP), Shilpa Shankar (SAP), Laura Schmitz (SAP)<BR /><U>Schedule</U>: Thursday, 6 November 2025 | 2:00 PM - 2:30 PM CET<BR /></SPAN></P><HR /><H2 id="toc-hId-1147437318"><span class="lia-unicode-emoji" title=":station:">🚉</span>Demo Station </H2><P><STRONG><A href="https://www.sap.com/events/teched/berlin/flow/sap/te25/catalog-inperson/page/catalog/session/1752569392855001umvM" target="_blank" rel="noopener noreferrer">AD900 | SAP Build: AI-based development with ABAP Cloud, CAP, SAPUI5</A></STRONG><SPAN> </SPAN><BR /><SPAN>Explore AI-driven application development with SAP Build solutions using ABAP Cloud, SAP Cloud Application Programming Model (CAP), and SAPUI5. Learn how to extend SAP solutions like SAP S/4HANA Cloud, integrate with the SAP Business Data Cloud solution, and boost productivity with the SAP Joule for Developers add-on and generative AI.<BR /></SPAN><SPAN><U>ABAP Cloud</U>: Burcu Karlidag & On-Site Speakers <BR /></SPAN><SPAN><U>Schedule</U>: Throughout the event </SPAN></P><P><SPAN><STRONG><A href="https://www.sap.com/events/teched/berlin/flow/sap/te25/catalog-inperson/page/catalog/session/1753302173031001sRTN" target="_blank" rel="noopener noreferrer">DT916 | Discover extensibility options for cloud ERP</A></STRONG> <BR />Explore on-stack and side-by-side extensibility with the SAP Build solution to innovate while keeping a clean core. Learn about the clean core levels concept, innovations in ABAP Cloud, and how AI boosts developer productivity and custom code transformation. Partners can explore options for delivering extensions in a scalable model.<BR /><U>ABAP Cloud</U>: Karl Kessler & On-Site Speakers <BR /><U>Schedule</U>: Throughout the event </SPAN></P><HR /><H2 id="toc-hId-950923813"><span class="lia-unicode-emoji" title=":direct_hit:">🎯</span>Strategy Talks (25 minutes<SPAN>)</SPAN></H2><P><STRONG><A href="https://www.sap.com/events/teched/berlin/flow/sap/te25/catalog-inperson/page/catalog/session/1749109536463001vLhp" target="_blank" rel="noopener noreferrer"><SPAN>ST109</SPAN> – <SPAN>SAP Build: ABAP Cloud Strategy</SPAN></A></STRONG><SPAN> | L</SPAN><SPAN>ivestreamed as </SPAN><A href="https://www.sap.com/events/teched/virtual/flow/sap/tev25/catalog-virtual/page/catalog/session/1752171986567001rS7v" target="_blank" rel="noopener noreferrer"><STRONG><SPAN>ST109v </SPAN>at SAP TechEd Virtual 2025</STRONG></A><BR /><SPAN>The ABAP Cloud strategy as part of SAP Build and the SAP strategy go hand-in-hand. Explore in this session what this means for our major topics ABAP AI and Custom Code Transformation and how we integrate Business Data Cloud. Furthermore, learn about the ABAP IDE strategy and how we support the sovereign cloud.<BR /></SPAN><SPAN><U>Speakers</U>: </SPAN>Sonja Liénard (SAP), <SPAN>Boris Gebhardt (SAP)<BR /></SPAN><SPAN><U>Schedule</U>: Tuesday, 4 November 2025 | 12:30 PM – 12:55 PM CET</SPAN></P><P><STRONG><A href="https://www.sap.com/events/teched/berlin/flow/sap/te25/catalog-inperson/page/catalog/session/1749132378115001LmnQ" target="_blank" rel="noopener noreferrer"><SPAN>ST113</SPAN> – <SPAN>Journey to unified extensibility in SAP Business Suite and cloud ERP</SPAN></A> </STRONG>| Livestreamed as <STRONG><A href="https://www.sap.com/events/teched/virtual/flow/sap/tev25/catalog-virtual/page/catalog/session/1753997971179001Byoa" target="_self" rel="noopener noreferrer">ST113v at SAP TechEd Virtual 2025</A></STRONG> <BR /><SPAN>Explore the strategy for extensibility across SAP Business Suite and cloud ERP. Learn why AI-driven development with the SAP Build solution including ABAP Cloud is key, and how the planned harmonization will make it easier to build extensions and support the clean core. Furthermore, learn about opportunities for partners to extend SAP solutions.<BR /></SPAN><SPAN><U>Speakers</U>: </SPAN>Boris Gebhardt (SAP), Khaled Musilhy (SAP), Lilissa Chao (Exxon Mobil Global Services Co.)<SPAN><BR /></SPAN><SPAN><U>Schedule</U>: Thursday, 6 November 2025 | 9:00 AM - 9:25 AM CET</SPAN></P><HR /><H2 id="toc-hId-754410308"><span class="lia-unicode-emoji" title=":world_map:">🗺</span>️ Roadmap Sessions (25 minutes<SPAN>)</SPAN></H2><P><STRONG><A href="https://www.sap.com/events/teched/berlin/flow/sap/te25/catalog-inperson/page/catalog/session/1749109867231001jec8" target="_blank" rel="noopener noreferrer"><SPAN>AD808</SPAN> – <SPAN>SAP Build: ABAP Cloud road map</SPAN></A></STRONG><BR /><SPAN>See our upcoming innovations for the ABAP Cloud development model including Joule and the Business Data Cloud integration in context and get updates on the roadmap ahead.<BR /><U>Speakers</U>: Boris Gebhardt (SAP)<BR /><U>Schedule</U>: Tuesday, 4 November 2025 | 2:45 PM - 3:10 PM CET</SPAN></P><P><STRONG><A href="https://www.sap.com/events/teched/berlin/flow/sap/te25/catalog-inperson/page/catalog/session/1749132621235001F9CC" target="_blank" rel="noopener noreferrer"><SPAN>DT814</SPAN> – <SPAN>Extensibility innovations road map for SAP Business Suite and cloud ERP</SPAN></A></STRONG><BR /><SPAN>Explore upcoming extensibility innovations for SAP Business Suite and cloud ERP. Discover road maps for suite extensibility, harmonization, and partner enablement for commercial use cases. Learn more about upcoming innovations for AI-driven extensibility with the SAP Build solution including ABAP Cloud to support your clean core strategy.<BR /><U>Speakers</U>: </SPAN>Oren Shatil (SAP), Boris Gebhardt (SAP)<SPAN><BR /><U>Schedule</U>: Wednesday, 5 November 2025 | 4:30 PM - 4:55 PM CET</SPAN></P><HR /><H2 id="toc-hId-557896803"><span class="lia-unicode-emoji" title=":magnifying_glass_tilted_left:">🔍</span>Deep Dives (45 minutes<SPAN>)</SPAN></H2><P><STRONG><A href="https://www.sap.com/events/teched/berlin/flow/sap/te25/catalog-inperson/page/catalog/session/1749110017215001w1iM" target="_blank" rel="noopener noreferrer">AD104 – Boost your ABAP development with Joule for developers</A> </STRONG> <SPAN>| Livestreamed as <A href="https://www.sap.com/events/teched/virtual/flow/sap/tev25/catalog-virtual/page/catalog/session/1752166258581001rD4z" target="_blank" rel="noopener noreferrer"><STRONG>AD104v </STRONG>at SAP TechEd Virtual 2025</A></SPAN><BR />In this deep dive session you will learn all aspects of the ABAP AI strategy, from accelerating your ABAP development, over developing custom AI scenarios, up to using Joule to transform your ABAP code.<SPAN><BR /><U>Speakers</U>: </SPAN>Simona Marincei (SAP), Olga Dolinskaja (SAP)<SPAN><BR /></SPAN><SPAN><U>Schedule</U>: Tuesday, 4 November 2025 | 2:30 PM - 3:15 PM CET</SPAN></P><P><A href="https://www.sap.com/events/teched/berlin/flow/sap/te25/catalog-inperson/page/catalog/session/1749110856633001ZdrC" target="_blank" rel="noopener noreferrer"><STRONG>AD105 –</STRONG><STRONG> Introduction to ABAP Cloud and how to get started </STRONG></A><BR /><SPAN>ABAP Cloud is the new way of developing ABAP—fully cloud-enabled and driven by AI. It combines cloud technologies with a clear separation of SAP and custom code, and in this way revolutionizes ABAP development. Grasp the major concepts of ABAP Cloud and learn how you can upskill. Also learn about Bosch Digital’s journey to ABAP Cloud and clean core.<BR /><U>Speakers</U>: Carine Tchoutouo Djomo (SAP), Ajay Kulkarni (Robert Bosch GmbH)<BR /><U>Schedule</U>: Wednesday, 5 November 2025 | 1:15 PM - 2:00 PM CET<BR /></SPAN></P><P><STRONG><A href="https://www.sap.com/events/teched/berlin/flow/sap/te25/catalog-inperson/page/catalog/session/1749110615653001ATih" target="_blank" rel="noopener noreferrer">AD201 – Explore ABAP Cloud in SAP Build - what's in for ABAP developers? </A> </STRONG><BR />In this deep dive we will highlight the importance of our strategic approach of integrating ABAP Cloud in SAP Build. Learn how you can benefit from this for Fiori App development and how the graphical modeler helps you to create ABAP CDS models conveniently. Finally, get insights into the future direction.<SPAN><BR /><U>Speakers</U>: Dr. </SPAN>Anne Keller<SPAN> (SAP)</SPAN>, Katja Zoch<SPAN> (SAP)<BR /><U>Schedule</U>: Wednesday, 5 November 2025 | 5:15 PM - 6:00 PM CET<BR /></SPAN></P><P><A href="https://www.sap.com/events/teched/berlin/flow/sap/te25/catalog-inperson/page/catalog/session/1749071777465001lGIE" target="_blank" rel="noopener noreferrer"><STRONG>DT200 –</STRONG><STRONG> Unravel the mysteries of Clean Core extensions in Cloud ERP Private </STRONG></A><BR />Learn about the new, enhanced clean core extensibility concept in SAP S/4HANA Cloud Private Edition. Learn about tools like ABAP Test Cockpit and RISE Dashboard, as well as guidance and best practices that help you to measure, govern, re-factor and develop your custom extensions in a clean core compliant, upgrade stable and cloud-ready way.<SPAN><BR /><U>Speakers</U>: Olga Dolinskaja (SAP), Markus Goebel (SAP)<BR /><U>Schedule</U>: Wednesday, 5 November 2025 | 2:15 PM - 3:00 PM CET<BR /></SPAN></P><P><A href="https://www.sap.com/events/teched/berlin/flow/sap/te25/catalog-inperson/page/catalog/session/1749073857569001yTng" target="_blank" rel="noopener noreferrer"><STRONG>DT201 –</STRONG><STRONG> Extensibility with ABAP Cloud and AI in SAP Cloud ERP</STRONG></A><BR />Learn about the on-stack key user and developer tools in the ABAP Cloud development model, now enhanced with generative AI. See how you can extend standard SAP applications and manage your custom apps directly in SAP S/4HANA Cloud Public Edition. Get insights into latest innovations for transactional, analytical, and integration use cases, such as the extensibility AI Assistant, editable tree-views, custom queries for analytical SAP Fiori apps, ABAP SQL services and more.<SPAN><BR /><U>Speakers</U>: </SPAN>Carine Tchoutouo Djomo<SPAN> (SAP)</SPAN>, Oren Shatil<SPAN> (SAP), Thomas Neuhaus (AGILITA Deutschland GmbH)<BR /><U>Schedule</U>: Tuesday, 4 November 2025 | 2:30 PM - 3:15 PM CET</SPAN></P><HR /><H2 id="toc-hId-361383298"><span class="lia-unicode-emoji" title=":hammer_and_wrench:">🛠</span>️ Hands-On Workshops (2 hours)</H2><P><STRONG><A href="https://www.sap.com/events/teched/berlin/flow/sap/te25/catalog-inperson/page/catalog/session/1749111133585001neK1" target="_blank" rel="noopener noreferrer">AD162 – Explore Joule for developers, ABAP AI capabilities</A> </STRONG> <BR />Learn how to develop a RAP business object while exploring Joule's ABAP AI capabilities<SPAN><BR /><U>Speakers</U>: Sebastian Baskovich (SAP), Thomas Alexander Ritter (SAP), Dr. Anne Keller (SAP), Simona Marincei (SAP)<BR /><U>Schedule</U>: Tuesday, 4 November 2025 | 10:00 AM - 12:00 PM CET<BR /></SPAN></P><P><STRONG><A href="https://www.sap.com/events/teched/berlin/flow/sap/te25/catalog-inperson/page/catalog/session/1749111362893001Nrqs" target="_blank" rel="noopener noreferrer">AD163 – Fusion Development with ABAP Cloud in SAP Build</A></STRONG><BR />In this session we will practice fusion development of ABAP Cloud in SAP Build by creating an ABAP Cloud project from the SAP Build lobby to develop a RAP BO including a Fiori application on top.<SPAN><BR /><U>Speakers</U>: Ingo Bräuninger (SAP), Sebastian Baskovich (SAP), Anne Keller (SAP), Katja Zoch (SAP)<BR /><U>Schedule</U>: Thursday, 6 November 2025 | 11:30 AM - 1:30 PM CET<BR /></SPAN></P><P><SPAN><A href="https://www.sap.com/events/teched/berlin/flow/sap/te25/catalog-inperson/page/catalog/session/1749112624677001Rt0T" target="_blank" rel="noopener noreferrer"><STRONG>AD164 –</STRONG><STRONG> Get started with ABAP Cloud for classic ABAP developers</STRONG></A><STRONG> </STRONG><BR />Familiar with classic ABAP development? Join us to learn how similar development works with ABAP Cloud development model using the ABAP RESTful application programming model (RAP). ABAP Cloud is the comprehensive model for building cloud-ready business apps, services, and extensions that follow clean core principles by default – on SAP BTP and SAP S/4HANA, both in the cloud and on-premise.<BR /></SPAN><SPAN><U>Speakers</U>: Volker Drees (SAP), Carine Tchoutouo Djomo (SAP), Boris Gebhardt (SAP), Jürgen Reidl (SAP)<BR /><U>Schedule</U>: Thursday, 6 November 2025 | 11:30 AM - 1:30 PM CET<BR /></SPAN></P><P><SPAN><STRONG><A href="https://www.sap.com/events/teched/berlin/flow/sap/te25/catalog-inperson/page/catalog/session/1749072760273001q6Pm" target="_blank" rel="noopener noreferrer">DT260 – Modernize classic extensions to clean core in Cloud ERP Private</A> </STRONG><BR />In this session you will practice a clean core extensibility in SAP S/4HANA Cloud Private Edition. You will learn how to govern clean core development using the ABAP Test Cockpit, and how to use ABAP Cloud and clean core extensibility principles to modernize your custom on-stack extensions.<BR /></SPAN><SPAN><U>Speakers</U>: Ingo Bräuninger (SAP), Olga Dolinskaja (SAP), Thomas Fiedler (SAP), Markus Goebel (SAP)<BR /><U>Schedule</U>: Thursday, 6 November 2025 | 9:00 AM - 11:00 AM CET<BR /></SPAN></P><P><SPAN><STRONG><A href="https://www.sap.com/events/teched/berlin/flow/sap/te25/catalog-inperson/page/catalog/session/1749074059125001cpvA" target="_blank" rel="noopener noreferrer">DT261 – Build on-stack extensions with ABAP Cloud in Cloud ERP Public</A></STRONG><BR />Join us to discover how to build extensions, applications, and services with the ABAP Cloud development model, using the ABAP RESTful application programming model and generative AI. You will learn how to extend standard SAP applications, consume public SAP APIs, and build new apps and services from scratch. Get practical insights through exercises and take the opportunity to ask your questions.<BR /></SPAN><SPAN><U>Speakers</U>: Ingo Bräuninger (SAP), Volker Drees (SAP), Steffen Mattes (SAP), Rushikesh Nagle (SAP)<BR /><U>Schedule</U>: Wednesday, 5 November 2025 | 10:30 AM - 12:30 PM CET<BR /></SPAN></P><P><SPAN><STRONG><A href="https://www.sap.com/events/teched/berlin/flow/sap/te25/catalog-inperson/page/catalog/session/1749650347432001y6fi" target="_blank" rel="noopener noreferrer">DT266 – Troubleshoot and Optimize ABAP Cloud Extensions in Cloud ERP</A> </STRONG><BR />Ensuring optimal performance and stability of your ABAP Cloud-based extensions is crucial to long-term success. Learn advanced techniques and best practices for troubleshooting and optimizing custom code in the Cloud ERP. Use powerful tools like ABAP Cross Trace to get deep insights into execution flows and resource consumption.<BR /></SPAN><SPAN><U>Speakers</U>: Steffen Mattes (SAP), Juergen Reidl (SAP), Thomas Alexander Ritter (SAP), Thomas Fiedler (SAP)<BR /><U>Schedule</U>: Wednesday, 5 November 2025 | 3:30 PM - 5:30 PM CET<BR /></SPAN></P><HR /><H2 id="toc-hId-164869793"><span class="lia-unicode-emoji" title=":waving_hand:">👋</span>Join Us</H2><P>I hope this overview gives you even more reasons to join us at one of the <A href="https://www.sap.com/events/teched.html" target="_self" rel="noopener noreferrer">SAP TechEd 2025 tour stops</A> in Berlin (DE), Louisville (US), Sydney (AU), Bangalore (IN), Birmingham (UK), or Hamburg (DE) – or attend online, free of charge!</P><P>We look forward to meeting and interacting with you! <span class="lia-unicode-emoji" title=":handshake:">🤝</span> <SPAN>In the meantime, you can watch the replays </SPAN><SPAN>of last year's events: </SPAN><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/abap-cloud-sessions-at-sap-teched-in-2024/ba-p/13783420" target="_blank">ABAP Cloud at SAP TechEd Virtual 2024</A> <SPAN>and </SPAN><A href="https://community.sap.com/t5/technology-blogs-by-sap/abap-cloud-at-devtoberfest-by-sap-teched-2024/ba-p/13789730" target="_blank">ABAP Cloud at SAP's Devtoberfest in 2024</A><SPAN>. You can also have a look at the <span class="lia-unicode-emoji" title=":fire:">🔥</span><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/abap-cloud-sessions-at-devtoberfest-2025/ba-p/14187974" target="_self">ABAP Cloud sessions at the upcoming Devtoberfest 2025</A>, running online and free of charge from September 29 to October 24, 2025! <span class="lia-unicode-emoji" title=":handshake:">🤝</span></SPAN></P><P>Stay tuned <SPAN>–</SPAN> and see you there! </P>2025-08-22T17:20:44.662000+02:00https://community.sap.com/t5/technology-blog-posts-by-sap/abap-cloud-sessions-at-sap-teched-in-2025/ba-p/14187974ABAP Cloud Sessions at SAP TechEd in 20252025-08-22T20:27:47.137000+02:00CarineTchoutouohttps://community.sap.com/t5/user/viewprofilepage/user-id/1462<P>Hey Everyone!</P><P><STRONG><A href="https://www.sap.com/events/teched.html" target="_blank" rel="noopener noreferrer">SAP TechEd in 2025</A></STRONG> kicks off on the 4th of November 2025, and preparations <SPAN>are now in full swing at SAP!</SPAN></P><P><SPAN>SAP TechEd is the leading tech conference for all developers, IT professionals, business experts, tech visionaries, innovators, and leaders eager to gain in-depth knowledge of SAP’s solutions, platforms, and technologies, along with insights into their future direction. It also offer an opportunity to network and connect with peers and SAP experts. </SPAN></P><P>In 2025, <STRONG>SAP TechEd </STRONG><SPAN><STRONG>goes hybrid</STRONG>, kicking off with parallel events </SPAN><SPAN>in Berlin, Louisville, and online – </SPAN><SPAN>followed by SAP TechEd on Tour stops in Australia, India, UK, and Germany for a unique opportunity for an in-depth, in-person learning experience. Except for the Berlin and Bangalore stops, the on-site events are organized in partnership with, and hosted by, SAP User Groups and SAPinsider. </SPAN></P><P>The choice is yours: join us on-site in Berlin or Louisville (at ASUG Tech Connect), or online for the first events in the series! </P><P class="lia-align-center" style="text-align: center;"><STRONG>Save the date and </STRONG><STRONG>register now</STRONG>!<BR /><span class="lia-unicode-emoji" title=":calendar:">📅</span>November 4 - 6, 2025<BR /><A href="https://www.sap.com/germany/events/teched/berlin.html" target="_blank" rel="noopener noreferrer">Berlin</A> | <A href="https://www.sap.com/germany/events/teched/virtual.html" target="_blank" rel="noopener noreferrer">Online (free)</A> | <A href="https://www.sap.com/events/2025-11-04-us-pe-asug-tech-connect.html" target="_blank" rel="noopener noreferrer">Louisville</A><BR /><BR /></P><H3 id="toc-hId-1867043592">ABAP Cloud at SAP TechEd in 2025</H3><P><span class="lia-unicode-emoji" title=":wrench:">🔧</span><STRONG> What to Expect</STRONG></P><P><A title="ABAP Cloud" href="https://help.sap.com/docs/abap-cloud" target="_blank" rel="noopener noreferrer"><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="CarineTchoutouo_0-1755888895164.png" style="width: 86px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/304101iB764B49D270DC480/image-dimensions/86x39?v=v2" width="86" height="39" role="button" title="CarineTchoutouo_0-1755888895164.png" alt="CarineTchoutouo_0-1755888895164.png" /></span></A>ABAP continues to evolve, and SAP TechEd events in 2025 are the best place to see what’s next. Beyond the integration of ABAP Cloud into SAP Build announced last year, and the integration of SAP Joule for Developers into the ABAP development tools along with the ABAP AI SK to infuse AI into your business processes earlier this year, you’ll have the opportunity to explore the latest innovations and updates in ABAP Cloud, AI-based custom code transformation, clean core practices, and the new clean core levels approach for SAP S/4HANA extensibility in both the private cloud and on-premise.</P><P><span class="lia-unicode-emoji" title=":light_bulb:">💡</span><STRONG> Why Attending ABAP Sessions Matters</STRONG></P><UL><LI>Get a <STRONG>clear direction</STRONG> for your ABAP strategy, whether you're on ECC, S/4HANA, or SAP BTP</LI><LI>Learn how to <STRONG>modernize custom development</STRONG> without touching the core</LI><LI>See how <STRONG>SAP Joule for Developers, ABAP AI capabilities </STRONG>can support faster, cleaner development</LI><LI>Take home <STRONG>practical skills</STRONG> for RAP, testing, ABAP Test Cockpit, governance, and more</LI></UL><P><SPAN>Access the SAP TechEd 2025 session catalogs: <A href="https://www.sap.com/events/teched/berlin/flow/sap/te25/catalog-inperson/page/catalog" target="_blank" rel="noopener noreferrer">SAP TechEd Berlin</A> | <A href="https://www.sap.com/germany/events/teched/virtual.html" target="_blank" rel="noopener noreferrer">SAP TechEd Virtual</A> | <A href="https://events.asug.com/event/e7bd56fe-4c89-4e90-bc2c-ff75b4cc099b/agenda" target="_blank" rel="noopener nofollow noreferrer">ASUG Tech Connect</A>.</SPAN></P><HR /><H1 id="toc-hId-1412364649"><span class="lia-unicode-emoji" title=":pushpin:">📌</span>ABAP Cloud Sessions at SAP TechEd <FONT color="#0000FF">Berlin</FONT> 2025 </H1><P data-unlink="true"><span class="lia-unicode-emoji" title=":calendar:">📅</span><STRONG> <A href="https://www.sap.com/events/teched/berlin.html" target="_blank" rel="noopener noreferrer">Event Info</A>:</STRONG> </P><UL><LI><STRONG>Dates</STRONG>: November 4–6, 2025</LI><LI><STRONG>Location</STRONG>: Messe Berlin (Berlin, Germany)</LI><LI><STRONG>Session formats</STRONG>: Strategy talks, roadmap updates, deep dives, community talks, and hands-on workshops</LI><LI><STRONG>9 Content tracks</STRONG>: ABAP sessions primarily in the tracks "Application Development & Automation (<SPAN class="">AD</SPAN>)" and "<SPAN>Digital Transformation with Cloud <SPAN class="">ERP</SPAN> (<SPAN class="">DT</SPAN>)" </SPAN></LI></UL><HR /><H2 id="toc-hId-1344933863"><span class="lia-unicode-emoji" title=":microphone:">🎤</span>Keynote</H2><P><STRONG><A href="https://www.sap.com/events/teched/berlin/flow/sap/te25/catalog-inperson/page/catalog/session/1755527936875001jfGl" target="_blank" rel="noopener noreferrer">KEY100 | Beyond the hype: How SAP is supercharging developers for what's next</A><BR /></STRONG>Some experts argue there’s a developer shortage. Others will say developers are no longer needed due to AI. Let’s get real: developers, architects, and technologists are here to stay, and their roles are more important than ever. Explore how the latest technology, tools, AI, agents, and learning from SAP can help you adapt these changing roles. <SPAN><BR /></SPAN></P><HR /><H2 id="toc-hId-1148420358"><span class="lia-unicode-emoji" title=":direct_hit:">🎯</span>Strategy Talks (25 minutes<SPAN>)</SPAN></H2><P><STRONG><A href="https://www.sap.com/events/teched/berlin/flow/sap/te25/catalog-inperson/page/catalog/session/1749109536463001vLhp" target="_blank" rel="noopener noreferrer"><SPAN>ST109</SPAN> – <SPAN>SAP Build: ABAP Cloud Strategy</SPAN></A><SPAN> | </SPAN></STRONG><SPAN>also available virtually as</SPAN><STRONG><SPAN> ST119v</SPAN></STRONG><BR /><SPAN>The ABAP Cloud strategy as part of SAP Build and the SAP strategy go hand-in-hand. Explore in this session what this means for our major topics ABAP AI and Custom Code Transformation and how we integrate Business Data Cloud. Furthermore, learn about the ABAP IDE strategy and how we support the sovereign cloud.<BR /></SPAN><SPAN><U>Speakers</U>: </SPAN>Sonja Lienard (SAP), <SPAN>Boris Gebhardt (SAP)<BR /></SPAN></P><P><STRONG><A href="https://www.sap.com/events/teched/berlin/flow/sap/te25/catalog-inperson/page/catalog/session/1749132378115001LmnQ" target="_blank" rel="noopener noreferrer"><SPAN>ST113</SPAN> – <SPAN>Journey to unified extensibility in SAP Business Suite and cloud ERP</SPAN></A></STRONG><BR /><SPAN>Explore the strategy for extensibility across SAP Business Suite and cloud ERP. Learn why AI-driven development with the SAP Build solution including ABAP Cloud is key, and how the planned harmonization will make it easier to build extensions and support the clean core. Furthermore, learn about opportunities for partners to extend SAP solutions.<BR /></SPAN><SPAN><U>Speakers</U>: </SPAN>Boris Gebhardt (SAP), Khaled Musilhy (SAP), tbd</P><HR /><H2 id="toc-hId-951906853"><span class="lia-unicode-emoji" title=":world_map:">🗺</span>️ Roadmap Sessions (25 minutes<SPAN>)</SPAN></H2><P><STRONG><A href="https://www.sap.com/events/teched/berlin/flow/sap/te25/catalog-inperson/page/catalog/session/1749109867231001jec8" target="_blank" rel="noopener noreferrer"><SPAN>AD808</SPAN> – <SPAN>SAP Build: ABAP Cloud road map</SPAN></A></STRONG><BR /><SPAN>See our upcoming innovations for the ABAP Cloud development model including Joule and the Business Data Cloud integration in context and get updates on the roadmap ahead.<BR /><U>Speakers</U>: Boris Gebhardt (SAP)<BR /></SPAN></P><P><STRONG><A href="https://www.sap.com/events/teched/berlin/flow/sap/te25/catalog-inperson/page/catalog/session/1749132621235001F9CC" target="_blank" rel="noopener noreferrer"><SPAN>DT814</SPAN> – <SPAN>Extensibility innovations road map for SAP Business Suite and cloud ERP</SPAN></A></STRONG><BR /><SPAN>Explore upcoming extensibility innovations for SAP Business Suite and cloud ERP. Discover road maps for suite extensibility, harmonization, and partner enablement for commercial use cases. Learn more about upcoming innovations for AI-driven extensibility with the SAP Build solution including ABAP Cloud to support your clean core strategy.<BR /><U>Speakers</U>: </SPAN>Oren Shatil (SAP), Boris Gebhardt (SAP), <SPAN>External Speaker</SPAN></P><HR /><H2 id="toc-hId-755393348"><span class="lia-unicode-emoji" title=":magnifying_glass_tilted_left:">🔍</span>Deep Dives (45 minutes<SPAN>)</SPAN></H2><P><STRONG><A href="https://www.sap.com/events/teched/berlin/flow/sap/te25/catalog-inperson/page/catalog/session/1749110017215001w1iM" target="_blank" rel="noopener noreferrer">AD104 – Boost your ABAP development with Joule for developers</A> </STRONG> <SPAN>| also available virtually as <STRONG>AD104v</STRONG></SPAN><BR />In this deep dive session you will learn all aspects of the ABAP AI strategy, from accelerating your ABAP development, over developing custom AI scenarios, up to using Joule to transform your ABAP code.<SPAN><BR /><U>Speakers</U>: </SPAN>Simona Marincei (SAP), Olga Dolinskaja (SAP)</P><P><A href="https://www.sap.com/events/teched/berlin/flow/sap/te25/catalog-inperson/page/catalog/session/1749110856633001ZdrC" target="_blank" rel="noopener noreferrer"><STRONG>AD105 –</STRONG><STRONG> Introduction to ABAP Cloud and how to get started </STRONG></A><BR /><SPAN>ABAP Cloud is the new way of developing ABAP—fully cloud-enabled and driven by AI. It combines cloud technologies with a clear separation of SAP and custom code, and in this way revolutionizes ABAP development. Grasp the major concepts of ABAP Cloud and learn how you can upskill. Also learn about Bosch Digital’s journey to ABAP Cloud and clean core.<BR /><U>Speakers</U>: Carine Tchoutouo Djomo (SAP), External Speaker<BR /></SPAN></P><P><STRONG><A href="https://www.sap.com/events/teched/berlin/flow/sap/te25/catalog-inperson/page/catalog/session/1749110615653001ATih" target="_blank" rel="noopener noreferrer">AD201 – Explore ABAP Cloud in SAP Build - what's in for ABAP developers? </A> </STRONG><BR />In this deep dive we will highlight the importance of our strategic approach of integrating ABAP Cloud in SAP Build. Learn how you can benefit from this for Fiori App development and how the graphical modeler helps you to create ABAP CDS models conveniently. Finally, get insights into the future direction.<SPAN><BR /><U>Speakers</U>: Dr. </SPAN>Anne Keller<SPAN> (SAP)</SPAN>, Katja Zoch<SPAN> (SAP)<BR /></SPAN></P><P><A href="https://www.sap.com/events/teched/berlin/flow/sap/te25/catalog-inperson/page/catalog/session/1749071777465001lGIE" target="_blank" rel="noopener noreferrer"><STRONG>DT200 –</STRONG><STRONG> Unravel the mysteries of Clean Core extensions in Cloud ERP Private </STRONG></A><BR />Learn about the new, enhanced clean core extensibility concept in SAP S/4HANA Cloud Private Edition. Learn about tools like ABAP Test Cockpit and RISE Dashboard, as well as guidance and best practices that help you to measure, govern, re-factor and develop your custom extensions in a clean core compliant, upgrade stable and cloud-ready way.<SPAN><BR /><U>Speakers</U>: Olga Dolinskaja (SAP), Markus Goebel (SAP)<BR /></SPAN></P><P><A href="https://www.sap.com/events/teched/berlin/flow/sap/te25/catalog-inperson/page/catalog/session/1749073857569001yTng" target="_blank" rel="noopener noreferrer"><STRONG>DT201 –</STRONG><STRONG> Extensibility with ABAP Cloud and AI in SAP Cloud ERP</STRONG></A><BR />Learn about the on-stack key user and developer tools in the ABAP Cloud development model, now enhanced with generative AI. See how you can extend standard SAP applications and manage your custom apps directly in SAP S/4HANA Cloud Public Edition. Get insights into latest innovations for transactional, analytical, and integration use cases, such as the extensibility AI Assistant, editable tree-views, custom queries for analytical SAP Fiori apps, ABAP SQL services and more.<SPAN><BR /><U>Speakers</U>: </SPAN>Carine Tchoutouo Djomo<SPAN> (SAP)</SPAN>, Oren Shatil<SPAN> (SAP)</SPAN></P><HR /><H2 id="toc-hId-558879843"><span class="lia-unicode-emoji" title=":hammer_and_wrench:">🛠</span>️ Hands-On Workshops (2 hours)</H2><P><STRONG><A href="https://www.sap.com/events/teched/berlin/flow/sap/te25/catalog-inperson/page/catalog/session/1749111133585001neK1" target="_blank" rel="noopener noreferrer">AD162 – Explore Joule for developers, ABAP AI capabilities</A> </STRONG> <BR />Learn how to develop a RAP business object while exploring Joule's ABAP AI capabilities<SPAN><BR /><U>Speakers</U>: Sebastian Baskovich (SAP), Thomas Alexander Ritter (SAP), Dr. Anne Keller (SAP), Simona Marincei (SAP)<BR /></SPAN></P><P><STRONG><A href="https://www.sap.com/events/teched/berlin/flow/sap/te25/catalog-inperson/page/catalog/session/1749111362893001Nrqs" target="_blank" rel="noopener noreferrer">AD163 – Fusion Development with ABAP Cloud in SAP Build</A></STRONG><BR />In this session we will practice fusion development of ABAP Cloud in SAP Build by creating an ABAP Cloud project from the SAP Build lobby to develop a RAP BO including a Fiori application on top.<SPAN><BR /><U>Speakers</U>: Ingo Braüninger (SAP), Sebastian Baskovich (SAP), Anne Keller (SAP), Katja Zoch (SAP)<BR /></SPAN></P><P><SPAN><A href="https://www.sap.com/events/teched/berlin/flow/sap/te25/catalog-inperson/page/catalog/session/1749112624677001Rt0T" target="_blank" rel="noopener noreferrer"><STRONG>AD164 –</STRONG><STRONG> Get started with ABAP Cloud for classic ABAP developers</STRONG></A><STRONG> </STRONG><BR />Familiar with classic ABAP development? Join us to learn how similar development works with ABAP Cloud development model using the ABAP RESTful application programming model (RAP). ABAP Cloud is the comprehensive model for building cloud-ready business apps, services, and extensions that follow clean core principles by default – on SAP BTP and SAP S/4HANA, both in the cloud and on-premise.<BR /></SPAN><SPAN><U>Speakers</U>: Volker Drees (SAP), Carine Tchoutouo Djomo (SAP), Boris Gebhardt (SAP), Jürgen Reidl (SAP)<BR /></SPAN></P><P><SPAN><STRONG><A href="https://www.sap.com/events/teched/berlin/flow/sap/te25/catalog-inperson/page/catalog/session/1749072760273001q6Pm" target="_blank" rel="noopener noreferrer">DT260 – Modernize classic extensions to clean core in Cloud ERP Private</A> </STRONG><BR />In this session you will practice a clean core extensibility in SAP S/4HANA Cloud Private Edition. You will learn how to govern clean core development using the ABAP Test Cockpit, and how to use ABAP Cloud and clean core extensibility principles to modernize your custom on-stack extensions.<BR /></SPAN><SPAN><U>Speakers</U>: Ingo Bräuninger (SAP), Olga Dolinskaja (SAP), Thomas Fiedler (SAP), Markus Goebel (SAP)<BR /></SPAN></P><P><SPAN><STRONG><A href="https://www.sap.com/events/teched/berlin/flow/sap/te25/catalog-inperson/page/catalog/session/1749074059125001cpvA" target="_blank" rel="noopener noreferrer">DT261 – Build on-stack extensions with ABAP Cloud in Cloud ERP Public</A></STRONG><BR />Join us to discover how to build extensions, applications, and services with the ABAP Cloud development model, using the ABAP RESTful application programming model and generative AI. You will learn how to extend standard SAP applications, consume public SAP APIs, and build new apps and services from scratch. Get practical insights through exercises and take the opportunity to ask your questions.<BR /></SPAN><SPAN><U>Speakers</U>: Ingo Bräuninger (SAP), Carine Tchoutouo Djomo (SAP), Volker Drees (SAP), Steffen Mattes (SAP)<BR /></SPAN></P><P><SPAN><STRONG><A href="https://www.sap.com/events/teched/berlin/flow/sap/te25/catalog-inperson/page/catalog/session/1749650347432001y6fi" target="_blank" rel="noopener noreferrer">DT266 – Troubleshoot and Optimize ABAP Cloud Extensions in Cloud ERP</A> </STRONG><BR />Ensuring optimal performance and stability of your ABAP Cloud-based extensions is crucial to long-term success. Learn advanced techniques and best practices for troubleshooting and optimizing custom code in the Cloud ERP. Use powerful tools like ABAP Cross Trace to get deep insights into execution flows and resource consumption.<BR /></SPAN><SPAN><U>Speakers</U>: Steffen Mattes (SAP), Juergen Reidl (SAP), Thomas Alexander Ritter (SAP), Thomas Fiedler (SAP)<BR /></SPAN></P><HR /><H2 id="toc-hId-362366338"><span class="lia-unicode-emoji" title=":waving_hand:">👋</span>Join Us</H2><P>I hope this overview gives you even more reasons to join us at one of the <A href="https://www.sap.com/events/teched.html" target="_self" rel="noopener noreferrer">SAP TechEd 2025 tour stops</A> in Berlin (DE), Louisville (US), Sydney (AU), Bangalore (IN), Birmingham (UK), or Hamburg (DE) – or attend online, free of charge!</P><P>We look forward to meeting and interacting with you! <span class="lia-unicode-emoji" title=":handshake:">🤝</span> <SPAN>In the meantime, you can watch the replays </SPAN><SPAN>of last year's events: </SPAN><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/abap-cloud-sessions-at-sap-teched-in-2024/ba-p/13783420" target="_blank">ABAP Cloud at SAP TechEd Virtual 2024</A> <SPAN>and </SPAN><A href="https://community.sap.com/t5/technology-blogs-by-sap/abap-cloud-at-devtoberfest-by-sap-teched-2024/ba-p/13789730" target="_blank">ABAP Cloud at SAP's Devtoberfest in 2024</A><SPAN>. You can also have a look at the <span class="lia-unicode-emoji" title=":fire:">🔥</span><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/abap-cloud-sessions-at-devtoberfest-2025/ba-p/14187974" target="_self">ABAP Cloud sessions at the upcoming Devtoberfest 2025</A>, running online and free of charge from September 29 to October 24, 2025! <span class="lia-unicode-emoji" title=":handshake:">🤝</span></SPAN></P><P>Stay tuned <SPAN>–</SPAN> and see you there! </P>2025-08-22T20:27:47.137000+02:00https://community.sap.com/t5/technology-blog-posts-by-sap/abap-cloud-sessions-at-devtoberfest-2025/ba-p/14188138ABAP Cloud Sessions at Devtoberfest 20252025-08-25T17:16:40.412000+02:00CarineTchoutouohttps://community.sap.com/t5/user/viewprofilepage/user-id/1462<DIV class=""><DIV class=""><P data-unlink="true">Get ready – <STRONG>Devtoberfest 2025 from SAP </STRONG>is almost here!<SPAN> <span class="lia-unicode-emoji" title=":party_popper:">🎉</span></SPAN></P><P><SPAN>The annual celebration of SAP technologies kicks off soon, bringing weeks of learning, community, and fun – all completely free and fully virtual. Following content tracks are available this year: 🟢 Monday – ABAP | 🟣 Tuesday – Tooling & Frontend |</SPAN><SPAN> <SPAN class="lia-unicode-emoji"><span class="lia-unicode-emoji" title=":red_circle:">🔴</span></SPAN> </SPAN><SPAN>Wednesday – Integration |</SPAN><SPAN> <SPAN class="lia-unicode-emoji"><span class="lia-unicode-emoji" title=":blue_circle:">🔵</span></SPAN> </SPAN><SPAN>Thursday – Data & AI | 🟠 Friday – CAP | 🟡 All Week – Fun Activities. <BR /></SPAN><SPAN>Check out the blog post </SPAN><A title="https://community.sap.com/t5/devtoberfest-blog-posts/devtoberfest-2025-welcome/bc-p/13799828" href="https://community.sap.com/t5/devtoberfest-blog-posts/devtoberfest-2025-welcome/bc-p/13799828" target="_blank">Devtoberfest 2025 Welcome!</A><SPAN> by Thomas Jung to learn more about the event.</SPAN></P><P><STRONG>Key event Info:<BR /></STRONG> <span class="lia-unicode-emoji" title=":calendar:">📅</span> <STRONG>Dates:</STRONG><SPAN> </SPAN>September 29 – October 24, 2025<BR /> <span class="lia-unicode-emoji" title=":television:">📺</span> <STRONG>Where:</STRONG><SPAN> </SPAN>All sessions livestreamed or premiered on the<SPAN> </SPAN><A class="" href="https://community.sap.com/t5/forums/messagehistorypage/board-id/technology-blog-sap/message-id/183979#" target="_blank">SAP Developers YouTube channel</A> <BR /> <span class="lia-unicode-emoji" title=":repeat_button:">🔁</span><SPAN> </SPAN><STRONG>Tradition continues:</STRONG><SPAN> </SPAN>Every Monday during Devtoberfest is<SPAN> </SPAN><STRONG>ABAP Day <span class="lia-unicode-emoji" title=":green_heart:">💚</span></STRONG>!<BR /> <span class="lia-unicode-emoji" title=":books:">📚</span> <STRONG>Session Catalog</STRONG>: Explore the full session line-up in the SAP Community events area: <A href="https://community.sap.com/t5/devtoberfest/eb-p/devtoberfest-events" target="_blank">Devtoberfest</A>.</P><P> </P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="CarineTchoutouo_8-1755893992140.png" style="width: 82px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/304122i85C194F0A9BFAB8B/image-dimensions/82x37?v=v2" width="82" height="37" role="button" title="CarineTchoutouo_8-1755893992140.png" alt="CarineTchoutouo_8-1755893992140.png" /></span><SPAN>Check out the compact overview of ABAP Cloud sessions at Devtoberfest 2025 below. Session details are provided in the next section. Expect plenty demos and opportunities to interact with fellow developers and SAP experts!</SPAN><BR /><P><span class="lia-unicode-emoji" title=":calendar:">📅</span>[CW 40] WEEK 1 – 🟢 29th September 2025</P><UL class="lia-list-style-type-circle"><LI>Clean Core Extensibility Strategy powered by ABAP Cloud and Generative AI </LI><LI>Custom code development and transformation for Clean Core in SAP S/4HANA</LI><LI>Boost your developer satisfaction and productivity with SAP Joule for developers, ABAP AI capabilities</LI></UL><span class="lia-unicode-emoji" title=":calendar:">📅</span> <SPAN>[CW 41] WEEK 2 – 🟢 6th October 2025</SPAN><UL class="lia-list-style-type-circle"><LI>News on SAP BTP ABAP environment</LI><LI>Explore the latest updates in ABAP CDS</LI><LI>Updates on Embedded Analytics in ABAP Cloud</LI></UL><span class="lia-unicode-emoji" title=":calendar:">📅</span><SPAN>[CW 42] WEEK 3 – 🟢 13th October 2025</SPAN><UL class="lia-list-style-type-circle"><LI>What's new in the ABAP RESTful Application Programming Model (RAP)</LI><LI>Evolving data integration with SQL services and CDS external entities</LI><LI>Discover the latest innovations in the ABAP language </LI><LI><SPAN>ABAP Development Tools for Eclipse - What's new</SPAN></LI></UL><span class="lia-unicode-emoji" title=":calendar:">📅</span><SPAN>[CW 43] WEEK 4 – 🟢 20th October 2025</SPAN><UL class="lia-list-style-type-circle"><LI>Exploring the path to SAP certification</LI><LI>Boost Your Developer Efficiency with IDE Actions</LI></UL><H1 id="toc-hId-1608878154" id="toc-hId-1608900137">Session Details</H1><H1 id="toc-hId-1541447368" id="toc-hId-1412386632">Week 1</H1><P><STRONG>🟢 <A href="https://community.sap.com/t5/devtoberfest/clean-core-extensibility-strategy-powered-by-abap-cloud-and-generative-ai/ev-p/14183861" target="_blank">Clean Core Extensibility Strategy powered by ABAP Cloud and Generative <SPAN class="">AI</SPAN></A> <BR /></STRONG><SPAN>In this session we’ll explain how the new clean core approach makes systems ready for the future, how <SPAN class="">AI</SPAN>-powered capabilities can enhance development and transformation processes, and give an update on the latest ABAP Cloud innovations.<BR /><U>Speakers</U>: Fabian Fellhauer (SAP)<BR /><U>Schedule</U>: 29th September 2025, 9:30 am - 10:30 am <SPAN class="">CEST<BR /><div class="video-embed-center video-embed"><iframe class="embedly-embed" src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FZmo7YU9BUlc%3Ffeature%3Doembed&display_name=YouTube&url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DZmo7YU9BUlc&image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FZmo7YU9BUlc%2Fhqdefault.jpg&type=text%2Fhtml&schema=youtube" width="200" height="112" scrolling="no" title="🟢 Clean Core Extensibility Strategy powered by ABAP Cloud and Generative AI" frameborder="0" allow="autoplay; fullscreen; encrypted-media; picture-in-picture;" allowfullscreen="true"></iframe></div><BR /></SPAN></SPAN></P><P><SPAN><STRONG>🟢 <A title="Custom code development and transformation for Clean Core in SAP S/4HANA" href="https://community.sap.com/t5/devtoberfest/custom-code-development-and-transformation-for-clean-core-in-sap-s-4hana/ev-p/14205747" target="_self">Custom code development and transformation for Clean Core in <SPAN class="">SAP</SPAN> S/4HANA</A></STRONG><BR />In this session you will learn the enhanced guidelines for ABAP custom code development and governance for clean core supported by the new ABAP Test Cockpit checks. In addition, we provide the overview about the new Gen <SPAN class="">AI</SPAN> assistance in custom code management tools.<BR /></SPAN><SPAN><U>Speakers</U>: Olga Dolinskaja (SAP),</SPAN><SPAN> Thomas Fiedler (SAP) <BR /><U>Schedule</U>: 29th September 2025, 1:00 pm - 2:00 pm <SPAN class="">CEST<BR /><div class="video-embed-center video-embed"><iframe class="embedly-embed" src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FPuAcfsRhdDk%3Ffeature%3Doembed&display_name=YouTube&url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DPuAcfsRhdDk&image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FPuAcfsRhdDk%2Fhqdefault.jpg&type=text%2Fhtml&schema=youtube" width="200" height="112" scrolling="no" title="🟢 Custom code development and transformation for Clean Core in SAP S/4HANA" frameborder="0" allow="autoplay; fullscreen; encrypted-media; picture-in-picture;" allowfullscreen="true"></iframe></div><BR /></SPAN></SPAN></P><P><SPAN><STRONG>🟢 </STRONG><A href="https://community.sap.com/t5/devtoberfest/boost-your-developer-satisfaction-with-sap-joule-for-developers-abap-ai/ev-p/14183120" target="_blank"><STRONG>Boost your developer satisfaction and productivity with <SPAN class="">SAP</SPAN> Joule for developers, ABAP <SPAN class="">AI</SPAN> capabilities</STRONG></A><BR />In what ways can <SPAN class="">AI</SPAN> support ABAP developers in their day-to-day activities? Find out more on the supported use cases, the generative <SPAN class="">AI</SPAN> road map, and insights on <SPAN class="">SAP</SPAN> Joule for developers, ABAP <SPAN class="">AI</SPAN> capabilities.<BR /></SPAN><U>Speakers</U><SPAN>: Sebastian Baskovich (SAP), Jasmin Gruschke (SAP)<BR /></SPAN><SPAN><U>Schedule</U>: 29th September 2025, 4:00pm - 5:00pm <SPAN class="">CEST<BR /><div class="video-embed-center video-embed"><iframe class="embedly-embed" src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2Fb9lmZHp2WaA%3Ffeature%3Doembed&display_name=YouTube&url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3Db9lmZHp2WaA&image=https%3A%2F%2Fi.ytimg.com%2Fvi%2Fb9lmZHp2WaA%2Fhqdefault.jpg&type=text%2Fhtml&schema=youtube" width="200" height="112" scrolling="no" title="🟢 Boost Your Developer Satisfaction with SAP Joule for Developers, ABAP AI Capabilities" frameborder="0" allow="autoplay; fullscreen; encrypted-media; picture-in-picture;" allowfullscreen="true"></iframe></div><BR /></SPAN></SPAN></P><H1 id="toc-hId-1344933863" id="toc-hId-1215873127">Week 2</H1><P><STRONG>🟢 <A title="SAP BTP ABAP Environment – How to Monitor and Support Custom Cloud Apps" href="https://community.sap.com/t5/devtoberfest/sap-btp-abap-environment-how-to-monitor-and-support-custom-cloud-apps/ev-p/14205860" target="_self"><SPAN>SAP BTP ABAP Environment – How to Monitor and Support Custom Cloud Apps</SPAN></A></STRONG><SPAN><BR />SAP BTP ABAP Environment is the platform as a service for ABAP developers. It’s a cloud-optimized ABAP platform based on SAP HANA Cloud that serves as a development and runtime environment for cloud apps. This session gives you an update about the latest product news and explains with live demos how to use the Technical Monitoring Cockpit, and how to use the different tools for supportability and performance measurement.<BR /></SPAN><U>Speakers</U><SPAN>: Frank Jentsch (SAP), Richard Scholz (SAP)<BR /></SPAN><SPAN><U>Schedule</U>: 6th October 2025, 9:30 am - 10:30 am <SPAN class="">CEST<BR /><div class="video-embed-center video-embed"><iframe class="embedly-embed" src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FTWzP1kBsFG0%3Ffeature%3Doembed&display_name=YouTube&url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DTWzP1kBsFG0&image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FTWzP1kBsFG0%2Fhqdefault.jpg&type=text%2Fhtml&schema=youtube" width="200" height="112" scrolling="no" title="🟢 SAP BTP ABAP Environment - How to Monitor and Support Custom Cloud Apps" frameborder="0" allow="autoplay; fullscreen; encrypted-media; picture-in-picture;" allowfullscreen="true"></iframe></div><BR /></SPAN></SPAN></P><P><SPAN><STRONG>🟢 <A title="Explore the latest updates in ABAP CDS" href="https://community.sap.com/t5/devtoberfest/explore-the-latest-updates-in-abap-cds/ev-p/14192295" target="_self">Explore the latest updates in ABAP </A></STRONG><SPAN class=""><A title="Explore the latest updates in ABAP CDS" href="https://community.sap.com/t5/devtoberfest/explore-the-latest-updates-in-abap-cds/ev-p/14192295" target="_self"><STRONG>CDS</STRONG></A><BR /></SPAN>As one of the fundamental technologies of ABAP Cloud, ABAP <SPAN class="">CDS</SPAN> continues to advance. This session will present the latest developments in ABAP <SPAN class="">CDS</SPAN> including <SPAN class="">CDS</SPAN> table entities, <SPAN class="">CDS</SPAN> Explain functionality, analytical query modelling features and, <SPAN class="">CDS</SPAN> aspects. <BR /></SPAN><SPAN><U>Speakers</U>: Santiago Zuniga Garcia (SAP), Boyan Boychev (SAP)<BR /><U>Schedule</U>: 6th October 2025, 1:00 pm - 2:00 pm <SPAN class="">CEST<BR /></SPAN></SPAN></P><div class="video-embed-center video-embed"><iframe class="embedly-embed" src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FVNJWHBUxtYY%3Ffeature%3Doembed&display_name=YouTube&url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DVNJWHBUxtYY&image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FVNJWHBUxtYY%2Fhqdefault.jpg&type=text%2Fhtml&schema=youtube" width="200" height="112" scrolling="no" title="🟢 Explore the Latest Updates in ABAP CDS" frameborder="0" allow="autoplay; fullscreen; encrypted-media; picture-in-picture;" allowfullscreen="true"></iframe></div><BR /><P><STRONG>🟢 <A href="https://community.sap.com/t5/devtoberfest/updates-on-embedded-analytics-in-abap-cloud/ev-p/14183128" target="_blank">Updates on Embedded Analytics in ABAP Cloud</A><BR /></STRONG><SPAN>ABAP Core Data Services (<SPAN class="">CDS</SPAN>) based embedded analytics provides easy-to-use analytical tooling and allows you to drill down, aggregate, and display data from your core solution modeled with ABAP <SPAN class="">CDS</SPAN>. </SPAN><SPAN>In this session, we present the latest additions to embedded analytics in ABAP Cloud. You will experience the </SPAN><SPAN>new review booklet app generator for building native, <SPAN class="">SAP</SPAN> Fiori apps on top of an analytical service exposure</SPAN><SPAN> and will get to know the analytical modeling examples on GitHub that act as showcases for the latest features of <SPAN class="">CDS</SPAN>-based analytical queries.<BR /></SPAN><SPAN><U>Speakers</U>: Andreas Riehl (SAP)<BR /><U>Schedule</U>: 6th October 2025, 4:00pm - 5:00pm <SPAN class="">CEST<BR /><div class="video-embed-center video-embed"><iframe class="embedly-embed" src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FiREHX4ufaH4%3Ffeature%3Doembed&display_name=YouTube&url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DiREHX4ufaH4&image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FiREHX4ufaH4%2Fhqdefault.jpg&type=text%2Fhtml&schema=youtube" width="200" height="112" scrolling="no" title="🟢 Updates on Embedded Analytics in ABAP Cloud" frameborder="0" allow="autoplay; fullscreen; encrypted-media; picture-in-picture;" allowfullscreen="true"></iframe></div><BR /></SPAN></SPAN></P><H1 id="toc-hId-1148420358" id="toc-hId-1019359622">Week 3</H1><P><SPAN><STRONG>🟢 <A href="https://community.sap.com/t5/devtoberfest/what-s-new-in-rap/ev-p/14205914" target="_self">What's new in the ABAP RESTful Application Programming Model (RAP)</A></STRONG><BR />ABAP Cloud is the powerful development model for building cloud applications on <SPAN class="">SAP</SPAN> Business Technology Platform (<SPAN class="">SAP</SPAN> <SPAN class="">BTP</SPAN>) and <SPAN class="">SAP</SPAN> S/4HANA, in the cloud and on premise. Experience live demos of the major ABAP Cloud capabilities around the ABAP RESTful application programming model which can be used to build and extend transactional and analytical applications<BR /></SPAN><U>Speakers</U><SPAN>: </SPAN><SPAN>Andre Fischer (SAP) <BR /></SPAN><SPAN><U>Schedule</U>: 13th October 2025, 9:30 am - 10:30 am <SPAN class="">CEST<BR /><div class="video-embed-center video-embed"><iframe class="embedly-embed" src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2F5znLNdpr5y8%3Ffeature%3Doembed&display_name=YouTube&url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D5znLNdpr5y8&image=https%3A%2F%2Fi.ytimg.com%2Fvi%2F5znLNdpr5y8%2Fhqdefault.jpg&type=text%2Fhtml&schema=youtube" width="200" height="112" scrolling="no" title="🟢 Whats new in RAP" frameborder="0" allow="autoplay; fullscreen; encrypted-media; picture-in-picture;" allowfullscreen="true"></iframe></div><BR /></SPAN></SPAN></P><P><SPAN><SPAN class=""><STRONG>🟢 <A href="https://community.sap.com/t5/devtoberfest/abap-development-tools-for-eclipse-what-s-new/ev-p/14207413" target="_self">ABAP Development Tools for Eclipse - What's new?</A> </STRONG><BR />In this session, learn about the latest developments regarding ABAP Development Tools for Eclipse, ranging from the new end-to-end integration between ADT and SAP Build Code to the new design options and an outlook on what's next for the ABAP Development Tools. <BR /><U>Speakers</U>: Sachin B (SAP), Mani P S (SAP)<BR /><U>Schedule</U>: 13th October 2025, 11:00 am - 12:00 pm CEST<BR /></SPAN></SPAN></P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="CarineTchoutouo_1-1760119299109.gif" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/325777i97A51B0B47850DA1/image-size/medium?v=v2&px=400" role="button" title="CarineTchoutouo_1-1760119299109.gif" alt="CarineTchoutouo_1-1760119299109.gif" /></span><div class="video-embed-center video-embed"><iframe class="embedly-embed" src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FsnzOyuMICV8%3Ffeature%3Doembed&display_name=YouTube&url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DsnzOyuMICV8&image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FsnzOyuMICV8%2Fhqdefault.jpg&type=text%2Fhtml&schema=youtube" width="200" height="112" scrolling="no" title="🟢 ABAP Development Tools for Eclipse - Whats new" frameborder="0" allow="autoplay; fullscreen; encrypted-media; picture-in-picture;" allowfullscreen="true"></iframe></div><BR /><P><STRONG>🟢 <A title="Evolving data integration with SQL services and CDS external entities" href="https://community.sap.com/t5/devtoberfest/evolving-data-integration-with-sql-services-and-cds-external-entities/ev-p/14205948" target="_self">Evolving data integration with <SPAN class="">SQL </SPAN>services and <SPAN class="">CDS </SPAN>external entities</A><BR /></STRONG>In this session, we’ll present the latest advancements in ABAP Cloud data integration. On the data exposure side, we’ll cover ABAP-managed database procedures for advanced read scenarios and extensions of <SPAN class="">SQL </SPAN>services to enable data loading scenarios for <SPAN class="">SQL </SPAN>clients, using <SPAN class="">CDS </SPAN>writable view entities. On the consumption side, we’ll explore write scenarios, and the use of static <SPAN class="">CDS </SPAN>external entities for seamless integration of external data into a<SPAN class="">CDS</SPAN> view stack. <BR /><SPAN><U>Speakers</U>: </SPAN>Leon Stern (SAP), Yannick Rath (SAP)<BR /><SPAN><U>Schedule</U>: 13th October 2025, 1:00 pm - 2:00 pm <SPAN class="">CEST <BR /><div class="video-embed-center video-embed"><iframe class="embedly-embed" src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2F1oc1XnJMag8%3Ffeature%3Doembed&display_name=YouTube&url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D1oc1XnJMag8&image=https%3A%2F%2Fi.ytimg.com%2Fvi%2F1oc1XnJMag8%2Fhqdefault.jpg&type=text%2Fhtml&schema=youtube" width="200" height="112" scrolling="no" title="🟢 Evolving data integration with SQL services and CDS external entities" frameborder="0" allow="autoplay; fullscreen; encrypted-media; picture-in-picture;" allowfullscreen="true"></iframe></div><BR /></SPAN></SPAN></P><P><SPAN><SPAN class=""><STRONG>🟢 </STRONG><A href="https://community.sap.com/t5/devtoberfest/discover-the-latest-innovations-in-the-abap-language/ev-p/14187754" target="_blank"><STRONG>Discover the latest innovations in the ABAP language </STRONG></A><BR />In this session, we 'll provide an overview of the latest features introduced to the ABAP language. Highlights include support for spatial data in ABAP SQL, enhanced JSON and Geo-JSON processing capabilities, Buffer Delegation in ABAP SQL, and new functionalities for probability distributions and advanced random number generation. We'll also share insights into the ABAP language roadmap. <BR /></SPAN></SPAN><U>Speakers</U><SPAN>: Kilian Kilger (SAP), Stefan Bresch (SAP), Gerd Forstmann (SAP)<BR /></SPAN><SPAN><SPAN class=""><U>Schedule</U>: 13th October 2025, 4:00pm - 5:00pm CEST<BR /><div class="video-embed-center video-embed"><iframe class="embedly-embed" src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2F4ZoXz1_MxiI%3Ffeature%3Doembed&display_name=YouTube&url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D4ZoXz1_MxiI&image=https%3A%2F%2Fi.ytimg.com%2Fvi%2F4ZoXz1_MxiI%2Fhqdefault.jpg&type=text%2Fhtml&schema=youtube" width="200" height="112" scrolling="no" title="🟢 Discover the latest innovations in the ABAP language" frameborder="0" allow="autoplay; fullscreen; encrypted-media; picture-in-picture;" allowfullscreen="true"></iframe></div></SPAN></SPAN></P><P> </P><H1 id="toc-hId-1148420358" id="toc-hId-822846117">Week 4</H1><P><STRONG>🟢 <A href="https://community.sap.com/t5/devtoberfest/exploring-the-path-to-sap-certification/ev-p/14185414" target="_self">Exploring the path to SAP certification</A><BR /></STRONG><SPAN>This session will offer developers insights around navigating SAP learning offerings and the certification programs based on my own ABAP journey. Attendees will learn the most important steps toward SAP certifications, understand the differences between certification types (associate, specialist, professional), and how to choose the ideal certification based on your role and skill-set. We’ll also review preparation strategies, tips, and tricks to help you along your way. </SPAN><BR /><U>Speakers</U><SPAN>: Sandra Solis (SAP Champion, external)<BR /></SPAN><SPAN><SPAN class=""><U>Schedule</U>: 20th October 2025, 1:00 pm - 2:00 pm CEST<BR /><div class="video-embed-center video-embed"><iframe class="embedly-embed" src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FXcWGwvGhy3Q%3Ffeature%3Doembed&display_name=YouTube&url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DXcWGwvGhy3Q&image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FXcWGwvGhy3Q%2Fhqdefault.jpg&type=text%2Fhtml&schema=youtube" width="200" height="112" scrolling="no" title="🟢 Exploring the Path to SAP Certification" frameborder="0" allow="autoplay; fullscreen; encrypted-media; picture-in-picture;" allowfullscreen="true"></iframe></div><BR /></SPAN></SPAN></P><P><SPAN><SPAN class="">🟢 <A href="https://community.sap.com/t5/devtoberfest/boost-your-developer-efficiency-with-ide-actions/ec-p/14197175#M1053" target="_blank"><STRONG>Boost Your Developer Efficiency with IDE Actions</STRONG></A><BR />In this session, you'll gain insights into developing IDE Actions with ABAP and how they can improve your efficiency in daily development. We'll focus on various areas of the ABAP RESTful Application Programming Model and optimize our workflows there.<BR /><U>Speakers</U>: Björn Schulz (SAP Mentor, external)<BR /><U>Schedule</U>: 20th October 2025, 3:00 pm - 4:00 pm CEST<BR /><div class="video-embed-center video-embed"><iframe class="embedly-embed" src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FBAALIiRtChA%3Ffeature%3Doembed&display_name=YouTube&url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DBAALIiRtChA&image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FBAALIiRtChA%2Fhqdefault.jpg&type=text%2Fhtml&schema=youtube" width="200" height="112" scrolling="no" title="🟢 Boost your developer efficiency with IDE Actions" frameborder="0" allow="autoplay; fullscreen; encrypted-media; picture-in-picture;" allowfullscreen="true"></iframe></div></SPAN></SPAN></P><P><SPAN>____________________________________________________________________________________________</SPAN></P><P><STRONG>Curious to learn more?</STRONG><SPAN> </SPAN>Join the sessions to explore the latest ABAP innovations and best practices firsthand.</P><P>In the meantime, catch up on last year’s highlights with the replays from<SPAN> </SPAN><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/abap-cloud-at-devtoberfest-by-sap-teched-2024/ba-p/13789730" target="_self">SAP's Devtoberfest 2024</A><SPAN> </SPAN>and SAP TechEd Virtual 2024. You can also have a look at the<SPAN> </SPAN><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/abap-cloud-sessions-at-sap-teched-in-2025/ba-p/14175995" target="_self">ABAP Cloud sessions at the upcoming SAP TechEd in 2025</A>, starting November 4–6, 2025 on-site in Berlin and Louisville (ASUG Tech Connect) – and online for free! <span class="lia-unicode-emoji" title=":party_popper:">🎉</span></P><P>We can’t wait to connect with you – stay tuned!<SPAN> <span class="lia-unicode-emoji" title=":clinking_beer_mugs:">🍻</span></SPAN></P></DIV></DIV>2025-08-25T17:16:40.412000+02:00https://community.sap.com/t5/application-development-and-automation-blog-posts/debugging-in-abap-development-tool-part-1/ba-p/14184990Debugging in ABAP Development Tool (Part 1)2025-09-02T07:51:29.772000+02:00M_Sumaiya_Khatoonhttps://community.sap.com/t5/user/viewprofilepage/user-id/1431539<P><STRONG><SPAN>Introduction</SPAN></STRONG><SPAN> </SPAN></P><P><SPAN>The Blog provides step by step guide on how to debug the report programs, classes and Function modules using Eclipse ADT (ABAP Development Tool).</SPAN><SPAN> <BR /></SPAN><SPAN> <BR /></SPAN><SPAN>In this blog, we will be covering </SPAN><SPAN> <BR /></SPAN><SPAN>1.How to set the Toggle Breakpoint and the Soft Toggle Breakpoint.</SPAN><SPAN> <BR /></SPAN><SPAN>2.How to debug in multiple sessions</SPAN><SPAN> <BR /></SPAN><SPAN>3.How to check call stack</SPAN><SPAN> <BR /></SPAN><SPAN>4.How to debug update Function module</SPAN><SPAN> <BR /></SPAN><SPAN>5.How to set Watchpoint</SPAN><SPAN> <BR /></SPAN><SPAN>6.How to set Conditional breakpoint</SPAN><SPAN> <BR /></SPAN><SPAN>7.How to set user specific breakpoint</SPAN><SPAN> <BR /></SPAN><SPAN>8.How to Activate, Deactivate and Delete the Breakpoints</SPAN><SPAN> <BR /></SPAN><SPAN>9.How to Add new variable to observe the values in variables tab</SPAN><SPAN><BR /></SPAN></P><P><STRONG><SPAN>Toggle Breakpoint (Regular/Hard Breakpoint):</SPAN></STRONG><SPAN> </SPAN></P><UL><LI><SPAN>This is the standard breakpoint type, typically indicated by a blue icon </SPAN><SPAN>in the editor margin.</SPAN><SPAN> </SPAN></LI><LI><SPAN>It serves to launch a new debugging session when the program execution reaches the line where it is set.</SPAN><SPAN> </SPAN></LI></UL><UL><LI><SPAN>If no debugger session is active, encountering a regular breakpoint will automatically trigger the debugger and stop execution at that point.</SPAN><SPAN> <BR /></SPAN><SPAN>To set Toggle Breakpoint, we can right click on the left vertical bar as shown</SPAN><SPAN> <BR /></SPAN><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="SUMAIYAKHATOON_1-1755683564063.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/302864i5420CA247E2DE20B/image-size/large?v=v2&px=999" role="button" title="SUMAIYAKHATOON_1-1755683564063.png" alt="SUMAIYAKHATOON_1-1755683564063.png" /></span></LI></UL><P><STRONG><SPAN>Soft Toggle Breakpoint:</SPAN></STRONG><SPAN> </SPAN></P><UL><LI><SPAN>This is a specialized breakpoint type, typically indicated by a green icon </SPAN><SPAN>in the editor margin.</SPAN><SPAN> </SPAN></LI><LI><SPAN>Crucially, a soft breakpoint cannot launch a new debugging session on its own.</SPAN><SPAN> </SPAN></LI></UL><UL><LI><SPAN>It becomes effective only when a debugging session is already active. If a debugger is already running (e.g., initiated by a regular breakpoint or external debugging), a soft breakpoint will then cause the execution to pause at its location.</SPAN><SPAN> </SPAN></LI></UL><UL><LI><SPAN>Soft breakpoints are often used in scenarios where you want to selectively stop execution within an already active debugging session, especially in situations with high-frequency calls or when you only want to debug specific parts of a larger process without repeatedly launching new sessions.</SPAN><SPAN> </SPAN></LI></UL><P><SPAN>To set the Soft Toggle Breakpoint, we can Right click on the left vertical bar as shown</SPAN><SPAN> <BR /></SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="SUMAIYAKHATOON_3-1755683564064.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/302867iBDB98EB64CABD8C6/image-size/large?v=v2&px=999" role="button" title="SUMAIYAKHATOON_3-1755683564064.png" alt="SUMAIYAKHATOON_3-1755683564064.png" /></span></P><P><STRONG><SPAN>Debugging in multiple sessions</SPAN></STRONG><SPAN> </SPAN></P><P><SPAN>By clicking on Application run (maximum 4 debugging sessions can be opened), we can debug the same program in multiple sessions</SPAN><SPAN> </SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="SUMAIYAKHATOON_4-1755683564066.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/302866iCD8B5F0712B7687A/image-size/large?v=v2&px=999" role="button" title="SUMAIYAKHATOON_4-1755683564066.png" alt="SUMAIYAKHATOON_4-1755683564066.png" /></span></P><P><SPAN>After 4 debugging session if we again click on Application run it gives us error message at right edge of exclipse</SPAN><SPAN> <BR /></SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="SUMAIYAKHATOON_5-1755683564067.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/302868i5A4876517D3B9BB1/image-size/large?v=v2&px=999" role="button" title="SUMAIYAKHATOON_5-1755683564067.png" alt="SUMAIYAKHATOON_5-1755683564067.png" /></span></P><P><STRONG><SPAN>Debugging through Call Stack</SPAN></STRONG><SPAN> <BR /></SPAN><SPAN> <BR /></SPAN><SPAN>We can observe the events and navigate to the events in call stack at left side in Debug tab </SPAN><SPAN> <BR /></SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="SUMAIYAKHATOON_6-1755683564068.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/302869i095DB3E15AE4D4A3/image-size/large?v=v2&px=999" role="button" title="SUMAIYAKHATOON_6-1755683564068.png" alt="SUMAIYAKHATOON_6-1755683564068.png" /></span></P><P><STRONG><SPAN>Debugging Update Function Module</SPAN></STRONG><SPAN><BR /></SPAN></P><P><SPAN>Click on ABAP Debugger Action icon and then click on Update Debugging.</SPAN><SPAN> <BR /></SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="SUMAIYAKHATOON_7-1755683564069.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/302870iF960B8B13214080D/image-size/large?v=v2&px=999" role="button" title="SUMAIYAKHATOON_7-1755683564069.png" alt="SUMAIYAKHATOON_7-1755683564069.png" /></span></P><P><SPAN>Click on Ok to continue with update debugging.</SPAN><SPAN> <BR /></SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="SUMAIYAKHATOON_8-1755683564070.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/302871i84C058C498BA367E/image-size/large?v=v2&px=999" role="button" title="SUMAIYAKHATOON_8-1755683564070.png" alt="SUMAIYAKHATOON_8-1755683564070.png" /></span></P><P><STRONG><SPAN>Setting the Watchpoint</SPAN></STRONG><SPAN> </SPAN></P><P><SPAN> </SPAN><SPAN>Right click on the variable and then click on the Set Watchpoint</SPAN><SPAN> </SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="SUMAIYAKHATOON_9-1755683564070.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/302874i540FD8048F34AE5D/image-size/large?v=v2&px=999" role="button" title="SUMAIYAKHATOON_9-1755683564070.png" alt="SUMAIYAKHATOON_9-1755683564070.png" /></span></P><P><SPAN>we can observe the watchpoint for changed values</SPAN><SPAN> <BR /></SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="SUMAIYAKHATOON_10-1755683564071.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/302873iDD982E625AF33672/image-size/large?v=v2&px=999" role="button" title="SUMAIYAKHATOON_10-1755683564071.png" alt="SUMAIYAKHATOON_10-1755683564071.png" /></span><SPAN> </SPAN></P><TABLE><TBODY><TR><TD><P><STRONG><SPAN>Term</SPAN></STRONG><SPAN> </SPAN></P></TD><TD><P><STRONG><SPAN>Description</SPAN></STRONG><SPAN> </SPAN></P></TD></TR><TR><TD><P><STRONG><SPAN>Recent Value</SPAN></STRONG><SPAN> </SPAN></P></TD><TD><P><SPAN>The value of the variable </SPAN><I><SPAN>before</SPAN></I><SPAN> the change that triggered the watchpoint.</SPAN><SPAN> </SPAN></P></TD></TR><TR><TD><P><STRONG><SPAN>Current Value</SPAN></STRONG><SPAN> </SPAN></P></TD><TD><P><SPAN>The value of the variable </SPAN><I><SPAN>after</SPAN></I><SPAN> the change, at the moment the debugger stops.</SPAN><SPAN> </SPAN></P></TD></TR></TBODY></TABLE><P><SPAN>For SY-INDEX = 12, the current value changed</SPAN><SPAN> <BR /></SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="SUMAIYAKHATOON_11-1755683564072.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/302872i7798693347D948D1/image-size/large?v=v2&px=999" role="button" title="SUMAIYAKHATOON_11-1755683564072.png" alt="SUMAIYAKHATOON_11-1755683564072.png" /></span><SPAN> </SPAN></P><P><SPAN>We can check the information whether watchpoint is reached or no</SPAN><SPAN> </SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="SUMAIYAKHATOON_12-1755683564072.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/302875i3B7E9CB80ABF68CC/image-size/large?v=v2&px=999" role="button" title="SUMAIYAKHATOON_12-1755683564072.png" alt="SUMAIYAKHATOON_12-1755683564072.png" /></span></P><P><STRONG><SPAN>Setting the Conditional Breakpoint</SPAN></STRONG><SPAN> </SPAN></P><P><SPAN>Right click on the toggle breakpoint and then click on Breakpoint properties</SPAN><SPAN> </SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="SUMAIYAKHATOON_13-1755683564073.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/302877iB69F8D8605917196/image-size/large?v=v2&px=999" role="button" title="SUMAIYAKHATOON_13-1755683564073.png" alt="SUMAIYAKHATOON_13-1755683564073.png" /></span></P><P><SPAN>Set the condition and then click on Apply and close</SPAN><SPAN> </SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="SUMAIYAKHATOON_14-1755683564074.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/302876i1B3B49D50B5301DE/image-size/large?v=v2&px=999" role="button" title="SUMAIYAKHATOON_14-1755683564074.png" alt="SUMAIYAKHATOON_14-1755683564074.png" /></span></P><P><SPAN>Before pressing F7 </SPAN><SPAN> <BR /></SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="SUMAIYAKHATOON_15-1755683564074.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/302878iC3DBD059E9B6A52F/image-size/large?v=v2&px=999" role="button" title="SUMAIYAKHATOON_15-1755683564074.png" alt="SUMAIYAKHATOON_15-1755683564074.png" /></span></P><P><SPAN>After pressing F7</SPAN><SPAN> <BR /></SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="SUMAIYAKHATOON_16-1755683564075.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/302879i1DC4CAB99A997CBF/image-size/large?v=v2&px=999" role="button" title="SUMAIYAKHATOON_16-1755683564075.png" alt="SUMAIYAKHATOON_16-1755683564075.png" /></span></P><P><STRONG><SPAN>Setting the User specific Breakpoint</SPAN></STRONG><SPAN> </SPAN></P><P><SPAN>In debugging right click the toggle breakpoint and then click on Debugging Properties</SPAN><SPAN> <BR /></SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="SUMAIYAKHATOON_17-1755683564075.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/302880iF96F648B447323BD/image-size/large?v=v2&px=999" role="button" title="SUMAIYAKHATOON_17-1755683564075.png" alt="SUMAIYAKHATOON_17-1755683564075.png" /></span></P><P><SPAN>Select the User radio button and provide the username and then click on Apply and close<BR /></SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="SUMAIYAKHATOON_23-1755684110983.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/302887i238B80B88F5C3F5E/image-size/large?v=v2&px=999" role="button" title="SUMAIYAKHATOON_23-1755684110983.png" alt="SUMAIYAKHATOON_23-1755684110983.png" /></span></P><P><SPAN>We can observe the u symbol on toggle breakpoint</SPAN><SPAN><BR /></SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="SUMAIYAKHATOON_24-1755684139926.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/302888i0DC93C0BAA2AA7A3/image-size/large?v=v2&px=999" role="button" title="SUMAIYAKHATOON_24-1755684139926.png" alt="SUMAIYAKHATOON_24-1755684139926.png" /></span></P><P><STRONG><SPAN>Activating, Disabling (Deactivating) and Removing (Deleting) the Breakpoints</SPAN></STRONG><SPAN> </SPAN></P><P><SPAN> </SPAN><SPAN>To deactivate the breakpoint, uncheck the checkbox</SPAN><SPAN> </SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="SUMAIYAKHATOON_22-1755684082789.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/302886i8EDF0481B2F7B124/image-size/large?v=v2&px=999" role="button" title="SUMAIYAKHATOON_22-1755684082789.png" alt="SUMAIYAKHATOON_22-1755684082789.png" /></span></P><P><SPAN>To activate the breakpoint, check the unchecked checkbox</SPAN><SPAN><BR /></SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="SUMAIYAKHATOON_21-1755684058405.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/302885i79F4C6918AE54B42/image-size/large?v=v2&px=999" role="button" title="SUMAIYAKHATOON_21-1755684058405.png" alt="SUMAIYAKHATOON_21-1755684058405.png" /></span></P><P><SPAN>To remove the breakpoint, click on remove icon</SPAN><SPAN><BR /></SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="SUMAIYAKHATOON_20-1755684024981.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/302884i744255D19059B647/image-size/large?v=v2&px=999" role="button" title="SUMAIYAKHATOON_20-1755684024981.png" alt="SUMAIYAKHATOON_20-1755684024981.png" /></span></P><P><STRONG><SPAN>Adding new variables such as SY-TABIX and SY-INDEX in Variables tab</SPAN></STRONG><SPAN> </SPAN></P><P><SPAN>To add new variable in variable tab, click on Enter variable</SPAN><SPAN> <BR /></SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="SUMAIYAKHATOON_18-1755683564076.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/302881i87A431E982A00A53/image-size/large?v=v2&px=999" role="button" title="SUMAIYAKHATOON_18-1755683564076.png" alt="SUMAIYAKHATOON_18-1755683564076.png" /></span></P><P><SPAN>Enter the name of the variable (SY-INDEX) and press Enter</SPAN><SPAN> <BR /></SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="SUMAIYAKHATOON_19-1755683564077.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/302882iFC5EC472D780B6FD/image-size/large?v=v2&px=999" role="button" title="SUMAIYAKHATOON_19-1755683564077.png" alt="SUMAIYAKHATOON_19-1755683564077.png" /></span></P><P><SPAN> </SPAN></P><P> </P><P><SPAN><STRONG>Conclusion<BR /></STRONG>Debugging in ADT isn’t just a technical exercise—it’s a strategic advantage. It transforms reactive troubleshooting into proactive insight. With its modern interface, modular object navigation, and precision tools like watchpoints and expression evaluators, ADT empowers developers to dissect complex logic, trace runtime behavior, and optimize code with surgical clarity.<STRONG><BR /></STRONG></SPAN></P><P><SPAN> </SPAN></P>2025-09-02T07:51:29.772000+02:00https://community.sap.com/t5/application-development-and-automation-blog-posts/experimenting-with-ai-enhanced-abap-development-setup/ba-p/14175111Experimenting with AI-Enhanced ABAP Development Setup2025-09-02T07:56:22.693000+02:00phidoehttps://community.sap.com/t5/user/viewprofilepage/user-id/1587891<P> </P><HR /><H3 id="toc-hId-1866052612">The Challenge: I Can't Achieve the Same AI-Assisted Flow in ABAP as in Other Languages</H3><P>When I tested tools like SAP Joule, Amazon Q, Github CoPilot and others, I encountered what seemed to be two main limitations:</P><OL><LI><STRONG>Easy access to the ABAP platform file system or IDE workspace</STRONG> – In my testing, most AI assistants couldn't easily connect to the ABAP platform file system to work with actual source code. At least not as effortlessly and comprehensively as if these tools work with the local file system.</LI><LI><STRONG>Lack of understanding of SAP standards</STRONG> – I found that LLMs often struggled with ABAP-specific syntax and (internal) standard APIs.</LI></OL><P>The result in my case: broken code, unclear suggestions, wrong use of standard components leading to short dumps.</P><HR /><H3 id="toc-hId-1669539107">The Goal: Enable a Seamless, Productive AI Workflow for ABAP</H3><P>Inspired by a full stack AWS CDK & React project I was recently working on, I tried transferring some of the workflows and framework conditions to my ABAP development practice. The result is an experimental set up that - so far - seems very promising to achieve a comparable development flow and seamless integration of AI coding assistants as I experienced in projects outside of the ABAP universe.</P><P>The set up utilizes existing open source and community based tools and combines them to help the AI coding assistant to work as intended. </P><HR /><H2 id="toc-hId-1343942883">My Setup for Agentic ABAP Development</H2><H3 id="toc-hId-1276512097">1. <A title="abapGit" href="https://docs.abapgit.org/" target="_blank" rel="noopener nofollow noreferrer">abapGit</A> in the SAP backend</H3><P>Crucial to sync ABAP code between the SAP dev system and a remote Git repository. I use the background option the keep the SAP system in sync with my local changes. The background option can be activated in the repo settings. Once activated, you can schedule a batch job of abapGit, which will then run the configured actions on the repo(s). In my case I configured the background auto pull function the keep the developments objects in the SAP dev system in sync with the changes I make locally & push to the remote.<BR />Like this, the SAP dev system becomes more of a stage in a pipeline than a development environment.<BR /><BR /><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="auto pull option in abapGit repo" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/299800iAC11A91B4652ED49/image-size/medium?v=v2&px=400" role="button" title="Bildschirmfoto 2025-08-12 um 07.28.27.png" alt="auto pull option in abapGit repo" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">auto pull option in abapGit repo</span></span> <BR /><BR /></P><H3 id="toc-hId-1079998592">2. A Remote Git Repository</H3><P>It acts as the bridge between the SAP system and my local development environment. I only do changes in my local environment (see 3) and push them to the remote repo. The background configuration (see 1) ensures that the SAP system stays in sync with the remote. Currently there is nothing more happening here, but I'd like to enhance the set up with some actions once changes are pushed/ merged in the remote. Maybe only trigger the sync in (1) only when a pipeline successfully executes.</P><H4 id="toc-hId-1012567806">3. A Local Development Environment Powered by AI</H4><P>On my local machine, I use Visual Studio Code enhanced by these key tools:</P><UL><LI>An AI coding assistant </LI><LI><STRONG><A title="abaplint" href="https://abaplint.org/" target="_blank" rel="noopener nofollow noreferrer">abaplint</A></STRONG> – The static code analysis tool by Lars Hvam to validate syntax and ensure code quality. This acts as a filter between AI output and real-world SAP code. The coding assistant can respond to the hints, warnings, errors given by the linter and therefore gets feedback whether it produces valid ABAP code, without the need for an actual ABAP platform underneath.</LI><LI><STRONG><A title="ADT MCP Server" href="https://github.com/mario-andreschak/mcp-abap-abap-adt-api" target="_blank" rel="noopener nofollow noreferrer">ADT MCP Server</A></STRONG> – A MCP server by Mario Andreschak that runs locally on my machine. It exposes SAP standard components to the AI engine. With this in place, LLMs can understand ABAP interfaces, function modules, and class signatures, etc. - making their suggestions much more relevant. I advise the LLM to use the first two parts of the Workflow ('searchObject' and 'getObjectSource') mentioned in the MCP repository to understand how it can get information about SAP standard objects.</LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Set Up Overview" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/298109i4ED7388C931F2F94/image-size/medium?v=v2&px=400" role="button" title="Bildschirmfoto 2025-08-07 um 21.56.00.png" alt="Set Up Overview" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Set Up Overview</span></span></P><P> </P><P> </P><HR /><H3 id="toc-hId-686971582">What I've observed so far</H3><P>My experience with this set up so far is really great. I mainly used it in a OO greenfield development, helping me to focus on software architecture and object composition and avoiding to deal with boilerplate code. I try writing to the AI assistant as with a development colleague, questioning my ideas and current problem solving approach. <BR />I also let the assistant implement complete parts of the solution after creating and evaluating a detailed development plan upfront. It works really well as long as the current 'feature scope' is not too large and the implementation plan is well described. </P><P>This approach has given me what feels like a more tailored and extensible development experience compared to exclusively using the assistants mentioned at the beginning of this article without changing the complete set up.</P><P>--------------------------<BR />This post was written with the help of GenAI.<BR />Want to share your experiences with AI assisted coding? <A title="LinkedInProfile" href="http://linkedin.com/in/magpasulke-9665a4377" target="_blank" rel="noopener nofollow noreferrer">Get in touch! </A></P>2025-09-02T07:56:22.693000+02:00https://community.sap.com/t5/application-development-and-automation-blog-posts/aunits-steps-for-rap/ba-p/14222430AUnits steps for RAP2025-09-26T08:51:38.675000+02:00Nihal__Rajhttps://community.sap.com/t5/user/viewprofilepage/user-id/2252976<P><STRONG>Introduction:</STRONG><BR /><EM>AUnits are unit tests written by ABAP developers to test each functionality of their code. In RAP, AUnits are used to test functionalities such as validations, determinations, actions, and CRUD operations etc. Your AUnits should aim for maximum coverage of your code. It is recommended to follow TDD(Test Driven Development), where you write the test cases first and then implement the logic. This ensures that the test cases are based on the actual requirements and are not influenced by the implementation.</EM></P><P><STRONG>Reference link for TDD: </STRONG><A href="https://help.sap.com/docs/abap-cloud/abap-development-tools-user-guide/test-driven-development-with-abap-unit" target="_blank" rel="noopener noreferrer">https://help.sap.com/docs/abap-cloud/abap-development-tools-user-guide/test-driven-development-with-abap-unit</A></P><P><STRONG>Basics of AUnits:<BR /></STRONG>Test classes can be either local or global. Unit tests should typically be implemented as local classes within the program object that is being tested. However, you can use global test classes to host reusable logic for unit tests across different programs. In Eclipse ADT, there is a separate environment for managing local test classes.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Nihal__Raj_0-1758281914495.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/316896i3E810BF7DF064C47/image-size/large?v=v2&px=999" role="button" title="Nihal__Raj_0-1758281914495.png" alt="Nihal__Raj_0-1758281914495.png" /></span></P><P><STRONG>Reference link</STRONG>: <A href="https://learning.sap.com/learning-journeys/acquire-core-abap-skills/implementing-code-tests-with-abap-unit_b23c7a00-c2e8-406d-8969-b00db3f1fd87" target="_blank" rel="noopener noreferrer">https://learning.sap.com/learning-journeys/acquire-core-abap-skills/implementing-code-tests-with-abap-unit_b23c7a00-c2e8-406d-8969-b00db3f1fd87</A></P><P><STRONG>Structure of test class:</STRONG></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Nihal__Raj_0-1758698995368.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/319335iC3A06A8F6D15D7D5/image-size/large?v=v2&px=999" role="button" title="Nihal__Raj_0-1758698995368.png" alt="Nihal__Raj_0-1758698995368.png" /></span></P><pre class="lia-code-sample language-abap"><code>*"* use this source file for your ABAP unit test classes
class ltc_zi_lfa1_2 DEFINITION FINAL for
TESTING RISK LEVEL HARMLESS DURATION SHORT.
PRIVATE SECTION.
CLASS-DATA environment TYPE REF TO if_cds_test_environment.
DATA td_zlfa TYPE STANDARD TABLE OF zlfa1 with empty key.
DATA act_results type STANDARD TABLE OF zi_lfa1_2 WITH EMPTY KEY.
CLASS-METHODS class_setup RAISING cx_static_check.
CLASS-METHODS class_teardown.
METHODS setup RAISING cx_static_check.
METHODS prepare_testdata.
METHODS aunit_for_cds_method FOR TESTING RAISING cx_static_check.
ENDCLASS.
</code></pre><P><STRONG>For Testing:</STRONG> The addition FOR TESTING is used to identify a test class. These are the classes that will be executed when you run ABAPUnit tests. I will explain further how AUnits are triggered and how to execute them.</P><P><STRONG>Risk Level: </STRONG></P><UL><LI>CRITICAL: The test changes system settings or customizing data.</LI><LI>DANGEROUS: The test changes persistent data.</LI><LI>HARMLESS: The test does not change system settings or persistent data.</LI></UL><P><STRONG>Duration:</STRONG></P><UL><LI>SHORT: Execution time is imperceptible, expected to take only a few seconds.</LI><LI>MEDIUM: Execution time is noticeable, around a minute.</LI><LI>LONG: Execution time is very noticeable, taking more than a minute. </LI></UL><P><STRONG>Methods in Test Classes:</STRONG></P><UL><LI>Helper Methods: Helper methods are ordinary methods of the test class. They are not called by the ABAP Unit framework. You can use helper methods to structure the code of your test methods. For example, prepare_testdata is a helper method.</LI><LI>Test Methods: Test methods are defined with the addition FORTESTING after the method name. Each test method represents one test. The ABAP Unit framework performs this test by calling the corresponding test method. Test methods must not have any parameters. In the above example, aunit_for_cds_method is your test method.</LI></UL><P><STRONG>Good Practices:</STRONG></P><UL><LI>It’s a good practice to have a separate method for each functionality, with no dependencies inside the method. Each method should be treated as a single test case.</LI><LI>Always include both positive and negative test cases.</LI></UL><P><STRONG>Flow of test case:</STRONG></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Nihal__Raj_2-1758283483555.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/316925i4D14BA272DF5A1E3/image-size/large?v=v2&px=999" role="button" title="Nihal__Raj_2-1758283483555.png" alt="Nihal__Raj_2-1758283483555.png" /></span></P><P><STRONG>CLASS_SETUP</STRONG><BR />This static method is executed once before the first test of the test class. Use this method for fixtures that are time-consuming to create and for which you are sure the settings will not be changed by any of the test methods. Example: Setting up a test double in the test environment.</P><P><STRONG>SETUP</STRONG><BR />This instance method is called before each test of the test class. Use this method for fixtures that you want to create fresh for every test case. Example: Creating an instance of the CUT (Class Under Test).</P><P><STRONG>TEARDOWN</STRONG><BR />This instance method is called after each test of the test class. Use it to undo changes made in the SETUP method. It is especially important if SETUP modifies persistent data (such as system configuration, customizing, or master data). Example: Clearing test doubles so that each test starts with fresh data.</P><P><STRONG>CLASS_TEARDOWN</STRONG><BR />This static method is executed once after the last test of the test class. Use it to clean up or destroy the test environment set up in CLASS_SETUP, once all tests are completed. Example: Tearing down the overall test environment.</P><P>To run ABAP units execute ABAP Unit Test. This will trigger the test class. If you run ABAP application it will not trigger test class.</P><P><STRONG>Test double framework:</STRONG><BR />As I mentioned earlier, your unit tests should check only the functionality(CUT – Code Under Test) that you have written the test case for. However, in real-world scenarios, each component is usually interlinked and not standalone.</P><P><STRONG>What is the issue?</STRONG><BR />To explain this, let’s take an example. Suppose you are testing an instance authorization method. This method is dependent on an authorization object. If the AUTH-CHECK of the authorization object fails, the instance authorization method will also fail. This means that even if your instance authorization method is working correctly, the test could still fail due to its dependency. Ideally, the failure of a dependency should not cause your unit test to fail when you are testing the functionality of the CUT itself.</P><P><STRONG>Examples of dependencies in RAP</STRONG></P><UL><LI>Instance and global authorizations: Dependency on authorization checks.</LI><LI>SAVE / SAVE_MODIFIED methods: Dependency on function modules or BAPIs.</LI><LI>Determinations: You might use EML of another BO, making your BO dependent.</LI><LI>Validations: Your CDS view could be a dependency; if the required record is not present in the CDS view, the validation might fail. And there are many more such cases.</LI></UL><P><STRONG>Solution — Test Double Framework</STRONG><BR />So, how do we overcome this? Instead of relying on dependencies that are beyond our control, we mock or stub these dependencies. This allows us to influence how they behave and interact during testing, thereby avoiding test case failures due to external dependencies. This approach is implemented using the Test Double Framework.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Nihal__Raj_4-1758284209300.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/316928i44CD04D3C5CB1DC4/image-size/large?v=v2&px=999" role="button" title="Nihal__Raj_4-1758284209300.png" alt="Nihal__Raj_4-1758284209300.png" /></span></P><P>The main purpose of both mock and stub is to not to test from actual data but rather a fake data that we can configure. Because our test class will fail if its dependent on real time data as it will be different in different<BR />environment.</P><OL><LI><STRONG>STUB:</STRONG> Stubs just provide predefined response.</LI><LI><STRONG>MOCK:</STRONG> You design how the interaction should be. Like if you provide this value this is how the output would be and also verify it.</LI></OL><P><STRONG>I will now discuss in detail how we write ABAP Unit tests with a simple example. </STRONG></P><P><STRONG>Requirement:</STRONG><BR />Write a positive test case to check the validation check_country, which should throw an exception if we pass a country code with more than2characters. Also, remove the dependency on the CDS view.</P><P><STRONG>Steps:</STRONG><BR /><STRONG><EM>Identify CUT and dependencies</EM></STRONG><BR />Here, I have taken a validation method as an example for testing. The CUT(Code Under Test) is the validation method, and the dependency is the CDS view. So, I will use the STUB methodology to configure the response of the CDS view.</P><P><STRONG><EM>Creation of test class</EM></STRONG><BR />Once you create the test class, you need to add it as a friend in the local handler class (since we are testing a validation). This is necessary because all the methods of the local handler class are inside the private section and cannot be accessed directly.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Nihal__Raj_0-1758702188232.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/319382i0998B69F77895CF8/image-size/large?v=v2&px=999" role="button" title="Nihal__Raj_0-1758702188232.png" alt="Nihal__Raj_0-1758702188232.png" /></span></P><P>Inside the test class<BR />I have already explained the use of SETUP, CLASS_SETUP, TEARDOWN, andCLASS_TEARDOWN earlier, so I will not repeat that here.<BR />In this example, validate_check_country is our test method. I have added a test double for the CDS view, because the validation should be tested using the mock data we provide, not the actual data.<BR />I create the mock data and insert it, so that the CDS view returns this data. Now, when we pass parameters to the validation, we can check if we get a value in reported, since we have provided a country code with 3 characters.</P><P><STRONG>Note:</STRONG> This is just an example program. Typically, mocking, adding mock data, and different functionalities would be implemented in separate methods. It is not a good practice to combine everything into a single method. Each method should have only one responsibility. Here, I have combined them solely to showcase the concept.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Nihal__Raj_0-1758701394247.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/319377iA0CD976E87F9620D/image-size/large?v=v2&px=999" role="button" title="Nihal__Raj_0-1758701394247.png" alt="Nihal__Raj_0-1758701394247.png" /></span></P><pre class="lia-code-sample language-abap"><code>class ltc_lfa1_validation IMPLEMENTATION.
METHOD class_setup.
cds_environment = cl_cds_test_environment=>create( i_for_entity = 'zi_lfa1_2' ).
ENDMETHOD.
METHOD setup.
CREATE object cut for testing.
cds_encironment->clear_doubles( ).
ENDMETHOD.
method validate_check_country.
data: lfa1_mock_data type STANDARD TABLE OF zlfa1.
data(system_uuid) = cl_uuid_factory=>create_system_uuid( ).
DATA(uuid_x16) = system_uuid->create_uuid_x16( ).
select * FROM zi_lfa1_2 into TABLE <a href="https://community.sap.com/t5/user/viewprofilepage/user-id/1407137">@DATA</a>(lt_result).
lfa1_ock_data = VALUE#( (
Lifnr = uuid_x16 Name1 = 'Raj' Land1 = 'Ind' ) )
cds_environment->insert_test_data( i_data = lfa1_mock_data ).
select * from zi_lfa1_2 into TABLE <a href="https://community.sap.com/t5/user/viewprofilepage/user-id/1407137">@DATA</a>(lt_result).
i_keys = value #( ( Lifnr = uuid_x16 ) ).
cut-> check_country( exporting key = i_keys
changing failed = c_failed reported = c_reported ).
cl_abap_unit_assert=>assert_not_initial( act = c_reported msg = 'failed' ).
ENDMETHOD.
method teardown.
cds_environment->destroy( ).
ENDMETHOD.
METHOD class_teardown.
cds_environment->clear_doubles( ).
ENDMETHOD.
ENDCLASS.</code></pre><P><STRONG>Conclusion: </STRONG>Writing ABAP unit test in RAP ensures that the underling business logic is robust and reliable. Structured unit test not only improve code quality and reliability but also facilitate easier maintenance and refactoring.</P><P> </P><P> </P><P> </P>2025-09-26T08:51:38.675000+02:00https://community.sap.com/t5/enterprise-resource-planning-blog-posts-by-members/int4-suite-your-sap-joule-testbed-and-skills-builder/ba-p/14229790Int4 Suite — your SAP Joule testbed and skills builder2025-09-28T19:05:56.520000+02:00MichalKrawczykhttps://community.sap.com/t5/user/viewprofilepage/user-id/45785<H2 id="toc-hId-1761106616"><STRONG>Intro</STRONG></H2><P><SPAN>Want to build reliable Joule skills and agents without breaking anything (or anyone’s nerves)? Treat Int4 Suite as your Joule testbed and skills builder: a place where you discover the real shape of a skill from historical traffic, scaffold its definition, rehearse end-to-end flows in a safe sandbox, and wire everything into MCP or CI/CD so quality checks can happen automatically.</SPAN></P><P><SPAN>This post shows a pragmatic playbook for S/4HANA + SAP BTP Integration Suite teams to use Int4 beyond SAP API testing and simulation as a preparation and enablement layer for SAP Business AI.</SPAN></P><H2 id="toc-hId-1564593111"><STRONG>Why does Int4 belong in your Joule toolchain? </STRONG></H2><UL><LI><STRONG>Reality-first inputs.</STRONG><SPAN> Int4 stores and mines </SPAN><STRONG>historical electronic messages</STRONG><SPAN> (IDoc/OData/REST) and master data, gold for grounding AI skills in how your business actually runs.</SPAN><SPAN><BR /></SPAN></LI><LI><STRONG>Process-aware, agentic orchestration.</STRONG><SPAN> It doesn’t just fire single APIs; it understands and can </SPAN><STRONG>prepare</STRONG><SPAN> the business context, chaining SO→Delivery→Invoice and fixing missing prerequisites on the fly.</SPAN><A href="https://community.sap.com/t5/technology-blog-posts-by-members/process-aware-agentic-testing-of-sap-with-int4-suite/ba-p/14196856" target="_blank"> SAP Community</A></LI><LI><STRONG>Safe simulation.</STRONG> <STRONG>Int4 Suite</STRONG><SPAN> virtualizes third-party/partner systems so you can shadow-run agents end-to-end without touching production endpoints.</SPAN><SPAN><BR /></SPAN></LI><LI><STRONG>Modern hooks.</STRONG><SPAN> SAP’s </SPAN><STRONG>Joule Studio</STRONG><SPAN> gives your agents standard tool interfaces; Int4’s actions and datasets slot right in.</SPAN><SPAN><BR /><BR /></SPAN></LI></UL><H2 id="toc-hId-1368079606"><STRONG>1) Discover the real skill you need (from history)</STRONG></H2><P><STRONG>Problem:</STRONG><SPAN> Spec sheets rarely match production reality. Which fields are really required? What defaults do users rely on? Which edge cases appear in the wild?</SPAN></P><P><STRONG>How:</STRONG></P><UL><LI><STRONG>Mine historical interface messages</STRONG><SPAN> across S/4HANA and Integration Suite: pull </SPAN><STRONG>IDocs, OData/REST payloads</STRONG><SPAN> for Sales Orders, Deliveries, Invoices, etc. Use them as </SPAN><STRONG>canonical examples</STRONG><SPAN> and </SPAN><STRONG>edge cases</STRONG><SPAN> for your skill’s inputs/outputs and constraints.</SPAN></LI></UL><P><SPAN><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Robotic_Crawler.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/320829iA565FD7501E1DED3/image-size/medium?v=v2&px=400" role="button" title="Robotic_Crawler.png" alt="Robotic_Crawler.png" /></span></SPAN></P><P><SPAN>Figure - Int4 Suite - Robotic Crawler to fetch millions of historical API postings </SPAN></P><UL><LI><SPAN>Reconstruct </SPAN><STRONG>end-to-end flows</STRONG><SPAN> (e.g., SO→Delivery→Invoice) from those messages so your skill spec mirrors the actual business process, not just API docs. This is the core of </SPAN><STRONG>process-aware agentic testing</STRONG><SPAN> in Int4.</SPAN><A href="https://community.sap.com/t5/technology-blog-posts-by-members/process-aware-agentic-testing-of-sap-with-int4-suite/ba-p/14196856" target="_blank"> <SPAN>SAP Community</SPAN></A></LI></UL><P><SPAN><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="fix_missing_stock.png" style="width: 932px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/320832iA26919D0BE2647A7/image-size/large?v=v2&px=999" role="button" title="fix_missing_stock.png" alt="fix_missing_stock.png" /></span></SPAN></P><P><SPAN>Figure - Int4 Suite - Fix issues with missing stock for a business process posting (outbound delivery part of the Order to Cash process)</SPAN></P><P><STRONG>Why it matters:</STRONG><SPAN> You stop guessing which fields matter and start from </SPAN><STRONG>observed truth</STRONG><SPAN>, exactly the inputs your Joule skill must handle.</SPAN></P><H2 id="toc-hId-1171566101"><STRONG>2) Auto-scaffold skill definitions for Joule Studio</STRONG></H2><P><STRONG>Problem:</STRONG><SPAN> Turning messy real-world payloads into a clean </SPAN><STRONG>skill I/O schema</STRONG><SPAN> (and examples) is tedious and easy to get wrong.</SPAN></P><P><STRONG>How:</STRONG></P><UL><LI><SPAN>From mined payloads, </SPAN><STRONG>extract</STRONG><SPAN>: required vs. optional fields, typical defaults, allowed value ranges.</SPAN><SPAN><BR /></SPAN></LI><LI><SPAN>Turn that into your </SPAN><STRONG>Joule skill definition</STRONG><SPAN> (inputs/outputs plus example payloads) in </SPAN><STRONG>Joule Studio</STRONG><SPAN>.</SPAN><SPAN><BR /><BR /></SPAN></LI></UL><P><SPAN><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="dimensions.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/320830i60FC3D8D573F3FC9/image-size/large?v=v2&px=999" role="button" title="dimensions.png" alt="dimensions.png" /></span></SPAN></P><P><SPAN>Figure - Int4 Suite dimensions created automatically from historical API calls can be used to create Joule skills </SPAN></P><UL><LI><SPAN>Use </SPAN><STRONG>Int4 Robotic Crawler</STRONG><SPAN> outputs, hundreds of realistic variants, to seed </SPAN><STRONG>positive</STRONG><SPAN>, </SPAN><STRONG>boundary</STRONG><SPAN>, and </SPAN><STRONG>negative</STRONG><SPAN> examples that harden your prompts/spec.</SPAN><SPAN><BR /></SPAN></LI></UL><P><STRONG>Why it matters:</STRONG><SPAN> You get a model-ready spec, grounded in real data, with examples covering the weird cases you’d otherwise miss.</SPAN></P><H2 id="toc-hId-975052596"><STRONG>3) Safe sandboxes for agent rehearsal (“shadow mode”)</STRONG></H2><P><STRONG>Problem:</STRONG><SPAN> Early skills need </SPAN><STRONG>practice</STRONG><SPAN> with all their integration touch-points but production endpoints are risky and partners are not always available.</SPAN></P><P><STRONG>How:</STRONG></P><UL><LI><SPAN>Use </SPAN><STRONG>Int4 Suite</STRONG><SPAN> to </SPAN><STRONG>virtualize</STRONG><SPAN> 3rd-party/partner APIs and even </SPAN><STRONG>replay historical responses</STRONG><SPAN>; point your early Joule skill/agent to this sandbox. Run full E2E flows, including error/failure drills, without touching live systems.</SPAN><SPAN><BR /></SPAN></LI><LI><SPAN>Pair with SAP </SPAN><STRONG>S/4 or iFlow stubs</STRONG><SPAN> so multi-step scenarios can execute safely (e.g., simulate 3PL delivery confirmations, EDI partner messages).</SPAN><SPAN><BR /></SPAN></LI></UL><P><STRONG>Why it matters:</STRONG><SPAN> You “flight-test” the skill’s decisions and error handling in realistic conditions, safely.</SPAN></P><H2 id="toc-hId-778539091"><STRONG>4) Wire Int4 Suite into your MCP + CI/CD toolchain</STRONG></H2><P><STRONG>Problem:</STRONG><SPAN> Skills evolve. APIs and iFlows change. You need </SPAN><STRONG>automatic</STRONG><SPAN> quality gates—every time.</SPAN></P><P><STRONG>How:</STRONG></P><UL><LI><SPAN>Wrap Int4 actions as </SPAN><STRONG>MCP tools</STRONG><SPAN> so your dev copilot or even Joule Studio automations, can call them during build/validation.</SPAN><SPAN><BR /></SPAN></LI><LI><SPAN>Let </SPAN><STRONG>SAP Cloud ALM/DevOps</STRONG><SPAN> trigger Int4 suites when Joule skills or iFlows change; Int4 already supports automated test-case harvesting and orchestration around Integration Suite.</SPAN><SPAN><BR /></SPAN></LI></UL><P><STRONG>Why it matters:</STRONG><SPAN> Every transport becomes </SPAN><STRONG>self-verifying</STRONG><SPAN>. Skills can’t drift out of compliance without getting caught.</SPAN></P><H2 id="toc-hId-582025586"><STRONG>How does this complement SAP’s Business AI?</STRONG></H2><UL><LI><STRONG>Joule Studio</STRONG><SPAN> remains where you </SPAN><I><SPAN>author</SPAN></I><SPAN> skills/agents. Int4 </SPAN><STRONG>feeds</STRONG><SPAN> it: schemas, examples, and safe endpoints.</SPAN><SPAN><BR /></SPAN></LI><LI><STRONG>MCP servers</STRONG><SPAN> are how agents call tools; Int4 </SPAN><STRONG>becomes a tool provider</STRONG><SPAN> (testing, data seeding, etc.). </SPAN><SPAN><BR /></SPAN></LI><LI><STRONG>Integration Suite + Cloud ALM</STRONG><SPAN> keep operations clean; Int4 strengthens them with </SPAN><STRONG>evidence-driven regression</STRONG><SPAN> around API and iFlow changes. </SPAN><SPAN><BR /></SPAN></LI></UL><P><SPAN><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="iflows_changed.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/320831iAFB3144666F7F966/image-size/medium?v=v2&px=400" role="button" title="iflows_changed.png" alt="iflows_changed.png" /></span></SPAN></P><P><SPAN>Figure - Int4 Suite - validate changed APIs or iflows</SPAN></P><H2 id="toc-hId-385512081"><STRONG>Where to learn more</STRONG></H2><UL><LI><STRONG>Process-Aware Agentic Testing of SAP with Int4 Suite</STRONG><SPAN> - why “agentic” tests matter and how Int4 auto-prepares missing context.</SPAN><A href="https://community.sap.com/t5/technology-blog-posts-by-members/process-aware-agentic-testing-of-sap-with-int4-suite/ba-p/14196856" target="_blank"> SAP Community</A></LI><LI><STRONG>Agentic Testing & Simulation with Int4 Suite’s SAP Business Knowledge Graph</STRONG><SPAN> - democratizing simulation & semantic search over test cases.</SPAN><A href="https://community.sap.com/t5/technology-blog-posts-by-members/agentic-testing-and-simulation-with-int4-suite-s-sap-business-knowledge/ba-p/14076453" target="_blank"> SAP Community</A></LI><LI><STRONG>Cloud ALM with Integration Suite</STRONG><SPAN> - monitoring and change-driven automation hooks.</SPAN><A href="https://community.sap.com/t5/technology-blog-posts-by-members/configuring-sap-cloud-alm-for-integration-suite/ba-p/13708615" target="_blank"> SAP Community</A></LI></UL>2025-09-28T19:05:56.520000+02:00https://community.sap.com/t5/application-development-and-automation-blog-posts/foreign-entity-in-rap/ba-p/14227441Foreign entity in RAP2025-09-29T09:05:47.440000+02:00Shyam4Uhttps://community.sap.com/t5/user/viewprofilepage/user-id/1512208<P><STRONG><SPAN>Description:</SPAN></STRONG><SPAN> </SPAN></P><P><STRONG><SPAN> </SPAN></STRONG><SPAN>A RAP BO entity which is not part of the BO composition tree for which it is defined. Defining a foreign entity in the behavior definition enables cross-BO message mapping between the two BOs.</SPAN><SPAN> </SPAN></P><P><STRONG><SPAN>Key Concepts:</SPAN></STRONG><SPAN> <BR /></SPAN><SPAN>RAP foreign entity is a component of the BC-ESI-RAP RESTful ABAP Programming Model. It is a representation of an external entity, such as a web service, that can be used in an ABAP program. The foreign entity is defined in the ABAP program and can be used to access data from the external source.</SPAN><SPAN> </SPAN></P><P><STRONG><SPAN>Tips & Tricks:</SPAN></STRONG><SPAN> <BR /></SPAN><SPAN>When defining a RAP foreign entity, it is important to ensure that all authentication information is correct. This will ensure that requests are sent securely and that responses are received correctly. Additionally, it is important to ensure that the URL of the external source is correct, as this will ensure that requests are sent to the correct location.</SPAN><SPAN> </SPAN></P><P><STRONG><SPAN>How to use it:</SPAN></STRONG><SPAN> <BR /></SPAN><SPAN>To use a RAP foreign entity, first define the entity in the ABAP program. This includes specifying the URL of the external source, as well as any authentication information that may be required. Once the entity is defined, it can be used to access data from the external source. This can be done using the RAP API, which provides methods for making requests and receiving responses from the external source.</SPAN><SPAN> </SPAN><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Shyam4U_0-1758779361113.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/319667i1BD7D26A3B6E12D5/image-size/large?v=v2&px=999" role="button" title="Shyam4U_0-1758779361113.png" alt="Shyam4U_0-1758779361113.png" /></span></P><P><SPAN><FONT face="arial black,avant garde"><STRONG>Example : </STRONG></FONT> </SPAN><SPAN> </SPAN></P><P><SPAN>"In our system, we have two distinct business entities: </SPAN><STRONG><SPAN>Inventory</SPAN></STRONG><SPAN> and </SPAN><STRONG><SPAN>Sales Order</SPAN></STRONG><SPAN>. Although they are separate, they are fundamentally linked. We manage this connection by using the </SPAN><STRONG><SPAN>product ID</SPAN></STRONG><SPAN> as the key identifier. This ensures that every time a sales order is created, the system automatically checks and </SPAN><STRONG><SPAN>deducts the correct quantity from the available stock</SPAN></STRONG><SPAN> in the inventory. This process maintains accurate, real-time stock levels, which is critical for our operations."</SPAN><SPAN> </SPAN></P><pre class="lia-code-sample language-abap"><code>@EndUserText.label : 'inverty table'
@AbapCatalog.enhancement.category : #NOT_EXTENSIBLE
@AbapCatalog.tableCategory : #TRANSPARENT
@AbapCatalog.deliveryClass : #A
@AbapCatalog.dataMaintenance : #ALLOWED
define table zscn_t_inventory {
key product_id : abap.char(10) not null;
stock_level : abap.int4;
product_name : abap.char(40);
create_at : timestampl;
last_chdate : timestampl;
} </code></pre><pre class="lia-code-sample language-abap"><code>@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: 'INTERFACE VIEW INVERNTORY'
@Metadata.ignorePropagatedAnnotations: true
define root view entity ZSCN_i_INVENTORY as select from zscn_t_inventory
{
key product_id as ProductId,
stock_level as StockLevel,
product_name as ProductName,
create_at as CreateAt,
last_chdate as LastChdate
} </code></pre><pre class="lia-code-sample language-abap"><code>@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: 'INVENTORY CONSUMPATION VIEW'
@Metadata.ignorePropagatedAnnotations: true
@VDM.viewType: #TRANSACTIONAL
define root view entity ZSCN_C_INVENTORY
provider contract transactional_query
as projection on ZSCN_i_INVENTORY
{
@UI.facet: [{ type: #IDENTIFICATION_REFERENCE }]
@UI.lineItem: [{ position: 10 , label: 'Product Id' }]
@UI.identification:[{ position: 10 , label: 'Product Id' }]
key ProductId,
@UI.lineItem: [{ position: 20 , label: 'Stock Level' }]
@UI.identification:[{ position: 20 , label: 'Stock Level' }]
StockLevel,
@UI.lineItem: [{ position: 30 , label: 'Product Name' }]
@UI.identification:[{ position: 30 , label: 'Product Name' }]
ProductName,
@Semantics.systemDateTime.createdAt: true
CreateAt,
@Semantics.systemDateTime.lastChangedAt: true
LastChdate
} </code></pre><pre class="lia-code-sample language-abap"><code>managed implementation in class zbp_scn_i_inventory unique;
strict ( 2 );
with draft;
define behavior for ZSCN_i_INVENTORY //alias <alias_name>
persistent table zscn_t_inventory
lock master
total etag LastChdate
draft table zscn_t_invent_d
authorization master ( instance )
late numbering
//etag master <field_name>
{
create ( authorization : global );
update;
delete;
field ( readonly ) ProductId;
validation vali_Stock on save { create; update; }
draft action Activate optimized ;
draft action Discard ;
draft action Edit ;
draft action Resume ;
draft determine action Prepare ;
mapping for zscn_t_inventory {
CreateAt = create_at ;
LastChdate = last_chdate ;
ProductId = product_id ;
ProductName = product_name ;
StockLevel = stock_level;
}
} </code></pre><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Shyam4U_1-1758779760747.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/319670i23615557B62C460B/image-size/large?v=v2&px=999" role="button" title="Shyam4U_1-1758779760747.png" alt="Shyam4U_1-1758779760747.png" /></span></P><P><SPAN class=""><SPAN class="">In our system, a key validation for inventory is to prevent the stock level from ever going into a negative value.</SPAN></SPAN><SPAN class=""> </SPAN><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Shyam4U_0-1758780972739.png" style="width: 655px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/319675i7F29A75ECBAD4A91/image-dimensions/655x264?v=v2" width="655" height="264" role="button" title="Shyam4U_0-1758780972739.png" alt="Shyam4U_0-1758780972739.png" /></span></P><pre class="lia-code-sample language-abap"><code>METHOD vali_Stock.
LOOP AT keys INTO DATA(lv_key).
READ ENTITY IN LOCAL MODE ZSCN_i_INVENTORY
ALL FIELDS WITH VALUE #( ( %key = lv_key-%key ) )
RESULT DATA(lt_result).
CHECK lt_result IS NOT INITIAL.
LOOP AT lt_result INTO DATA(lv_result).
IF lv_result-StockLevel < 0 .
APPEND VALUE #( %tky = lv_result-%tky ) TO failed-zscn_i_inventory.
APPEND VALUE #( %tky = lv_result-%tky
%msg = new_message_with_text( severity =
if_abap_behv_message=>severity-error
text = 'Stock value should not be negative value ' && ' ' && lv_result-StockLevel )
%element-stocklevel = if_abap_behv=>mk-on ) TO reported-zscn_i_inventory .
ENDIF.
ENDLOOP.
ENDLOOP.
ENDMETHOD.</code></pre><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Shyam4U_2-1758781361679.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/319683i21B33569A1767987/image-size/large?v=v2&px=999" role="button" title="Shyam4U_2-1758781361679.png" alt="Shyam4U_2-1758781361679.png" /></span></P><P><FONT face="arial black,avant garde"><STRONG>Sales order Entity </STRONG></FONT></P><P><FONT face="arial black,avant garde"><STRONG> </STRONG></FONT></P><pre class="lia-code-sample language-abap"><code>@EndUserText.label : 'SALES ORDER'
@AbapCatalog.enhancement.category : #EXTENSIBLE_ANY
@AbapCatalog.tableCategory : #TRANSPARENT
@AbapCatalog.deliveryClass : #A
@AbapCatalog.dataMaintenance : #ALLOWED
define table zscn_dt_salesord {
key sales_order_id : abap.numc(10) not null;
product_id : abap.char(10) not null;
quantity : abap.numc(5);
customer_id : abap.char(10);
order_date : abap.dats;
@Semantics.amount.currencyCode : 'zscn_dt_salesord.currency'
total_amount : abap.curr(13,2);
currency : abap.cuky;
create_at : timestamp;
last_changed : timestamp;
} </code></pre><pre class="lia-code-sample language-abap"><code>@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: 'SALESORD CONSUMPATION VIEW'
@Metadata.ignorePropagatedAnnotations: false
define root view entity ZSCN_C_SALESORD
provider contract transactional_query
as projection on ZSCN_I_SALESORD
{
@UI.facet: [{ type: #IDENTIFICATION_REFERENCE }]
@UI.lineItem: [{ position: 10 , label: 'Sales Order Id' }]
@UI.identification:[{ position: 10 , label: 'Sales Order Id' }]
key SalesOrderId,
@UI.lineItem: [{ position: 20 , label: 'Product Id' }]
@UI.identification:[{ position: 20 , label: 'Product Id' }]
@Consumption.valueHelpDefinition: [{
entity: { name: 'ZSCN_C_INVENTORY', element: 'ProductId' } }]
ProductId,
@UI.lineItem: [{ position: 30 , label: 'Quantity' }]
@UI.identification:[{ position: 30 , label: 'Quantity' }]
Quantity,
@UI.lineItem: [{ position: 40 , label: 'Customer Id' }]
@UI.identification:[{ position: 40 , label: 'Customer Id' }]
CustomerId,
@UI.lineItem: [{ position: 50 , label: 'Order Date' }]
@UI.identification:[{ position: 50 , label: 'Order Date' }]
OrderDate,
@UI.lineItem: [{ position: 60 , label: 'Total Amount' }]
@UI.identification:[{ position: 60 , label: 'Total Amount' }]
TotalAmount,
Currency,
@Semantics.systemDateTime.createdAt: true
CreateAt,
@Semantics.systemDateTime.lastChangedAt: true
LastChanged
} </code></pre><pre class="lia-code-sample language-abap"><code>managed implementation in class zbp_scn_i_salesord unique;
strict ( 2 );
with draft;
//foreign entity Zscn_i_inventory alias _inventory ;
define behavior for ZSCN_I_SALESORD //alias <alias_name>
persistent table zscn_dt_salesord
lock master
total etag LastChanged
draft table zscn_dt_salord_d
authorization master ( instance )
early numbering
//etag master <field_name>
{
create ( authorization : global );
update;
delete;
field ( readonly ) SalesOrderId;
validation valid_ProductId on save { create; update; }
determination stock_upadte on save { field Quantity; }
draft action Activate optimized ;
draft action Discard ;
draft action Edit ;
draft action Resume ;
draft determine action Prepare ;
mapping for zscn_dt_salesord
{
CreateAt = create_at;
Currency = currency;
CustomerId = customer_id;
LastChanged = last_changed;
OrderDate = order_date;
ProductId = product_id;
SalesOrderId = sales_order_id;
Quantity = quantity;
TotalAmount = total_amount;
}
} </code></pre><P><SPAN class=""><SPAN class="">without the foreign entity </SPAN><SPAN class="">Zscn_i_inventory</SPAN> <SPAN class="">syntax ,</SPAN><SPAN class=""> behavior definition of the ZSCN_I_SALESORD it only holding the structure of ZSCN_I_SALESORD it </SPAN><SPAN class="">doesn't</SPAN><SPAN class=""> hold the structure </SPAN><SPAN class="">Zscn_i_inventory</SPAN><SPAN class=""> .</SPAN></SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Shyam4U_3-1758782312689.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/319693i04E76CF2ACE2702F/image-size/medium?v=v2&px=400" role="button" title="Shyam4U_3-1758782312689.png" alt="Shyam4U_3-1758782312689.png" /></span></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Shyam4U_4-1758782320070.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/319694iBE9FAD22C19ED3EF/image-size/medium?v=v2&px=400" role="button" title="Shyam4U_4-1758782320070.png" alt="Shyam4U_4-1758782320070.png" /></span></P><P><SPAN class=""><SPAN class=""><SPAN class="">Due to the separate entity definitions, errors from an inventory stock update cannot be directly propagated to the sales order user interface. In Failed and </SPAN><SPAN class="">Reported structure will be miss </SPAN><SPAN class="">match. </SPAN></SPAN></SPAN></P><P><SPAN class=""><SPAN class=""><SPAN class="">T<SPAN class=""><SPAN class="">o propagate </SPAN><SPAN class="">this</SPAN><SPAN class=""> we use of foreign entity syntax</SPAN></SPAN><SPAN class=""> .</SPAN></SPAN></SPAN></SPAN></P><P><SPAN class=""><SPAN class=""><SPAN class=""><SPAN class="">uncomment the //foreign entity Zscn_i_inventory alias _inventory ; in Behavior definition of <SPAN class=""><SPAN class="">Zscn_i_salesord .</SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Shyam4U_0-1758782990181.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/319700i976D6F6DBC5BC8E1/image-size/large?v=v2&px=999" role="button" title="Shyam4U_0-1758782990181.png" alt="Shyam4U_0-1758782990181.png" /></span></P><P><SPAN>After adding the Foreign entity Zscn_i_inventory alies _inventory ; </SPAN><SPAN> </SPAN></P><P><SPAN>We can see the change in the entity Zscn_i_salesord structure .</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Shyam4U_1-1758783042974.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/319701i23555758241BE272/image-size/large?v=v2&px=999" role="button" title="Shyam4U_1-1758783042974.png" alt="Shyam4U_1-1758783042974.png" /></span></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Shyam4U_2-1758783077463.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/319702i7ED69A661F19E1EF/image-size/medium?v=v2&px=400" role="button" title="Shyam4U_2-1758783077463.png" alt="Shyam4U_2-1758783077463.png" /></span> </P><P> <span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Shyam4U_3-1758783109372.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/319703iBBF8EBD3793DA2F3/image-size/medium?v=v2&px=400" role="button" title="Shyam4U_3-1758783109372.png" alt="Shyam4U_3-1758783109372.png" /></span></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Shyam4U_4-1758783178499.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/319704iD42E5E0BC1A228ED/image-size/large?v=v2&px=999" role="button" title="Shyam4U_4-1758783178499.png" alt="Shyam4U_4-1758783178499.png" /></span></P><P><SPAN>Using the Determination we are update the stock of the inventory table based on the Product id in Behavior definition implementation class .</SPAN><SPAN> </SPAN></P><P><SPAN>A critical validation has been implemented: when a sales order is created, if the requested quantity is greater than the available stock level, an error is raised in the inventory business logic. This error is then propagated to the sales order entity, making it visible on the sales order screen.</SPAN><SPAN> </SPAN></P><P><SPAN> </SPAN></P><pre class="lia-code-sample language-abap"><code>METHOD stock_upadte.
LOOP AT keys INTO DATA(lv_key).
READ ENTITY IN LOCAL MODE zscn_i_salesord ALL FIELDS WITH
VALUE #( ( %key = lv_key-%key ) )
RESULT DATA(lt_result).
CHECK lt_result IS NOT INITIAL.
LOOP AT lt_result INTO DATA(lv_result).
READ ENTITY ZSCN_i_INVENTORY
ALL FIELDS WITH VALUE #( ( ProductId = lv_result-ProductId ) )
RESULT DATA(lt_result_inventory).
LOOP AT lt_result_inventory INTO DATA(lv_inventory).
DATA(lv_stock) = CONV i( lv_inventory-StockLevel - lv_result-Quantity ).
MODIFY ENTITY ZSCN_i_INVENTORY UPDATE FIELDS ( StockLevel )
WITH VALUE #( ( %key-ProductId = lv_inventory-%key-ProductId
StockLevel = lv_stock ) ) REPORTED DATA(ltreported).
if ltreported is not INITIAL.
DATA: lt_dummy LIKE reported-_inventory.
lt_dummy = CORRESPONDING #( ltreported-zscn_i_inventory ).
APPEND LINES OF lt_dummy TO reported-_inventory.
endif.
ENDLOOP.
ENDLOOP.
ENDLOOP.
ENDMETHOD. </code></pre><P><SPAN class=""><SPAN class="">In </SPAN><SPAN class="">above</SPAN><SPAN class=""> code </SPAN><SPAN class="">I</SPAN><SPAN class=""> am using </SPAN></SPAN><SPAN class=""><SPAN class="">CORRESPONDING #( </SPAN></SPAN><SPAN class=""><SPAN class="">ltreported</SPAN></SPAN><SPAN class=""><SPAN class="">-</SPAN></SPAN><SPAN class=""><SPAN class="">zscn_i_inventory</SPAN></SPAN><SPAN class=""><SPAN class=""> ). </SPAN></SPAN><SPAN class=""><SPAN class="">because </SPAN><SPAN class="">of while</SPAN> <SPAN class="">using</SPAN><SPAN class=""> the EML syntax the report will be early but inside the Behavior </SPAN><SPAN class="">definition it</SPAN><SPAN class=""> will be late </SPAN><SPAN class="">structure.</SPAN></SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Shyam4U_5-1758783700742.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/319709i8DE267E217225D43/image-size/medium?v=v2&px=400" role="button" title="Shyam4U_5-1758783700742.png" alt="Shyam4U_5-1758783700742.png" /></span> <span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Shyam4U_6-1758783731326.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/319710i291685CEEACF10B0/image-size/medium?v=v2&px=400" role="button" title="Shyam4U_6-1758783731326.png" alt="Shyam4U_6-1758783731326.png" /></span></P><P><SPAN class=""><SPAN class="">In inventory entity this are the possible product we have in that </SPAN><SPAN class="">i</SPAN><SPAN class=""> will </SPAN><SPAN class="">chose</SPAN><SPAN class=""> Titan watch</SPAN></SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Shyam4U_0-1758784285024.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/319716i82C35938198C8543/image-size/large?v=v2&px=999" role="button" title="Shyam4U_0-1758784285024.png" alt="Shyam4U_0-1758784285024.png" /></span></P><P><SPAN class=""><SPAN class="">When creating a sales order for a Titan watch, if the requested quantity of 50 exceeds the available stock of 40, the system will prevent the transaction and display an error.</SPAN></SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Shyam4U_1-1758784335793.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/319717i0D9C69770EC165AB/image-size/large?v=v2&px=999" role="button" title="Shyam4U_1-1758784335793.png" alt="Shyam4U_1-1758784335793.png" /></span></P><P><SPAN class=""><SPAN class="">The error which is from the inventory entity by using the foreign entity concept we are propagating the error message of </SPAN><SPAN class="">inventory in</SPAN><SPAN class=""> sales order entity.</SPAN></SPAN><SPAN class=""> </SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Shyam4U_2-1758784368449.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/319718i9251943C19615F88/image-size/large?v=v2&px=999" role="button" title="Shyam4U_2-1758784368449.png" alt="Shyam4U_2-1758784368449.png" /></span></P><P><STRONG><SPAN>Related Information:</SPAN></STRONG><SPAN> <BR /></SPAN><SPAN>For more information on using RAP foreign entities, please refer to the SAP Help documentation on BC-ESI-RAP RESTful ABAP Programming Model. Additionally, there are many tutorials available online which provide step-by-step instructions on how to use RAP foreign entities in an ABAP program.</SPAN><SPAN> </SPAN></P><P><SPAN>Thanks for </SPAN><SPAN> </SPAN></P><P><A href="https://www.erplingo.com/sap-glossary/en/bc-esi-rap/rap-foreign-entity" target="_blank" rel="noopener nofollow noreferrer"><SPAN>What is RAP foreign entity in SAP BC-ESI-RAP? Definition & Tips</SPAN></A><SPAN> </SPAN></P><P><A href="https://help.sap.com/doc/abapdocu_cp_index_htm/CLOUD/en-US/index.htm?file=abenbdl_foreign.htm" target="_blank" rel="noopener noreferrer"><SPAN>https://help.sap.com/doc/abapdocu_cp_index_htm/CLOUD/en-US/index.htm?file=abenbdl_foreign.htm</SPAN></A><SPAN> </SPAN></P>2025-09-29T09:05:47.440000+02:00https://community.sap.com/t5/enterprise-resource-planning-blog-posts-by-members/agentic-ai-testing-for-greenfield-s-4hana-outbound-interfaces-part-1/ba-p/14232427Agentic AI Testing for Greenfield S/4HANA Outbound Interfaces - Part 12025-10-01T11:01:36.832000+02:00MichalKrawczykhttps://community.sap.com/t5/user/viewprofilepage/user-id/45785<P> </P><H2 id="toc-hId-1761818507"><STRONG>Intro</STRONG></H2><P>Outbound interfaces are the lifeline between your new S/4HANA Greenfield or Selective Data Transition system and the outside world. Customers, vendors, 3PL partners, they still expect the same EDI (or non-EDI) output messages, even if you’ve reshaped half your internal processes in the course of the SAP S/4HANA transformation. </P><P>The real challenge? Functional consultants need to validate those outbound messages themselves, without waiting on an EDI provider, an integration colleague, or an EDI partner. That’s where <STRONG>Agentic AI validation with Int4 Suite</STRONG> comes in.</P><P>This playbook shows how functional consultants can independently test and validate outbound interfaces, step by step, without leaving the SAP S/4HANA + Int4 Suite environment.</P><H2 id="toc-hId-1565305002"><STRONG>Why functional consultants, not integration teams?</STRONG></H2><P>Most SAP projects (Greenfield, Selective Data Transition, or any other complex SAP S/4HANA upgrades) involve huge shifts inside SAP, but <STRONG>the outside world doesn’t care</STRONG>. Partner EDI flows must remain identical.</P><P>Traditionally, testing those flows meant:</P><UL><LI>Asking the EDI partner/provider for some sample messages</LI><LI>Trying to run the transaction in SAP S/4HANA</LI><LI>Asking the EDI provider to re-check/confirm outbound messages.</LI><LI>Pulling in a specialist from the integration team if something takes too long.</LI><LI>Repeating the same process multiple times with very little time to do it</LI></UL><P>Our approach flips this. It empowers the SAP <STRONG>functional consultant</STRONG> to:</P><UL><LI>Insert thousand of historical EDI messages from any productive system</LI><LI>Ask Int4 Suite to find the test data within those messages</LI><LI>Reproduce SAP transactions from historical payloads, like Sales Order Confirmation, Delivery (ASN) notification, Invoice Notification</LI><LI>Validate the EDI outbound messages directly in Int4 Suite by the functional consultant</LI><LI>The whole process takes minutes not hours and can be done hundreds of times per hour with no external dependencies (other partners)</LI></UL><P>No waiting on specialists, no bottlenecks, and much faster iterations.</P><H2 id="toc-hId-1368791497"><STRONG>Step 1: Reality-first message mining with Robotic Crawler</STRONG></H2><P>Use the <STRONG>Int4 Robotic Crawler</STRONG> to load hundreds or thousands of real historical messages (EDI or otherwise) into Int4 Suite. These are not toy examples — they’re your actual outbound payloads as they once moved through production.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Robotic_Crawler.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/321917i97866240497CF8B0/image-size/medium?v=v2&px=400" role="button" title="Robotic_Crawler.png" alt="Robotic_Crawler.png" /></span></P><P>Figure - Int4 Suite Robotic Crawler can fetch EDI messages from any supported archive or integration platform on mass scale </P><P><STRONG>Why it matters:</STRONG> Consultants can work with authentic data, not spec sheets or made-up test cases.</P><H2 id="toc-hId-1172277992"><STRONG>Step 2: Conversational selection of test cases</STRONG></H2><P>Functional consultants don’t need to master payload filtering. Instead, they can simply chat with the agent to select which messages they want to test.</P><P>Want to see all outbound orders from a specific customer? Or deliveries with a particular Incoterm? Just ask the agent.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Select_Message.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/321918i0F9347CA00B3AFEC/image-size/large?v=v2&px=999" role="button" title="Select_Message.png" alt="Select_Message.png" /></span></P><P>Figure - select a historical EDI messages using different criteria (business document, partner, material, etc.) and use this data for testing </P><P><STRONG>Why it matters:</STRONG> Test-case discovery becomes intuitive, not a technical exercise.</P><H2 id="toc-hId-975764487"><STRONG>Step 3: Reconstruct SAP business objects from payloads</STRONG></H2><P>Once a message is selected, the consultant can instantly <STRONG>recreate a business document</STRONG> (e.g., a Sales Order) inside S/4HANA using the data from that outbound message.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="va01_order.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/321922i5C8342C0A127DC10/image-size/large?v=v2&px=999" role="button" title="va01_order.png" alt="va01_order.png" /></span></P><P>Figure - creating a sales order using the data from the historical EDI message as input </P><P>Now you have a living document in S/4HANA, built directly from the same payload your partners receive.</P><P>Why it matters: Consultants can validate the end-to-end logic of their own functional processes, with no dependency on integration experts.</P><H2 id="toc-hId-779250982"><STRONG>Step 4: Agentic comparison of original vs. new outbound message</STRONG></H2><P>After posting the new Sales Order (or Delivery, or Invoice), the consultant sends the <STRONG>newly generated outbound reference</STRONG> back to the AI agent. The agent compares this outbound message to the original one from Step 1.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Change_reference.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/321924i87421C2FA0E542D9/image-size/large?v=v2&px=999" role="button" title="Change_reference.png" alt="Change_reference.png" /></span></P><P>Figure - use the historical EDI message to compare with the new one and fetch is by just supplying the new order reference number </P><P>Are they still identical? Has anything in S/4HANA configuration changed the outbound structure? Did the partner-facing fields remain untouched?</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="validate_EDI.png" style="width: 804px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/321927i3147647BF9891CE8/image-size/large?v=v2&px=999" role="button" title="validate_EDI.png" alt="validate_EDI.png" /></span></P><P>Figure - display the comparison of the two EDI messages (original and the new one) to fix any SAP S/4HANA configuration issues (like line item category determination, substitutions, calculations, etc.) </P><P><STRONG>Why it matters:</STRONG> Consultants get a precise answer immediately, without needing to export messages into external systems or call for backup.</P><P><STRONG>Who benefits from this approach?</STRONG></P><UL><LI><STRONG>Functional consultants</STRONG> in SAP S/4HANA Greenfield or Selective Data Transition projects who must ensure message stability despite deep process changes.</LI><LI><STRONG>Project teams</STRONG> that want faster, independent validation without pulling scarce EDI resources.</LI><LI><STRONG>Business stakeholders</STRONG> who need assurance that partners will keep receiving the same documents as before, no surprises.</LI></UL><P><STRONG>Who is this <EM>not</EM> for?</STRONG></P><UL><LI><STRONG>Integration consultants</STRONG> looking to stress-test iFlows or middleware mappings — this isn’t their playground. Int4 Suite has other features to facilite those requirements.</LI><LI><STRONG>EDI providers</STRONG> who validate full partner connectivity, that’s still their domain.</LI><LI><STRONG>Pure developers</STRONG> focused on code-level regression, this approach is tailored for business-facing validation.</LI></UL><H2 id="toc-hId-582737477"><STRONG>Why it matters for S/4HANA programs where EDI messages remain the same but SAP S/4HANA can change? </STRONG></H2><P>Outbound interfaces are always the fragile bridge in any migration. By equipping functional consultants with agentic AI validation, you:</P><UL><LI>Shorten test cycles.</LI><LI>Reduce reliance on external partners.</LI><LI>Increase confidence in project quality.</LI></UL><P>Outbound messages stay consistent, partners stay happy, and your SAP S/4HANA Greenfield program keeps its velocity.</P><P>This approach isn’t about replacing integration experts — it’s about <STRONG>freeing functional consultants</STRONG> to independently confirm that what leaves the system is still what the outside world expects. It’s the missing puzzle piece for smooth, low-friction interface validation in SAP transformations.</P><P> </P>2025-10-01T11:01:36.832000+02:00https://community.sap.com/t5/enterprise-resource-planning-blog-posts-by-members/int4-suite-agents-empowers-functional-consultants-to-test-integrated-sap-s/ba-p/14234100Int4 Suite Agents Empowers Functional Consultants To Test Integrated SAP S/4HANA Business Processes2025-10-03T11:41:59.491000+02:00MichalKrawczykhttps://community.sap.com/t5/user/viewprofilepage/user-id/45785<H2 id="toc-hId-1761875137">Introduction </H2><P>Integrated business processes are the bloodstream of SAP systems. Every Sales Order, Purchase Order, Delivery, and Invoice has to flow smoothly, not just within SAP, but across EDI partners (customer, vendors, 3PL partners) banks, warehouses, tax portals.</P><P>Here’s the paradox: SAP S/4HANA projects have plenty of sophisticated automation tools, but they <STRONG>rarely help functional consultants in their manual tests</STRONG>. Instead, those tools get pushed into the narrow niche of automation testers. Functional consultants treat them like mythical dragons, complicated, dangerous, and likely to drag them away from their real work into procedural swamps.</P><P>The result? Slow testing cycles, dependency on integration specialists, and endless waiting for external partners to provide messages or confirmations.</P><H2 id="toc-hId-1565361632"><STRONG>Changing the story with simulation agents</STRONG></H2><P>The better path is not to force functional consultants into scripting or automation frameworks, but to give them <STRONG>simulation agents</STRONG> that mimic the system environment.</P><P>Instead of saying: <EM>“learn a test framework and run automated scripts,” </EM>we can say: <EM>“here are agents that simulate your missing EDI partner, your unavailable 3rd party/legacy system and you can test with them right now.”</EM></P><P>This changes the game:</P><UL><LI>No competition with automation teams.</LI><LI>No learning curve with complex frameworks and procedural delays.</LI><LI>Consultants get something they instantly understand: <STRONG>realistic test conditions on demand, using actual historical production data.</STRONG></LI></UL><H2 id="toc-hId-1368848127"><STRONG>How Int4 Suite Agents Work</STRONG></H2><P>With Int4 Suite, simulation agents provide a simple interface: the consultant performs the transaction in SAP, the agent feeds in authentic historical test data, and then automatically checks whether the newly generated EDI or non-EDI message matches what was sent in production.</P><P>Below are examples of key agents and how they fit into typical integrated OTC and P2P processes</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Agents.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/322568iEB56C9B840B5AB9A/image-size/large?v=v2&px=999" role="button" title="Agents.png" alt="Agents.png" /></span></P><P>Figure - meet the Int4 Suite Agents </P><H3 id="toc-hId-1301417341"><STRONG>EDI Partner Agent (based on historical data)</STRONG></H3><P><STRONG>Role:</STRONG> Replays authentic production EDI messages from trading partners (ORDERS, DESADV, INVOIC).</P><P><STRONG>How it works:</STRONG></P><UL><LI>Consultant performs the transaction in SAP (e.g., creates delivery, sends invoice).</LI><LI>Agent provides historical test data from previously exchanged documents.</LI><LI>Agent automatically compares the newly generated EDI message with the production one for a similar case.</LI></UL><P><STRONG>OTC examples:</STRONG></P><UL><LI>Consultant in the OTC team replays historical <STRONG>ORDERS</STRONG> from the largest customer and verifies whether, after pricing condition changes, the system still calculates correctly.</LI><LI>Consultant tests goods receipt with historical <STRONG>DESADV</STRONG> data; agent compares the new EDI message against the production one.</LI><LI>Consultant issues a sales invoice (<STRONG>INVOIC</STRONG>) and agent validates it against the original production invoice, checking VAT rules.</LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Select_Message_with_MatNR.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/322531i577899AB75CC39FB/image-size/large?v=v2&px=999" role="button" title="Select_Message_with_MatNR.png" alt="Select_Message_with_MatNR.png" /></span></P><P>Figure - Select Historical EDI messages from Production system which need to be rerun on Test System </P><P><STRONG>P2P examples:</STRONG></P><UL><LI>Consultant creates a purchase order; agent provides a historical <STRONG>ORDRSP</STRONG> where the supplier delivered partially, then compares the new outbound message.</LI><LI>Agent simulates a supplier <STRONG>INVOIC</STRONG> and verifies whether workflows behave the same after configuration changes.</LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="change_data_for_Each_message.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/322532iA3CB0B92921AF310/image-size/large?v=v2&px=999" role="button" title="change_data_for_Each_message.png" alt="change_data_for_Each_message.png" /></span></P><P>Figure - manipulate the historical/production landscape EDI message data before sending that to the test environment</P><H3 id="toc-hId-1104903836"><STRONG>Unavailable System Agent (Non-SAP)</STRONG></H3><P><STRONG>Role:</STRONG> Simulates external systems (banks, customs, WMS/TMS, tax portals) with historical production communications.</P><P><STRONG>How it works:</STRONG></P><UL><LI>Consultant runs the business process in SAP.</LI><LI>Agent injects historical test data from the external system.</LI><LI>Agent compares the new outbound message with the original production one.</LI></UL><P><STRONG>OTC examples:</STRONG></P><UL><LI>Consultant tests e-invoicing using a historically rejected invoice; agent checks whether the new output matches the original and if the new rules handle it.</LI><LI>Consultant tests shipment confirmations with historical WMS responses.</LI></UL><P><STRONG>P2P examples:</STRONG></P><UL><LI>Consultant tests bank payments; agent supplies historical payment files and checks the new output structure.</LI><LI>Consultant tests tax submissions; agent provides historical records and compares new vs. old messages.</LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Display_the_EDI_Data_for_test.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/322533i24936AE9F9E8CEDC/image-size/large?v=v2&px=999" role="button" title="Display_the_EDI_Data_for_test.png" alt="Display_the_EDI_Data_for_test.png" /></span></P><P>Figure - Display the historical EDI data used on production landscape before rerunning that on the test environment </P><H3 id="toc-hId-908390331"><STRONG>Historical Data Agent</STRONG></H3><P><STRONG>Role:</STRONG> The production message librarian, replays large volumes or special cases directly from production.</P><P><STRONG>How it works:</STRONG></P><UL><LI>Consultant triggers transactions in SAP (bulk orders, invoices, returns).</LI><LI>Agent provides the historical payloads.</LI><LI>Agent verifies test messages against the production equivalents.</LI></UL><P><STRONG>OTC examples:</STRONG></P><UL><LI>Consultant replays a “Black Friday” scenario with 10,000 <STRONG>ORDERS</STRONG>; agent validates each new EDI message against its production twin.</LI><LI>Consultant tests credit memo flows from historical complaint cases.</LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="run_all_test_cases.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/322534i9D036A8DB1F8EC62/image-size/large?v=v2&px=999" role="button" title="run_all_test_cases.png" alt="run_all_test_cases.png" /></span></P><P>Figure – run many historical messages on the test environment for bulk testing purposes </P><P><STRONG>P2P examples:</STRONG></P><UL><LI>Consultant tests bulk supplier invoices; agent validates the outputs against production.</LI><LI>Consultant tests blocked spare-parts orders with historical references.</LI></UL><H3 id="toc-hId-711876826"><STRONG>Integration Consultant Agent</STRONG></H3><P><STRONG>Role:</STRONG> A technical assistant that retrieves and compares messages from middleware layers (PI/PO, CPI).</P><P><STRONG>How it works:</STRONG></P><UL><LI>Consultant executes the business process in SAP.</LI><LI>Agent fetches the historical integration payload.</LI><LI>Agent highlights differences between new and historical messages.</LI></UL><P><STRONG>OTC examples:</STRONG></P><UL><LI>Consultant creates a sales order; agent compares the IDoc/XML message with the historical SAP Integration Suite payload.</LI><LI>Agent highlights mapping differences at field level after configuration changes.</LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="validate_EDI.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/322535i531DC430CE0A96BA/image-size/large?v=v2&px=999" role="button" title="validate_EDI.png" alt="validate_EDI.png" /></span></P><P>Figure – fetch an EDI payload produced by the integration platform (SAP Integration Suite, etc.) from a newly created business document and compare with the historical one from the production landscape without asking SAP Integration Consultant for help </P><P><STRONG>P2P examples:</STRONG></P><UL><LI>Consultant enters a supplier invoice; agent pulls historical Ariba-CPI payload and checks consistency.</LI><LI>Agent validates purchase order messages across production and test runs.</LI></UL><H2 id="toc-hId-386280602"><STRONG>Why it matters for SAP S/4HANA projects</STRONG></H2><P>In S/4HANA transformations, the external world doesn’t care about your internal redesigns. Customers, suppliers, and banks still expect exactly the same messages they used to get. Outbound and inbound interfaces are fragile bridges that must remain stable.</P><P>By equipping functional consultants with Int4 Suite agents:</P><UL><LI>Test cycles shorten dramatically.</LI><LI>Reliance on external partners and scarce integration resources drops.</LI><LI>Confidence in end-to-end quality rises.</LI></UL><P>This isn’t about replacing automation experts or integration teams. It’s about enabling functional consultants to independently confirm that what leaves SAP (or comes into it) is still what the outside world expects.</P><P>It’s the missing puzzle piece for smooth, low-friction testing of integrated business processes in SAP transformations.</P><H2 id="toc-hId-189767097">More information: </H2><DIV class=""><A class="" href="https://community.sap.com/t5/enterprise-resource-planning-blog-posts-by-members/agentic-ai-testing-for-greenfield-s-4hana-outbound-interfaces-part-1/ba-p/14232427" target="_blank">Agentic AI Testing for Greenfield S/4HANA Outbound Interfaces - Part 1</A></DIV><DIV class=""><A class="" href="https://community.sap.com/t5/enterprise-resource-planning-blog-posts-by-members/int4-suite-your-sap-joule-testbed-and-skills-builder/ba-p/14229790" target="_blank">Int4 Suite — your SAP Joule testbed and skills builder</A></DIV><DIV class=""><A class="" href="https://community.sap.com/t5/technology-blog-posts-by-members/process-aware-agentic-testing-of-sap-with-int4-suite/ba-p/14196856" target="_blank">Process-Aware Agentic Testing of SAP with Int4 Suite</A></DIV><DIV class=""><A class="" href="https://community.sap.com/t5/technology-blog-posts-by-members/agentic-testing-and-simulation-with-int4-suite-s-sap-business-knowledge/ba-p/14076453" target="_blank">Agentic Testing and Simulation with Int4 Suite's SAP Business Knowledge Graph</A></DIV><DIV class=""> </DIV><P> </P>2025-10-03T11:41:59.491000+02:00https://community.sap.com/t5/technology-blog-posts-by-sap/taking-control-of-clean-core-when-to-use-project-kernseife-in-addition-to/ba-p/14258229Taking Control of Clean Core: When to Use Project Kernseife in addition to Standard SAP Tools2025-11-04T13:58:13.826000+01:00LBretschneiderhttps://community.sap.com/t5/user/viewprofilepage/user-id/14226<H2 id="toc-hId-1763842375">TL;DR</H2><P>Measuring SAP Clean Core involves a choice:</P><UL><LI>As a RISE with SAP customer, you can benefit from the out-of-the-box standard approach with SAP Cloud ALM. The RISE with SAP Methodology Dashboard provides you with a high-level standardized view with minimal effort.</LI><LI>Or you can choose an open-source, highly flexible, and customizable approach with Project Kernseife. You get custom classification to create actionable insights, but it requires ownership and additional effort.</LI></UL><P>This article will help you decide which path is right for your team's Clean Core journey.</P><H2 id="toc-hId-1567328870">How the RISE with SAP Methodology Dashboard measures Clean Core</H2><P><SPAN>SAP's answer on how to measure clean core is based on two standard tools: The ABAP Test Cockpit (ATC) (and its newly released checks as from SAP Note <A href="https://me.sap.com/notes/3565942" target="_self" rel="noopener noreferrer">3565942</A>) and the RISE with SAP Methodology Dashboard in SAP Cloud ALM.</SPAN></P><P>The process begins with the ATC, which analyzes your custom code against a well-defined set of rules. The key to this analysis is the classification of your<SPAN> </SPAN><STRONG>custom extensions</STRONG><SPAN> </SPAN>based on the official release status of the standard SAP objects they utilize. This release information is transparently published by SAP in the <STRONG>Cloudification Repository</STRONG><SPAN> </SPAN><STRONG><A href="https://sap.github.io/abap-atc-cr-cv-s4hc/" target="_self" rel="nofollow noopener noreferrer">(Viewer)</A></STRONG>.</P><P>As described in more detail in the<SPAN> </SPAN><STRONG><A href="https://www.sap.com/documents/2024/09/20aece06-d87e-0010-bca6-c68f7e60039b.html" target="_blank" rel="noopener noreferrer">Clean Core Extensibility Whitepaper</A></STRONG><SPAN> </SPAN>(see chapter 3.3), the ATC assigns your extension a level based on the most critical SAP object it utilizes:</P><UL><LI><STRONG>Level A - </STRONG>For extensions using only stable,<SPAN> </SPAN><STRONG>released objects</STRONG>, ensuring maximum upgrade security.</LI><LI><STRONG>Level B</STRONG><SPAN> <STRONG>- </STRONG></SPAN>For extensions whose most critical dependency is a<SPAN> </SPAN><STRONG>classic API</STRONG><SPAN> </SPAN>like a BAPI or classic technical frameworks.</LI><LI><STRONG>Level C</STRONG><SPAN> <STRONG>- </STRONG></SPAN>For extensions touching any unreleased,<SPAN> </SPAN><STRONG>internal SAP objects</STRONG>.</LI><LI><STRONG>Level D - </STRONG>For extensions using objects that are explicitly<SPAN> </SPAN><STRONG>not recommended</STRONG>.</LI></UL><P>The results of this structured analysis can then be uploaded to SAP Cloud ALM, populating the<SPAN> </SPAN><STRONG>Clean Core Extensibility KPIs in the RISE with SAP Methodology Dashboard</STRONG>. Recently, the dashboard was enhanced with a display of the <A href="https://community.sap.com/t5/enterprise-resource-planning-blog-posts-by-sap/new-clean-core-extensibility-kpis-arrive-on-the-rise-with-sap-dashboard/ba-p/14257352" target="_self">Clean Core Levels</A>. This gives organizations a high-level, standardized view of their extensibility landscape, which is perfect for assessing their current situation and tracking progress. For the near future (Q1/2026) it is moreover planned to offer a deep dive dashboard that provides further details about the results.</P><H2 id="toc-hId-1370815365"><SPAN>What is "Project Kernseife"?</SPAN></H2><P><SPAN>Project Kernseife is an open-source custom ATC Check for ABAP systems that enables you to </SPAN>flexibly <SPAN>score the usage of SAP objects in your system, e.g. to score the technical debt regarding clean core based on a custom, adjustable classification. More details on the parts and approach can be found in the blog <STRONG>"<A class="" href="https://community.sap.com/t5/technology-blog-posts-by-sap/project-kernseife-improving-the-measurement-of-clean-core-in-abap/ba-p/14099819" target="_blank">Project Kernseife - improving the measurement of Clean Core in ABAP</A>"</STRONG>.</SPAN></P><H2 id="toc-hId-1174301860"><SPAN>Why Project Kernseife and its custom classification can be a Game-Changer for Clean Core Governance</SPAN></H2><H3 id="toc-hId-1106871074"><SPAN>Advantage 1: Fine-Tune SAP's Rules & Reduce "False Positives"</SPAN></H3><P><SPAN>While SAP delivers thousands of released and classic APIs, it might still be not the perfect fit for your </SPAN>individual <SPAN>project and scope. Kernseife allows you to <STRONG>customly classify</STRONG> objects as "acceptable for your project", dramatically reducing noise and the need for mass ATC exemptions. </SPAN><SPAN>Let's look into two </SPAN>different scenarios, to show you the benefits of <SPAN>custom classification:</SPAN></P><H4 id="toc-hId-1039440288"><SPAN>Example 1: Stricter governance for direct table read</SPAN></H4><P><SPAN>Within the standard classification, a direct read with a <FONT face="courier new,courier">SELECT</FONT> from any SAP table is considered as "Level C", which leads to warnings in ABAP Test Cockpit. In your project, you want to enforce the usage of ABAP cloud, you maybe have (see next point) identified many successor objects (custom and standard) and want to push developers to the successors objects (e.g., famous <FONT face="courier new,courier">I_Product</FONT> instead of <FONT face="courier new,courier">MARA</FONT>) by showing these as an <STRONG><EM>error</EM></STRONG>.<BR /><EM>Remark:</EM> In standard ATC, you can adjust the priority of a check message in general (for example "<EM>Reading from DDIC database tables or DDIC table views is not recommended (successor available)</EM>", but not based on specific SAP objects you refer to.</SPAN></P><H4 id="toc-hId-842926783"><SPAN>Example 2: Need <FONT color="#000000">for </FONT>usage of "internal object"</SPAN></H4><P>Now let's imagine you are working in a "clean core" project, but you need to extend processes around the Outbound Delivery Orders in EWM. After talking to experts, finding <A href="https://community.sap.com/t5/supply-chain-management-blog-posts-by-sap/extended-warehouse-management-in-sap-s-4hana-faq-series-update-on-the-new/ba-p/14035555" target="_self">blog posts</A> and even an "official" <A href="https://me.sap.com/notes/3078938" target="_self" rel="noopener noreferrer">SAP Note,</A> you identified the right interface: <STRONG><FONT face="courier new,courier">/SCWM/IF_API_WHR_OUTBOUND</FONT>.</STRONG> Unfortunately, this is not yet <A href="https://sap.github.io/abap-atc-cr-cv-s4hc/?q=%2FSCWM%2FIF_API_WHR_OUTBOUND" target="_self" rel="nofollow noopener noreferrer">listed</A> as released or classic API. This would result in "warnings" in ATC and a classification as Level C ("Internal Objects" are used), although you did the best you can do. With Kernseife, you can now mark this SAP object as "recommended", which results in only "information" messages in ATC and leads to a "Level B" assessment of the custom code object / extension.</P><P>Based on these <STRONG>two examples</STRONG>, you can see: this is the power of a custom classification. You can overrule the SAP standard, be it because of timing (as you need the announced adjustments from the blog IMMEDIATELY) or scope (because SAP might not generally classify everything that you identify as "<EM><STRONG>acceptable for your project</STRONG></EM>" as "<EM>Classic API</EM>").</P><P>The possibility to "accept" usage of certain SAP objects will <STRONG>increase your governance quality</STRONG>, as your exemption approvers will <U>not</U> be flooded with hundreds of "false" exemption requests for objects that you generally accept in your project.</P><H3 id="toc-hId-517330559"><SPAN>Advantage 2: Define and Enforce Custom Successors</SPAN></H3><P><SPAN>While SAP is already delivering hundreds of the most important successor classifications (famous <A href="https://sap.github.io/abap-atc-cr-cv-s4hc/?states=notToBeReleased&objectTypes=TABL&q=MARA" target="_self" rel="nofollow noopener noreferrer">MARA -> I_Product</A>), there might still be potential to guide your developers more precisely. Project Kernseife allows you to maintain a successor object in your classification, that will also be visible in the result of your ATC check - this makes it <STRONG>actionable</STRONG> for your developer!<BR /></SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="LBretschneider_0-1761950462590.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/334863i7963002EEED25140/image-size/medium?v=v2&px=400" role="button" title="LBretschneider_0-1761950462590.png" alt="LBretschneider_0-1761950462590.png" /></span></P><P> </P><H4 id="toc-hId-449899773"><SPAN>Example 1: "Improve" Standard Successors</SPAN></H4><P>There are some more tables in the system, that have no successor mentioned officially, but where you can find (released!) CDS views as an alternative. To not flood you with details here, I simply refer to another <A href="https://community.sap.com/t5/technology-blog-posts-by-sap/how-to-find-a-cds-view-for-a-classic-table-in-abap-cheat-sheet/bc-p/14232964" target="_self">blog</A> based on the idea of <a href="https://community.sap.com/t5/user/viewprofilepage/user-id/1086">@AndreasGraeber</a>. But also for Function Modules or classes , there might be clear successors (e.g. not all READ_<table> might be having the successor information. There might be a lot of areas, where you want to decide in your project <EM>"don't use this, but use that!"</EM></P><H4 id="toc-hId-253386268"><SPAN>Example 2: Enforce and centralize Wrappers / custom successors</SPAN></H4><P>What happens if you create a wrapper for a standard SAP object, but your colleagues are not aware of it? They might re-create the same wrapper. With the possibility to also add Custom Objects (e.g. Z_WRAPPER_ABC) as a successor, you can also push your developers to harmonize the usage of wrappers.</P><H3 id="toc-hId--147441325"><SPAN>Advantage 3: Enhance Dashboards for Measurement and Governance with consistent transparency</SPAN></H3><P>In several projects, we have already seen<SPAN> custom dashboards to track the current state of clean core. With the combination of the level concept and the "Technical Debt Score", you can assess systems and drill down into packages or even single objects.</SPAN></P><P><SPAN>Project Kernseife offers you direct access (e.g. with CDS-View <FONT face="courier new,courier">ZKNSF_I_SCORING</FONT>) to the data from ATC check runs to build these dashboards. You can use the Kernseife BTP Application to analyze your score - or create your own dashboard, for example with SAP Analytics Cloud, reflecting your custom rules to assign custom objects to business units (e.g. ZBR* is always Brasil).</SPAN></P><P><SPAN>The scoring is based on your configuration in the Kernseife classification, </SPAN>which allows you to own the definition of your clean core levels and deviate from SAP's standard definition - <SPAN>by this you own the definition of your clean core levels! To stick with the examples above, the usage of <STRONG><FONT face="courier new,courier">/SCWM/IF_API_WHR_OUTBOUND </FONT></STRONG></SPAN>will impact your score in a limited way.</P><H3 id="toc-hId--343954830"><SPAN>Advantage 4: <STRONG>Prioritize Your Cleanup Efforts with a "Potential Score"</STRONG></SPAN></H3><P>After an analysis, you often face a daunting list of findings. The biggest challenge isn’t just identifying the issues, but knowing<SPAN> </SPAN><STRONG>where to start</STRONG><SPAN> </SPAN>the cleanup. This is where Kernseife's scoring mechanism becomes a powerful prioritization engine by providing two key metrics for each finding: a<SPAN> </SPAN><EM>Score</EM><SPAN> </SPAN>and a<SPAN> </SPAN><EM>Potential Score</EM>.</P><UL><LI>The<SPAN> </SPAN><STRONG>Score</STRONG><SPAN> </SPAN>reflects the technical debt of the object as it exists today, based on your custom rules.</LI><LI>The<SPAN> </SPAN><STRONG>Potential Score</STRONG><SPAN> </SPAN>shows what the score<SPAN> </SPAN><EM>would be</EM><SPAN> </SPAN>if the developer refactored the code to use the defined successor.</LI></UL><P>Let's use our familiar example:</P><UL><LI>Your classification assigns a high "Technical Debt"<SPAN> </SPAN><STRONG>Score of 10</STRONG><SPAN> </SPAN>for a direct<SPAN> </SPAN><CODE>SELECT</CODE><SPAN> </SPAN>on table<SPAN> </SPAN><CODE>MARA</CODE>.</LI><LI>The officially released successor,<SPAN> </SPAN><CODE>I_Product</CODE>, has a "clean" score of 0. Therefore, the finding's<SPAN> </SPAN><STRONG>Potential Score is 0</STRONG>.</LI></UL><P>This creates a clear, quantifiable "improvement gap." An object with a Score of 10 and a Potential Score of 0 is a high-impact cleanup opportunity. In contrast, a finding with a Score of 2 and no defined successor (meaning its Potential Score is also 2) is a lower priority for immediate refactoring.</P><P>By sorting your findings based on the largest gap between the Score and Potential Score, you can instantly identify the "low-hanging fruits" and the refactoring tasks with the biggest impact. Let's be clear, this is just one piece of information, and maybe you shouldn't have any custom code in this area based on a process analysis, but I still believe it is important to have data to drive your decisions - and Project Kernseife offers you data for the <EM>technical</EM> insights.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="LBretschneider_1-1761950971702.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/334864iA8CA38A29D2EBD95/image-size/large?v=v2&px=999" role="button" title="LBretschneider_1-1761950971702.png" alt="LBretschneider_1-1761950971702.png" /></span></P><H2 id="toc-hId--247065328"><SPAN>Making the Right Choice: A Balanced Look at Both Approaches</SPAN></H2><H3 id="toc-hId--736981840"><SPAN>Key Reasons to Adopt Project Kernseife</SPAN></H3><P><SPAN>The main reason to use a Project Kernseife is typically the power of the custom classification (as the last chapter pointed out). You can adjust the classification of SAP objects based on your project reality and support your clean core journey with tailored data.</SPAN></P><P><SPAN>In addition, there might be a temporary, tactical benefit: As of today, Kernseife's dashboards can fill a gap until SAP's "Extensibility Deep Dive" dashboard is generally available. </SPAN></P><H3 id="toc-hId--933495345"><SPAN>Important Considerations: When the Standard Approach is a Better Fit</SPAN></H3><P>At the same time, I want to be very clear: Project Kernseife is <STRONG>not</STRONG> needed in every company and project.</P><UL><LI><STRONG>1. The Need for Standard Alignment:</STRONG><SPAN> </SPAN>If your primary goal is to align perfectly with SAP's out-of-the-box reporting and dashboards without deviation, the standard approach is more appropriate.</LI><LI><STRONG>2. The Responsibility of Power:</STRONG><SPAN> </SPAN>Custom classification is powerful, but it requires ownership. Someone must define, document, and maintain these custom rules. This is an ongoing responsibility (and effort!), which you can spare yourself when you go with the standard solution, i.e. RISE with SAP Methodology Dashboard.</LI><LI><STRONG>3. Implementation and Maintenance Overhead:</STRONG><SPAN> </SPAN>While straightforward for experienced teams, implementing and maintaining any non-standard solution requires effort that must be planned for. It is ironically against the clean core imperative of leveraging "standard"!</LI><LI>4. <STRONG>Unified Classification enables comparibility:</STRONG> Standardized classification leads to a comparability between different systems (e.g., you compare your central finance system with a peer system regarding the clean core level share), as the classification is the same for all systems.</LI></UL><H2 id="toc-hId--836605843"><SPAN>Conclusion: Do you need to Take Control of Your Clean Core Strategy?</SPAN></H2><P><SPAN>Project Kernseife is not for everyone. It is for organizations that find the standard clean core measurement too rigid and are ready to invest the effort to build a more nuanced, context-aware governance model. If you have the capacity and the architectural vision, it can transform your clean core initiative from a technical cleanup exercise into a strategic management of your system's extensibility.</SPAN></P><P><SPAN>Interested in more? Check out <A href="https://github.com/SAP/project-kernseife/" target="_self" rel="nofollow noopener noreferrer">Project Kernseife</A>: our open-source project where you can join the community, contribute, and support us with a GitHub star in the repository! </SPAN></P>2025-11-04T13:58:13.826000+01:00https://community.sap.com/t5/technology-blog-posts-by-members/you-are-standing-in-an-open-field-inside-sap-gui/ba-p/14287253You Are Standing in an Open Field... Inside SAP GUI2025-12-09T17:51:44.456000+01:00Alice_Vhttps://community.sap.com/t5/user/viewprofilepage/user-id/609259<P class=""><EM><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="unnamed (4).jpg" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/350411i159705E00B82B76C/image-size/large?v=v2&px=999" role="button" title="unnamed (4).jpg" alt="unnamed (4).jpg" /></span></EM></P><P> </P><P class=""><EM>How I ported Zork to ABAP in one day and made 46-year reunion of two mainframe legends possible.</EM></P><P class="">1979 was quite a year for the mainframe: In Germany, <STRONG>SAP </STRONG>released <STRONG>R/2</STRONG>, the integrated ERP system that would define enterprise computing. In Massachusetts, <STRONG>Infocom </STRONG>was founded to commercialize <STRONG>Zork</STRONG>, the text adventure born on MIT's PDP-10 mainframes.</P><P class="">For 46 years, they ran on parallel tracks. Until last month.</P><P class=""><STRONG>Microsoft </STRONG><A class="" href="https://opensource.microsoft.com/blog/2025/11/20/preserving-code-that-shaped-generations-zork-i-ii-and-iii-go-open-source" target="_self" rel="nofollow noopener noreferrer">released the original source code</A> for Zork I. The stars aligned. It was time for a family reunion.</P><P class="">I got nostalgic. I wanted to play Zork I: The Great Underground Empire. But I didn't want to play it in a browser or a terminal. I wanted to play it where I spend my time: In SAP GUI.</P><P class="">So, I decided to port the Z-Machine (Infocom's Virtual Machine) into SAP S/4HANA.</P><P class="">The Z-Namespace destiny... you knew it. In SAP development, every custom object must start with the letter Z: <EM>(Also Y, but Y is not used widely. And no one knows why Y is not used)</EM></P><UL><LI>The Machine: <STRONG>Z</STRONG>-Machine.</LI><LI>The Transaction: ZORK.</LI><LI>The Package: $ZORK.</LI></UL><P class="">So it felt like it was meant to be here.</P><H3 id="ember770" id="toc-hId-1895665953">Building a VM in One Day (The "How")</H3><P class="">"<EM>Alice</EM>," you say, "<EM>Writing a Virtual Machine in ABAP takes weeks of reading bit-level specs.</EM>"</P><P class="">It took <STRONG>one day</STRONG>.</P><P class="">And I wrote almost none of it:</P><DIV class=""> </DIV><DIV class=""><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ZORK T-CODE in SAP GUI" style="width: 872px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/350406i8DBE61F8B148BACE/image-size/large?v=v2&px=999" role="button" title="zork-abap.png" alt="ZORK T-CODE in SAP GUI" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">ZORK T-CODE in SAP GUI</span></span></DIV><H3 id="ember775" id="toc-hId-1699152448">99% Vibe coded</H3><P class="">I used <STRONG>VSP (Vibing-Steampunk)</STRONG> — my open-source bridge that gives <STRONG>Claude</STRONG> (or Copilot/Codex/Mistral Vibe - any other Assistant) direct access to the SAP system via MCP. I treated the AI not as a chatbot, but as a Senior ABAP Developer who loves retro specs.</P><P class="">Here is what happened when my Z-Machine crashed on the first turn:</P><P class=""><STRONG>Me:</STRONG> "It crashes when I try to LOOK. Plz <STRONG>debug</STRONG>."</P><P class="">Claude didn't guess. Using VSP, Claude:</P><P class=""> </P><OL><LI><STRONG>Set a breakpoint</STRONG> in the ABAP code.</LI><LI><STRONG>Ran the game</STRONG> inside SAP.</LI><LI><STRONG>Inspected the memory</STRONG> (finding a Big-Endian vs Little-Endian mismatch in the object table).</LI><LI><STRONG>Fixed the code.</STRONG></LI></OL><P> </P><P class="">This isn't just generating text. This is <STRONG>Digital Archaeology</STRONG> assisted by <STRONG>Artificial Intelligence</STRONG>.</P><H3 id="ember782" id="toc-hId-1502638943">Why This Matters</H3><P class="">I now have Zork running in S/4HANA.</P><P class="">But the real story isn't the game. It's the capability.</P><P class="">If an AI agent can read a 1980s technical spec, navigate a custom ABAP stack, and debug runtime errors to reunite two pieces of 1979 history...</P><P class="">...imagine what it can do for your 2005 legacy code ^_^ (Yes, even with ECC).</P><UL><LI>The Repo (ZORK-ABAP): <A class="" href="https://github.com/oisee/zork-abap" target="_self" rel="nofollow noopener noreferrer">https://github.com/oisee/zork-abap</A></LI><LI>The Tool (VSP): <A class="" href="https://github.com/oisee/vibing-steampunk" target="_self" rel="nofollow noopener noreferrer">https://github.com/oisee/vibing-steampunk</A> - ADT-to-MCP bridge.</LI></UL><P class=""><STRONG>Credits:</STRONG></P><UL><LI><STRONG>Infocom (1979)</STRONG> for the Z-Machine.</LI><LI><STRONG>SAP (1979)</STRONG> for the R/2 legacy that led us here.</LI><LI><STRONG>Graham Nelson </STRONG>for the Z-Machine Standards Document.</LI><LI><STRONG>Claude (2025)</STRONG> for writing the code.</LI></UL><P class=""><EM>P.S. West of House. There is a transport request here. </EM></P><P class="">#SAP #ABAP #Zork #RetroGaming #AI #MCP #DigitalArchaeology #OpenSource #Microsoft</P><P class="">Shout out to <A class="" href="https://www.linkedin.com/in/shanselman/" target="_blank" rel="noopener nofollow noreferrer">Scott Hanselman</A>: Tnx for driving Open Source initiative ^_^</P>2025-12-09T17:51:44.456000+01:00https://community.sap.com/t5/enterprise-resource-planning-blog-posts-by-sap/abap-platform-in-sap-s-4hana-cloud-private-edition-and-sap-s-4hana-2025/ba-p/14289979ABAP Platform in SAP S/4HANA Cloud Private Edition and SAP S/4HANA 20252025-12-14T23:10:11.122000+01:00OlgaDolinskajahttps://community.sap.com/t5/user/viewprofilepage/user-id/6638<P>SAP S/4HANA Cloud Private Edition and SAP S/4HANA 2025 were released to the SAP customer base on October 8, 2025.</P><P>ABAP Platform 2025 is the technology platform underlying the release 2025 of SAP S/4HANA Cloud Private Edition and SAP S/4HANA and is shipped as part of these products, supporting only SAP HANA database with full exploitation of its advanced capabilities. In addition, ABAP Platform 2025 is part of <A href="https://me.sap.com/notes/3568504/E" target="_self" rel="noopener noreferrer">SAP S/4HANA Foundation 2025</A> for SAP HANA-only Add-Ons.</P><P>ABAP Platform 2025 is not shipped as a standalone product. ABAP Platform 2025 consists of the AS ABAP, the ABAP development tools for Eclipse, and several additional technology components which are required to run SAP S/4HANA Cloud Private Edition and SAP S/4HANA.<BR /><BR />Previous versions of SAP S/4HANA Private Edition and SAP S/4HANA such as 1610, 1709, 1809, 1909, 2020, 2021, 2022 and 2023 can be upgraded directly to the 2025 release, which is based on ABAP Platform 2025 (corresponding to <SPAN><A href="https://help.sap.com/doc/abapdocu_latest_index_htm/latest/en-US/ABENNEWS-81.html" target="_blank" rel="noopener noreferrer">SAP_BASIS 816</A></SPAN>).</P><H2 id="toc-hId-1766649611"><FONT color="#3366FF">Product Highlights</FONT></H2><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="2025_abap_platform_highlights.jpg" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/351817i005DC626988E769A/image-size/large?v=v2&px=999" role="button" title="2025_abap_platform_highlights.jpg" alt="2025_abap_platform_highlights.jpg" /></span></P><H2 id="toc-hId-1570136106"><FONT color="#3366FF">Presentation</FONT></H2><P>This presentation provides the SAP official external slide deck, just click on it to view:</P><P><A title="ABAP Platform 2025 - Overview and Product Highlights" href="https://www.sap.com/documents/2025/12/a43c7800-317f-0010-bca6-c68f7e60039b.html" target="_blank" rel="noopener noreferrer"><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="abap_platform_2025.jpg" style="width: 723px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/351818i56128BEDA971EB19/image-dimensions/723x406?v=v2" width="723" height="406" role="button" title="abap_platform_2025.jpg" alt="abap_platform_2025.jpg" /></span></A></P><H2 id="toc-hId-1373622601"><FONT color="#3366FF">Overview</FONT></H2><P>ABAP Platform 2025 delivers innovations for the ABAP stack in different areas.</P><H3 id="toc-hId-1306191815"><FONT color="#666699">Clean core development</FONT></H3><P>In August 2025, SAP enhanced its extensibility guidelines by introducing the new <SPAN><A href="https://www.sap.com/documents/2024/09/20aece06-d87e-0010-bca6-c68f7e60039b.html" target="_blank" rel="noopener noreferrer">Clean core extensibility white paper</A></SPAN>. The sustainable and upgrade-safe ABAP extensibility model in SAP S/4HANA Cloud Private Edition and SAP S/4HANA fully relies on SAP clean core guiding principles, aiming to decouple custom extensions from SAP standard whenever possible. The refined SAP guidance for extensibility replaces binary clean core decisions with a more nuanced evaluation of classic ABAP extensions based on the clean core level concept. Evolving from the previous 3-tier model, the new extensibility model categorizes extensions into four levels (A, B, C, and D) and provides rules for ABAP classic extensions to meet the clean core level qualifications. Following this new clean core extensibility guidance the <SPAN><A href="https://www.sap.com/documents/2022/10/52e0cd9b-497e-0010-bca6-c68f7e60039b.html" target="_blank" rel="noopener noreferrer">ABAP extensibility guide</A></SPAN> was updated with technical guidelines to support the clean core level concept. The ABAP extensibility model was changed from 3-tier model to ABAP Cloud development (level A) and classic ABAP development (levels B, C and D).</P><P>The overall clean core guidance remained unchanged: always striving for the highest possible level of extensibility. ABAP Cloud is the SAP’s recommended development model for all new custom extensions in SAP S/4HANA private cloud and on-premise systems, whereby the classic ABAP extensibility can still be used to reach clean core, with a focus on upgrade-stability and code quality. This enables SAP customers and partners to transition to a clean core incrementally and at their own speed. SAP provides guidance for ABAP clean core development by offering a recommended list of APIs (so-called “classic APIs”) to be used in classic ABAP development. For governance of ABAP clean core development, the ABAP test cockpit (ATC) now supports the clean core level concept with new ATC checks (see the blog post <SPAN><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/abap-test-cockpit-atc-recommendations-for-governance-of-clean-core-abap/ba-p/14186130" target="_blank">ABAP test cockpit (ATC) recommendations for governance of clean core ABAP development</A></SPAN>). For governance of ABAP development for clean core in SAP S/4HANA private cloud or on-premise systems the remote <SPAN><A href="https://www.sap.com/documents/2025/11/38e238f7-2b7f-0010-bca6-c68f7e60039b.html" target="_blank" rel="noopener noreferrer">ATC in SAP BTP ABAP environment</A></SPAN> is the SAP recommended approach. </P><H3 id="toc-hId-1109678310"><FONT color="#666699"><STRONG>SAP Joule for Developers, ABAP AI capabilities</STRONG></FONT></H3><P>SAP Joule for Developers, ABAP AI capabilities are now key components and an integral part of AI-assisted ABAP Cloud development, also facilitating custom code transformation from ECC to SAP S/4HANA. The capabilities supporting developer tasks include Joule copilot in ABAP development tools for Eclipse, predictive code completion, code explanation and unit test generation for ABAP and ABAP CDS, app and service generation (including RAP BO generation), predictive business logic for RAP BOs, and OData consumption. The provided ABAP AI SDK, powered by Intelligent Scenario Lifecycle Management (ISLM), can be utilized for the implementation of AI capabilities in custom applications.</P><P>The custom code migration capabilities include docs chat for questions around custom code migration and S/4HANA simplifications, explanation of business purpose and processing logic of legacy code (ABAP reports), explanation of S/4HANA-related ATC findings in custom code, along with resolution recommendations based on S/4HANA simplification items and cookbooks (see the blog post <SPAN><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/sap-joule-for-developers-expands-to-private-cloud-accelerating-abap/ba-p/14237958" target="_blank">SAP Joule for Developers Expands to Private Cloud: Accelerating ABAP Innovation and Transformation</A></SPAN>).</P><H3 id="toc-hId-913164805"><FONT color="#666699"><STRONG>ABAP RESTful Application Programming Model (RAP)</STRONG></FONT></H3><P>Another major investment area in the 2025 release is the ABAP RESTful Application Programming Model, which powers modern development in both ABAP Cloud and classic ABAP, enabling the creation of delightful transactional SAP Fiori apps as well as local and web APIs. This release delivers new features to accelerate and enhance the development with RAP, including new generators to boost efficiency, support of CDS table entities as persistence layer, various capabilities for SAP Fiori elements-based UIs, such as collaborative draft, cross-BO scenarios, tree views, and event-driven side effects, as well as end-to-end extensibility options.</P><P>New ABAP Cloud generators for creating OData UI services with RAP BOs (with one or more entities) from scratch, with or without AI assistance, or for generating custom UI service based on RAP BO interface are provided. ABAP CDS table entities can be used as active persistence layer for managed RAP BOs without draft, replacing classic dictionary database tables.</P><P>Enhancements for building of SAP Fiori elements-based apps with RAP include the collaborative draft handling, which allows multiple users to work simultaneously and collaboratively on the same draft instance of an entity without blocking one another. You can now also build SAP Fiori UIs that use multiple RAP BOs interacting with each other. These cross-BO scenarios rely on cross-BO transactional enablement, where the entities of the participating RAP BOs are linked through so-called cross-BO associations. Read-only and editable tree view supports displaying and manipulating hierarchical data in SAP Fiori UIs, with options for drag and drop, cut and paste, reordering, and cascading delete. Event-driven RAP side effects enable asynchronous updates in SAP Fiori UIs. When such a specific RAP business event is raised, the associated side effect is triggered, and the defined targets are reloaded in the UI.</P><P>The privileged context can now be propagated in subsequent Entity Manipulation Language (EML) requests in reading and modifying operation. Further enhancement for the behavior definitions and the behavior pools are provided with this release.</P><H3 id="toc-hId-716651300"><FONT color="#666699"><STRONG>ABAP development tools for Eclipse (ADT)</STRONG></FONT></H3><P>Various enhancements are provided in ABAP development tools for Eclipse for ABAP development, RAP and ABAP CDS related development aspects, testing and troubleshooting, as well as overall IDE and productivity improvements.</P><P>Refactoring support for ABAP classes and interfaces was improved by activation of renaming changes by default, validation of new names and displaying long texts of exceptions. The new where-used dialog enables prefiltering of search results to focus on usages relevant for the concrete use case. There is a new property <EM>abaplv</EM> to filter object searches with the ABAP language version. There are new editors like for example for working with software component relations, Adobe Forms or maintaining intelligent scenarios and intelligent scenarios models which are required to run a solution based on generative AI. It is possible to create and edit CDS table entities and create for them behavior definitions.</P><P>In the area of ABAP unit tests, method calls in test classes can now be highlighted in different colors to distinguish their method contexts. Quick actions allow tests to be launched or templates for test classes to be inserted with a single mouse click. The failed assertions and status of test methods can be displayed directly in the source code editor. The unit tests can be rerun with coverage and coverage results can be cleared in the <EM>ABAP Coverage</EM> view. Additionally, there is a new AMDP Test Double Framework, and the CDS Test Double Framework now supports CDS hierarchy views.</P><P>In the ABAP debugger, it is now possible to display the memory consumption of a debugged ABAP program in the new <EM>ABAP Memory</EM> (Debugger) view. The <EM>ABAP Memory Snapshot</EM> view lists all memory snapshots, which can be opened in the editor to show memory objects ranked by size. These views make it easier to analyze the memory usage of an ABAP application. Internal tables can now be easily compared using the table comparison tool within the ABAP debugger. Beyond this, the ABAP debugger can now consider variables with hidden values (for sensitive data), display variables of type JSON, and show component groups for nested structures in the <EM>Variables</EM> view. Collaborative error analysis is supported by export/import of ABAP Cross Trace results to/from JSON file or export of short dumps as ZIP file in the <EM>ABAP Runtime Error Viewer</EM>.</P><P>Beyond this there are also enhancements in transport management for adding an object to a transport or searching and grouping transport requests.</P><H3 id="toc-hId-520137795"><FONT color="#666699"><STRONG>ABAP Language</STRONG></FONT></H3><P>The modern, declarative, and expression-oriented ABAP language allows writing simple and concise ABAP code through features such as inline declarations and constructor expressions. Advanced operations for internal tables include grouping, filtering, and the CORRESPONDING( ) operator. The cloud-optimized version “<EM>ABAP for Cloud Development</EM>” is used for ABAP Cloud development.</P><P>There are further enhancements for internal tables, including support for arbitrary logical expressions and equality conditions, as well as harmonization of table expressions and READ TABLE statement. <A href="https://community.sap.com/t5/technology-blog-posts-by-sap/random-numbers-and-probability-distributions-in-the-abap-environments-for/ba-p/14173266" target="_blank">New ABAP system classes for probability distributions</A> are provided, enabling the generation of random number and the calculation of quantile, probabilities, and other aspects. These classes support various discrete and continuous distributions. This release also delivers enhancements for expressions and functions, as well as for transformations, such as the new domain XSDGEO for serializing and deserializing spatial data between the Extended Well-Known Binary (EWKB) representation and the GeoJSON format.</P><H3 id="toc-hId-323624290"><FONT color="#666699"><STRONG>SAP HANA-centric optimizations & Data Integration scenarios</STRONG></FONT></H3><P>Modern ABAP development on SAP HANA has been enhanced with several advanced, database-centric features also enriching data integration scenarios. Recent innovations in data integration focus on data exposure, including ABAP-managed database procedures for advanced read scenarios. With CDS updatable view entities it is now possible to wrap existing DDIC database tables (or CDS table entities) and expose a native CDS signature, which can be used with ABAP SQL in combination with DCL-based access control. </P><P>On the consumption side, new write scenarios, the use of static CDS external entities, and the possibility to create ABAP CDS models based on imported CDS models make it easier than ever to integrate external data seamlessly into an ABAP CDS view stack.</P><P>Additional enhancements, such as CDS table entities to define and manage SAP HANA database tables as native CDS repository objects, a CDS generation wizard to simplify and automate the creation of hierarchically structured data in ABAP CDS, and AI-powered CDS Explain to get semantical context information about CDS entities further brighten the ABAP development landscape.</P><H3 id="toc-hId-127110785"><FONT color="#666699"><STRONG>Embedded analytics</STRONG></FONT></H3><P>For embedded analytics scenarios it is now possible to expedite development workflow using ABAP Cloud generator wizards for creation of multidimensional analysis apps, Review Booklet apps, or native CDS hierarchy definitions. With the introduction of reusable measures and filters, the key figures, measures, filters and many more features can now be defined centrally, based on user needs to better manage and align analytical reporting. They can also be utilized in CDS view entities to ensure homogenous definition of complex calculations and unification of coherences of the running business.</P><H3 id="toc-hId--144634089"><FONT color="#666699"><STRONG>Event Enablement & Business Events</STRONG></FONT></H3><P>The event-driven architecture of SAP S/4HANA Cloud Private Edition and SAP S/4HANA is strengthened, and the interoperability across enterprise solutions is improved through seamless integration with SAP Event Mesh Advanced Plan and support of SAP Cloud Application Event Hub to consume events published by SAP Order Management Foundation on SAP BTP.</P><P>The event-driven processing and monitoring was enhanced with new outbound event filtering, enabling selective publishing based on configurable criteria, and dynamic topics in SAP Event Mesh Advanced Plan for more efficient routing. Operational transparency was improved through comprehensive event logging, including local capture and logging of successfully processed events. Events of the same type and object within a session can now be grouped as activities, improving traceability and reducing monitoring noise. Together, these features provide a scalable and well-governed foundation for event-driven architecture.</P><H3 id="toc-hId--341147594"><FONT color="#666699"><STRONG>Process integration</STRONG><STRONG> & Connectivity</STRONG></FONT></H3><P>Key highlights of process integration include a robust OData service consumption model with Swagger UI preview and advanced OData V4 capabilities, such as bulk processing and asynchronous communication integrated with AIF. The API governance and communication management was enhanced by introducing Communication Targets within Communication Arrangements, enabling more granular control over connectivity endpoints. API lifecycle management is improved through API-to-package assignment and the ability to create API packages for better organization across API types. Additionally, OData-based access to Communication Management data increases automation, transparency, and integration with external tools.</P><P>Additional connectivity improvements include outbound communication enablement via HTTP and RFC, support for setting the AIR key as a custom HTTP header in SOAP requests for more secure message handling, direct push-based data exchange between ABAP systems via RFC, and SSE support in the ABAP HTTP client and server for efficient real-time event delivery in distributed scenarios.</P><H3 id="toc-hId--537661099"><FONT color="#666699"><STRONG>Key user extensibility</STRONG></FONT></H3><P>Further improvements are provided for key user extensibility. It is now possible to generate a Fiori elements application for a custom business object with just one click and maintain behavior extensions for SAP-provided RAP business objects using key user extensibility. Moreover, using developer extensibility it is now possible to implement feature control for custom fields that were created via the Custom Fields app. The new extension field wizard provides a better development efficiency by boosting the creation of custom fields via developer extensibility.</P><H3 id="toc-hId--734174604"><FONT color="#666699"><STRONG>Security</STRONG></FONT></H3><P>Key updates include support for OAuth Authorization Code with PKCE (RFC 7636) and JWT-based client authentication (RFC 7523), as well as SAP-managed client certificates for secure integration in S/4HANA Private Cloud (2025 FPS01). TLS 1.3 is now supported across HTTP, WebSocket RFC, and SMTP, with OAuth Client Credential Grant enabled for SMTP outbound scenarios such as Exchange Online.</P><P>Additional enhancements include new OpenID Connect features, improved troubleshooting guidance (SAP Note 3111813), and a new OAuth Client Configuration UI (SOAUTH_CLIENT) with built-in testing and token metadata display. </P><H2 id="toc-hId--637285102"><FONT color="#3366FF">Useful Blog Posts, Community pages and Learnings</FONT></H2><P>ABAP Community Topic Pages:</P><P><SPAN><A href="https://pages.community.sap.com/topics/abap" target="_blank" rel="noopener noreferrer">ABAP Development Community</A></SPAN><BR /><SPAN><A href="https://pages.community.sap.com/topics/abap-testing-analysis" target="_blank" rel="noopener noreferrer">ABAP Testing and Analysis Community </A></SPAN><BR /><SPAN><A href="https://pages.community.sap.com/topics/abap-extensibility" target="_blank" rel="noopener noreferrer">ABAP Extensibility Community</A></SPAN><BR /><SPAN><A href="https://pages.community.sap.com/topics/abap-connectivity" target="_blank" rel="noopener noreferrer">ABAP Connectivity Community</A></SPAN><BR /><SPAN><A href="https://pages.community.sap.com/topics/btp-abap-environment" target="_blank" rel="noopener noreferrer">SAP BTP ABAP Environment Community</A></SPAN><BR /><SPAN><A href="https://pages.community.sap.com/topics/s4hana-cloud-abap-environment" target="_blank" rel="noopener noreferrer">SAP S/4HANA Cloud ABAP Environment Community</A></SPAN></P><P>ABAP at SAP Events:</P><P><SPAN><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/abap-cloud-sessions-at-sap-teched-in-2025/ba-p/14175995" target="_blank">ABAP Cloud at SAP TechEd in 2025</A></SPAN><BR /><SPAN><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/abap-cloud-sessions-at-devtoberfest-2025/ba-p/14188138" target="_blank">ABAP Cloud at Devtoberfest in 2025</A></SPAN></P><P>Clean Core</P><P><SPAN><A href="https://www.sap.com/documents/2024/09/20aece06-d87e-0010-bca6-c68f7e60039b.html" target="_blank" rel="noopener noreferrer">Clean core extensibility</A></SPAN> white paper<BR /><SPAN><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/abap-extensibility-guide-clean-core-for-sap-s-4hana-cloud-august-2025/ba-p/14175399" target="_blank">ABAP Extensibility Guide – Clean Core for SAP S/4HANA Cloud - August 2025 Update</A></SPAN><BR /><SPAN><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/abap-test-cockpit-atc-recommendations-for-governance-of-clean-core-abap/ba-p/14186130" target="_blank">ABAP test cockpit (ATC) recommendations for governance of clean core ABAP development</A></SPAN><BR />ATC on SAP BTP: <SPAN><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/usage-of-abap-test-cockpit-atc-in-the-cloud-for-on-premise-developments/ba-p/13576887" target="_blank">blog</A></SPAN> | <SPAN><A href="https://www.sap.com/documents/2025/11/38e238f7-2b7f-0010-bca6-c68f7e60039b.html" target="_blank" rel="noopener noreferrer">overview presentation</A></SPAN><BR /><SPAN><A href="https://community.sap.com/t5/enterprise-resource-planning-blog-posts-by-sap/certification-of-partner-solutions-following-clean-core/ba-p/13556247" target="_blank">Certification of Partner Solutions following Clean Core</A></SPAN></P><P>SAP Joule for Developers, ABAP AI capabilities</P><P><SPAN><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/sap-joule-for-developers-expands-to-private-cloud-accelerating-abap/ba-p/14237958" target="_blank">SAP Joule for Developers Expands to Private Cloud: Accelerating ABAP Innovation and Transformation</A></SPAN><BR /><SPAN><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/abap-ai-revolution-accelerates-the-abap-developer-who-built-enterprise-apps/ba-p/14216073" target="_blank">ABAP AI Revolution Accelerates: The ABAP Developer Who Built Enterprise Apps in Minutes</A></SPAN><BR /><SPAN><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/from-legacy-to-ai-powered-rise-transformation-revolution-with-joule-for/ba-p/14267448" target="_blank">From Legacy to AI-Powered: RISE Transformation Revolution with Joule for developers</A></SPAN><BR /><SPAN><A href="https://community.sap.com/t5/enterprise-resource-planning-blog-posts-by-sap/abap-ai-chapter-2/ba-p/14210568" target="_blank">ABAP AI - Chapter 2</A></SPAN></P><P>ABAP Cloud:</P><P><SPAN><A href="https://www.sap.com/documents/2022/10/52e0cd9b-497e-0010-bca6-c68f7e60039b.html" target="_blank" rel="noopener noreferrer">ABAP Exensibility Guide</A></SPAN><BR />Become <SPAN><A href="https://learning.sap.com/certification/sap-certified-associate-back-end-developer-abap-cloud" target="_blank" rel="noopener noreferrer">SAP Certified Associate – Back-End Developer - ABAP Cloud</A></SPAN><BR /><SPAN><A href="https://pages.community.sap.com/topics/abap/abap-cloud-faq" target="_blank" rel="noopener noreferrer">ABAP Cloud FAQ</A></SPAN><BR /><SPAN><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/sap-build-and-abap-cloud-basic-trial-offering/ba-p/14117116" target="_blank">SAP Build and ABAP Cloud Basic Trial Offering</A></SPAN><BR /><A href="https://help.sap.com/docs/abap-cloud/developer-guide-from-classic-abap-to-abap-cloud/developer-guide-from-classic-abap-to-abap-cloud" target="_self" rel="noopener noreferrer"><SPAN>Developer Guide: From Classic ABAP to ABAP Cloud</SPAN> </A>on SAP Help Portal</P><P>Further blog posts and topic pages:</P><P><SPAN><A href="https://community.sap.com/topics/abap/rap" target="_blank">State-of-the-Art ABAP Development with ABAP RESTful Application Programming Model (RAP)</A></SPAN><BR /><SPAN><A href="https://blogs.sap.com/2023/10/09/abap-tools-for-clean-abap/" target="_blank" rel="noopener noreferrer">ABAP Tools for Clean ABAP</A></SPAN></P><H2 id="toc-hId--833798607"><FONT color="#3366FF">Useful Links</FONT></H2><P><A href="https://help.sap.com/whats-new/5fc51e30e2744f168642e26e0c1d9be1?Product_Line=SAP+S/4HANA+and+SAP+S/4HANA+Cloud+Private+Edition;SAP+S/4HANA+Cloud+Private+Edition&Business_Area=ABAP+Platform" target="_blank" rel="noopener noreferrer">Release Notes for ABAP Platform 2025</A><BR /><A href="https://help.sap.com/docs/ABAP_PLATFORM_NEW/b5670aaaa2364a29935f40b16499972d/48ba073157b85295e10000000a42189b.html" target="_blank" rel="noopener noreferrer">Documentation on SAP Help Portal</A><BR /><A href="https://apps.support.sap.com/sap(bD1lbiZjPTAwMQ==)/support/pam/pam.html#s=SAP%20S%2F4HANA%202020&o=most_viewed%7Cdesc&st=l&rpp=20&ts=5&page=1&pvnr=73554900100900003539&pt=g%7Cd" target="_blank" rel="noopener noreferrer">Product Availability Matrix (PAM)</A><BR /><SPAN><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/the-abap-platform-strategy/ba-p/13413078" target="_blank">The ABAP Platform Strategy</A><BR /></SPAN><SPAN><A href="https://community.sap.com/t5/enterprise-resource-planning-blog-posts-by-sap/abap-platform-releases-and-consumers/ba-p/13438776" target="_blank">ABAP Platform Releases and Consumers</A><BR /></SPAN><SPAN><A href="https://me.sap.com/notes/3612209/E" target="_blank" rel="noopener noreferrer">SAP Note 3612209 – ABAP Platform 2025 – General information</A></SPAN></P><H2 id="toc-hId--1030312112"><FONT color="#3366FF">Previous landing pages</FONT></H2><P><SPAN><A href="https://community.sap.com/t5/enterprise-resource-planning-blog-posts-by-sap/abap-platform-for-sap-s-4hana-2023/ba-p/13573791" target="_blank">ABAP Platform for SAP S/4HANA 2023</A><BR /></SPAN><SPAN><A href="https://community.sap.com/t5/enterprise-resource-planning-blog-posts-by-sap/abap-platform-for-sap-s-4hana-2022/ba-p/13562774" target="_blank">ABAP Platform for SAP S/4HANA 2022</A><BR /></SPAN><SPAN><A href="https://community.sap.com/t5/enterprise-resource-planning-blog-posts-by-sap/abap-platform-for-sap-s-4hana-2021/ba-p/13514539" target="_blank">ABAP Platform for SAP S/4HANA 2021</A><BR /></SPAN><SPAN><A href="https://community.sap.com/t5/enterprise-resource-planning-blog-posts-by-sap/abap-platform-for-sap-s-4hana-2020/ba-p/13481357" target="_blank">ABAP Platform for SAP S/4HANA 2020</A><BR /></SPAN><SPAN><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/abap-platform-for-sap-s-4hana-1909/ba-p/13399472" target="_blank">ABAP Platform for SAP S/4HANA 1909</A><BR /></SPAN><SPAN><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/abap-platform-for-sap-s-4hana-1809/ba-p/13356978" target="_blank">ABAP Platform for SAP S/4HANA 1809</A><BR /></SPAN><SPAN><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/sap-netweaver-as-for-abap-7-52-available-now/ba-p/13342473" target="_blank">SAP NetWeaver AS for ABAP 7.52</A><BR /></SPAN><SPAN><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/sap-netweaver-as-for-abap-7-5-one-abap-platform-for-sap-business-suite-and/ba-p/13278977" target="_blank">SAP NetWeaver AS ABAP 7.50</A></SPAN></P><P> </P>2025-12-14T23:10:11.122000+01:00https://community.sap.com/t5/technology-blog-posts-by-members/building-a-custom-stock-requirements-report-in-sap-abap/ba-p/14287594Building a Custom Stock/Requirements Report in SAP ABAP2025-12-16T06:16:16.031000+01:00reddysekharapathipatihttps://community.sap.com/t5/user/viewprofilepage/user-id/2189357<P><!-- StartFragment --></P><P><STRONG><SPAN class="">Introduction</SPAN></STRONG><STRONG><SPAN class=""><BR /></SPAN></STRONG></P><P><!-- StartFragment --></P><P><SPAN class="">In SAP Materials Management, the Stock or Requirements List MD04 is one of the most frequently used transactions for planners and production teams. It provides a real-time view of current stock, incoming receipts, and outgoing requirements for a material at plant level. However, in real project scenarios, users often need a simplified, customized, or report-based version of MD04 that can be enhanced further or adapted to specific business needs.</SPAN></P><P> </P><P><SPAN class="">During one such requirement, I worked on building a custom ABAP report that replicates the core functionality of MD04 while keeping the logic transparent and flexible. This blog explains how a custom Stock/Requirements Report can be built using standard SAP tables and function modules, without modifying standard SAP transactions.</SPAN></P><P><!-- EndFragment --><STRONG>Solution Review :</STRONG></P><P><STRONG><!-- StartFragment --></STRONG></P><P><SPAN class="">The custom report ZSTCOK_912 is designed to display stock and MRP elements for a given Material and Plant, closely mirroring the MD04 output.</SPAN></P><P><STRONG><SPAN class="">1. Selection Screen</SPAN></STRONG></P><UL><LI><SPAN class="">The report starts with a simple and user friendly selection screen:</SPAN></LI><LI><SPAN class="">Material Number MATNR</SPAN></LI><LI><SPAN class="">Plant WERKS</SPAN></LI><LI><SPAN class="">Both parameters are mandatory to ensure accurate stock evaluation.</SPAN></LI></UL><P><STRONG><SPAN class="">2. Material Number Conversion</SPAN></STRONG></P><P><SPAN class="">Since SAP stores material numbers with leading zeros, the report uses:</SPAN></P><OL><LI><SPAN class="">CONVERSION_EXIT_ALPHA_INPUT</SPAN></LI></OL><P><SPAN class="">This ensures the material number is in the correct internal format before database access.</SPAN></P><P><STRONG><SPAN class="">3. Current Stock Determination</SPAN></STRONG></P><P><SPAN class="">To calculate the opening balance:</SPAN></P><OL><LI><SPAN class="">Table MARD is read</SPAN></LI><LI><SPAN class="">All unrestricted stock LABST across storage locations is summed</SPAN></LI><LI><SPAN class="">This provides the current physical stock, which becomes the starting available quantity.</SPAN></LI></OL><P><STRONG><SPAN class="">4. Fetching Stock or Requirements Data</SPAN></STRONG></P><P><SPAN class="">The core of the solution uses the standard SAP function module:</SPAN></P><P><SPAN class="">MD_STOCK_REQUIREMENTS_LIST_API</SPAN></P><UL><LI><SPAN class="">This is the same API used by MD04 and returns:</SPAN></LI><LI><SPAN class="">MRP elements receipts and requirements </SPAN></LI><LI><SPAN class="">Quantities</SPAN></LI><LI><SPAN class="">Planning and control data</SPAN></LI><LI><SPAN class="">The data is stored in internal tables such as MDPSX, MDEZX, and MDSUX.</SPAN></LI></UL><P><STRONG><SPAN class="">5. Display Logic and Running Stock Calculation</SPAN></STRONG></P><UL><LI><SPAN class="">Each MRP element is processed sequentially:</SPAN></LI><LI><SPAN class="">Receipts increase available stock</SPAN></LI><LI><SPAN class="">Requirements reduce available stock</SPAN></LI><LI><SPAN class="">A running available quantity is calculated and displayed line by line, giving users a projected stock position over time.</SPAN></LI></UL><P><STRONG><SPAN class="">6. Output Format</SPAN></STRONG></P><P><SPAN class="">The report displays:</SPAN></P><UL><LI><SPAN class="">Date</SPAN></LI><LI><SPAN class="">MRP element type Receipt, Requirement, Dependent Requirement, etc.</SPAN></LI><LI><SPAN class="">Document number</SPAN></LI><LI><SPAN class="">Receipt quantity</SPAN></LI><LI><SPAN class="">Projected available stock</SPAN></LI><LI><SPAN class="">Additionally, summary information such as total records processed and current stock is displayed at the end.</SPAN></LI></UL><P><STRONG><!-- EndFragment --></STRONG></P><P><SPAN class=""><!-- StartFragment --></SPAN></P><P><!-- StartFragment --></P><P><STRONG><SPAN class="">The Complete Solution Code<BR /></SPAN></STRONG></P><pre class="lia-code-sample language-abap"><code>*&---------------------------------------------------------------------*
*& Report ZSTCOK_912
*&---------------------------------------------------------------------*
*& Custom Stock/Requirements Report
*& Purpose: Display stock and requirements similar to MD04 transaction
*&---------------------------------------------------------------------*
REPORT ZSTCOK_912.
*&---------------------------------------------------------------------*
*& DATA DECLARATIONS
*&---------------------------------------------------------------------*
" Reference to standard SAP tables for material master data
TABLES: mara, " General Material Data
marc. " Plant Data for Material
*&---------------------------------------------------------------------*
*& SELECTION SCREEN
*&---------------------------------------------------------------------*
" Input parameters for the report - both are mandatory
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE TEXT-001.
PARAMETERS: p_matnr TYPE matnr OBLIGATORY, " Material Number
p_werks TYPE werks_d OBLIGATORY. " Plant
SELECTION-SCREEN END OF BLOCK b1.
*&---------------------------------------------------------------------*
*& INTERNAL TABLES AND WORK AREAS
*&---------------------------------------------------------------------*
" Internal tables to store data returned by the function module
DATA: gt_mdpsx TYPE TABLE OF mdps, " MRP element data (dates, doc numbers)
gs_mdpsx TYPE mdps, " Work area for MDPSX
gt_mdezx TYPE TABLE OF mdez, " MRP element quantities
gs_mdezx TYPE mdez, " Work area for MDEZX
gt_mdsux TYPE TABLE OF mdsu, " Summary data
gs_mdsux TYPE mdsu. " Work area for MDSUX
" Structures for exporting parameters from function module
DATA: gs_mt61d TYPE mt61d, " Material requirements planning data
gs_mdkp TYPE mdkp, " MRP controller and configuration
gs_cm61m TYPE cm61m, " MRP list control data
gs_mdsta TYPE mdsta, " MRP statistics
gv_ergbz TYPE ergbz. " Result indicator
" Variables for processing and display
DATA: gv_labst TYPE labst, " Unrestricted stock quantity
gv_available TYPE labst, " Available quantity (opening stock)
lv_running_stock TYPE mng01, " Running available stock
lv_matnr TYPE matnr, " Material number with leading zeros
lv_txt TYPE char30, " Text for MRP element description
lv_count TYPE i. " Counter for total records
*&---------------------------------------------------------------------*
*& START-OF-SELECTION
*&---------------------------------------------------------------------*
START-OF-SELECTION.
"*------------------------------------------------------------------*
"* Step 1: Convert Material Number with Leading Zeros
"*------------------------------------------------------------------*
" SAP stores material numbers with leading zeros in database
" This conversion ensures proper format for database queries
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = p_matnr
IMPORTING
output = lv_matnr.
"*------------------------------------------------------------------*
"* Step 2: Get Current Stock from MARD Table
"*------------------------------------------------------------------*
" MARD contains storage location data for materials
" We sum all unrestricted stock (LABST) across storage locations
SELECT SINGLE SUM( labst )
INTO gv_labst
FROM mard
WHERE matnr = lv_matnr
AND werks = p_werks.
" Initialize available quantity based on query result
IF sy-subrc = 0.
gv_available = gv_labst. " Stock found
ELSE.
gv_available = 0. " No stock found
ENDIF.
"*------------------------------------------------------------------*
"* Step 3: Call Function Module to Get Stock Requirements List
"*------------------------------------------------------------------*
" MD_STOCK_REQUIREMENTS_LIST_API is SAP standard FM used by MD04
" It returns all MRP elements (receipts and requirements)
CALL FUNCTION 'MD_STOCK_REQUIREMENTS_LIST_API'
EXPORTING
matnr = lv_matnr " Material number
werks = p_werks " Plant
IMPORTING
e_mt61d = gs_mt61d " Planning data
e_mdkp = gs_mdkp " MRP configuration
e_cm61m = gs_cm61m " Control data
e_mdsta = gs_mdsta " Statistics
e_ergbz = gv_ergbz " Result indicator
TABLES
mdpsx = gt_mdpsx " MRP element master data
mdezx = gt_mdezx " MRP element quantities
mdsux = gt_mdsux " Summary data
EXCEPTIONS
material_plant_not_found = 1 " Material doesn't exist
plant_not_found = 2 " Plant doesn't exist
OTHERS = 3. " Other errors
" Error handling for function module call
IF sy-subrc <> 0.
WRITE: / 'Error getting stock requirements data'.
WRITE: / 'Return Code:', sy-subrc.
EXIT.
ENDIF.
" Check if any data was returned
IF gt_mdpsx IS INITIAL AND gt_mdezx IS INITIAL.
WRITE: / 'No stock requirements data found for Material:', p_matnr,
'Plant:', p_werks.
EXIT.
ENDIF.
"*------------------------------------------------------------------*
"* Step 4: Display Report Header Information
"*------------------------------------------------------------------*
WRITE: / 'Stock/Requirements List as of', sy-datum, sy-uzeit.
WRITE: / sy-uline(155).
WRITE: / 'Material:', p_matnr, ' Plant:', p_werks.
WRITE: / sy-uline(155).
SKIP 1.
" Display MRP configuration details if available
IF gs_mdkp IS NOT INITIAL.
WRITE: / 'MRP Controller:', gs_mdkp-dispo. " Person responsible
WRITE: / 'MRP Type:', gs_mdkp-dismm. " Planning strategy
WRITE: / 'Lot Size:', gs_mdkp-disls. " Lot sizing procedure
SKIP 1.
ENDIF.
"*------------------------------------------------------------------*
"* Step 5: Display Column Headers
"*------------------------------------------------------------------*
" Column positions are carefully aligned for readability
WRITE: / 'Date', " Date of MRP element
15 'MRP Element data', " Type of element (receipt/requirement)
45 'Doc Number', " Document number reference
70 'Receipt Qty', " Quantity of receipt
90 'Available Qty'. " Running available stock
WRITE: / sy-uline(155).
" Initialize running stock with opening balance
lv_running_stock = gv_available.
"*------------------------------------------------------------------*
"* Step 6: Display Opening Stock
"*------------------------------------------------------------------*
" Show current available stock as starting point
WRITE: / sy-datum USING EDIT MASK '__/______', " Today's date formatted
90 gv_available. " Opening stock quantity
WRITE: / sy-uline(155).
"*------------------------------------------------------------------*
"* Step 7: Process and Display MRP Elements
"*------------------------------------------------------------------*
" Loop through all MRP elements (receipts and requirements)
LOOP AT gt_mdpsx INTO gs_mdpsx.
" Get corresponding quantity data for this MRP element
" Match by date (dat00) and planning number (plumi)
READ TABLE gt_mdezx INTO gs_mdezx
WITH KEY dat00 = gs_mdpsx-dat00
plumi = gs_mdpsx-plumi.
IF sy-subrc = 0.
"*----------------------------------------------------------------*
"* Determine MRP Element Type Description
"*----------------------------------------------------------------*
" DELKZ field indicates whether element is receipt or requirement
CASE gs_mdpsx-delkz.
WHEN 'V'.
lv_txt = 'Receipt'. " Incoming material
WHEN 'B'.
lv_txt = 'Requirement'. " Outgoing material demand
WHEN 'L'.
lv_txt = 'Delivery Schedule'. " Scheduled delivery
WHEN 'A'.
lv_txt = 'Dependent Reqmt'. " From BOM explosion
WHEN 'U'.
lv_txt = 'Stock Transfer'. " Between storage locations
WHEN OTHERS.
lv_txt = gs_mdpsx-delkz. " Display code if unknown
ENDCASE.
"*----------------------------------------------------------------*
"* Calculate Running Available Stock
"*----------------------------------------------------------------*
" Receipts (+) increase stock, Requirements (-) decrease stock
IF gs_mdpsx-delkz = 'V'.
" Receipt: Add to available stock
lv_running_stock = lv_running_stock + gs_mdezx-mng03.
ELSE.
" Requirement: Subtract from available stock
lv_running_stock = lv_running_stock - gs_mdezx-mng02.
ENDIF.
"*----------------------------------------------------------------*
"* Display MRP Element Line
"*----------------------------------------------------------------*
" Show each element with aligned columns
WRITE: / gs_mdpsx-dat00 USING EDIT MASK '__/______', " Date formatted
15 lv_txt, " Element type description
45 gs_mdpsx-delnr, " Document number
70 gs_mdezx-mng03, " Receipt quantity
90 lv_running_stock. " Projected available stock
" Increment record counter
lv_count = lv_count + 1.
ENDIF.
ENDLOOP.
"*------------------------------------------------------------------*
"* Step 8: Display Summary Information
"*------------------------------------------------------------------*
WRITE: / sy-uline(155).
SKIP 1.
" Show total number of MRP elements processed
WRITE: / 'Total Records:', lv_count.
" Show current physical stock
WRITE: / 'Current Stock:', gv_labst.
" Display summary data count if available
IF gt_mdsux IS NOT INITIAL.
SKIP 2.
WRITE: / 'Summary Data Available - Total Entries:', lines( gt_mdsux ).
ENDIF.
*&---------------------------------------------------------------------*
*& END OF REPORT
*&---------------------------------------------------------------------*</code></pre><P><!-- StartFragment --></P><P><STRONG><SPAN class="">Output for standard MD04 real stock view:</SPAN></STRONG></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="reddysekharapathipati_0-1765352645154.png" style="width: 727px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/350599iF2BBED715F2C3DDB/image-dimensions/727x308?v=v2" width="727" height="308" role="button" title="reddysekharapathipati_0-1765352645154.png" alt="reddysekharapathipati_0-1765352645154.png" /></span></P><P><STRONG>Output for custom Report output:</STRONG></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="reddysekharapathipati_1-1765352723809.png" style="width: 725px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/350600i81D0676745289928/image-dimensions/725x243?v=v2" width="725" height="243" role="button" title="reddysekharapathipati_1-1765352723809.png" alt="reddysekharapathipati_1-1765352723809.png" /></span></P><P> </P><P><STRONG><SPAN class="">Conclusion :</SPAN></STRONG></P><P><SPAN class=""><!-- StartFragment --></SPAN></P><P><SPAN class="">This custom ABAP report demonstrates how standard SAP functionality like MD04 can be replicated and customized using clean ABAP logic and standard APIs. By leveraging MD_STOCK_REQUIREMENTS_LIST_API and combining it with stock data from MARD, the report provides a clear and reliable view of stock movements and future requirements.</SPAN></P><P><SPAN class="">From my experience, building such custom reports not only helps meet specific business requirements but also improves understanding of SAP’s internal MRP data flow. This approach offers flexibility for further enhancements such as ALV output, additional filters, or integration with planning dashboards, making it a practical alternative to standard transactions when customization is required.</SPAN><SPAN class=""><!-- EndFragment --><!-- StartFragment --></SPAN></P><P><STRONG><SPAN class="">Thanks for Reading My Blog..</SPAN></STRONG></P><P><SPAN class=""><a href="https://community.sap.com/t5/c-khhcw49343/ABAP+Connectivity/pd-p/266264953119842772207986043063520" class="lia-product-mention" data-product="313-1">ABAP Connectivity</a> </SPAN></P><P><SPAN class=""><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> .</SPAN></P><P> </P><P> </P><P><SPAN class=""><!-- EndFragment --><BR /></SPAN></P><P><SPAN class=""><!-- EndFragment --><BR /></SPAN></P><P><SPAN class=""><!-- EndFragment --></SPAN></P><P><STRONG><SPAN class=""><!-- EndFragment --></SPAN></STRONG></P><P><!-- EndFragment --></P><P><STRONG><SPAN class=""> </SPAN></STRONG></P><P><!-- EndFragment --></P><P class=""><SPAN class=""><!-- EndFragment --><BR /><BR /></SPAN></P><P class=""> </P><P><SPAN class=""><!-- EndFragment --><BR /></SPAN></P><P><!-- EndFragment --></P>2025-12-16T06:16:16.031000+01:00https://community.sap.com/t5/enterprise-resource-planning-blog-posts-by-members/stop-treating-sap-patches-like-punishments-it-s-a-gift/ba-p/14296532Stop Treating SAP Patches Like Punishments - it's a gift2025-12-24T08:00:57.339000+01:00MichalKrawczykhttps://community.sap.com/t5/user/viewprofilepage/user-id/45785<P><SPAN>We need to talk about the collective groan that echoes through IT departments when the notification arrives: </SPAN><I><SPAN>SAP Patch Tuesday is coming. </SPAN></I><SPAN>For decades, in the on-premise world, patching was viewed as a necessary evil. It meant downtime, manual regression testing, late nights, and the terrifying possibility that fixing one thing might break ten others. The instinct became preservation through stagnation: "If it’s not broken, don't touch it and turn off the auto-updates."</SPAN></P><P><SPAN>But this mindset is a trap. In the modern digital landscape, treating your SAP landscape like a delicate museum piece isn't "safe." It’s a slow-motion disaster. </SPAN><SPAN>We need a radical re-framing. Receiving a patch, an update, or a new feature drop isn't a threat; it’s a present. It is an injection of resilience, security or even a new capability. </SPAN><SPAN>This isn't just a new cloud IT philosophy. It is a fundamental truth rooted in biology, echoed in mythology, and proven by the most robust systems on the planet. The lesson is simple: whatever remains static dies; whatever learns to adapt survives. </SPAN><SPAN>Here is why we must stop fearing the patch and start embracing it.</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="present.png" style="width: 678px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/355343i0861588493C11CF6/image-dimensions/678x456?v=v2" width="678" height="456" role="button" title="present.png" alt="present.png" /></span> </P><H3 id="toc-hId-1896562503"><STRONG>The Lesson from Biology: The Immune System</STRONG></H3><P><SPAN>Consider your own body. You don't exist in a sterile bubble; you exist in a hostile environment of constantly evolving bacteria and viruses. How does your body survive? Not by building a static stone wall around itself, but through a highly adaptive, rapid-response immune system. When your body encounters a new threat or receives a vaccine (a biological "patch")—it doesn't shut down. It learns. It updates its internal threat library. It develops antibodies specifically designed for that new reality.</SPAN></P><P><SPAN>The exposure to the "patch" makes the system stronger. If your immune system refused to update because it was "too risky," the first novel virus you encountered would be fatal. Your SAP environment is no different. A patch isn't an annoyance; it’s an antibody against a new security threat or a vitamin injection for better performance.</SPAN></P><H3 id="toc-hId-1700048998"><STRONG>The Lesson from Mythology: The Power of Metamorphosis</STRONG></H3><P><SPAN>Ancient myths understood that also and throughout Greek mythology, the ability to undergo </SPAN><I><SPAN>metamorphosis</SPAN></I><SPAN> is often the difference between life and death. When faced with an insurmountable threat, heroes and nymphs didn't stand still and brace for impact. They changed. Daphne transformed into a laurel tree to escape pursuit and the characters who refused to change, like Narcissus, paralyzed by his own static reflection, faded away.</SPAN></P><P><SPAN>In our world, the market, regulations, and competitors are constantly shifting. An SAP system that is "stuck in its ways" because we fear the update process is like a mythological figure refusing to shapeshift when danger approaches. The ability to rapidly intake new code is your primary mechanism for escape and survival.</SPAN></P><H3 id="toc-hId-1503535493"><STRONG>The Lesson from IT: Embracing "Chaos"</STRONG></H3><P><SPAN>For a long time, IT success meant "five nines" of uptime achieved by locking everything down. Then came the cloud giants, who realized that the only way to guarantee reliability at scale was to constantly break things.</SPAN></P><P><SPAN>Netflix famously developed "<STRONG>Chaos Monkey,</STRONG>" a tool that randomly terminates instances in their production environment. Why on earth would they do that? They realized that if they feared failure, their system would become brittle. By constantly injecting small failures (forced changes), they forced their engineering teams to build systems that could automatically heal, reroute, and adapt instantly. They turned patching and redeployment from a terrifying manual event into everyday muscle memory. By automating the "pain," they eliminated the fear. They proved that a system in constant flux is infinitely more resilient than one that is static.</SPAN></P><H3 id="toc-hId-1307021988"><STRONG>The SAP Cloud Reality: It's Time to Open the Present</STRONG></H3><P><SPAN>Moving to SAP S/4HANA Cloud or utilizing BTP Services means accepting a fundamental shift in this philosophy. SAP is now delivering continuous innovation and security tightening on a schedule you can set your watch by. </SPAN><SPAN>The temptation for many organizations migrating to the cloud is to bring their old on-premise anxieties with them, to find ways to delay, defer, or turn off these automated updates. They want the benefits of the cloud with the static comfort of 2005 but… <STRONG>Don't do it.</STRONG> </SPAN><SPAN>When you turn off automated patching, you aren't "stabilizing" your system. You are voluntarily opting out of evolution. You are choosing to make your system dumber while the threats get smarter.</SPAN></P><P><SPAN>Every patch is an opportunity to validate that your automated testing (also with<A href="https://int4.com/products/suite/" target="_self" rel="nofollow noopener noreferrer"> Int4 Suite</A>) is working. Every deployment is a chance to prove your architecture is decoupled and resilient. Every update is a gift of new functionality that your business counterparts are desperate for. </SPAN><SPAN>It’s biology. It’s mythology. Stop trying to preserve a statue. Start building a living organism that gets stronger every time it changes. Open the present.</SPAN></P><H3 id="toc-hId-1110508483">Find out more: </H3><P>SAP Learning course on Automated testing using APIs - <A href="https://learning.sap.com/courses/avoid-sap-s-4hana-project-delays-with-third-party-systems-service-virtualization?url_id=text-former-openSAP-course" target="_self" rel="noopener noreferrer">Avoid SAP S/4HANA Project Delays with Third-Party Systems Service Virtualization</A></P>2025-12-24T08:00:57.339000+01:00https://community.sap.com/t5/enterprise-resource-planning-blog-posts-by-members/bapi-finding-and-testing/ba-p/14296896BAPI :FINDING AND TESTING2026-01-21T07:23:42.177000+01:00sunil7330https://community.sap.com/t5/user/viewprofilepage/user-id/2008458<P><STRONG><FONT size="6">INTRODUCTION:</FONT></STRONG></P><P>Functional consultants need to use bapi's when it is not possible to meet client requirements with standard screens.</P><P>This blogg is useful to give A general idea about finding bapi's and also to test them.</P><P><STRONG><FONT size="4">BAPI</FONT></STRONG></P><P>BAPI(Business Application Programming Interface) is a business-level programming interface provided by SAP to execute standard business processes in a controlled and validated way.</P><P>In short they simulate the business logic behind the functional screens ,BAPI validate data before updating to tables so they reduce the risk of data corruption,</P><P>BAPI are used to connect sap system with non-sap system and also in developing custom screens to meet the business requirement</P><P><STRONG>HOW TO FIND BAPI’S</STRONG></P><P>Method:1</P><P>TCODE: BAPI</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="sunil7330_0-1766577746228.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/355457iBEF6FECAB9F47D5F/image-size/medium?v=v2&px=400" role="button" title="sunil7330_0-1766577746228.png" alt="sunil7330_0-1766577746228.png" /></span></P><P> </P><P>We can find bapis using bapi transaction and can search with respect to module.</P><P>Method2:</P><P>SE37</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="sunil7330_1-1766577746231.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/355456iA06F14F055E1CC0E/image-size/medium?v=v2&px=400" role="button" title="sunil7330_1-1766577746231.png" alt="sunil7330_1-1766577746231.png" /></span></P><P> </P><P>Search with *BAPI_* to find the bapi</P><P> </P><P>Method3:</P><P>Just search in google or with ai.</P><P> </P><P><STRONG>IMPORTANT DETAILS REGARDING BAPI</STRONG></P><P>1.Please read the bapi documentation clearly. Sometimes it will save lot of time</P><P>To find the documentation pass the bapi</P><P>Pass the bapi in se37 and click on display and then in new screen click on function module documentation</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="sunil7330_2-1766577746233.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/355455i187545EBD70BC8D2/image-size/medium?v=v2&px=400" role="button" title="sunil7330_2-1766577746233.png" alt="sunil7330_2-1766577746233.png" /></span></P><P> </P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="sunil7330_3-1766577746243.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/355458i846E923C423FC299/image-size/medium?v=v2&px=400" role="button" title="sunil7330_3-1766577746243.png" alt="sunil7330_3-1766577746243.png" /></span></P><P> </P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="sunil7330_4-1766577746248.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/355460i19757C5BD1C6D6D4/image-size/medium?v=v2&px=400" role="button" title="sunil7330_4-1766577746248.png" alt="sunil7330_4-1766577746248.png" /></span></P><P>which fields are mandatory?</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="sunil7330_5-1766577746255.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/355459i4F158582AEAF42BF/image-size/medium?v=v2&px=400" role="button" title="sunil7330_5-1766577746255.png" alt="sunil7330_5-1766577746255.png" /></span></P><P> </P><P>In se37 after executing the bapi we get screen as below</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="sunil7330_6-1766577746258.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/355463i868BA7484A73EEB9/image-size/medium?v=v2&px=400" role="button" title="sunil7330_6-1766577746258.png" alt="sunil7330_6-1766577746258.png" /></span></P><P> </P><P>The screen has import parameters and tables.</P><P>To get clarity on mandatory fields.</P><P>Step1: read documentation it will sometimes have values related to import parameters.</P><P>Step2:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="sunil7330_7-1766577746267.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/355462iF7B06C576E5FD3DE/image-size/medium?v=v2&px=400" role="button" title="sunil7330_7-1766577746267.png" alt="sunil7330_7-1766577746267.png" /></span></P><P> </P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="sunil7330_8-1766577746271.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/355461iC2F58D7372E56B40/image-size/medium?v=v2&px=400" role="button" title="sunil7330_8-1766577746271.png" alt="sunil7330_8-1766577746271.png" /></span></P><P>By following above path we can see if fields are optional or mandatory and can also see default values</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="sunil7330_9-1766577746276.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/355466iBB7AD8FE933ACAE4/image-size/medium?v=v2&px=400" role="button" title="sunil7330_9-1766577746276.png" alt="sunil7330_9-1766577746276.png" /></span></P><P>Similarly we can check for tables. if there is no optional tickmark its mandatory to pass values in that field or table .</P><P>We can take reference from standard screens on what data to pass as bapi replicate business logic behind standard screens.</P><P> </P><P><STRONG><FONT size="5">TESTING BAPI</FONT></STRONG></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="sunil7330_10-1766577746279.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/355464i9F769648F54BBC6A/image-size/medium?v=v2&px=400" role="button" title="sunil7330_10-1766577746279.png" alt="sunil7330_10-1766577746279.png" /></span></P><P> </P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="sunil7330_11-1766577746281.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/355465i7BEEFCE5B0453AFD/image-size/medium?v=v2&px=400" role="button" title="sunil7330_11-1766577746281.png" alt="sunil7330_11-1766577746281.png" /></span></P><P>For most of the bapis , bapi transaction commit also need to be passed for changes changes to reflect in system but there are few exceptions like BAPI_PRODORD_RELEASE where there is no need to commit.</P><P>After clicking on execute we are in first bapi</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="sunil7330_12-1766577746285.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/355467i3C687A4CD171B8B2/image-size/medium?v=v2&px=400" role="button" title="sunil7330_12-1766577746285.png" alt="sunil7330_12-1766577746285.png" /></span></P><P>Pass the mandatory values</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="sunil7330_13-1766577746288.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/355469iCF4963F6FECB78C8/image-size/medium?v=v2&px=400" role="button" title="sunil7330_13-1766577746288.png" alt="sunil7330_13-1766577746288.png" /></span></P><P>Then execute</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="sunil7330_14-1766577746292.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/355468i8A908DEE6E1315B5/image-size/medium?v=v2&px=400" role="button" title="sunil7330_14-1766577746292.png" alt="sunil7330_14-1766577746292.png" /></span></P><P>Click on back button</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="sunil7330_15-1766577746294.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/355471iAC8CEB3DD3DA9769/image-size/medium?v=v2&px=400" role="button" title="sunil7330_15-1766577746294.png" alt="sunil7330_15-1766577746294.png" /></span></P><P>Now we are in commit BAPI</P><P>Pass ‘X’ and execute</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="sunil7330_16-1766577746296.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/355472i562DEBEEF8C74DEB/image-size/medium?v=v2&px=400" role="button" title="sunil7330_16-1766577746296.png" alt="sunil7330_16-1766577746296.png" /></span></P><P> </P><P>Click on back button again</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="sunil7330_17-1766577746298.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/355470i01D26B61F061E900/image-size/medium?v=v2&px=400" role="button" title="sunil7330_17-1766577746298.png" alt="sunil7330_17-1766577746298.png" /></span></P><P>RESULT:</P><P>Before executing BAPI</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="sunil7330_18-1766577746302.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/355473iEAA5B4141A647F6A/image-size/medium?v=v2&px=400" role="button" title="sunil7330_18-1766577746302.png" alt="sunil7330_18-1766577746302.png" /></span></P><P> </P><P>After executing BAPI</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="sunil7330_19-1766577746304.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/355474iBA3B55C462CBF59B/image-size/medium?v=v2&px=400" role="button" title="sunil7330_19-1766577746304.png" alt="sunil7330_19-1766577746304.png" /></span></P><P>We can copy the test data to test data directory for future reference or to pass the test data to ABAP team.</P><P>To check the executed test data</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="sunil7330_20-1766577746308.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/355475i60A8FF46579925E6/image-size/medium?v=v2&px=400" role="button" title="sunil7330_20-1766577746308.png" alt="sunil7330_20-1766577746308.png" /></span></P><P> </P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="sunil7330_21-1766577746309.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/355476i7B7AFC411FF8F009/image-size/medium?v=v2&px=400" role="button" title="sunil7330_21-1766577746309.png" alt="sunil7330_21-1766577746309.png" /></span></P><P>Click on the record number we can check what data was passed.</P><P><STRONG><FONT size="5">CONCLUSION:</FONT></STRONG></P><P>Please follow above steps for finding bapi's and also to test them. </P>2026-01-21T07:23:42.177000+01:00https://community.sap.com/t5/technology-blog-posts-by-sap/your-2026-roadmap-to-getting-started-with-abap-ai-and-abap-1/ba-p/14312060Your 2026 Roadmap to Getting Started with ABAP AI and ABAP-12026-01-21T18:01:36.956000+01:00JanMattheshttps://community.sap.com/t5/user/viewprofilepage/user-id/194386<P data-unlink="true"><A title="ABAP AI Capabilities" href="https://help.sap.com/docs/abap-cloud/abap-development-tools-user-guide/joule-for-developers-abap-ai-capabilities-f14ebffef77b41bfb0746c33dcb70e84" target="_blank" rel="noopener noreferrer"><span class="lia-inline-image-display-wrapper lia-image-align-left" image-alt="ABAP_AI.png" style="width: 200px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/363821iFBD41BCBF30A65A8/image-size/small/is-moderation-mode/true?v=v2&px=200" role="button" title="ABAP_AI.png" alt="ABAP_AI.png" /></span></A>The era of "Wait and See" for AI in ABAP development is officially over. With the general availability of <STRONG>Joule for Developers (J4D)</STRONG> and the <A href="https://www.linkedin.com/posts/sonjalienard_introducing-the-next-era-of-abap-development-activity-7391805653905993728-J9a-?utm_source=share&utm_medium=member_desktop&rcm=ACoAAAAwC8YBn3fP-40jJLXucycHYaj7szVogRw" target="_blank" rel="noopener nofollow noreferrer">planned availability of ABAP agentic AI frameworks in 2026</A>, the question isn't <EM>if</EM> you should use AI, but <EM>where</EM> you should start. </P><P data-unlink="true"><STRONG>The "Start Here" Recommendation: </STRONG>For 90% of developers, the best starting point is <STRONG><SPAN class=""><SPAN><A class="" href="https://www.sap.com/products/erp/s4hana-cloud-public-edition-joule-for-developers-abap-ai-capabilities.html" target="_blank" rel="noopener noreferrer">SAP Joule for Developers</A></SPAN></SPAN></STRONG> integrated within <STRONG>ABAP Development Tools (ADT) for Eclipse</STRONG>. In addition you can also experiment with the first versions of <A href="https://help.sap.com/docs/sap-ai-core/generative-ai/sap-abap-1?locale=en-US&version=LATEST" target="_blank" rel="noopener noreferrer">ABAP-1 model to <STRONG>analyze and explain code</STRONG></A> on your own - but be aware that this is <STRONG>currently not for code generation </STRONG>and only for those which want to be independent of J4D<STRONG>.</STRONG> Therefore starting with J4D is the fastest but also the most powerful way to start with ABAP AI.</P><DIV class=""> </DIV><DIV class=""><STRONG>Why should I start with Joule for Developers (J4D)?</STRONG></DIV><UL class=""><LI><SPAN class=""><STRONG>Contextual Intelligence:</STRONG> Unlike generic LLMs, Joule for Developers is additionally trained on over <STRONG>250 million lines of proprietary SAP code</STRONG> and is aware of your specific <STRONG>ABAP Cloud context.</STRONG> In general J2D is powered by a combination of third-party foundation models (e.g. OpenAI, Gemini, Anthropic, Mistral AI), alongside SAP-centric models like the LLMs, trained specifically on ABAP and purpose-built for cloud-based SAP development.</SPAN></LI><LI><SPAN class=""><STRONG>It’s Free (For Now):</STRONG> SAP has extended the free promotional period for Joule for Developers until <STRONG>September 2026</STRONG>.</SPAN></LI><LI><SPAN class=""><STRONG>Native Skills:</STRONG> It handles predictive code generation (e.g. RAP generation), "Explain" skills for legacy code, and unit test generation directly within your IDE. So it can do way more then ABAP-1 right now.</SPAN></LI><LI><SPAN class=""><STRONG>J4D </STRONG>is out of the box <STRONG>integrated in Eclipse ADT.</STRONG></SPAN></LI></UL><DIV class=""><STRONG>The Three Paths for ABAP AI Evolution:</STRONG></DIV><DIV class=""><STRONG>1. The Standard Path: Joule for Developers in ADT</STRONG></DIV><UL class=""><LI><SPAN class=""><STRONG>Best for:</STRONG> Daily coding, documentation, and unit testing.</SPAN></LI><LI><SPAN class=""><STRONG>Action:</STRONG> Request access through your administrator (Material 8019124 for customers and 8019541 for partners) and activate it in ADT.</SPAN></LI></UL><DIV class=""><STRONG>2. The Innovation Path: ABAP AI SDK & BTP Free Tier</STRONG></DIV><UL class=""><LI><SPAN class=""><STRONG>Best for:</STRONG> Building your own AI-powered business applications (e.g., automated invoice processing).</SPAN></LI><LI><SPAN class=""><STRONG>Action:</STRONG> Use the <STRONG>SAP BTP Free Tier</STRONG> to access the Generative AI Hub and the <STRONG>ABAP AI SDK</STRONG> to connect your custom ABAP code to external foundation models.</SPAN></LI></UL><DIV class=""><STRONG>3. The Modernization Path: VS Code with ABAP Cloud (Roadmap Q2/2026)</STRONG></DIV><UL class=""><LI><SPAN class=""><STRONG>Best for:</STRONG> Developers looking for a lightweight, file-based experience and for those which want to be the first to leverage agentic ABAP AI in side-by-side approach.</SPAN></LI><LI><STRONG>Action</STRONG>: Explore the new side-by-side ABAP Cloud Extension for <A href="https://community.sap.com/t5/technology-blog-posts-by-sap/introducing-the-next-era-of-abap-development/ba-p/14260522" target="_blank">VS Code (GA planned for Q2 2026) with built-in Agentic AI</A> assistance powered by an <STRONG>ABAP MCP server</STRONG>. This will support a <STRONG>broader range of SAP S/4HANA Private Editions</STRONG> and provide <STRONG>faster update cycles</STRONG>.</LI></UL><DIV class=""><STRONG>Key Takeaway for 2026:</STRONG><BR />Don't get bogged down trying to "prompt engineer" experimental models like ABAP-1 for production code generation. Instead, leverage <STRONG>Joule for Developers</STRONG> mature "Explain" and "Generate" skills to maintain a <STRONG>Clean Core</STRONG> and accelerate your migration to SAP S/4HANA.</DIV><P><STRONG>Here you can learn more:</STRONG></P><OL><LI><P><SPAN class=""><A class="" href="https://community.sap.com/t5/technology-blog-posts-by-sap/sap-joule-for-developers-expands-to-private-cloud-accelerating-abap/ba-p/14237958" target="_blank">SAP Joule for Developers (J4D) Expands to Private Cloud: Accelerating ABAP Innovation and Transformation </A></SPAN></P></LI><LI><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/abap-ai-revolution-accelerates-the-abap-developer-who-built-enterprise-apps/ba-p/14216073" target="_blank"><SPAN class="">ABAP AI Revolution Accelerates: The ABAP Developer Who Built Enterprise Apps in Minutes </SPAN></A></LI><LI><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/introducing-the-next-era-of-abap-development/ba-p/14260522" target="_blank"><SPAN class="">Joule for Developers and ABAP AI capabilities are coming to SAP S/4HANA Private Edition 2021, 2022, and 2023</SPAN></A></LI><LI><SPAN class="">Public Roadmap: <A href="https://help.sap.com/docs/abap-cross-product/roadmap-info/genai" target="_blank" rel="noopener noreferrer">SAP Help</A> / <A href="https://roadmaps.sap.com/board?PRODUCT=73554900100800001562&PRODUCT=73555000100800001164&range=CURRENT-LAST" target="_blank" rel="noopener noreferrer">SAP Roadmap Explorer</A></SPAN></LI><LI><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/sap-joule-for-developers-abap-ai-capabilities-for-sap-s-4hana-cloud-private/ba-p/14236954" target="_blank"><SPAN class="">Step-by-step guide how to activate SAP Joule for Developers, ABAP AI capabilities for your SAP S/4HANA Cloud Private Edition</SPAN></A></LI><LI><SPAN class=""><SPAN><A href="https://community.sap.com/t5/technology-blog-posts-by-sap/joule-for-developers-with-sap-s-4hana-public-cloud-edition-setup-guide/ba-p/14209989" target="_blank">Joule for Developers (J4D) for S/4HANA Public Cloud Setup Guide</A></SPAN></SPAN></LI><LI><A href="https://discovery-center.cloud.sap/search/abap%20ai" target="_blank" rel="noopener nofollow noreferrer"><SPAN class=""><SPAN>SAP ABAP AI Discovery Center</SPAN></SPAN></A></LI><LI><SPAN class=""><SPAN><A class="" href="https://discovery-center.cloud.sap/search/Free-tier" target="_blank" rel="noopener nofollow noreferrer">SAP BTP Discovery Center (Free Tier Services)</A></SPAN></SPAN></LI><LI><A href="http://www.youtube.com/playlist?list=PL6RpkC85SLQAt9lvPw0gF4E3nwbJD0EUe" target="_blank" rel="noopener nofollow noreferrer"><SPAN class=""><SPAN>YouTube playlist for Joule for Developers (J4D)</SPAN></SPAN></A></LI><LI><A href="https://help.sap.com/docs/abap-ai" target="_blank" rel="noopener noreferrer"><SPAN class=""><SPAN>Joule for Developers Help (J4D)</SPAN></SPAN></A></LI><LI><A href="https://help.sap.com/docs/abap-cloud/abap-development-tools-user-guide/joule-for-developers-abap-ai-capabilities-f14ebffef77b41bfb0746c33dcb70e84" target="_blank" rel="noopener noreferrer"><SPAN class=""><SPAN>ADT Eclipse AI Capabilities Help</SPAN></SPAN></A></LI><LI><SPAN class=""><SPAN><A class="" href="https://help.sap.com/docs/abap-ai/generative-ai-in-abap-cloud/set-up-abap-ai-sdk-powered-by-intelligent-scenario-lifecycle-management" target="_blank" rel="noopener noreferrer">ABAP AI SDK Help</A></SPAN></SPAN></LI><LI><A href="https://help.sap.com/docs/sap-ai-core/generative-ai/sap-abap-1?locale=en-US&version=LATEST" target="_blank" rel="noopener noreferrer"><SPAN class="">ABAP-1 Help</SPAN></A></LI></OL><P data-unlink="true"><SPAN class="">More high-level insights about <A href="https://www.sap.com/sea/products/artificial-intelligence/joule-for-developers.html" target="_blank" rel="noopener noreferrer">Joule for Developers/ABAP AI</A> and <A href="https://www.sap.com/products/technology-platform/abap/environment.html" target="_blank" rel="noopener noreferrer">ABAP platform can be found here</A> . Here you find <A href="https://www.sap.com/products/artificial-intelligence/sap-abap.html" target="_blank" rel="noopener noreferrer">more on ABAP- 1</A>,</SPAN></P>2026-01-21T18:01:36.956000+01:00https://community.sap.com/t5/technology-blog-posts-by-sap/custom-code-migration-to-sap-s-4hana-powered-by-sap-joule-for-developers/ba-p/14329094Custom code migration to SAP S/4HANA powered by SAP Joule for Developers, ABAP AI capabilities2026-02-18T14:23:51.235000+01:00OlgaDolinskajahttps://community.sap.com/t5/user/viewprofilepage/user-id/6638<P>Custom code migration during system conversion to SAP S/4HANA Cloud Private Edition is usually complex and time-consuming process. <SPAN>The whole custom code developed in the SAP ECC systems since years must be assessed and analysed for SAP S/4HANA and finally adapted after system conversion. </SPAN></P><P>Customers often face challenges to understand S/4HANA simplifications and their relation to the custom code due to scattered documentation across various channels like SAP simplification notes, SAP Help, blog posts. To find an answer to the specific SAP S/4HANA custom code migration question, one needs to go through multiple sources of information.</P><P><SPAN>The <STRONG>IT project managers</STRONG> have a tough time to carry out the custom code migration projects on time and within budget because they experience difficulties during execution of their tasks like defining custom code migration scope, getting high-level understanding of custom code issues, creating effort estimations and project plans and finding the right development experts for adaptation. Ability to meet a decision </SPAN>whether to migrate custom code to S/4HANA or not assumes understanding of its business purpose which is quite challenging primarily due to the absence of documentation for legacy code. <SPAN><A href="https://community.sap.com/t5/enterprise-resource-planning-blog-posts-by-sap/custom-code-analysis-for-sap-s-4hana-with-sap-fiori-app-custom-code/ba-p/13402751" target="_blank">Custom Code Migration app</A></SPAN> on SAP BTP can execute custom code analysis for S/4HANA readiness, but S/4HANA comes along with more than 430 simplification items which affect custom code. Thus, to get at least a high-level understanding of issues reported by the Custom Code Migration app to assign appropriate work packages to custom code migration developers a project manager needs to deep dive into these lengthy simplification items and provided cookbooks, which is time- and effort-consuming activity.</P><P>Along with this <STRONG>custom code migration developers</STRONG>, who finally must adapt the code for S/4HANA need to understand the old legacy code in all details: not only the business logic, but also the technical processing flow which is quite tedious task due to missing documentation. ABAP test cockpit (ATC) in ABAP development tools for Eclipse can check custom code for S/4HANA readiness, but developers still invest high effort into studying related simplification items and cookbooks to understand the issues in detail. The ATC issues in custom code should be fixed ideally with a high automation rate, but the <SPAN><A href="https://community.sap.com/t5/enterprise-resource-planning-blog-posts-by-sap/semi-automated-custom-code-adaptation-after-sap-s-4hana-system-conversion/ba-p/13359048" target="_blank">quick fixes provided for S/4HANA ATC issues in ABAP development tools for Eclipse</A></SPAN> can support about 40%-60% of the typical S/4HANA simplification use cases like conflicts with MATNR field extension or missing ORDER BY in SELECTs, the remaining ATC issues must be fixed manually by developers.</P><P><SPAN>To support IT project managers and developers during custom code migration projects to speed up the analysis and adaptation tasks and enhance productivity the AI-based skills were delivered for custom code management tools within SAP Joule for Developers, ABAP AI capabilities. This will shorten the custom code migration projects timelines, reduce project risks and enhance capacity to meet deadlines and budget constraints.</SPAN></P><P><SPAN>Let’s look at them in detail.</SPAN></P><H2 id="toc-hId-1789729044"><FONT color="#000080"><SPAN>AI-based custom code migration support for IT project managers </SPAN></FONT></H2><P><SPAN>Starting with SAP BTP ABAP environment 2602 AI-based custom code analysis support for IT project managers is integrated in the Custom Code Migration app. To use it the SAP Joule for Developers, ABAP AI capabilities must be activated in your SAP BTP ABAP environment system. See the SAP note <A href="https://me.sap.com/notes/3571857" target="_blank" rel="noopener noreferrer">3571857</A>.</SPAN></P><H4 id="toc-hId-1851380977"><FONT color="#333399"><SPAN>Understand legacy code in the AI-based Custom Code Migration app</SPAN></FONT></H4><P><SPAN>After execution of remote SAP S/4HANA readiness ATC check run over the custom code in the ECC system with the Custom Code Migration app in SAP BTP ABAP environment it is now possible under the <EM>Analyze Findings</EM> view to select ABAP program or ABAP class in the <EM>Findings</EM> table and use <STRONG>Code Explain</STRONG> capability to get explanation of its business purpose and processing logic.</SPAN></P><P><SPAN><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ccm_app_code_explain.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/372952i28C702CEFB75AE2A/image-size/large?v=v2&px=999" role="button" title="ccm_app_code_explain.png" alt="ccm_app_code_explain.png" /></span></SPAN></P><P><SPAN>You will get short and clear AI-based explanation of the code in the pop-up window, which will support your migration decision. Subsequently you can use <EM>Explain business purpose</EM> <EM>in detail</EM> and <EM>Explain processing logic in detail options</EM> to get more details to deepen the clarification.</SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="OlgaDolinskaja_0-1771231457056.png" style="width: 659px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/372955i1A455015AF9AC70F/image-dimensions/659x485?v=v2" width="659" height="485" role="button" title="OlgaDolinskaja_0-1771231457056.png" alt="OlgaDolinskaja_0-1771231457056.png" /></span></P><P><SPAN>Finally, you can use <EM>Scope</EM> part of the Custom Code Migration app to add or remove the object from scope based on your decision.</SPAN></P><P><SPAN><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ccm_app_scoping.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/372956i7AE5B9D251BBAFE0/image-size/large?v=v2&px=999" role="button" title="ccm_app_scoping.png" alt="ccm_app_scoping.png" /></span></SPAN></P><H4 id="toc-hId-1654867472"><FONT color="#333399"><SPAN>Understand S/4HANA ATC issues in the AI-based Custom Code Migration app</SPAN></FONT></H4><P><SPAN>After execution of remote SAP S/4HANA readiness ATC check run over the custom code in the ECC system with the Custom Code Migration app in SAP BTP ABAP environment it is now possible under the <EM>Analyze Findings</EM> view to select an ATC issue in the <EM>Findings</EM> table and use <STRONG>ATC Explain</STRONG> capability to get an explanation of an S/4HANA related ATC finding. The explanation is provided in the pop-up window along with the proposed step-by-step resolution and contains also referenced S/4HANA simplification materials like simplification notes or cookbooks. Referenced documents are offered as clickable links within the AI-based response for navigation to further details.</SPAN></P><P><SPAN><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ccm_app_atc_explain.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/372958i1D89154CF30A63FE/image-size/large?v=v2&px=999" role="button" title="ccm_app_atc_explain.png" alt="ccm_app_atc_explain.png" /></span></SPAN></P><P><SPAN>This will enable you to </SPAN>grasp the root cause quickly without having to read through numerous SAP S/4HANA simplification information materials.</P><H2 id="toc-hId-1200188529"><FONT color="#000080"><SPAN>AI-based support for custom code migration developer in ABAP development tools for Eclipse</SPAN></FONT></H2><P><SPAN>Starting with SAP S/4HANA Cloud Private Edition 2025 AI-based custom code analysis and adaptation support for developers is provided in ABAP development tools for Eclipse within SAP Joule for Developers, ABAP AI capabilities. To find out how to activate it see the blog post <A href="https://community.sap.com/t5/technology-blog-posts-by-sap/sap-joule-for-developers-abap-ai-capabilities-for-sap-s-4hana-cloud-private/ba-p/14236954" target="_blank">SAP Joule for Developers, ABAP AI capabilities for SAP S/4HANA Cloud Private Edition 2025</A>.</SPAN></P><P><STRONG><SPAN>NOTE: </SPAN></STRONG><SPAN>Code Explain for module pools and ABAP classes along with the deep dive explain (code in INCLUDEs and called methods outside of the source code object) will be delivered with SAP S/4HANA Cloud Private Edition 2025 <STRONG>FPS01</STRONG>.</SPAN></P><H4 id="toc-hId-1261840462"><FONT color="#333399"><SPAN>Using Docs Chat for questions around custom code and S/4HANA simplifications</SPAN></FONT></H4><P><SPAN>In most cases you as a custom code migration developer before starting with your adaptation activities first need to gain general understanding of S/4HANA simplifications related to your functional area of expertise to get an overview as well as deep dive into SAP standard changes relevant to your custom code. </SPAN></P><P><STRONG><SPAN>Docs Chat </SPAN></STRONG><SPAN>capability utilizes SAP simplification notes, related technical information and SAP Help documentation to deliver based on this extensive input quick and accurate answers.</SPAN></P><P><SPAN>Select <STRONG>/docs</STRONG> topic in the Joule chat window and ask your question, for example “<EM>What are the data model changes in Sales and Distribution?</EM>”. Joule will list all technical changes along with affected objects including also reference links for further information. You can also ask follow- up questions for your query.</SPAN></P><P><SPAN><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="docs_chat_sd.png" style="width: 839px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/372960iFF67F132289167E9/image-size/large?v=v2&px=999" role="button" title="docs_chat_sd.png" alt="docs_chat_sd.png" /></span></SPAN></P><P><SPAN>Now for example after finding out that VBUK and VBUP tables were eliminated in S/4HANA and knowing that this has direct impact on your custom code, you can ask Joule ”<EM>How can references to VBUK and VBUP be eliminated in my code?</EM>”. Joule will deliver short and concrete answer providing code proposals considering different use cases based on the information provided in the extensive cookbook about the VBUK and VBUP adaption.</SPAN></P><P><SPAN><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="docs_chat_sd_eliminate_vbuk.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/372961iB1B72EC4B2B82F5D/image-size/large?v=v2&px=999" role="button" title="docs_chat_sd_eliminate_vbuk.png" alt="docs_chat_sd_eliminate_vbuk.png" /></span></SPAN></P><H4 id="toc-hId-1065326957"><FONT color="#333399"><SPAN>Understanding of old legacy code </SPAN></FONT></H4><P><SPAN>Generally, you as a custom code migration developer starting with your adaptation activities need to understand the old legacy code, which must be analysed and adapted for S/4HANA. Thereby you are confronted with the following problems: the code has been implemented many years ago, often expands over multiple pages, has very little or no documentation, the author of the code is not available any more for questions and so on. Thus you have a tedious and long-time task to digest this code to verify if it is still needed from the business perspective and understand it’s implementation logic for the adaptation.</SPAN></P><P><SPAN>The <STRONG>Explain for ABAP report</STRONG> and <STRONG>Explain for module pools </STRONG>as interactive Dynpro-based applications capabilities significantly speed up and make more accurate the task of understanding of old legacy code.</SPAN></P><P><SPAN>Just select an old ABAP report in the <EM>Project Explorer</EM> and use context menu <EM>Joule ->Explain</EM>. Joule will explain its business purpose and processing logic and will list all called objects. You can further deep dive into details using <STRONG><EM>Explain business purpose in detail</EM></STRONG> or/and <STRONG><EM>Explain processing logic in detail</EM></STRONG> features in the Joule chat window or ask Joule to explain called objects. </SPAN></P><P><SPAN>In the example below the business purpose of this custom ABAP program is to upload customer email addresses, which length exceeds 50 characters since the standard ABAP program cannot handle it, and this custom functionality will be still required in the S/4HANA system.</SPAN></P><P><SPAN><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="explain_old_report.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/372962iFF5BB5329830FDFB/image-size/large?v=v2&px=999" role="button" title="explain_old_report.png" alt="explain_old_report.png" /></span></SPAN></P><P><SPAN>Therefore, you as developer can for example follow up on the details of processing logic to understand the program better for the upcoming adaptation.</SPAN></P><P><SPAN><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="explain_old_report_logic.png" style="width: 900px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/372963i1E1BDAA1C254D946/image-size/large?v=v2&px=999" role="button" title="explain_old_report_logic.png" alt="explain_old_report_logic.png" /></span></SPAN></P><P><SPAN>You can also select the source code snippet in the editor and ask Joule to explain it: </SPAN></P><P><SPAN><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="explain_old_report_loop_logic.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/372964iBEEEDCF130897C92/image-size/large?v=v2&px=999" role="button" title="explain_old_report_loop_logic.png" alt="explain_old_report_loop_logic.png" /></span></SPAN></P><P><SPAN>Here is one example of the module pool explanation by Joule. In addition to the general overview and business purpose Joule describes user flow, which is very important for screen-based Dynpro applications to follow on the screen logic along with technical details for the processing logic of the screens (PBO/PAI) comprising deep-dive into INCLUDEs and Dynpro logic:</SPAN></P><P><SPAN><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="module_pool_explain.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/372965i618C8AEC7C9AC764/image-size/large?v=v2&px=999" role="button" title="module_pool_explain.png" alt="module_pool_explain.png" /></span></SPAN></P><H4 id="toc-hId-868813452"><FONT color="#333399"><SPAN>Understanding of S/4HANA related ATC findings </SPAN></FONT></H4><P><SPAN>The basis for all custom code adaptation activities is the execution of S/4HANA readiness checks with ATC over custom code in your S/4HANA system in ABAP development tools for Eclipse. The ATC check result contains the list of S/4HANA incompatibility issues in custom code, which must be adapted, explaining the error and providing as a reference the link to the corresponding simplification information. The custom code migration developer needs to read through it to find out how to apply it to solve the error in the particular custom code object, which is time-consuming task.</SPAN></P><P><SPAN>The <STRONG>Explain ATC finding </STRONG>capability offers c</SPAN>lear and short explanation of the S/4HANA related issue in custom code based on information provided in S/4HANA simplification items and cookbooks along with step-by-step recommendation on how to solve the issue.</P><P><SPAN>After execution of the ATC check run with S/4HANA readiness check variant S4HANA_READINESS_2025 over your custom code the ATC findings are displayed in the <EM>ATC Problems View</EM>. In the Details of an ATC finding you see the description of the error, in this example “<EM>DB Operation found (KONV, see Note(s) 0002220005)</EM>” and the link to the related SAP simplification note 2220005, which must be examined to understand how to resolve this issue. Instead of doing this just select the ATC finding and use the context menu <EM>Joule->Explain</EM>.</SPAN></P><P><SPAN><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="atc_finding_explain_menu.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/372966i6574F7216DCD8D54/image-size/large?v=v2&px=999" role="button" title="atc_finding_explain_menu.png" alt="atc_finding_explain_menu.png" /></span></SPAN></P><P>Joule will deliver <SPAN>a crisp</SPAN> explanation telling you that the table KONV was replaced in S/4HANA with the table PRCD_ELEMENTS, which must be accessed using the new pricing result API. This explanation is based on the information provided within the cookbook about pricing conditions techniques attached to the related SAP simplification note <SPAN>2220005. </SPAN>Joule can also provide step-by-step recommendations on how to fix the issue and can answer follow-up questions for further clarification. The<SPAN> r</SPAN>eferenced documents (related SAP simplification note in this example) are offered as clickable links within the Joule response for navigation to further details.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="atc_finding_explain_result.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/372967i086D469995D83FD8/image-size/large?v=v2&px=999" role="button" title="atc_finding_explain_result.png" alt="atc_finding_explain_result.png" /></span></P><P>This will allow you to quickly grasp the root cause without having to read through numerous SAP S/4HANA simplification information materials.</P><H4 id="toc-hId-672299947"><FONT color="#333399"><SPAN>Getting code proposal for adaptation of S/4HANA related issues</SPAN></FONT></H4><P><SPAN>The final step for a custom code migration developer is to fix S/4HANA related ATC findings to adapt the code to S/4HANA.</SPAN></P><P><SPAN>The ATC findings which can be resolved using deterministic quick fixes are marked with the yellow light bulb in the ATC findings list. The resolution of the remaining findings must be done manually based on simplification information, which is quite laborious and time-demanding task. </SPAN></P><P><SPAN>The <STRONG>Code proposal </STRONG>capability allows you to </SPAN>fix the issue in custom code based on AI-based proposal emulating the same process as deterministic quick fixes and can be utilized for S/4HANA issues where deterministic quick fixes are not available.</P><P>After AI-based explanation of an ATC finding just click <EM>Generate Code Proposal</EM> in the Joule window</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="OlgaDolinskaja_0-1771233025400.png" style="width: 237px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/372968iD144167B51865DB5/image-dimensions/237x48?v=v2" width="237" height="48" role="button" title="OlgaDolinskaja_0-1771233025400.png" alt="OlgaDolinskaja_0-1771233025400.png" /></span></P><P>The AI-based code proposal is UI friendly: it can be generated either after explanation of the ATC finding (as suggested above) or from a source code line in the editor.</P><P>For generating code proposal from source editor just click on the ATC finding marker like this:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ccm_ai_code_proposal_from_editor.png" style="width: 552px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/372970iFC117DD1992B30DD/image-size/large?v=v2&px=999" role="button" title="ccm_ai_code_proposal_from_editor.png" alt="ccm_ai_code_proposal_from_editor.png" /></span></P><P><SPAN>After Joule proposed the code change, you have different options. You can <EM>Copy</EM> the code proposal for pasting it into the editor later or <EM>Insert </EM>the code at the cursor position in the editor, or use <EM>Apply</EM> (recommended).</SPAN></P><P><SPAN><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="atc_generate_code_proposal.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/372971i9D02D606A16E7C0D/image-size/large?v=v2&px=999" role="button" title="atc_generate_code_proposal.png" alt="atc_generate_code_proposal.png" /></span></SPAN></P><P>If selecting <EM>Apply</EM>, then in the same way as for deterministic quick fixes the <EM>Code Review Dialog</EM> will be shown displaying the original source code and the source code containing code proposal.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="atc_code_proposal_apply.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/372972i75E92E84681CB385/image-size/large?v=v2&px=999" role="button" title="atc_code_proposal_apply.png" alt="atc_code_proposal_apply.png" /></span></P><P>You as developer can review the code proposal and apply as needed. AI-based Code Proposal allows you to save the manual efforts and benefit from the semi-automated code adaptation as you already know it from the deterministic quick fixes.</P><H2 id="toc-hId-217621004"><FONT color="#000080">Further information</FONT></H2><P><SPAN>Discover generative AI capabilities for ABAP custom code migration by watching the video: </SPAN><A href="https://www.sap.com/assetdetail/2025/10/920b9e66-297f-0010-bca6-c68f7e60039b.html" target="_blank" rel="noopener noreferrer">Unleash the power of GenAI for ABAP Custom Code Migration</A>.</P><P>For more details about ABAP AI capabilities for custom code migration refer to the SAP Help Portal documentation <SPAN><A href="https://help.sap.com/docs/abap-ai/generative-ai-in-abap-cloud/using-custom-code-migration-ai-assistant" target="_blank" rel="noopener noreferrer">Using Custom Code Migration AI assistant</A></SPAN> including also video tutorials.</P>2026-02-18T14:23:51.235000+01:00https://community.sap.com/t5/technology-blog-posts-by-members/how-to-resolve-atc-issues/ba-p/14328421How to resolve atc issues2026-02-19T08:03:25.934000+01:00gowthamchttps://community.sap.com/t5/user/viewprofilepage/user-id/178391<P>Hi all <BR />in this blog i have explained how to resolve ATC issues</P><P><STRONG>Introduction:</STRONG></P><P>ATC (<A class="" href="https://www.google.com/search?q=ABAP+Test+Cockpit&rlz=1C1ONGR_enIN1057IN1057&oq=WHAT+IS+ATC+ISSUESS+IN+SAP&gs_lcrp=EgZjaHJvbWUyBggAEEUYOTIJCAEQIRgKGKABMgcIAhAhGJ8FMgcIAxAhGI8CMgcIBBAhGI8C0gEJMTY4MTBqMGo3qAIIsAIB8QVYU6eYGaWdXA&sourceid=chrome&ie=UTF-8&ved=2ahUKEwje64rvrNiSAxWpRmcHHVVPPTMQgK4QegQIARAB" target="_blank" rel="noopener nofollow noreferrer">ABAP Test Cockpit</A>) issues in SAP are quality findings, errors, or warnings flagged during automated code analysis, identifying syntax errors, performance bottlenecks, security flaws, or deviations from best practices in custom ABAP code (Z-code). These issues are crucial for maintaining code quality,, especially during upgrades to S/4HANA.<SPAN class=""><SPAN class=""><SPAN> </SPAN></SPAN></SPAN></P><P><STRONG>ATC (ABAP Test Cockpit)</STRONG></P><P><SPAN>let's consider you are getting error in ZOL test system</SPAN><SPAN> </SPAN></P><P><SPAN><STRONG>step 1</STRONG>: run ATC CHECK</SPAN><SPAN> </SPAN></P><P><SPAN>use SE80 -> search for object -> run ATC check </SPAN><SPAN> <BR /></SPAN><SPAN>or </SPAN><SPAN> <BR /></SPAN><SPAN>use checkman transaction -> select the object type and paste the object -> enter</SPAN><SPAN> </SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="gowthamc_0-1771051372310.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/372542i86CF94EF619D8334/image-size/medium?v=v2&px=400" role="button" title="gowthamc_0-1771051372310.png" alt="gowthamc_0-1771051372310.png" /></span></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="gowthamc_1-1771051372312.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/372540i1874538D1CB77A0E/image-size/medium?v=v2&px=400" role="button" title="gowthamc_1-1771051372312.png" alt="gowthamc_1-1771051372312.png" /></span></P><P><STRONG>step 2:</STRONG><SPAN> </SPAN></P><P><SPAN>We need to check for same error in development system in my case EWE is the development system.</SPAN><SPAN> </SPAN></P><P><SPAN>If the same checkman issue is coming up over there or not, if not then it has been fixed or exempted </SPAN><SPAN> <BR /></SPAN><SPAN> <BR /></SPAN><SPAN>then i checked there was no ATC error found </SPAN><SPAN> </SPAN></P><P><STRONG>Step 3: </STRONG></P><P><SPAN>In my case no error found in EWE system, then that means error been fixed or exempted</SPAN><SPAN> </SPAN></P><P><SPAN>Next -> check for exemption </SPAN><SPAN> </SPAN></P><P><SPAN>To check -> ATC_SHOW_EXEMPTION -> click on execute -> after click on filter and search for object (as of now no hits found – that means no exemption was raised )</SPAN><SPAN> </SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="gowthamc_2-1771051372313.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/372541iA8309FAC70784188/image-size/medium?v=v2&px=400" role="button" title="gowthamc_2-1771051372313.png" alt="gowthamc_2-1771051372313.png" /></span></P><P><SPAN>If no exemption – then has it be fixed </SPAN><SPAN> </SPAN></P><P><STRONG>step-4</STRONG><SPAN> </SPAN></P><P><SPAN>next we need to check if there were any changes being made against this object (yes in line number 10 they have added t- code but this was missing in ZOL)</SPAN><SPAN> </SPAN></P><P><STRONG>Step-5 </STRONG></P><P><SPAN>Then go ahead make the changes, try cross porting the changes through SCWB by finding the TR in EWE which had these changes</SPAN><SPAN> </SPAN></P><P><SPAN>In ZOL system</SPAN><SPAN> </SPAN></P><P><SPAN>enter t code SCWB -> click on Sap Note/ Request (pop up will get open)-> select source request -> paste the TR</SPAN><SPAN> </SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="gowthamc_3-1771051372314.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/372544i54554659AC6028BB/image-size/medium?v=v2&px=400" role="button" title="gowthamc_3-1771051372314.png" alt="gowthamc_3-1771051372314.png" /></span></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="gowthamc_4-1771051372315.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/372543i7C31BA5F7B25DBD6/image-size/medium?v=v2&px=400" role="button" title="gowthamc_4-1771051372315.png" alt="gowthamc_4-1771051372315.png" /></span></P><P><SPAN><STRONG>to find that TR</STRONG></SPAN><STRONG> <BR /></STRONG><SPAN>open that object in EWE system -> utilities -> version->version management-> search for related description-> if you get select and click on display or details (check for details) -> if details are matched go back and copy the TR (in this case TR is ER1K8A55CZ)</SPAN><SPAN> </SPAN></P><P><SPAN> </SPAN><STRONG>step 6 </STRONG></P><P><SPAN>enter t code SCWB ZOL system-> click on Sap Note/ Request (pop up will get open)-> select source request -> paste the TR-> copy the TR and paste and select right mark -> then you can see below screen</SPAN><SPAN> </SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="gowthamc_5-1771051372316.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/372545iAF6D633DB7924B7B/image-size/medium?v=v2&px=400" role="button" title="gowthamc_5-1771051372316.png" alt="gowthamc_5-1771051372316.png" /></span></P><P><SPAN>there select both rows and click on right mark -> then below screen you can see</SPAN><SPAN> </SPAN></P><P><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="gowthamc_6-1771051372317.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/372546i8B6E5584A7170792/image-size/medium?v=v2&px=400" role="button" title="gowthamc_6-1771051372317.png" alt="gowthamc_6-1771051372317.png" /></span></P><P><SPAN>here you need to paste TR (this TR we need to create for system ZOL in which i need to store changes which i have copied in EWE system)</SPAN><SPAN> </SPAN></P><P><SPAN>this TR we need to create through corrective measure</SPAN><SPAN> </SPAN></P><P><SPAN> </SPAN><STRONG>step-8 </STRONG></P><P><SPAN>login in I7P system (to create TR for ZOL system to store chnages)</SPAN><SPAN> </SPAN></P><P><SPAN>select abap corr measures-> click on create->provide details(application component, description,software component,)-> create corrective measure->copy the workbench request</SPAN><SPAN> </SPAN></P><P><SPAN><STRONG>step-9</STRONG></SPAN><STRONG> <BR /></STRONG><SPAN>copy workbench request and paste in step 6</SPAN><SPAN> </SPAN></P><P><SPAN>This solves your ATC issue</SPAN></P><P><STRONG>Conclusion </STRONG><SPAN> :</SPAN></P><P>in this blog i have explained how you can resolve ATC by cross porting the TR from the system where that code is working as expected that TR we are cross porting to system where it is not working (coping TR from working system and pasting in test system) in this way you can resolve your ATC issue or else by raising an exemption you can resolve it <BR />in this ATC issue T Code was missing that we are cross ported from EWE system.</P>2026-02-19T08:03:25.934000+01:00