https://raw.githubusercontent.com/ajmaradiaga/feeds/main/scmt/topics/ABAP-Testing-and-Analysis-blog-posts.xml SAP Community - ABAP Testing and Analysis 2024-05-20T11:10:00.616448+00:00 python-feedgen ABAP Testing and Analysis blog posts in SAP Community https://community.sap.com/t5/enterprise-resource-planning-blogs-by-sap/usage-of-abap-test-cockpit-in-the-sap-s-4hana-cloud-public-edition/ba-p/13562565 Usage of ABAP Test Cockpit in the SAP S/4HANA Cloud, public edition 2023-07-19T09:52:01+02:00 OlgaDolinskaja https://community.sap.com/t5/user/viewprofilepage/user-id/6638 Since SAP S/4HANA Cloud, public edition 2208 it is became possible to create development projects in a <A href="https://help.sap.com/docs/SAP_S4HANA_CLOUD/a630d57fc5004c6383e7a81efee7a8bb/aa60b129af7b4ce8ae052618c8315d29.html" target="_blank" rel="noopener noreferrer">3-system landscape</A> using <A href="https://help.sap.com/docs/SAP_S4HANA_CLOUD/6aa39f1ac05441e5a23f484f31e477e7/e1059ff581854a699f15734049f14293.html" target="_blank" rel="noopener noreferrer">Developer Extensibility</A>. This enables you to develop ABAP custom code using the principles of the <A href="https://blogs.sap.com/2023/05/26/abap-cloud-sap-s-4hana-extensibility-may-2023-update/" target="_blank" rel="noopener noreferrer">ABAP Cloud</A> development.<BR /> <BR /> ABAP test cockpit (ATC) is an essential tool for the quality assurance of your custom code. Therefore, while developing ABAP custom code in the SAP S/4HANA Cloud, public edition system, you will be surely eager to understand how to use ATC for your cloud developments.<BR /> <H2 id="toc-hId-962973925"><SPAN style="color: #33a7ff">Use default ATC check variant</SPAN></H2><BR /> You do not need to choose an ATC check variant for the execution of an ATC check run. The default ATC check variant (delivered by SAP) will be used automatically by ATC. This default ATC check variant ABAP_CLOUD_DEVELOPMENT_DEFAULT includes all recommended by SAP ATC checks that should be executed to ensure the quality standard for ABAP cloud development, including also the execution of ABAP Unit tests:<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/07/atc_s4cloud_variant.jpg" /></P><BR /> <BR /> <H2 id="toc-hId-766460420"><SPAN style="color: #33a7ff">How to set up your own ATC check variant</SPAN></H2><BR /> If you want to check your code using another ATC check variant or include your own ATC checks, it is also possible.<BR /> <BR /> You can create your own ATC check variant from scratch or copy an existing check variant and add or remove checks. See also the blog <A href="https://blogs.sap.com/2021/05/25/how-to-create-and-use-your-own-atc-check-variant-in-sap-btp-abap-environment/" target="_blank" rel="noopener noreferrer">How to create and use your own ATC check variant in ABAP Development Tools for Eclipse</A> for more details.<BR /> <BR /> You can also implement your own ATC checks and add them to your check variant. See also the blog &nbsp;<A href="https://blogs.sap.com/2021/05/25/how-to-create-your-own-atc-check-in-sap-btp-abap-environment/" target="_blank" rel="noopener noreferrer">How to create and use your own ATC check in ABAP Development Tools for Eclipse</A> for more information.<BR /> <H2 id="toc-hId-569946915"><SPAN style="color: #33a7ff">Configure ATC using ABAP Test Cockpit Configurator app</SPAN></H2><BR /> You can use the ABAP Test Cockpit Configurator app to view and maintain ATC configurations. It is possible to create a new configuration based on an ATC check variant, configure ATC check priorities according to your needs, exclude ATC checks and configure transport settings. See also the blog <A href="https://blogs.sap.com/2023/11/12/how-to-configure-abap-test-cockpit-atc-in-the-cloud/" target="_blank" rel="noopener noreferrer">How to configure ABAP Test Cockpit (ATC) in the cloud</A>&nbsp;and the SAP Help documentation <A href="https://help.sap.com/docs/SAP_S4HANA_CLOUD/6aa39f1ac05441e5a23f484f31e477e7/22c26ff27b9f44b7b7229a01e8e8ed25.html" target="_blank" rel="noopener noreferrer">ABAP Test Cockpit Configurator</A>.<BR /> <H2 id="toc-hId-373433410"><SPAN style="color: #33a7ff">Check your custom code with ATC&nbsp;</SPAN></H2><BR /> During your development process, in order to check your code with ATC, select your custom code package or objects in the ABAP development tools for Eclipse in the <EM>Project Explorer</EM> and execute ATC run by using the context menu <EM>Run As -&gt; ABAP Test Cockpit:</EM><BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/07/atc_s4cloud_run_atc.jpg" /></P><BR /> Consequently, the ATC run results will be displayed in the <EM>ATC Problems View</EM> as usual:<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/07/atc_s4cloud_atc_results-1.jpg" /></P><BR /> <BR /> <H2 id="toc-hId-176919905"><SPAN style="color: #33a7ff">Code Vulnerability Analyzer (CVA) security checks</SPAN></H2><BR /> CVA security checks in the SAP S/4HANA Cloud, public edition can be used without any additional license fee. The checks are included in the ATC default check variant ABAP_CLOUD_DEVELOPMENT_DEFAULT under the category <EM>Security</EM> and will be executed automatically as you run ATC over your code.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/07/atc_s4cloud_cva.jpg" /></P><BR /> <BR /> <H2 id="toc-hId--19593600"><SPAN style="color: #33a7ff">Check your transports during release</SPAN></H2><BR /> You should run ATC checks explicitly in the Transport Organizer before releasing a transport request or task. The releases of transports and tasks containing the ATC findings of priority levels 1 and 2 are blocked automatically by the system, for ATC findings of priority level 3 you will get notification. The behavior at transport release can be changed in the ABAP Test Cockpit Configurator app described above.<BR /> <BR /> You can find more information in the SAP Help Documentation <A href="https://help.sap.com/docs/SAP_S4HANA_CLOUD/25cf71e63940453397a32dc2b7676947/c0d95a9263da476eb5b6ae03225ce7ba.html" target="_blank" rel="noopener noreferrer">Working with ATC During Transport Release</A>.<BR /> <H2 id="toc-hId--216107105"><SPAN style="color: #33a7ff">Handling of ATC exemptions</SPAN></H2><BR /> For the treatment or suppression of false positives we also offer the ATC exemptions handling in the SAP S/4HANA Cloud, public edition. The process is the same as in SAP BTP, ABAP environment, see also the blog <A href="https://blogs.sap.com/2021/05/25/how-to-create-and-approve-atc-exemptions-in-sap-btp-abap-environment/" target="_blank" rel="noopener noreferrer">How to create and approve ATC exemptions in SAP BTP ABAP Environment</A>.<BR /> <H2 id="toc-hId--412620610"><SPAN style="color: #33a7ff">Using Custom Code Migration app to check custom code in the system</SPAN></H2><BR /> If you are a quality expert and want to check the custom code in the whole system, you can use Custom Code Migration app with the “Custom code analysis” project type.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/07/s4public_ccm_choose_project.jpg" /></P><BR /> If using Custom Code Migration app in an SAP S/4HANA Cloud, public edition system, you can check only custom code in the same system (no remote ATC runs are possible):<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/07/s4public_ccm_create_project.jpg" /></P><BR /> After you saved your custom code analysis project, ATC will execute custom code analysis over all custom code objects in the system. The ATC results can be accessed under the <EM>Analysis</EM> tab by clicking the <EM>Analyze Findings</EM> button or by clicking directly on the reported <EM>Number of Findings</EM> in the project:<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/07/s4public_ccm_view_atc_results-2.jpg" /></P><BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/07/s4public_display_ccm_result.jpg" /></P><BR /> <BR /> <H2 id="toc-hId--609134115"><SPAN style="color: #33a7ff">Further information</SPAN></H2><BR /> Further detailed information is provided in the SAP Help documentation <A href="https://help.sap.com/docs/SAP_S4HANA_CLOUD/6aa39f1ac05441e5a23f484f31e477e7/22dcdf6c7cb54a19908056f2e257df42.html" target="_blank" rel="noopener noreferrer">Assuring Quality of ABAP Code</A>.<BR /> <BR /> &nbsp; 2023-07-19T09:52:01+02:00 https://community.sap.com/t5/application-development-blog-posts/test-isolation-in-abap-made-simple/ba-p/13565478 Test Isolation in ABAP made simple 2023-08-17T02:47:19+02:00 MichaelSauter https://community.sap.com/t5/user/viewprofilepage/user-id/170383 Are you tired of long-running, unstable tests? Test Isolation might help with that. In most technology stacks, there is an abundance of frameworks and tools to help with that. But in the ABAP environment, there are fewer open source libraries to help there and it's harder to import them into the systems to use them.<BR /> <BR /> But how can I isolate my unit tests in ABAP, then?<BR /> <BR /> Actually, there are quite a few helpful tools to help there and there are more and more coming.<BR /> <BR /> But finding the existing ones, learning about new ones and being able to use them can still be hard. That's why I created a <A href="https://github.com/SAP-samples/abap-test-isolation-examples" target="_blank" rel="nofollow noopener noreferrer">repository</A> containing examples of all existing test isolation tools which are currently available in the ABAP platform.<BR /> <H1 id="toc-hId-833979652">The Idea</H1><BR /> The idea of this repository is to show how to use any test environment, helper class and some common design patterns that help with isolating your code under test from its depended-on components.<BR /> <H1 id="toc-hId-637466147">How To Use This Repository</H1><BR /> If you want to isolate your code under test from the components it uses, you need to take a look at what your depended-on component is. Each isolation technique for a specific kind of depended-on component is used separate test class of the global class ZATI_CL_CODE_UNDER_TEST.<BR /> The table below shows which test class uses which tool to isolate against which kind of depended-on component.<BR /> <BR /> &nbsp;<BR /> <TABLE style="width: 100%"><BR /> <TBODY><BR /> <TR style="height: 14px"><BR /> <TH style="height: 14px">Test Class</TH><BR /> <TH style="height: 14px">Depended-On Component</TH><BR /> <TH style="height: 14px">Tool</TH><BR /> </TR><BR /> <TR style="height: 14px"><BR /> <TD style="height: 14px">ltc_call_other_object</TD><BR /> <TD style="height: 14px">Classes</TD><BR /> <TD style="height: 14px">Self-made test doubles</TD><BR /> </TR><BR /> <TR style="height: 28px"><BR /> <TD style="height: 28px">ltc_call_other_object_fw</TD><BR /> <TD style="height: 28px">Classes</TD><BR /> <TD style="height: 28px"><A href="https://help.sap.com/docs/ABAP_PLATFORM/c238d694b825421f940829321ffa326a/804c251e9c19426cadd1395978d3f17b.html?locale=en-US" target="_blank" rel="noopener noreferrer">ABAP Object Oriented Test Double Framework</A></TD><BR /> </TR><BR /> <TR style="height: 28px"><BR /> <TD style="height: 28px">ltc_call_function_module</TD><BR /> <TD style="height: 28px">Function Modules</TD><BR /> <TD style="height: 28px"><A href="https://help.sap.com/docs/SAP_S4HANA_CLOUD/25cf71e63940453397a32dc2b7676947/75964f284aa9435da40c4d82e111f276.html?locale=en-US" target="_blank" rel="noopener noreferrer">Function Module Test Double Framework</A></TD><BR /> </TR><BR /> <TR style="height: 28px"><BR /> <TD style="height: 28px">ltc_select_database_table</TD><BR /> <TD style="height: 28px">Database Tables and CDS Entities</TD><BR /> <TD style="height: 28px"><A href="https://help.sap.com/docs/ABAP_PLATFORM/c238d694b825421f940829321ffa326a/1432ca1fc7b547d493f691cdd09245ae.html?locale=en-US" target="_blank" rel="noopener noreferrer">ABAP SQL Test Double Framework</A></TD><BR /> </TR><BR /> <TR style="height: 28px"><BR /> <TD style="height: 28px">ltc_select_cds_entity</TD><BR /> <TD style="height: 28px">Database Artefacts which are used in CDS</TD><BR /> <TD style="height: 28px"><A href="https://help.sap.com/docs/ABAP_PLATFORM_NEW/c238d694b825421f940829321ffa326a/cbedc08ff4de48ffa8d04d3067ef08e7.html?locale=en-US" target="_blank" rel="noopener noreferrer">ABAP CDS Test Double Framework</A></TD><BR /> </TR><BR /> <TR style="height: 28px"><BR /> <TD style="height: 28px">ltc_call_authority_check</TD><BR /> <TD style="height: 28px">Authority Checks</TD><BR /> <TD style="height: 28px"><A href="https://help.sap.com/docs/ABAP_PLATFORM_NEW/c238d694b825421f940829321ffa326a/6500d4d8f89a4743a6c0513d659a475b.html?locale=en-US" target="_blank" rel="noopener noreferrer">Classic ABAP Authority Check Test Helper API</A></TD><BR /> </TR><BR /> <TR style="height: 28px"><BR /> <TD style="height: 28px">ltcl_call_rap_bo_tx_bf_dbl</TD><BR /> <TD style="height: 28px">RAP Business Objects</TD><BR /> <TD style="height: 28px"><A href="https://help.sap.com/docs/SAP_S4HANA_CLOUD/25cf71e63940453397a32dc2b7676947/0337944d45994a3ba7482421cdfe36c8.html" target="_blank" rel="noopener noreferrer">Transactional Buffer Double Support</A></TD><BR /> </TR><BR /> <TR style="height: 14px"><BR /> <TD style="height: 14px">ltcl_call_rap_bo_mock_eml_api</TD><BR /> <TD style="height: 14px">RAP Business Objects</TD><BR /> <TD style="height: 14px"><A href="https://help.sap.com/docs/SAP_S4HANA_CLOUD/25cf71e63940453397a32dc2b7676947/4fa0e8a6ea0d4c45bec1afdc1ac6bd49.html?locale=en-US" target="_blank" rel="noopener noreferrer">Mock EML API Support</A></TD><BR /> </TR><BR /> </TBODY><BR /> </TABLE><BR /> <H1 id="toc-hId-440952642">The Future of This Repository</H1><BR /> I'll do my best to stay up-to-date with frameworks that come up in the ABAP stack, but you are all invited to contribute to the repository! Share your thoughts, comment on this post if I missed something and let me know what you need there.<BR /> <BR /> If you feel like having a more detailed explanation, a tour through the terminology being used and the repository itself, you can join on September 7th <A href="https://www.youtube.com/live/Duwd6Du7lM0?feature=share" target="_blank" rel="nofollow noopener noreferrer">here</A>. If you want to add it to your calendar, <A href="https://groups.community.sap.com/khhcw49343/downloadCalendar?message.id=276634" target="_blank" rel="noopener noreferrer">here's the download</A>. 2023-08-17T02:47:19+02:00 https://community.sap.com/t5/application-development-blog-posts/atc-the-key-to-successful-abap-development/ba-p/13577493 ATC: The Key to Successful ABAP Development 2023-08-31T22:35:28+02:00 potnoorudeepika https://community.sap.com/t5/user/viewprofilepage/user-id/156241 This blog is for beginners who are new to ABAP Test Cockpit. It provides a comprehensive tutorial on the basics of ABAP Test Cockpit, including how to create and run test cases, how to manage test data, and how to analyze test results. P<SPAN class="ui-provider fy b c d e f g h i j k l m n o p q r s t u v w x y z ab ac ae af ag ah ai aj ak" dir="ltr">rovides a guide on how to use ABAP Test Cockpit (ATC) to ensure successful development and gain insights into performance and security.</SPAN><BR /> <BR /> <STRONG>What is&nbsp;</STRONG><B>ATC?</B><BR /> <BR /> ABAP Test Cockpit (ATC) is a tool introduced by SAP that is used to check the quality of the ABAP Program, it is compatible with ABAP code inspector for creating of variants.<BR /> <BR /> ABAP Test Cockpit(ATC) is directly integrated with ABAP workbench and ABAP Development Tools for Eclipse and allow the users to check their codes from within the development Environment.<BR /> <BR /> In particular, you can check the ABAP Programs for many types of problems like syntax errors, performance of a program.<BR /> <BR /> ABAP Test Cockpit(ATC) is a tool that can be used both by SAP developers and quality expert. For example, if a developer want to checks all development objects of a package in the development system using the same ATC, he can go ahead and correct all messages without having to wait for feedback from the quality manager.<BR /> <BR /> Before going towards in ATC we should know about the Code Inspector.<BR /> <BR /> Code Inspector is a tool to analyze an ABAP Program during the it's design, it analyzes code for a variety checks, example syntax checks, programming standards, naming conventions check and security checks.<BR /> <BR /> The T-CODE for Code Inspector - <STRONG>SCI</STRONG><BR /> <BR /> We can analyze single object/ set of objects and transport request in the result we receive the count of errors, warnings and information.<BR /> <BR /> Open the T-Code SCI<BR /> <P style="overflow: hidden;margin-bottom: 0px"><DEL><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/08/01-1.png" height="335" width="378" /></DEL></P><BR /> In the above screen we can see the 3 elements<BR /> <UL><BR /> <LI>Inspection</LI><BR /> <LI>Object Set</LI><BR /> <LI>Check Variant</LI><BR /> </UL><BR /> Here we can create the two types of variant Global and local Variables as shown in the below image.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/08/Screenshot-2023-08-09-124604.png" height="348" width="527" /></P><BR /> As Global Variant is access by all users and Local Variant is access by only that particular user.<BR /> <BR /> So now we should create the local variant, here we should give variant name and click on the create.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/08/02.png" height="157" width="448" /></P><BR /> After that we can move to another screen as shown in below image.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/08/03.png" /></P><BR /> In the above image we can see the two radio buttons<BR /> <UL><BR /> <LI>In reference check system.</LI><BR /> <LI>Locally available checks.</LI><BR /> </UL><BR /> We should select the locally available checks it is mainly used for local checks i.e., with in the system, where in reference check system we use the RFC i.e., for remote checking.<BR /> <BR /> In above image we can see they are so many checks i.e., ABAP dictionary checks, performance checks, security checks, syntax check… based on our needs we can select the checkbox.<BR /> <BR /> <STRONG>General checks&nbsp; </STRONG>mainly&nbsp;it contains&nbsp; data formatting elements, such as listing table names from SELECT statements.<BR /> <BR /> <STRONG>Security checks&nbsp; </STRONG>mainly contain checks for critical statements, cross-client queries, inadequate authority checks.<BR /> <BR /> <STRONG>Syntax check / generation </STRONG>mainly contains ABAP syntax check.<BR /> <BR /> <STRONG>Programming conventions </STRONG>mainly contain checks for name conventions.<BR /> <BR /> <STRONG>Search functions </STRONG>contain searches in ABAP coding for tokens (words) and statements.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/08/04.png" height="451" width="494" /></P><BR /> Here based on our requirements we can check is checkboxes, here i want to check the performance check, security, general checks, so based on that i have selected checkboxes and click on the save button.<BR /> <BR /> After click on save button, we can see the success message at bottom of the screen.<BR /> <BR /> By this way we can create the variant in Code Inspector (SCI).<BR /> <BR /> After creation of the variant we should create the Job run by using the ABAP Test Cockpit.<BR /> <BR /> <STRONG>How to create ATC?</STRONG><BR /> <BR /> As i said before using the ATC tool we should create a variant in Code Inspector.<BR /> <BR /> <STRONG>T-CODE for ABAP Test Cockpit - ATC</STRONG><BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/08/05.png" height="403" width="237" /></P><BR /> When we open the t-code ATC we will get a screen as shown in above image.<BR /> <BR /> In that we should click on the Schedule Runs. when we click on the Schedule Runs we will get a screen as shown in below image.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/08/06.png" height="141" width="507" /></P><BR /> Now we should click on the create.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/08/07.png" height="122" width="502" /></P><BR /> Here we should give the series name.<BR /> <BR /> After enter the series name we can get the below screen as shown in below image.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/08/08.png" height="401" width="489" /></P><BR /> Here we should give the check variant name that we have created in SCI t-code and we should give the package name that we want to analyze, we can give our custom package name.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/08/09.png" height="165" width="473" /></P><BR /> Here i have given my package name, after that click on the save. We get the series name that we have created.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/08/10-11.png" /></P><BR /> Here we can see the series name, variant name, created by, created on...etc.<BR /> <BR /> Now we should select the series name that we have created and click on the Schedule.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/08/11-9.png" /></P><BR /> After click on the Schedule we will redirect to another screen, in that screen no need to change anything click on F8. After completion of execution. We can get the success message the run successfully scheduled.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/08/12-9.png" height="527" width="525" /></P><BR /> After completion of execution. Back to ATC and click on the monitor and control runs.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/08/13-6.png" height="383" width="222" /></P><BR /> Here we can see the Run Series, Created by and time period.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/08/14-2.png" height="167" width="502" /></P><BR /> Here we should give our Run Series name and after that click on F8.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/08/15-4.png" /></P><BR /> As shown in above image we can see out ATC run, it contains the state, duration of time it takes, started on.. etc.<BR /> <BR /> we have 3 main states.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/08/16-1.png" />- Complete State.</P><BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/08/17.png" /><SPAN style="font-size: 1rem">- Running State</SPAN></P><BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/08/18.png" />- Failed State.</P><BR /> By double click on ATC run. We can see the phases of checking. We can see that check failures is 1 i.e., we have one failed case.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/08/19-1.png" height="248" width="581" /></P><BR /> By double click on check failures we can get the data where the check is failed as shown in below image.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/08/20-1.png" height="278" width="562" /></P><BR /> After completion of the runs we can go-to ATC tcode and in that we should click on Manage Results.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/08/21.png" /></P><BR /> Here we get the run result list sorted by priority. As shown in the below image.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/08/22.png" /></P><BR /> Now double click on the check title or check message, it displays the details where we got the error.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/08/23.png" height="223" width="542" /></P><BR /> By clicking on the object name we directly redirect to the program at where error is present.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/08/24.png" /></P><BR /> Here in above image in select query we didn't have where condition. To overcome that we can add where condition or we can add the pseudo comment that given in the above image.<BR /> <BR /> <STRONG>Remote Code Inspection in ATC</STRONG><BR /> <BR /> To create the Remote code Inspection in ATC we have to follow the following steps.<BR /> <BR /> Go to T-code SM59&nbsp; in order to check the RFC destination used by ATC.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/08/25.png" height="117" width="430" /></P><BR /> Here we should give the custom name for destination and connection type.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/08/26-1.png" height="226" width="514" /></P><BR /> In technical settings we should give the targe host and after that go-to logon and security.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/08/27.png" height="191" width="545" /></P><BR /> Here we should give the logon details of the target system.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/08/28.png" /></P><BR /> After that check the connection Test and Remote Logon. After completion of that go-to Tcode - ATC.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/08/29.png" height="339" width="306" /></P><BR /> Here we should go to system role. Select the ATC checks using Object providers radiobutton.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/08/30.png" height="134" width="279" /></P><BR /> After that move to the object providers.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/08/31.png" height="311" width="324" /></P><BR /> When we double click on the object providers and in that go-to System groups section and create the new system group.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/08/32.png" height="144" width="484" /></P><BR /> After Creation of new system group, we should go-to RFC Object Providers. Here creates the new entry then set the system group and RFC destination which we created before.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/08/33.png" /></P><BR /> After that we should schedule the runs.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/08/34.png" /></P><BR /> Here below the description we should check all the check boxes.<BR /> <BR /> If you want to check the remote system via RFC about the readiness check oh s/4 hana migration, you should select <STRONG>“S4HANA_READINESS_REMOTE”</STRONG> here.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/08/36.png" height="209" width="438" /></P><BR /> After that we should save the Service name and schedule the run. Go-to monitor and control runs here you can see the ATC run monitoring for you schedule run.<BR /> <BR /> In the Remote analyze by ATC the job is running in the destination system but the result will shown in the current system.<BR /> <BR /> <STRONG>How to Check ATC for Single Program.</STRONG><BR /> <BR /> Go to ABAP program TCode SE38.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/08/37.png" height="282" width="509" /></P><BR /> <P style="overflow: hidden;margin-bottom: 0px">Program -&gt; check --&gt; ABAP Test Cockpit (ATC)</P><BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/08/38.png" /></P><BR /> Now directly you can check the ATC.<BR /> <BR /> <STRONG>ATC Check for eclipse</STRONG><BR /> <BR /> Go eclipse and open any cds view /Amdp program or any program in eclipse.<BR /> <BR /> Go-to run-&gt;runas-&gt;ABAP test cockpit.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/08/39.png" /></P><BR /> Under ATC problems we can see errors or any information are present. If we have any information for a program then we get total details of information on the right side of the screen.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/08/40.png" /></P><BR /> &nbsp;<BR /> <BR /> <STRONG>How to Create ATC Check Variant in Eclipse</STRONG><BR /> <BR /> Open the file menu and choose New &gt; Others &gt; ABAP Repository &gt; Check Variant.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/08/41.png" height="141" width="515" /></P><BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/08/42.png" height="348" width="522" /></P><BR /> Here we should give the package, name of variant and description.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/08/43.png" height="259" width="516" /></P><BR /> In the above image we can see the check boxes, based on our requirements we can check the checkboxes and include in our check variant.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/08/44.png" height="281" width="539" /></P><BR /> In window check details, use the tab parameters to display the parameters of the selected check and Documentation to display available documentation for selected check, these two are optional.<BR /> <BR /> Save and Active your check variant.<BR /> <BR /> If we want to run the program with our custom variant then choose RUN &gt; RUNAS &gt; ABAP Test Cockpit with.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/08/45.png" /></P><BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/08/46.png" /></P><BR /> Here we should give the variant that we have created.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/08/47.png" /></P><BR /> Here we can see that we have run the program with the variant we have created.<BR /> <BR /> Excemptions in ATC<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/08/48.png" height="257" width="499" /></P><BR /> In above image we can see the Request an exemption, as previously we know that we can over come this errors by adding the pseudo code to the particular line, or suppose we don't want to add the pseudo code than we can raise a request exemption.<BR /> <BR /> Suppose some times we don't have authorization for development objects to access like edit for a program so then we can use Request as exemption.<BR /> <BR /> Now click on the Request as Exemption, we can get the screen as shown in the below image.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/08/49.png" height="180" width="557" /></P><BR /> We can see the two steps exemption scope and Approver and Reason.<BR /> <BR /> Under Apply exemptions we can see Finding, program include and program.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/08/50-1.png" height="154" width="529" /></P><BR /> As when we selected the Program include option we have get the apply exemptions to all findings as shown in above image.<BR /> <BR /> Based on our requirement we can check the apply exemptions options.<BR /> <BR /> Select the option Finding and click on the continue option.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/08/51.png" height="279" width="550" /></P><BR /> Now we should give the approver name and reason and justification and below we have the options email for rejection, On approval or on Rejection or never. Based on our requirement we can select the option.<BR /> <BR /> After click on the complete option. Now the person who is approver they will get the email notification.<BR /> <BR /> Overcome the errors for Eclipse development.<BR /> <BR /> As previously we have know how to check the ATC variant in Eclipse Development tool. If they are any errors present in that development objects then pseudo code will not applicable, for that we should create the Exemptions.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/08/52.png" height="357" width="538" /></P><BR /> As in above image we can see the exemption and errors that we have in the program.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/08/53.png" height="195" width="453" /></P><BR /> Now right click on the exemption so we can get option request exemption.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/08/54.png" height="363" width="437" /></P><BR /> Similar to SAP GUI in Eclipse Development tool exemption creation is same, as shown in above image click on the next option.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/08/55.png" height="326" width="479" /></P><BR /> After that give the approver name, reason and justification and click on finish. After that approver get the email notification.<BR /> <BR /> By following my profile <SPAN class="mention-scrubbed">1013242</SPAN> , you will receive updates on new blog posts and other content related to ABAP development best practices.<BR /> <BR /> <STRONG>Follow the SAP ABAP environment Topic page: </STRONG><A title="https://community.sap.com/topics/hana" href="https://community.sap.com/topics/hana" target="_blank">SAP ABAP</A><BR /> <BR /> This page is a great resource for staying up-to-date on the latest news and developments in the SAP HANA environment. You can follow the page to receive updates, post and answer questions, and read other posts on the topic<BR /> <BR /> If you have any queries related to SAP and ABAP Developments you can post here <A title="https://answers.sap.com/tags/73554900100700000996" href="https://answers.sap.com/tags/73554900100700000996" target="_blank" rel="noreferrer noopener">https://answers.sap.com/tags/73554900100700000996</A>, you can also find many topics related to your query. 2023-08-31T22:35:28+02:00 https://community.sap.com/t5/technology-blogs-by-sap/clean-code-checks-for-abap-cloud-edition/ba-p/13562780 Clean code checks for ABAP – Cloud Edition 2023-09-11T15:46:51+02:00 OlgaDolinskaja https://community.sap.com/t5/user/viewprofilepage/user-id/6638 This blog is the follow-up on the blog <A href="https://blogs.sap.com/2022/05/05/how-to-enable-clean-code-checks-for-abap/" target="_blank" rel="noopener noreferrer">How to enable clean code checks for ABAP</A>, which describes how the <A href="https://github.com/SAP/code-pal-for-abap" target="_blank" rel="nofollow noopener noreferrer">code pal for ABAP</A> checks can be used in the Code Inspector and ABAP test cockpit to check your code for the adherence to the <A href="https://github.com/SAP/styleguides/blob/main/clean-abap/CleanABAP.md" target="_blank" rel="nofollow noopener noreferrer">Clean ABAP style guide</A>.<BR /> <BR /> Now there is a new free and open source version of <A href="https://github.com/SAP/code-pal-for-abap-cloud/" target="_blank" rel="nofollow noopener noreferrer">code pal for ABAP cloud</A> checks, which (as the name already states) is cloud-enabled, thus the checks can now be executed in <A href="https://community.sap.com/topics/btp-abap-environment" target="_blank">SAP BTP ABAP Environment</A>. Beyond this all checks are now remote-enabled and can be run in the <A href="https://blogs.sap.com/2016/12/12/remote-code-analysis-in-atc-one-central-check-system-for-multiple-systems-on-various-releases/" target="_blank" rel="noopener noreferrer">remote ABAP test cockpit</A> scenario. Additionally, to speed up your code adaptation to Clean ABAP for many findings quick fixes are provided in the ABAP development tools for Eclipse to automate your adjustment tasks.<BR /> <BR /> Let’s take a look at how you can use <A href="https://github.com/SAP/code-pal-for-abap-cloud/" target="_blank" rel="nofollow noopener noreferrer">code pal for ABAP cloud</A> checks in your SAP BTP, ABAP environment system to check your code for Clean ABAP.<BR /> <H2 id="toc-hId-962975904"><SPAN style="color: #33a7ff">Technical Prerequisites</SPAN></H2><BR /> The <A href="https://github.com/SAP/code-pal-for-abap-cloud/" target="_blank" rel="nofollow noopener noreferrer">code pal for ABAP cloud</A> checks can be executed in SAP BTP, ABAP environment.<BR /> <BR /> If you want to check your on-premise releases (or SAP S/4HANA Cloud, private edition systems) with <A href="https://github.com/SAP/code-pal-for-abap-cloud/" target="_blank" rel="nofollow noopener noreferrer">code pal for ABAP cloud</A> checks you can do it remotely from SAP BTP, ABAP environment, see also the blog <A href="https://blogs.sap.com/2020/08/14/abap-test-cockpit-in-the-cloud-what-is-already-possible/" target="_blank" rel="noopener noreferrer">ABAP Test Cockpit in the Cloud – What is already possible</A> for more details.<BR /> <BR /> You need abapGit to pull the checks from the Git repository into your system. For SAP BTP, ABAP environment systems install <A href="http://eclipse.abapgit.org/updatesite/" target="_blank" rel="nofollow noopener noreferrer">abapGit plugin for ABAP development tools for Eclipse</A>.<BR /> <H2 id="toc-hId-766462399"><SPAN style="color: #33a7ff">Install code pal for ABAP cloud checks via abapGit</SPAN></H2><BR /> In the SAP BTP, ABAP environment system you will use ABAP development tools for Eclipse and abapGit plugin to install code pal for ABAP cloud checks.<BR /> <BR /> Create a new package in the /CC4A/ namespace, and name it for example CODE_PAL. The source code of code pal for ABAP checks is located in the /CC4A/ (Clean Code for ABAP) namespace, so that collisions with Y*/Z* objects from other projects are avoided.<BR /> <BR /> <SPAN style="color: #333333">Open <EM>abapGit Repositories</EM> <EM>View</EM> in your ABAP development tools for Eclipse:</SPAN><BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/07/view_abapgit_repos.jpg" /></P><BR /> <SPAN style="color: #333333">Click the „<EM>+</EM>“ button to link the new abapGit repository:</SPAN><BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/07/cl_link_abapgit_0.jpg" /></P><BR /> and enter the path to the GitHub repository <A href="https://github.com/SAP/code-pal-for-abap-cloud" target="_blank" rel="nofollow noopener noreferrer">https://github.com/SAP/code-pal-for-abap-cloud</A>, containing the code pal for ABAP cloud checks:<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/07/cl_link_abapgit.jpg" /></P><BR /> In the next step enter the name of your newly created package /CC4A/CODE_PAL and check the <EM>Pull after link</EM> checkbox:<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/07/cl_link_abapgit_2.jpg" /></P><BR /> Finally, after completing the abapGit plugin wizard, the code pal for ABAP cloud checks repository will be linked:<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/07/cl_clchecks_repo-1.jpg" /></P><BR /> and the source code of the check implementations pulled under your newly created package /CC4A/CODE_PAL:<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/07/cl_check_pkgs.jpg" /></P><BR /> Just activate all objects, and the code pal for ABAP cloud checks are ready to use.<BR /> <H2 id="toc-hId-569948894"><SPAN style="color: #33a7ff">Execute code pal for ABAP cloud checks</SPAN></H2><BR /> The check variant /CC4A/CODE_PAL_FULL contains all available code pal for ABAP cloud checks:<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/07/cl_check_variant.jpg" /></P><BR /> There is also the package /CC4A/CODE_PAL_TEST_OBJECTS, which you can use to see how the code pal for ABAP cloud checks work. Just select this package and use the context menu <EM>Run ABAP Test Cockpit With…</EM><BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/07/cl_run_ATC_checks.jpg" /></P><BR /> Enter the ATC check variant /CC4A/CODE_PAL_FULL and click the <EM>OK</EM> button to execute the ATC run:<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/07/cl_run_ATC_checks_check_variant.jpg" /></P><BR /> The <EM>ATC Problems View</EM> provides the check results concerning violations of the Clean ABAP rules in the source code objects of the test package:<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/07/cl_ATC_check_results.jpg" /></P><BR /> Now you can select your own development package(s) or set(s) of the development objects which you want to check and execute the code pal for ABAP cloud checks over these objects.<BR /> <H2 id="toc-hId-373435389"><SPAN style="color: #33a7ff">Use quick fixes</SPAN></H2><BR /> If you take a look at the ATC results, the yellow bulb icons before the ATC findings indicate that for these ATC findings the quick fixes in ABAP development tools for Eclipse are available, which allow to fix these findings in an automated way.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/07/cl_see_qf.jpg" /></P><BR /> By navigating from an ATC finding to the corresponding source code line you can see the examples of the violations of the Clean ABAP rules and can try out the corrections, which are provided by quick fixes using the <EM>Ctrl + 1</EM> shortcut.<BR /> <BR /> In the following example the code pal for ABAP cloud check detects the unnecessary self reference, which can be removed via the quick fix:<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/07/cl_qf_bsp_1.jpg" /></P><BR /> In the next example the check finds a chain declaration, which can be replaced with separate declarations of the variables involved using the quick fix:<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/07/cl_qf_bsp_2.jpg" /></P><BR /> In the last example the values are allocated more than once within one statement and the quick fix will break the assignment chain into multiple statements:<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/07/cl_qf_bsp_3.jpg" /></P><BR /> You can also use mass-enabled quick fixes (context menu <EM>Recommended Quick Fixes</EM> will start the wizard) to adapt all ATC findings at once:<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/07/cl_mass_qf_wizard.jpg" /></P><BR /> <BR /> <H2 id="toc-hId-176921884"><SPAN style="color: #33a7ff">Further information</SPAN></H2><BR /> Further information on code pal for ABAP cloud checks, including how to contribute to this open source project, provide feedback or get support, is provided on the GitHub under <A href="https://github.com/SAP/code-pal-for-abap-cloud/" target="_blank" rel="nofollow noopener noreferrer">https://github.com/SAP/code-pal-for-abap-cloud/</A>. Use "Watch" button to get notified about changes (you get it if you log in to GitHub).<BR /> <BR /> The&nbsp;<A href="https://github.com/SAP/code-pal-for-abap-cloud/blob/main/check_migration_list.md" target="_blank" rel="nofollow noopener noreferrer">check migration list</A>&nbsp;shows the current migration status of checks from the legacy version.<BR /> <H2 id="toc-hId--19591621"><SPAN style="color: #33a7ff">What is next</SPAN></H2><BR /> We also plan to offer the code pal for ABAP cloud checks in the upcoming releases of SAP S/4HANA Cloud, private edition and SAP S/4HANA on-premise.<BR /> <BR /> &nbsp;<BR /> <BR /> &nbsp;<BR /> <BR /> &nbsp;<BR /> <BR /> &nbsp; 2023-09-11T15:46:51+02:00 https://community.sap.com/t5/application-development-blog-posts/writing-foreign-abap-unit-tests/ba-p/13556523 Writing Foreign ABAP Unit Tests 2023-09-13T01:31:43+02:00 satish_inamdar https://community.sap.com/t5/user/viewprofilepage/user-id/150021 <H1 id="toc-hId-833086723">Foreign ABAP Unit Tests</H1><BR /> <SPAN style="font-weight: 400">Yes, we are all familiar with ABAP Unit Tests and the principles of test driven development. If not, there are a lot of blogs and literature around ABAP Unit Test Framework. I will link a few at the end of this blog as well in case you require some pre-requisite reading.</SPAN><BR /> <BR /> <SPAN style="font-weight: 400">In this blog, I will specifically explore the concept of Foreign ABAP Unit Tests and where they can be used.</SPAN><BR /> <BR /> <SPAN style="font-weight: 400">Foreign ABAP Unit Tests can be created using the ABAP Unit Test Framework and run using the ABAP Unit Test Runner.</SPAN><BR /> <BR /> Foreign ABAP Unit Tests can be created in ADT using the ABAP Doc comments:<BR /> <PRE class="language-abap"><CODE>" ! @testing</CODE></PRE><BR /> This ABAP Doc comment links the test class or test method with the repository object specified after @testing<BR /> <BR /> Let's see the same in action first with an example using an ABAP Class to make the concept clearer, before we dive into scenarios where writing such foreign unit tests can be useful.<BR /> <BR /> Let's consider an ABAP Class ZCL_FUEL_INFO that has one method CALC_FUEL_PRICE which takes in three importing parameters: VEHICLE_TYPE, DISTANCE and FUEL_PRICE. Based on these three input parameters the method returns the fuel price.<BR /> <PRE class="language-abap"><CODE>CLASS zcl_vehicle_info DEFINITION<BR /> PUBLIC<BR /> FINAL<BR /> CREATE PUBLIC.<BR /> <BR /> PUBLIC SECTION.<BR /> TYPES: BEGIN OF ENUM vehicle_make,<BR /> car,<BR /> bike,<BR /> truck,<BR /> END OF ENUM vehicle_make.<BR /> TYPES: float TYPE p LENGTH 10 DECIMALS 2.<BR /> METHODS calc_fuel_price<BR /> IMPORTING<BR /> vehicle_type TYPE vehicle_make<BR /> fuel_rate TYPE float<BR /> distance TYPE float<BR /> RETURNING<BR /> VALUE(fuel_price) TYPE float.<BR /> <BR /> PROTECTED SECTION.<BR /> PRIVATE SECTION.<BR /> ENDCLASS.<BR /> <BR /> CLASS zcl_vehicle_info IMPLEMENTATION.<BR /> METHOD calc_fuel_price.<BR /> IF fuel_rate &lt;= 0 or distance &lt;= 0.<BR /> fuel_price = 0. <BR /> EXIT.<BR /> ENDIF.<BR /> CASE vehicle_type.<BR /> WHEN car.<BR /> fuel_price = ( distance * fuel_rate ) / 20.<BR /> WHEN bike.<BR /> fuel_price = ( distance * fuel_rate ) / 40.<BR /> WHEN truck.<BR /> fuel_price = ( distance * fuel_rate ) / 5.<BR /> ENDCASE.<BR /> ENDMETHOD.<BR /> ENDCLASS.</CODE></PRE><BR /> Here, instead of creating a local ABAP unit test class for the above class, lets create a new global class as shown below in the code:<BR /> <PRE class="language-abap"><CODE>"! @testing zcl_vehicle_info<BR /> CLASS zcl_vehicle_info_test DEFINITION<BR /> FOR TESTING<BR /> FINAL<BR /> DURATION SHORT<BR /> RISK LEVEL HARMLESS<BR /> PUBLIC.<BR /> <BR /> PRIVATE SECTION.<BR /> METHODS setup.<BR /> METHODS test_fuel_price_bike FOR TESTING.<BR /> METHODS test_fuel_price_car FOR TESTING.<BR /> METHODS test_fuel_price_truck FOR TESTING.<BR /> METHODS test_fuel_price_invalid FOR TESTING.<BR /> <BR /> DATA: vehicle_ref TYPE REF TO zcl_vehicle_info.<BR /> ENDCLASS.<BR /> <BR /> CLASS zcl_vehicle_info_test IMPLEMENTATION.<BR /> METHOD setup.<BR /> vehicle_ref = NEW #( ).<BR /> ENDMETHOD.<BR /> <BR /> METHOD test_fuel_price_bike.<BR /> cl_abap_unit_assert=&gt;assert_equals(<BR /> act = vehicle_ref-&gt;calc_fuel_price( vehicle_type = vehicle_ref-&gt;bike <BR /> distance = 200 <BR /> fuel_rate = 95 )<BR /> exp = 475<BR /> msg = `Wrong Fuel Price`<BR /> quit = cl_aunit_assert=&gt;no ).<BR /> ENDMETHOD.<BR /> <BR /> METHOD test_fuel_price_car.<BR /> cl_abap_unit_assert=&gt;assert_equals(<BR /> act = vehicle_ref-&gt;calc_fuel_price( vehicle_type = vehicle_ref-&gt;car <BR /> distance = 100 <BR /> fuel_rate = 95 )<BR /> exp = 475<BR /> msg = `Wrong Fuel Price`<BR /> quit = cl_aunit_assert=&gt;no ).<BR /> ENDMETHOD.<BR /> <BR /> METHOD test_fuel_price_truck.<BR /> cl_abap_unit_assert=&gt;assert_equals(<BR /> act = vehicle_ref-&gt;calc_fuel_price( vehicle_type = vehicle_ref-&gt;truck <BR /> distance = 100 <BR /> fuel_rate = 85 )<BR /> exp = 1700<BR /> msg = `Wrong Fuel Price`<BR /> quit = cl_aunit_assert=&gt;no ).<BR /> ENDMETHOD.<BR /> <BR /> METHOD test_fuel_price_invalid.<BR /> cl_abap_unit_assert=&gt;assert_equals(<BR /> act = vehicle_ref-&gt;calc_fuel_price( vehicle_type = vehicle_ref-&gt;bike <BR /> distance = -10 <BR /> fuel_rate = 95 )<BR /> exp = 0<BR /> msg = `Wrong Fuel Price`<BR /> quit = cl_aunit_assert=&gt;no ).<BR /> ENDMETHOD.<BR /> ENDCLASS.</CODE></PRE><BR /> &nbsp;<BR /> <BR /> To execute the Foreign Unit Test Class, In ADT go to original class (the class which has to be tested, in our case: ZCL_VEHICLE_INFO) and select from application menu bar: Run As -&gt; ABAP Unit Tests with as shown in the screenshot below:<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/07/RunAs_RunWith.jpg" /></P><BR /> <P class="image_caption" style="text-align: center;font-style: italic">Choosing the relevant Run As option in ADT</P><BR /> &nbsp;<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/09/execuet_fut.jpg" /></P><BR /> <P class="image_caption" style="text-align: center;font-style: italic">Choose Foreign Tests Option in the Pop-up</P><BR /> &nbsp;<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/07/fut_results_1.jpg" /></P><BR /> <P class="image_caption" style="text-align: center;font-style: italic">Foreign Unit Test Results</P><BR /> If you would have selected "Coverage" as an additional measurement in the previous pop-up then code coverage by the foreign unit test class is also shown<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/07/fut_results_2.jpg" /></P><BR /> <P class="image_caption" style="text-align: center;font-style: italic">Foreign Unit Test Results with Code Coverage</P><BR /> <BR /> <H2 id="toc-hId-765655937">When will it be useful?</H2><BR /> In the above example whatever could be achieved via Foreign Unit Test Class could also be have achieved using a Local Unit Test Class and that is a fair argument. Now, lets look at a scenario where we have a CDS View. A CDS View doesn't have a provision to create and associate with it a local test class, so how can we then create and associate a test class for it? Well, in the case we go for the Foreign Unit Test Class.<BR /> <BR /> Let's see the same with an example.<BR /> <BR /> Here is a simplistic CDS View, that has some columns which are based on calculations:<BR /> <PRE class="language-abap"><CODE>@AbapCatalog.sqlViewName: 'ZDVSMEALD'<BR /> @AbapCatalog.compiler.compareFilter: true<BR /> @AbapCatalog.preserveKey: true<BR /> @AccessControl.authorizationCheck: #NOT_REQUIRED<BR /> @EndUserText.label: 'Calculate Meal Discount'<BR /> define view ZCDS_SMEAL_CALC_DISC<BR /> as select from smeal<BR /> {<BR /> key carrid as Carrid,<BR /> key mealnumber as Mealnumber,<BR /> mealtype as Mealtype,<BR /> case mealtype<BR /> when 'VE' then 10<BR /> when 'FI' then 20<BR /> when 'FL' then 15<BR /> else 5<BR /> end as disc_percent<BR /> <BR /> }</CODE></PRE><BR /> For this CDS View, we can create a test unit class using CDS test double framework and link it to this CDS view using the annotation "! <SPAN id="autocomplete"><SPAN id="autocomplete-delimiter">@testing as shown below:&nbsp;</SPAN></SPAN><BR /> <BR /> Create the following global class:<BR /> <PRE class="language-abap"><CODE>"! @testing ZCDS_SMEAL_CALC_DISC<BR /> CLASS zcl_test_meal_disc DEFINITION FINAL FOR TESTING<BR /> DURATION SHORT<BR /> RISK LEVEL HARMLESS PUBLIC.<BR /> <BR /> <BR /> PRIVATE SECTION.<BR /> CLASS-METHODS class_setup.<BR /> CLASS-METHODS class_teardown.<BR /> METHODS setup.<BR /> METHODS test_veg_disc FOR TESTING.<BR /> METHODS test_fish_disc FOR TESTING.<BR /> METHODS test_nonveg_disc FOR TESTING.<BR /> METHODS test_unknown_disc FOR TESTING.<BR /> CLASS-DATA:<BR /> environment TYPE REF TO if_cds_test_environment.<BR /> ENDCLASS.<BR /> <BR /> CLASS zcl_test_meal_disc IMPLEMENTATION.<BR /> <BR /> METHOD class_setup.<BR /> environment = cl_cds_test_environment=&gt;create( i_for_entity = 'ZCDS_SMEAL_CALC_DISC' ).<BR /> ENDMETHOD.<BR /> <BR /> METHOD class_teardown.<BR /> environment-&gt;destroy( ).<BR /> ENDMETHOD.<BR /> <BR /> METHOD setup.<BR /> environment-&gt;clear_doubles( ).<BR /> ENDMETHOD.<BR /> <BR /> METHOD test_veg_disc.<BR /> <BR /> DATA: smeal TYPE TABLE OF smeal,<BR /> act_results TYPE TABLE OF zcds_smeal_calc_disc,<BR /> exp_results TYPE TABLE OF zcds_smeal_calc_disc,<BR /> test_data TYPE REF TO if_cds_test_data.<BR /> <BR /> smeal = VALUE #( ( mandant = sy-mandt carrid = 'AA' mealnumber = 10 mealtype = 'VE' ) ).<BR /> test_data = cl_cds_test_data=&gt;create( i_data = smeal ).<BR /> "Create test double<BR /> DATA(smeal_double) = environment-&gt;get_double( i_name = 'SMEAL' ).<BR /> "Insert data into test double<BR /> smeal_double-&gt;insert( test_data ).<BR /> "Fetch data from test double<BR /> SELECT * FROM zcds_smeal_calc_disc INTO TABLE @act_results.<BR /> "Prepare expected output<BR /> exp_results = VALUE #( ( carrid = 'AA' mealnumber = 10 mealtype = 'VE' disc_percent = 10 ) ).<BR /> <BR /> cl_abap_unit_assert=&gt;assert_equals(<BR /> act = act_results[ 1 ]-disc_percent<BR /> exp = exp_results[ 1 ]-disc_percent ).<BR /> ENDMETHOD.<BR /> <BR /> METHOD test_fish_disc.<BR /> <BR /> DATA: smeal TYPE TABLE OF smeal,<BR /> act_results TYPE TABLE OF zcds_smeal_calc_disc,<BR /> exp_results TYPE TABLE OF zcds_smeal_calc_disc,<BR /> test_data TYPE REF TO if_cds_test_data.<BR /> <BR /> smeal = VALUE #( ( mandant = sy-mandt carrid = 'AA' mealnumber = 10 mealtype = 'FI' ) ).<BR /> test_data = cl_cds_test_data=&gt;create( i_data = smeal ).<BR /> DATA(smeal_double) = environment-&gt;get_double( i_name = 'SMEAL' ).<BR /> smeal_double-&gt;insert( test_data ).<BR /> <BR /> SELECT * FROM zcds_smeal_calc_disc INTO TABLE @act_results.<BR /> <BR /> exp_results = VALUE #( ( carrid = 'AA' mealnumber = 10 mealtype = 'FI' disc_percent = 20 ) ).<BR /> <BR /> cl_abap_unit_assert=&gt;assert_equals(<BR /> act = act_results[ 1 ]-disc_percent<BR /> exp = exp_results[ 1 ]-disc_percent ).<BR /> ENDMETHOD.<BR /> <BR /> METHOD test_nonveg_disc.<BR /> <BR /> DATA: smeal TYPE TABLE OF smeal,<BR /> act_results TYPE TABLE OF zcds_smeal_calc_disc,<BR /> exp_results TYPE TABLE OF zcds_smeal_calc_disc,<BR /> test_data TYPE REF TO if_cds_test_data.<BR /> <BR /> smeal = VALUE #( ( mandant = sy-mandt carrid = 'AA' mealnumber = 10 mealtype = 'FL' ) ).<BR /> test_data = cl_cds_test_data=&gt;create( i_data = smeal ).<BR /> DATA(smeal_double) = environment-&gt;get_double( i_name = 'SMEAL' ).<BR /> smeal_double-&gt;insert( test_data ).<BR /> <BR /> SELECT * FROM zcds_smeal_calc_disc INTO TABLE @act_results.<BR /> <BR /> exp_results = VALUE #( ( carrid = 'AA' mealnumber = 10 mealtype = 'FL' disc_percent = 15 ) ).<BR /> <BR /> cl_abap_unit_assert=&gt;assert_equals(<BR /> act = act_results[ 1 ]-disc_percent<BR /> exp = exp_results[ 1 ]-disc_percent ).<BR /> ENDMETHOD.<BR /> <BR /> METHOD test_unknown_disc.<BR /> <BR /> DATA: smeal TYPE TABLE OF smeal,<BR /> act_results TYPE TABLE OF zcds_smeal_calc_disc,<BR /> exp_results TYPE TABLE OF zcds_smeal_calc_disc,<BR /> test_data TYPE REF TO if_cds_test_data.<BR /> <BR /> smeal = VALUE #( ( mandant = sy-mandt carrid = 'AA' mealnumber = 10 mealtype = 'ZZ' ) ).<BR /> test_data = cl_cds_test_data=&gt;create( i_data = smeal ).<BR /> DATA(smeal_double) = environment-&gt;get_double( i_name = 'SMEAL' ).<BR /> smeal_double-&gt;insert( test_data ).<BR /> <BR /> SELECT * FROM zcds_smeal_calc_disc INTO TABLE @act_results.<BR /> <BR /> exp_results = VALUE #( ( carrid = 'AA' mealnumber = 10 mealtype = 'ZZ' disc_percent = 7 ) ).<BR /> <BR /> cl_abap_unit_assert=&gt;assert_equals(<BR /> act = act_results[ 1 ]-disc_percent<BR /> exp = exp_results[ 1 ]-disc_percent ).<BR /> <BR /> ENDMETHOD.<BR /> ENDCLASS.</CODE></PRE><BR /> Notice the annotation added in the first line.<BR /> <BR /> Now in your ADT, go to your CDS View and select the following option from the drop down:<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/09/CDS_Unit_Test_Execution.jpg" /></P><BR /> <P class="image_caption" style="text-align: center;font-style: italic">ABAP Unit Test Execution for CDS</P><BR /> This opens up a new pop up as shown below, click on OK button to proceed<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/09/Pop_up_for_unit_test.jpg" /></P><BR /> <P class="image_caption" style="text-align: center;font-style: italic">Pop up to confirm unit test execution</P><BR /> Results of Foreign Unit Tests are displayed in ADT as shown below<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/09/CDS_Unit_Test_Results.jpg" /></P><BR /> <P class="image_caption" style="text-align: center;font-style: italic">CDS Unit Test (Foreign tests) Results</P><BR /> As you can see, one of the unit test has failed, this is intentional as the expected discount percentage when meal type couldn't be determined is 7 but CDS view is currently calculating it as 5.<BR /> <BR /> <SPAN style="font-weight: 400">In conclusion, that is how you can use Foreign Unit Tests. I hope you found this blog helpful and that it has piqued your interest in exploring and learning more about ABAP Unit Tests. Foreign Unit Tests are a valuable tool that can help you to ensure the quality of your code. They can be used to test individual units of code, as well as to test the interactions between different units of code. If you are not already using Foreign Unit Tests, I encourage you to give them a try. I am confident that you will find them to be a valuable addition to your development toolkit.</SPAN><BR /> <BR /> As mentioned earlier, I am sharing below a links of 5 blogs that I found really helpful:<BR /> <BR /> <A href="https://blogs.sap.com/2019/12/20/understanding-abap-unit-testing-fundamentals-overview-for-beginners/" target="_blank" rel="noopener noreferrer">https://blogs.sap.com/2019/12/20/understanding-abap-unit-testing-fundamentals-overview-for-beginners/</A><BR /> <BR /> <A href="https://blogs.sap.com/2019/12/25/test-doubles-and-using-osql-test-double-framework-for-abap-unit-tests/" target="_blank" rel="noopener noreferrer">https://blogs.sap.com/2019/12/25/test-doubles-and-using-osql-test-double-framework-for-abap-unit-tests/</A><BR /> <BR /> This one is a series in its own, so I am just pasting the link of the first one:<BR /> <BR /> <A href="https://blogs.sap.com/2021/03/31/getting-acquainted-with-automating-abap-unit-testing-part-1/" target="_blank" rel="noopener noreferrer">https://blogs.sap.com/2021/03/31/getting-acquainted-with-automating-abap-unit-testing-part-1/</A><BR /> <BR /> <A href="https://blogs.sap.com/2018/08/30/cds-doubles-writing-unit-tests-for-abap-cds/" target="_blank" rel="noopener noreferrer">https://blogs.sap.com/2018/08/30/cds-doubles-writing-unit-tests-for-abap-cds/</A><BR /> <BR /> <A href="https://blogs.sap.com/2016/10/19/introduction-cds-test-double-framework-write-unit-tests-abap-cds-entities/" target="_blank" rel="noopener noreferrer">https://blogs.sap.com/2016/10/19/introduction-cds-test-double-framework-write-unit-tests-abap-cds-entities/</A><BR /> <BR /> &nbsp;<BR /> <BR /> Happy Learning!<BR /> <BR /> &nbsp;<BR /> <BR /> &nbsp; 2023-09-13T01:31:43+02:00 https://community.sap.com/t5/technology-blogs-by-sap/abap-cloud-at-sap-teched-in-2023/ba-p/13579096 ABAP Cloud at SAP TechEd in 2023 2023-10-02T21:36:21+02:00 CarineTchoutouo https://community.sap.com/t5/user/viewprofilepage/user-id/1462 <DIV><BR /><TABLE><TBODY><TR><TD><span class="lia-unicode-emoji" title=":1st_place_medal:">🥇</span>&nbsp;<A href="https://learning.sap.com/certification/sap-certified-associate-back-end-developer-abap-cloud" target="_blank" rel="noopener noreferrer">Become an SAP Certified Associate – Back-End Developer - ABAP Cloud!</A><BR /><span class="lia-unicode-emoji" title=":megaphone:">📣</span>Explore the <A href="https://www.sap.com/germany/events/teched/news-guide.html" target="_blank" rel="noopener noreferrer">SAP TechEd News Guide 2023!</A><BR /><span class="lia-unicode-emoji" title=":page_facing_up:">📄</span>Check out the <A href="https://help.sap.com/docs/btp/btp-developers-guide/what-is-btp-developers-guide" target="_blank" rel="noopener noreferrer">SAP BTP Developer’s Guide!</A></TD></TR></TBODY></TABLE></DIV><P>Hey everyone!</P><P>After <A href="https://blogs.sap.com/2023/09/18/abap-cloud-at-devtoberfest-2023/" target="_blank" rel="noopener noreferrer">Devtoberfest</A> comes SAP TechEd. And <STRONG>SAP TechEd 2023 </STRONG>is just around the corner!<BR /><BR /><A href="https://www.sap.com/about/events/teched.html" target="_blank" rel="noopener noreferrer">SAP TechEd</A> is the premier tech conference for all developers, IT practitioners, professionals, tech visionaries, innovators, and leaders who are interested in gaining a detailed understanding of SAP’s portfolio of solutions, platforms, and technologies, as well as insights into their future direction. It also gives you the opportunity to network and interact with your peers and SAP experts.<BR /><BR />Once again, SAP TechEd will be a hybrid two-day event, consisting of an <STRONG>in-person, paid event</STRONG> at the Bangalore International Exhibition Center and a global, <STRONG>free, virtual event</STRONG>.<BR /><BR />So it's up to you: <STRONG>Join us live in Bangalore or attend virtually!</STRONG></P><TABLE border="1"><TBODY><TR><TD><IMG src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2021/10/281094_Calendar_R_blue.png" border="0" width="90" height="50" /></TD><TD><STRONG>Save the date and register now!</STRONG><BR />November 2 – 3, 2023<BR /><span class="lia-unicode-emoji" title=":bank:">🏦</span>&nbsp;<A href="https://www.sap.com/events/teched/bangalore.html" target="_blank" rel="noopener noreferrer">SAP TechEd Bangalore</A> | ☁ <A href="https://www.sap.com/events/teched/virtual.html" target="_blank" rel="noopener noreferrer">SAP TechEd Virtual</A></TD></TR></TBODY></TABLE><H4 id="toc-hId-1222266710"><STRONG>About SAP TechEd Bangalore in 2023</STRONG></H4><P>Two days of live experiences held at the Bangalore International Exhibition Center (BIEC)​.</P><UL><LI>Hands-on workshops for one-on-one immersive learning</LI><LI>500+ sessions offered</LI><LI>Enhanced show-floor experience including a developer garage, demo booths, and community talks</LI><LI>Live SAP strategy and developer keynotes, including DemoJam</LI><LI>Networking opportunities on the show floor and during celebration night</LI></UL><P><span class="lia-unicode-emoji" title=":bank:">🏦</span>&nbsp;<A href="https://go2.events.sap.com/TechEd2023/" target="_blank" rel="noopener noreferrer">Register now!</A></P><P><STRONG>About SAP TechEd Virtual in 2023</STRONG></P><P>The interactive, global, virtual event will provide attendees with live and on-demand experiences, with all streaming content conveniently aligned with the EMEA and North American time zones.<BR /><BR />New this year:</P><UL><LI>Deeper engagement with SAP global experts and peers</LI><LI>Live lecture sessions and Jump-Start sessions for enhanced learning opportunities</LI><LI>SAP Community "watch-and-code" parties for in-person engagement and networking</LI></UL><P>☁ <A href="https://www.sap.com/events/teched/virtual.html" target="_blank" rel="noopener noreferrer">Register now!</A><BR /><BR /><STRONG>About the SAP Community "watch-and-code" Meetups</STRONG><BR />SAP Community "watch-and-code" meetups will be held in different locations and I'll most likely be joining the one in Walldorf, Germany. What about you? <span class="lia-unicode-emoji" title=":smiling_face_with_smiling_eyes:">😊</span><BR /><span class="lia-unicode-emoji" title=":hammer_and_wrench:">🛠</span><A href="https://groups.community.sap.com/t5/sap-teched-blog-posts/sap-community-quot-watch-and-code-quot-parties/ba-p/277006" target="_blank" rel="noopener noreferrer">Learn more and register now!</A><BR /><BR /></P><H3 id="toc-hId-896670486"><STRONG>Overview of selected sessions</STRONG></H3><P><STRONG><IMG src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/10/ABAP_Cloud_Logo.png" border="0" width="80" height="50" />ABAP Cloud</STRONG> is the state-of-the-art development model used for building cloud-ready business apps, services, and extensions for all editions of SAP S/4HANA, in the cloud and on-premises, directly on the stack or side-by-side on SAP BTP, ABAP environment.</P><P>The ABAP Platform team has put together a list of interesting sessions around clean-core-compliant development with ABAP Cloud on SAP BTP, SAP S/4HANA Cloud, and SAP S/4HANA.</P><P>Take advantage of this two-day opportunity to learn more about ABAP Cloud and other hot topics! <span class="lia-unicode-emoji" title=":flexed_biceps:">💪</span></P><P>Find an overview the various <STRONG>ABAP Cloud related sessions</STRONG> at SAP TechEd in 2023 below:<BR /><STRONG>&nbsp; &nbsp;&nbsp; &nbsp;•</STRONG> <A href="#keynotes" target="_blank" rel="noopener nofollow noreferrer">Keynotes</A><BR /><STRONG>&nbsp; &nbsp; &nbsp; •</STRONG> <A href="#virtual" target="_blank" rel="noopener nofollow noreferrer">SAP TechEd Virtual</A><BR /><STRONG>&nbsp; &nbsp;&nbsp; &nbsp;•</STRONG>&nbsp;<A href="#bangalore" target="_blank" rel="noopener nofollow noreferrer">SAP TechEd Bangalore</A><BR />Use the links provided in the session descriptions to navigate to the sessions of your choice and add them to your&nbsp; personal agenda on the official SAP TechEd 2023 website.<BR /><BR /><span class="lia-unicode-emoji" title=":open_book:">📖</span>Access to the full session catalogs of SAP TechEd 2023: <span class="lia-unicode-emoji" title=":books:">📚</span> <A href="https://go3.events.sap.com/sapteched/virtual/2023/reg/flow/sap/sapteched23/catalog/page/catalog" target="_blank" rel="noopener noreferrer">virtual</A> | <span class="lia-unicode-emoji" title=":books:">📚</span> <A href="https://go2.events.sap.com/TechEd2023/agb/go/agendabuilder.sessions/?l=326&amp;locale=en_US" target="_blank" rel="noopener noreferrer">Bangalore</A><BR /><BR /><IMG src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2016/04/sapnwabline_930876.png" border="0" width="650" /></P><H2 id="toc-hId-571074262"><STRONG>Keynotes</STRONG></H2><P><STRONG>🟤&nbsp;<A href="https://go2.events.sap.com/TechEd2023/agb/go/agendabuilder.sessions/?l=326&amp;sid=120127&amp;schid=520137&amp;locale=en_US" target="_blank" rel="noopener noreferrer">Attend the SAP TechEd 2023 Executive Keynote - KEY100</A>&nbsp;</STRONG><BR />[<STRONG>Executive Keynote</STRONG>, 90 min] Experience the profound impact of generative AI on business and learn how to help ensure data privacy, security, and responsible AI adoption. Hear how organizations are using SAP Business Technology Platform to automate complex tasks and unlock opportunities. From data management and integration to analytics, application development, and automation, see real-world examples of SAP technology driving growth, enhancing productivity, and optimizing business processes.</P><P><span class="lia-unicode-emoji" title=":calendar:">📅</span>Thursday, Nov 2 | <span class="lia-unicode-emoji" title=":one_o_clock:">🕐</span> &nbsp;09:30 a.m. - 11:00 p.m. IST (06:00 AM - 07:30 AM CET)</P><P><SPAN>Speakers</SPAN>:</P><UL><LI>Dr. Jürgen Müller (SAP), Chief Technology Officer, Member of the Executive Board</LI><LI>Julia White (SAP), <SPAN>Chief Marketing and Solutions Officer and Member of the Executive Board</SPAN></LI><LI>Michael Ameling (SAP), SVP, Head of Intelligent Enterprise and BTP Foundation</LI></UL><P>🟤&nbsp;<A href="https://go2.events.sap.com/TechEd2023/agb/go/agendabuilder.sessions/?l=326&amp;sid=120239&amp;schid=520472&amp;locale=en_US" target="_blank" rel="noopener noreferrer"><STRONG>Attend the Business Application Keynote - KEY101</STRONG></A><BR />[<STRONG>Executive Keynote</STRONG>, 60 min] Experience SAP Business AI technology, and learn how it is embedded across our application portfolio. Get insights into integrated business processes and a delightful user experience, building the foundation for embedded AI, and look into how easy it can be to successfully expand and adapt to your need. Keep ahead of the curve and hear about the latest updates that can help you and your organization keep running better.</P><P><span class="lia-unicode-emoji" title=":calendar:">📅</span>Friday, Nov 3 | <span class="lia-unicode-emoji" title=":one_o_clock:">🕐</span>&nbsp; 09:00 a.m. - 10:00 a.m. IST (05:30 AM - 06:30 AM CET)&nbsp;</P><P><SPAN>Speakers</SPAN>:</P><UL><LI>Thomas Saueressig (SAP), SAP Product Engineering, Member of the Executive Board</LI><LI>Philipp Herzig (SAP), SVP, Head of Cross Product Engineering &amp; Experience<BR /><BR /></LI></UL><P>🟤&nbsp;<A href="https://go2.events.sap.com/TechEd2023/agb/go/agendabuilder.sessions/?l=326&amp;sid=120192&amp;schid=520213&amp;locale=en_US" target="_blank" rel="noopener noreferrer"><STRONG>Attend the Developer Keynote with the Developer Advocates - KEY200&nbsp;</STRONG></A></P><P>[<STRONG>Keynote</STRONG>, 60 min] Take an epic walk down memory lane as we commemorate the 20th anniversary of SAP Community, celebrating two decades of innovation, collaboration, and growth. Hang out with the Developer Advocates team as they show how technology, such as AI, cloud computing, and terminal technology, has changed the way developers make things real.&nbsp;</P><P><span class="lia-unicode-emoji" title=":calendar:">📅</span>Thursday, Nov 2 | <span class="lia-unicode-emoji" title=":one_o_clock:">🕐</span> 05:00 p.m. - 06:30 p.m. IST (01:30 PM - 03:00 PM CET)&nbsp;</P><P><SPAN>Speakers</SPAN>: Developer Advocates (SAP)</P><HR /><H2 id="toc-hId-374560757"><SPAN><STRONG>☁ SAP TechEd Virtual in 2023</STRONG></SPAN></H2><P><STRONG>🟢&nbsp;<A href="https://go3.events.sap.com/sapteched/virtual/2023/reg/flow/sap/sapteched23/catalog/page/catalog/session/1693019544650001fRcX" target="_blank" rel="noopener noreferrer">Build Apps and Extensions with ABAP Cloud on SAP BTP, ABAP Environment - AD107v</A></STRONG><BR />[<STRONG>Lecture</STRONG>, 25 min] ABAP Cloud is the development model for creating applications and extensions and is an integral part of SAP BTP, ABAP environment. ABAP Cloud supports the creation of transactional applications based on the ABAP RESTful application programming model, analytical applications, and integration scenarios. Get an overview of typical usage scenarios and how to build multitenant SaaS applications.</P><P><span class="lia-unicode-emoji" title=":calendar:">📅</span>Thursday, Nov 2 | <span class="lia-unicode-emoji" title=":one_o_clock:">🕐</span> 6:30 PM - 6:55 PM CET (9:30 AM - 9:55 AM PST)&nbsp;</P><P><SPAN>Speakers</SPAN>: Frank Jentsch (SAP)<BR /><BR /><STRONG>🟢 <A href="https://go3.events.sap.com/sapteched/virtual/2023/reg/flow/sap/sapteched23/catalog/page/catalog/session/1693019544743001fQul" target="_blank" rel="noopener noreferrer">Clean Core: What It Is, Why to Do It, and How to Get There - DT101v&nbsp;</A></STRONG></P><P>[<STRONG>Lecture</STRONG>, 25 min] Find out about the purpose and key ingredients of a clean core in SAP S/4HANA Cloud, private edition. Explore how you can get and stay “clean core compliant,” and discover the advantages you gain by following the clean core principles, with the focus on clean core extensibility.&nbsp;</P><P><SPAN>Speakers</SPAN>: Markus Göbel (SAP)</P><P><STRONG>🟢&nbsp;<A href="https://go3.events.sap.com/sapteched/virtual/2023/reg/flow/sap/sapteched23/catalog/page/catalog/session/1693019546090001f8OS" target="_blank" rel="noopener noreferrer">Extensibility with ABAP Cloud for SAP S/4HANA Cloud, Private Edition - DT103v</A></STRONG><BR />[<STRONG>Lecture</STRONG>, 25 min] Extensions for SAP S/4HANA Cloud, private edition and SAP S/4HANA are best implemented using key-user extensibility, on-stack developer extensibility for tightly coupled extensions running on SAP S/4HANA, and side-by-side extensibility for loosely coupled extensions running on SAP Business Technology Platform. Learn about the ABAP Cloud development model and how customers and partners can use the three-tier extensibility model to manage their extensions following clean core principles.<BR /><BR /><span class="lia-unicode-emoji" title=":calendar:">📅</span>Friday, Nov 3 | <span class="lia-unicode-emoji" title=":one_o_clock:">🕐</span> 11:30 AM - 11:55 PM CET (02:30 AM - 02:55 AM PST)<BR /><BR /><SPAN>Speakers</SPAN>: Alexander Rother (SAP)<BR /><BR /><STRONG>🟢&nbsp;<A class="" href="https://go3.events.sap.com/sapteched/virtual/2023/reg/flow/sap/sapteched23/catalog/page/catalog/session/1693019886971001spdv" target="_blank" rel="noopener noreferrer">Extensibility with ABAP Cloud for SAP S/4HANA Cloud, Public Edition - DT200v</A>&nbsp;</STRONG><BR /><BR />[<STRONG>Lecture</STRONG>, 25 min] Explore the major extensibility options for SAP S/4HANA Cloud, public edition: key-user extensibility for low-code/no-code extensions, on-stack developer extensibility for tightly coupled extensions in ABAP, and side-by-side extensibility for loosely coupled extensions running on SAP Business Technology Platform. Benefit from the ABAP Cloud development model when building transactional apps, analytical apps, and integration scenarios.<BR /><BR /><span class="lia-unicode-emoji" title=":calendar:">📅</span>Friday, Nov 3 | <span class="lia-unicode-emoji" title=":one_o_clock:">🕐</span> 12:30 PM - 12:55 PM CET (03:30 AM - 03:55 AM PST)<BR /><BR /><SPAN>Speakers</SPAN>: Jens Weiler (SAP)<BR /><BR /><STRONG>🟢&nbsp;<A href="https://go3.events.sap.com/sapteched/virtual/2023/reg/flow/sap/sapteched23/catalog/page/catalog/session/1693019545303001fK3y" target="_blank" rel="noopener noreferrer">Discover the Latest Capabilities of ABAP Cloud in Action - AD103v</A></STRONG><BR /><BR />[<STRONG>Lecture</STRONG>, 25 min] ABAP Cloud is the powerful development model for building cloud applications on SAP Business Technology Platform (SAP BTP) and SAP S/4HANA, in the cloud and on premise. Experience live demos of the major ABAP Cloud capabilities around ABAP RESTful application programming model, embedded analytics, and enterprise event enablement, which can be used to build and extend transactional and analytical applications and integration scenarios.<BR /><BR /><span class="lia-unicode-emoji" title=":calendar:">📅</span>Friday, Nov 3 | <span class="lia-unicode-emoji" title=":one_o_clock:">🕐</span> 1:00 PM - 1:25 PM CET (4:00 AM - 4:25 AM PST)<BR /><BR /><SPAN>Speakers</SPAN>: Marcel Hermanns (SAP), Volker Drees (SAP)<BR /><BR /><STRONG><span class="lia-unicode-emoji" title=":blue_circle:">🔵</span>&nbsp;<A href="https://go3.events.sap.com/sapteched/virtual/2023/reg/flow/sap/sapteched23/catalog/page/catalog/session/1693019888030001sCmY" target="_blank" rel="noopener noreferrer">Use ABAP Cloud for Developer Extensibility - DT182v</A></STRONG><BR /><BR />[<STRONG>Jump-Start</STRONG>, 25 min] Learn how to implement extensions with the ABAP Cloud development model using the extensibility capabilities of the ABAP RESTful application programming model. Gain information, ask questions, and then complete the exercises at your own pace.<BR /><BR /><span class="lia-unicode-emoji" title=":calendar:">📅</span>Friday, Nov 3 | <span class="lia-unicode-emoji" title=":one_o_clock:">🕐</span> 3:30 PM - 3:55 PM CET (6:30 AM - 6:55 AM PST)<BR /><BR /><SPAN>Speakers</SPAN>: André Fischer (SAP), Harish Bokkasam (SAP)<BR /><BR /><STRONG><span class="lia-unicode-emoji" title=":blue_circle:">🔵</span>&nbsp;<A href="https://go3.events.sap.com/sapteched/virtual/2023/reg/flow/sap/sapteched23/catalog/page/catalog/session/1693019545062001fMQZ" target="_blank" rel="noopener noreferrer">Delve into ABAP Cloud on SAP BTP, ABAP Environment - AD181v</A></STRONG><BR /><BR />[<STRONG>Jump-Start</STRONG>, 25 min] ABAP RESTful application programming model is at the heart of the ABAP Cloud development model for building transactional apps and services on SAP BTP, ABAP environment and SAP S/4HANA – in the cloud and on premise. Learn how to use the model’s features, such as late numbering, side effects, and business events, to build your own SAP Fiori apps. We focus on the development capabilities in the ABAP development tools. Ask questions then complete the exercises at your own pace.<BR /><BR /><span class="lia-unicode-emoji" title=":calendar:">📅</span>Friday, Nov 3 | <span class="lia-unicode-emoji" title=":one_o_clock:">🕐</span> 6:30 PM - 6:55 PM CET (9:30 AM - 9:55 AM PST)<BR /><BR /><SPAN>Speakers</SPAN>: Carine Tchoutouo Djomo (SAP), Merve Temel (SAP)<BR /><BR /><STRONG><span class="lia-unicode-emoji" title=":blue_circle:">🔵</span>&nbsp;<A href="https://go3.events.sap.com/sapteched/virtual/2023/reg/flow/sap/sapteched23/catalog/page/catalog/session/1693019886304001sNN4" target="_blank" rel="noopener noreferrer">Build Analytical Applications with ABAP Cloud - DT187v</A></STRONG><BR /><BR />[<STRONG>Jump-Start</STRONG>, 25 min] Learn how to build analytical applications with the ABAP Cloud using ABAP core data services, analytical providers, and business services in the ABAP development tools. ABAP Cloud is the common development model for building cloud-ready business applications, services, and extensions side by side on SAP BTP, ABAP environment and on-stack on SAP S/4HANA, in the cloud and on premise. Gain information, ask questions, and then complete the exercises at your own pace.<BR /><BR /><span class="lia-unicode-emoji" title=":calendar:">📅</span>Friday, Nov 3 | <span class="lia-unicode-emoji" title=":one_o_clock:">🕐</span> 7:00 PM - 7:25 PM CET (10:00 AM - 10:25 AM PST)<BR /><BR /><SPAN>Speakers</SPAN>: Andreas Riehl (SAP), Niloofar Flothkötter (SAP)<BR /><BR /><STRONG>🟤 <A href="https://go3.events.sap.com/sapteched/virtual/2023/reg/flow/sap/sapteched23/catalog/page/catalog/session/1698056651077001TX8C" target="_blank" rel="noopener noreferrer">Microsoft Loves SAP: ABAP Cloud Empowering Microsoft Service Integrations - TLK03</A></STRONG><BR /><BR />[<STRONG>Live Show</STRONG>, 20 min] Microsoft and SAP are coming together as family by integrating ABAP Cloud and Microsoft Services. Check out the newborn ABAP Cloud model integrated into the family with Microsoft’s Azure Cloud Services.&nbsp;</P><P><SPAN>Speakers</SPAN>: Linda Siebert (SAP), Martha Splitthoff (Microsoft), Anne Keller (SAP)</P><HR /><P><SPAN><STRONG><span class="lia-unicode-emoji" title=":bank:">🏦</span></STRONG></SPAN><SPAN><STRONG>SAP TechEd Bangalore in 2023</STRONG></SPAN></P><DIV><TABLE><TBODY><TR><TD>ℹ This overview includes only the initial schedule <span class="lia-unicode-emoji" title=":one_o_clock:">🕐</span> for each session.<BR />Please refer to the <span class="lia-unicode-emoji" title=":books:">📚</span> <A href="https://go2.events.sap.com/TechEd2023/agb/go/agendabuilder.sessions/?l=326&amp;locale=en_US" target="_blank" rel="noopener noreferrer">SAP TechEd Bangalore 2023 Session Catalog</A> for information on session rescheduling.</TD></TR></TBODY></TABLE></DIV><H4 id="toc-hId-436212690"><STRONG>Lectures (45 min)</STRONG></H4><P><STRONG>🟢 <A href="https://go2.events.sap.com/TechEd2023/agb/go/agendabuilder.sessions/?l=326&amp;sid=115701&amp;schid=520400&amp;locale=en_US" target="_blank" rel="noopener noreferrer">Build Apps and Extensions with ABAP Cloud on SAP BTP, ABAP Environment (AD120)</A></STRONG><BR /><BR />[<STRONG>Lecture</STRONG>, 45 min] ABAP Cloud is a development model for building business apps, services, and extensions, and is an integral part of SAP BTP, ABAP environment. ABAP Cloud supports the creation of transactional apps based on the ABAP RESTful application programming model, analytical apps, and integration. Get an overview of typical usage scenarios and how to build multitenant SaaS applications.<BR /><BR /><span class="lia-unicode-emoji" title=":calendar:">📅</span>Thursday, Nov 2 | <span class="lia-unicode-emoji" title=":one_o_clock:">🕐</span> 12:00 p.m. - 12:45 p.m.<BR /><BR /><SPAN>Speakers</SPAN>: Srinivasa GV(SAP), Iwona Hahn (SAP), Sonja Lienard (SAP)<BR /><BR /><STRONG>🟢&nbsp;<A href="https://go2.events.sap.com/TechEd2023/agb/go/agendabuilder.sessions/?l=326&amp;sid=115756&amp;schid=520234&amp;locale=en_US" target="_blank" rel="noopener noreferrer">Extensibility with ABAP Cloud for SAP S/4HANA Cloud, Private Edition (DT122) ​</A></STRONG><BR /><BR />[<STRONG>Lecture</STRONG>, 45 min] Extensions for SAP S/4HANA Cloud, private edition and SAP S/4HANA are best implemented using key user extensibility, on-stack developer extensibility for tightly coupled extensions running on the SAP S/4HANA, and side-by-side extensibility for loosely connected extensions running on SAP Business Technology Platform. Learn about the ABAP Cloud development model and how customers and partners can use the three tier extensibility model to manage their extensions following clean core principles.<BR /><BR /><span class="lia-unicode-emoji" title=":calendar:">📅</span>Friday, Nov 3 | <span class="lia-unicode-emoji" title=":one_o_clock:">🕐</span> 11:00 a.m. - 11:45 a.m.<BR /><BR /><SPAN>Speakers</SPAN>: Abin Baby (SAP), Sita Gurram (SAP), Felix Wente (SAP)<BR /><BR /><STRONG>🟢 <A href="https://go2.events.sap.com/TechEd2023/agb/go/agendabuilder.sessions/?l=326&amp;sid=115755&amp;schid=520236&amp;locale=en_US" target="_blank" rel="noopener noreferrer">Extensibility with ABAP Cloud for SAP S/4HANA Cloud, Public Edition (DT121) ​</A></STRONG><BR /><BR />[<STRONG>Lecture</STRONG>, 45 min] Explore the major extensibility options for SAP S/4HANA Cloud, public edition: key-user extensibility for low-code/no-code extensions, on-stack developer extensibility for tightly coupled extensions in ABAP and side-by-side extensibility for loosely coupled extensions running on SAP Business Technology Platform. Benefit from the ABAP Cloud development model when building transactional apps, analytical apps, and integration scenarios.<BR /><BR /><span class="lia-unicode-emoji" title=":calendar:">📅</span>Friday, Nov 3 | <span class="lia-unicode-emoji" title=":one_o_clock:">🕐</span> 12:00 p.m. - 12:45 p.m<BR /><BR /><SPAN>Speakers</SPAN>: Srinivasa GV (SAP), Harish Babu M (SAP), Felix Wente (SAP)<BR /><BR /><STRONG>🟢&nbsp;<A href="https://go2.events.sap.com/TechEd2023/agb/go/agendabuilder.sessions/?l=326&amp;sid=115702&amp;schid=520401&amp;locale=en_US" target="_blank" rel="noopener noreferrer">ABAP Cloud Development Model in Action (AD121)</A>&nbsp;</STRONG><BR /><BR />[<STRONG>Lecture</STRONG>, 45 min] ABAP Cloud is a powerful development model for building cloud-ready business applications, services, and extensions on SAP BTP, ABAP environment and SAP S/4HANA – in the cloud and on premise. Experience live demos of some of the ABAP Cloud capabilities around the ABAP RESTful application programming model, embedded analytics, and enterprise event enablement that can be used to build and extend transactional and analytical apps as well as integration scenarios.<BR /><BR /><span class="lia-unicode-emoji" title=":calendar:">📅</span>Friday, Nov 3 | <span class="lia-unicode-emoji" title=":one_o_clock:">🕐</span> 04:00 p.m. - 04:45 p.m.<BR /><BR /><SPAN>Speakers</SPAN>: Shyam Balachandran (SAP), Sunil Bandameedapalli (SAP), Gopalakrishnan Ramachandran (SAP)</P><H4 id="toc-hId-239699185"><STRONG>Hand-on Workshops (105 min)</STRONG></H4><P><BR /><STRONG><span class="lia-unicode-emoji" title=":blue_circle:">🔵</span><A href="https://go2.events.sap.com/TechEd2023/agb/go/agendabuilder.sessions/?l=326&amp;sid=116864&amp;schid=520415&amp;locale=en_US" target="_blank" rel="noopener noreferrer">Building SAP Fiori Apps with ABAP Cloud on SAP BTP, ABAP Environment (AD260)</A></STRONG><BR /><BR />[<STRONG>Hands-on workshop</STRONG>, 105 min] The ABAP RESTful application programming model is at the heart of the ABAP Cloud development model for use in building transactional, OData-based SAP Fiori apps, and Web APIs on SAP BTP, ABAP environment and SAP S/4HANA. Learn how to use the programming model’s features, such as late numbering, OData stream, side effects, virtual elements, functions, and business events to create your own applications, with a focus on back-end development in ABAP development tools.<BR /><BR /><span class="lia-unicode-emoji" title=":calendar:">📅</span>Friday, Nov 3 | <span class="lia-unicode-emoji" title=":one_o_clock:">🕐</span> 11:15 a.m. - 01:00 p.m.<BR /><BR /><SPAN>Speakers</SPAN>: Shyam Balachandran (SAP), Sunil Bandameedapalli (SAP), Thomas Alexander Ritter (SAP), Shubham Waghmare (SAP)<BR /><BR /><STRONG><span class="lia-unicode-emoji" title=":blue_circle:">🔵</span>&nbsp;<A href="https://go2.events.sap.com/TechEd2023/agb/go/agendabuilder.sessions/?l=326&amp;sid=115726&amp;schid=520420&amp;locale=en_US" target="_blank" rel="noopener noreferrer">Create Extensions to SAP S/4HANA Using ABAP Cloud and SAP Build (AD262)</A></STRONG><BR /><BR />[<STRONG>Hands-on workshop</STRONG>, 120 min] Learn how professional developers in an ABAP environment and citizen developers using SAP Build solutions can collaborate to construct powerful extensions to SAP S/4HANA. Develop an ABAP RESTful application programming model service as a custom extension to SAP S/4HANA within the ABAP Cloud development model on SAP S/4HANA. With this service, create an application and a process using SAP Build on SAP Business Technology Platform.<BR /><BR /><span class="lia-unicode-emoji" title=":calendar:">📅</span>Friday, Nov 3 | <span class="lia-unicode-emoji" title=":one_o_clock:">🕐</span> 10:15 a.m. - 12:00 p.m.<BR /><BR /><SPAN>Speakers</SPAN>: Tim Back (SAP), Vijay G (SAP), Thomas Alexander Ritter (SAP), Sivakumar Subramaniam (SAP)<BR /><BR /><STRONG><span class="lia-unicode-emoji" title=":blue_circle:">🔵</span>&nbsp;<A href="https://go2.events.sap.com/TechEd2023/agb/go/agendabuilder.sessions/?l=326&amp;sid=117905&amp;schid=520412&amp;locale=en_US" target="_blank" rel="noopener noreferrer">Extending with ABAP Cloud and SAP Cloud Application Programming Model (AD267)</A></STRONG><BR /><BR />[<STRONG>Hands-on workshop</STRONG>, 105 min] Use pro-code tools to quickly build an extension, both on SAP S/4HANA using the ABAP Cloud development model and on SAP Business Technology Platform using SAP Cloud Application Programming Model. Learn how to use the ABAP development tools for use with ABAP and SAP Business Application Studio for use with SAP Cloud Application Programming Model.<BR /><BR /><span class="lia-unicode-emoji" title=":calendar:">📅</span>Friday, Nov 3 | <span class="lia-unicode-emoji" title=":one_o_clock:">🕐</span> 04:15 p.m. - 06:00 p.m.<BR /><BR /><SPAN>Speakers</SPAN>: Sachin B (SAP), Harish Babu M (SAP), Yuval Morad (SAP), Akansha Tiwari (SAP)<BR /><BR /><STRONG><span class="lia-unicode-emoji" title=":blue_circle:">🔵</span>&nbsp;<A href="https://go2.events.sap.com/TechEd2023/agb/go/agendabuilder.sessions/?l=326&amp;sid=116865&amp;schid=520416&amp;locale=en_US" target="_blank" rel="noopener noreferrer">Introduction of ABAP Cloud for Use by Classic ABAP Developers (AD164)</A></STRONG><BR /><BR />[<STRONG>Hands-on workshop</STRONG>, 105 min] Do you know how to implement applications based on DDIC and the ABAP programming language list viewer for use with SAP Business Technology Platform? Understand how this development is done according to the ABAP Cloud development model with the ABAP RESTful application programming model (RAP).<BR /><BR /><span class="lia-unicode-emoji" title=":calendar:">📅</span>Friday, Nov 3 | <span class="lia-unicode-emoji" title=":one_o_clock:">🕐</span> 02:15 p.m. - 04:00 p.m.<BR /><BR /><SPAN>Speakers</SPAN>: Sachin B (SAP), Sita Gurram (SAP), Gopalakrishnan Ramachandran (SAP), Sivakumar Subramaniam (SAP)<BR /><BR /><STRONG><span class="lia-unicode-emoji" title=":blue_circle:">🔵</span>&nbsp;<A href="https://go2.events.sap.com/TechEd2023/agb/go/agendabuilder.sessions/?l=326&amp;sid=115780&amp;schid=520266&amp;locale=en_US" target="_blank" rel="noopener noreferrer">Using ABAP Cloud to Build Extensions for SAP S/4HANA Cloud, Public Edition (DT264)</A></STRONG><BR /><BR />[<STRONG>Hands-on workshop</STRONG>, 105 min] Build extensions for SAP S/4HANA Cloud, public edition with SAP S/4HANA Cloud, ABAP environment using the ABAP Cloud development model and the ABAP RESTful application programming model.<BR /><BR /><span class="lia-unicode-emoji" title=":calendar:">📅</span>Friday, Nov 3 | <span class="lia-unicode-emoji" title=":one_o_clock:">🕐</span> 02:15 p.m. - 04:00 p.m.<BR /><BR /><SPAN>Speakers</SPAN>: Abin Baby (SAP), Sunil Bandameedapalli (SAP), Vignesh Subramanian (SAP), Felix Wente (SAP)<BR /><BR /><STRONG><span class="lia-unicode-emoji" title=":blue_circle:">🔵</span>&nbsp;<A href="https://go2.events.sap.com/TechEd2023/agb/go/agendabuilder.sessions/?l=326&amp;sid=116779&amp;schid=520260&amp;locale=en_US" target="_blank" rel="noopener noreferrer">Using ABAP Cloud to Build Extensions for SAP S/4HANA Cloud, Private Edition (DT168)</A></STRONG><BR /><BR />[<STRONG>Hands-on workshop</STRONG>, 105 min] Learn how to implement extensions for SAP S/4HANA Cloud, private edition and SAP S/4HANA (the on-premise version) in the ABAP Cloud development model, following clean core principles by adapting the custom code to the three-tier-extensibility model.<BR /><BR /><span class="lia-unicode-emoji" title=":calendar:">📅</span>Friday, Nov 3 | <span class="lia-unicode-emoji" title=":one_o_clock:">🕐</span> 12:15 p.m. - 02:00 p.m.<BR /><BR /><SPAN>Speakers</SPAN>: Sita Gurram (SAP), Gopalakrishnan Ramachandran (SAP), Sivakumar Subramaniam (SAP), Shubham Waghmare (SAP)<BR /><BR /><STRONG><span class="lia-unicode-emoji" title=":blue_circle:">🔵</span>&nbsp;<A href="https://go2.events.sap.com/TechEd2023/agb/go/agendabuilder.sessions/?l=326&amp;sid=116780&amp;schid=520262&amp;locale=en_US" target="_blank" rel="noopener noreferrer">Design and Build Embedded Analytical Content in SAP S/4HANA Cloud (DT169)</A></STRONG><BR /><BR />[<STRONG>Hands-on workshop</STRONG>, 105 min] Learn how to design analytical queries and build analytical applications for SAP S/4HANA Cloud.<BR /><BR /><span class="lia-unicode-emoji" title=":calendar:">📅</span>Friday, Nov 3 | <span class="lia-unicode-emoji" title=":one_o_clock:">🕐</span> 02:15 p.m. - 04:00 p.m.<BR /><BR /><SPAN>Speakers</SPAN>: Sohini Chatterjee (SAP), Hitesh Lulla (SAP), Harish Babu M (SAP), Ganesh Mohan (SAP)<BR /><BR /><STRONG><span class="lia-unicode-emoji" title=":blue_circle:">🔵</span><A href="https://go2.events.sap.com/TechEd2023/agb/go/agendabuilder.sessions/?l=326&amp;sid=117905&amp;schid=520412&amp;locale=en_US" target="_blank" rel="noopener noreferrer">Extending with ABAP Cloud and SAP Cloud Application Programming Model (AD267)</A></STRONG><BR /><BR />[<STRONG>Hands-on workshop</STRONG>, 105 min] Use pro-code tools to quickly build an extension, both on SAP S/4HANA using the ABAP Cloud development model and on SAP Business Technology Platform using SAP Cloud Application Programming Model. Learn how to use the ABAP development tools for use with ABAP and SAP Business Application Studio for use with SAP Cloud Application Programming Model.<BR /><BR /><span class="lia-unicode-emoji" title=":calendar:">📅</span>Friday, Nov 3 | <span class="lia-unicode-emoji" title=":one_o_clock:">🕐</span> 04:15 p.m. - 06:00 p.m.<BR /><BR /><SPAN>Speakers</SPAN>: Sachin B (SAP), Harish Babu M (SAP), Yuval Morad (SAP), Akansha Tiwari (SAP)</P><H4 id="toc-hId-43185680"><STRONG>Road Maps (25 min)</STRONG></H4><P><BR /><STRONG>🟡 <A href="https://go2.events.sap.com/TechEd2023/agb/go/agendabuilder.sessions/?l=326&amp;sid=115724&amp;schid=520426&amp;locale=en_US" target="_blank" rel="noopener noreferrer">What's Next with SAP BTP, ABAP Environment? (AD806)</A></STRONG><BR /><BR />[<STRONG>Road Map</STRONG>, 25 min] Get an overview of the capabilities and road map of SAP BTP, ABAP environment, and find out about planned innovations.<BR /><BR /><span class="lia-unicode-emoji" title=":calendar:">📅</span>Friday, Nov 3 | <span class="lia-unicode-emoji" title=":one_o_clock:">🕐</span> 02:00 p.m. - 02:25 p.m.<BR /><BR /><SPAN>Speakers</SPAN>: Iwona Hahn (SAP), Sonja Liénard (SAP)</P><H4 id="toc-hId--153327825"><STRONG>Mini-Theater Sessions</STRONG></H4><P><BR /><STRONG>🟣&nbsp;<A href="https://go2.events.sap.com/TechEd2023/agb/go/agendabuilder.sessions/?l=326&amp;sid=115709&amp;schid=520706&amp;locale=en_US" target="_blank" rel="noopener noreferrer">Showcasing Partner Success with SAP BTP, ABAP Environment (AD500)</A></STRONG><BR /><BR />[<STRONG>Mini-Theater Session</STRONG>, 45 min] See how customers have used SAP BTP, ABAP environment and the ABAP Cloud development model to build and run apps and extensions. Share in our experiences and discover the advantage of building extensions following a clean-core approach.<BR /><BR /><span class="lia-unicode-emoji" title=":calendar:">📅</span>Thursday, Nov 2 | <span class="lia-unicode-emoji" title=":one_o_clock:">🕐</span> 11:00 a.m. - 11:45 a.m.<BR /><BR /><SPAN>Speakers</SPAN>: Srinivasa GV(SAP), Iwona Hahn (SAP)<BR /><BR /><STRONG>🟣&nbsp;<A href="https://go2.events.sap.com/TechEd2023/agb/go/agendabuilder.sessions/?l=326&amp;sid=115774&amp;schid=520714&amp;locale=en_US" target="_blank" rel="noopener noreferrer">Lessons Learned in Customer Projects with SAP BTP, ABAP Environment (AD504)</A></STRONG><BR /><BR />[<STRONG>Mini-Theater Session</STRONG>, 45 min] See how customers have used SAP BTP, ABAP environment and the ABAP Cloud development model to build and run apps and extensions. Share in our experiences and discover the advantage of building extensions following a clean-core approach.<BR /><BR /><span class="lia-unicode-emoji" title=":calendar:">📅</span>Friday, Nov 3 | <span class="lia-unicode-emoji" title=":one_o_clock:">🕐</span> 10:00 a.m. - 10:25 a.m.<BR /><BR /><SPAN>Speakers</SPAN>: Srinivasa GV(SAP), Iwona Hahn (SAP)</P><H4 id="toc-hId--349841330"><STRONG>Demo Sessions</STRONG></H4><P><BR /><STRONG>🟠 <A href="https://go2.events.sap.com/TechEd2023/agb/go/agendabuilder.sessions/?l=326&amp;sid=115725&amp;schid=520663&amp;locale=en_US" target="_blank" rel="noopener noreferrer">High Developer Productivity Through Innovations in ABAP Language and Tools (AD911)</A></STRONG><BR /><BR />[<STRONG>Demo Session</STRONG>, 90 min] Learn how the latest innovations in the ABAP programming language and ABAP development tools for Eclipse can boost the productivity of ABAP developers in their daily tasks. Follow demos about language features such as constructor operators, filters and corresponding, and innovations in internal tables handling. See best practices and learn how to avoid ungainly accesses and performance pitfalls.<BR /><BR /><span class="lia-unicode-emoji" title=":calendar:">📅</span>Thursday, Nov 2 | <span class="lia-unicode-emoji" title=":one_o_clock:">🕐</span> 03:30 p.m. - 05:00 p.m.<BR /><BR /><SPAN>Speakers</SPAN>: Shyam Balachandran (SAP), (SAP), Shubham Waghmare (SAP)<BR /><BR /><STRONG>🟠 <A href="https://go2.events.sap.com/TechEd2023/agb/go/agendabuilder.sessions/?l=326&amp;sid=116825&amp;schid=520662&amp;locale=en_US" target="_blank" rel="noopener noreferrer">SAP BTP, ABAP Environment Feature Show (AD929)</A></STRONG><BR /><BR />[<STRONG>Demo Session</STRONG>, 90 min] Find out how SAP BTP, ABAP environment helps customers build side-by-side extensions and partners build multitenancy software as a service (SaaS) applications.<BR /><BR /><span class="lia-unicode-emoji" title=":calendar:">📅</span>Thursday, Nov 2 | <span class="lia-unicode-emoji" title=":one_o_clock:">🕐</span> 12:30 p.m. - 02:00 p.m.<BR /><BR /><SPAN>Speakers</SPAN>: Sachin B (SAP), Vignesh Subramanian (SAP)<BR /><BR /><IMG src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2016/04/sapnwabline_930876.png" border="0" width="650" /></P><P>Hope this overview gives you some more reasons to join the event, virtually or in-person in Bangalore.</P><P>We are looking forward to interacting with you in the different interactive formats! <span class="lia-unicode-emoji" title=":right_facing_fist:">🤜</span><span class="lia-unicode-emoji" title=":left_facing_fist:">🤛</span>&nbsp;</P><P>In the meantime, you might have a look at the replays from last year’s event: <A href="https://go3.events.sap.com/sapteched/hybrid/2022/reg/flow/sap/saptech2022/virtualdashboard/page/overview" target="_blank" rel="noopener noreferrer">Archives from SAP TechEd in 2022</A>&nbsp;| <A href="https://blogs.sap.com/2022/10/28/abap-at-sap-teched-in-2022/" target="_blank" rel="noopener noreferrer">ABAP Sessions at SAP TechEd in 2022</A>.&nbsp;</P><P>You can also watch the interesting live sessions and replays from SAP's Devtoberfest: <A href="https://blogs.sap.com/2023/09/18/abap-cloud-at-devtoberfest-2023/" target="_blank" rel="noopener noreferrer">ABAP Cloud sessions at Devtoberfest in 2023</A><BR /><BR />Stay safe and healthy!</P> 2023-10-02T21:36:21+02:00 https://community.sap.com/t5/technology-blogs-by-sap/abap-tools-for-clean-abap/ba-p/13577378 ABAP Tools for Clean ABAP 2023-10-09T13:09:59+02:00 OlgaDolinskaja https://community.sap.com/t5/user/viewprofilepage/user-id/6638 <P>This blog provides you an overview of ABAP tools which have been developed in the context of Clean ABAP projects led by SAP in the open-source community and gives you guidance for their usage scenarios.<BR /><BR />Let’s start with a picture which illustrates the interplay of the Clean ABAP initiative, style guide and tools.</P><P><IMG src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/10/cleanABAP.png" border="0" width="476" height="290" /></P><P><BR />The large outer circle <STRONG>Clean ABAP</STRONG> is all you can do to make your ABAP code clean.<BR /><BR />The second circle is about how to <FONT color="#333399"><SPAN><STRONG>describe</STRONG></SPAN> </FONT>Clean ABAP, and that is the well-known Clean ABAP style guide, which provides a common set of the rules which can be applied to improve maintainability, readability, and testability of your ABAP code.<BR /><BR />The <FONT color="#FF00FF"><SPAN><STRONG>check</STRONG></SPAN></FONT> circle means that for a subset of Clean ABAP rules, there are tools available (code pal for ABAP) which you can use to check your code for Clean ABAP adherence. The <FONT color="#FF00FF"><SPAN><STRONG>check</STRONG></SPAN> </FONT>circle is smaller than the <FONT color="#333399"><SPAN><STRONG>describe</STRONG></SPAN> </FONT>circle, because it is generally possible to define rules which cannot be checked easily (for example, using semantically descriptive names as variable names).<BR /><BR />Finally, the <FONT color="#008080"><SPAN><STRONG>automate</STRONG></SPAN> </FONT>circle represents the automation tools which can be used to apply Clean ABAP rules to your code in an automated way like code pal quick fixes and ABAP cleaner. The <FONT color="#008080"><SPAN><STRONG>automate</STRONG></SPAN> </FONT>circle is smaller than the <FONT color="#FF00FF"><SPAN><STRONG>check</STRONG></SPAN> </FONT>circle, because it is technically not feasible to automate code cleanup for all the issues reported by the Clean ABAP checks (for example, reducing the nesting depth of code must be reworked manually).<BR /><BR />Now after a basic understanding is gained, let’s examine all circles in a detailed way.</P><H2 id="toc-hId-964044513"><SPAN>Why Clean ABAP?</SPAN></H2><TABLE width="100%"><TBODY><TR><TD width="50%"><SPAN>Nowadays, almost everybody in the software development area knows the book by</SPAN> <A href="https://www.oreilly.com/library/view/clean-code-a/9780136083238/" target="_blank" rel="noopener nofollow noreferrer">Robert C. Martin “Clean Code: A Handbook of Agile Software Craftmanship”</A> <SPAN>about the general clean code rules which should be considered to write readable, testable and maintainable code. These general clean code rules have guided SAP to apply the clean code principle to ABAP.&nbsp;</SPAN></TD><TD width="50%"><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="OlgaDolinskaja_1-1706808011280.png" style="width: 143px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/58808i993CFB8E6AD115CE/image-dimensions/143x189?v=v2" width="143" height="189" role="button" title="OlgaDolinskaja_1-1706808011280.png" alt="OlgaDolinskaja_1-1706808011280.png" /></span><P>&nbsp;</P></TD></TR></TBODY></TABLE><P>As every ABAP developer knows, ABAP is not only about writing source code, but also using Data Dictionary, CDS modelling etc., which go far beyond just ABAP language constructs. The Clean ABAP initiative revolves very much around optimization of code for readers, since in the ABAP area, people spend more time reading the code than writing it, for example to understand the business application or during maintenance tasks. Beyond this, in many cases you need not only to read your own code, but also SAP code, partner code or any other kind of custom code. If a uniform representation for these different kinds of code was possible, it would save you a lot of reading and understanding effort. Another aspect which should be considered is that ABAP has evolved over a long time with backward compatibility in mind. There is a lot of legacy code in the traditional ERP landscapes, therefore it would not be realistic to apply Clean ABAP principles to the whole legacy code, but surely, new code, developed with modern ABAP for example in SAP S/4HANA landscapes, can be handled with Clean ABAP.<BR /><BR />The introduction to the Clean ABAP is provided in the blog post <A href="https://blogs.sap.com/2021/03/17/why-clean-abap-a-foundation-for-improvements/" target="_blank" rel="noopener noreferrer">Why Clean ABAP – A foundation for improvements</A>.</P><H2 id="toc-hId-767531008"><SPAN><FONT color="#333399"><SPAN>Describe:</SPAN></FONT> Clean ABAP Style Guide</SPAN></H2><P>The <A href="https://github.com/SAP/styleguides/blob/main/clean-abap/CleanABAP.md" target="_blank" rel="noopener nofollow noreferrer">Clean ABAP Style Guide</A> is an open-source project on GitHub. The project is driven by SAP and fully relies on contributions from the open-source community. The project is an active joint work of SAP and contributors with a lot of discussions and reported issues. The Clean ABAP style guide is the central place for looking up all agreed rules which can be applied to make your ABAP code clean. There is also a sophisticated process of aligning and reviewing these rules before they become a part of the Clean ABAP style guide.</P><P>As an ABAP developer, you are very welcome to contribute to the Clean ABAP Style Guide, see Contributing to SAP Style Guides and governance information <A href="https://github.com/SAP/styleguides/blob/main/GOVERNANCE.md" target="_blank" rel="noopener nofollow noreferrer">Clean Code Community - Contribution, Discussion, Review and Decision Process</A> on GitHub for more details.</P><H2 id="toc-hId-571017503"><SPAN><FONT color="#FF00FF"><SPAN>Check:</SPAN></FONT> code pal for Clean ABAP</SPAN></H2><P>The code pal tool contains a set of checks which can be used in Code Inspector and ABAP test cockpit (ATC) to control the usage of Clean ABAP. It is also integrated via ATC into ABAP development tools for Eclipse. The code pal is an open-source project, provided on GitHub and led by the SAP ATC development team.</P><P>The <A href="https://github.com/SAP/code-pal-for-abap" target="_blank" rel="noopener nofollow noreferrer">classic code pal for ABAP checks</A> are available for SAP_BASIS releases &gt;= AS ABAP 7.40 SP08 and described in detail in the blog post <A href="https://blogs.sap.com/2022/05/05/how-to-enable-clean-code-checks-for-abap" target="_blank" rel="noopener noreferrer">How to enable clean code checks for ABAP</A>.</P><P>There is also a new cloud-enabled version of the code pal checks which can be executed in SAP BTP, ABAP environment and will be available on premise in the upcoming SAP S/4HANA 2023 release. The checks are remote-enabled and therefore can be executed in the remote ATC scenarios. For automated adaptation of code for many Clean ABAP rules, quick fixes are offered in ABAP development tools for Eclipse. Details are provided in the blog post <A href="https://blogs.sap.com/2023/09/11/clean-code-checks-for-abap-cloud-edition" target="_blank" rel="noopener noreferrer">Clean code checks for ABAP – Cloud Edition</A> and on the GitHub under <A href="https://github.com/SAP/code-pal-for-abap-cloud/" target="_blank" rel="noopener nofollow noreferrer">Code Pal for ABAP – Cloud Edition</A>.<BR /><BR />As an ABAP developer, you are very welcome to <A href="https://github.com/SAP/code-pal-for-abap-cloud/#contributing" target="_blank" rel="noopener nofollow noreferrer">contribute to this project</A>.</P><H2 id="toc-hId-374503998"><IMG src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/10/toolsblog_codepal_tools.jpg" border="0" /><BR /><SPAN><FONT color="#008080"><SPAN>Automate:</SPAN> </FONT>ABAP cleaner and code pal quick fixes</SPAN></H2><P><IMG src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/10/abap_cleaner_logo-1.jpg" border="0" /></P><P>The objective of the ABAP cleaner tool is the same as of code pal for ABAP: helping ABAP developers to follow the rules of Clean ABAP. While code pal quick fixes are most suitable to clean existing code according to Clean ABAP rules, ABAP cleaner can be used immediately during code writing (a.k.a Pretty Printer approach) to clean the code in an automated way.</P><P><IMG src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/10/abapcleaner_in_action-1.jpg" border="0" width="561" height="300" /></P><P>With ABAP cleaner, you can apply 60+ cleanup rules to your code and clean any amount of code from a single statement to an entire source code document using just one keystroke (Ctrl + 4). You can also configure cleanup rules as needed by your team and restrict code changes to the syntax of a specific ABAP release (for example if your code must be downported to older releases).</P><P>You can use ABAP cleaner as a plug-in (recommended) for ABAP development tools in Eclipse (update site: <A href="https://sap.github.io/abap-cleaner/updatesite" target="_blank" rel="noopener nofollow noreferrer">https://sap.github.io/abap-cleaner/updatesite</A>), where you can execute it automatically with a single keystroke (Ctrl +4) or interactively by opening the ABAP cleaner UI, which allows you to preview and adjust changes before applying them (under <EM>Source Code</EM> menu in ABAP development tools for Eclipse):</P><P><IMG src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/10/ABAP-cleaner-ADT-menus.png" border="0" /></P><P>It is also possible to use ABAP cleaner standalone with SAP GUI. To start with ABAP cleaner, we recommend selecting the code of a larger ABAP method or class and opening the interactive ABAP cleaner UI. You will then see in a diff view what changes ABAP cleaner would do on your code, and which cleanup rules produce these changes:</P><P><IMG src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/10/ABAP-cleaner-diff-view-and-list-of-used-rules.png" border="0" /></P><P>Click “Configure…” to see a list of all 60 available cleanup rules. These include</P><UL><UL><LI>standardizing <STRONG>empty lines</STRONG> <STRONG>and spaces</STRONG>, such as closing brackets at line end, or removing needless spaces.</LI></UL></UL><UL><UL><LI>reworking <STRONG>declaration sections</STRONG>, e. g. for unchaining, rearranging local declarations into “order of appearance”, introducing FINAL to immutable variables, or adding missing parameters ABAP Doc.</LI></UL></UL><UL><UL><LI><STRONG>syntax</STRONG> improvements on comment signs (* versus "), obsolete pseudo-comments, pragma position, IS NOT versus NOT IS, &lt;= versus LE, optional EXPORTING etc.; one rule even corrects frequent typos like “wether”, “occurr” or “sucessfull” in comments.</LI></UL></UL><UL><UL><LI><STRONG>command</STRONG> changes that replace CHECK with IF, CALL METHOD with functional calls, CREATE OBJECT with NEW, obsolete ADD … TO, MOVE … TO, TRANSLATE etc.</LI></UL></UL><P><IMG src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/10/ABAP-cleaner-cleanup-rules-examples.png" border="0" /></P><UL><UL><LI><STRONG>Pretty Printer</STRONG> functionality – with ABAP cleaner you actually don’t need Shift+F1 anymore.</LI></UL></UL><UL><UL><LI><STRONG>alignment</STRONG> for ABAP Doc, METHODS declarations, variable and types declarations, assignments, parameters, components, logical and conditional expressions etc.</LI></UL></UL><P>You can create multiple configuration profiles, in which any cleanup rule you don’t want can be deactivated with one click. Many rules have additional options for fine-tuning, allowing you to get exactly the formatting that you and your team want. Default settings are of course in alignment with the Clean ABAP style guide.</P><P>ABAP cleaner is also an SAP-led open-source project that depends on your contributions as ABAP developers. The open-source repository <A href="https://github.com/SAP/abap-cleaner" target="_blank" rel="noopener nofollow noreferrer">ABAP cleaner</A> on GitHub contains <A href="https://github.com/SAP/abap-cleaner#requirements-and-installation" target="_blank" rel="noopener nofollow noreferrer">installation instructions</A>, <A href="https://github.com/SAP/abap-cleaner#detailed-documentation" target="_blank" rel="noopener nofollow noreferrer">documentation</A>, <A href="https://github.com/SAP/abap-cleaner/blob/main/docs/release-notes.md" target="_blank" rel="noopener nofollow noreferrer">release notes</A>, a list of <A href="https://github.com/SAP/abap-cleaner/blob/main/docs/rules.md" target="_blank" rel="noopener nofollow noreferrer">available cleanup rules</A>, allows to create <A href="https://github.com/SAP/abap-cleaner/issues" target="_blank" rel="noopener nofollow noreferrer">issues</A> and so on.</P><P>For details about ABAP cleaner, the Devtoberfest 2023 session on YouTube <A href="https://www.youtube.com/watch?v=0mp0FuJV5_k" target="_blank" rel="noopener nofollow noreferrer">How to Clean your ABAP code in Seconds with ABAP Cleaner</A> and the SAP Press blog post <A href="https://blog.sap-press.com/how-to-clean-your-abap-code-with-one-keystroke-using-abap-cleaner" target="_blank" rel="noopener nofollow noreferrer">How to Clean Your ABAP Code with One Keystroke Using ABAP Cleaner</A> by the author of the ABAP cleaner tool, Jörg-Michael Grassau, are highly recommended.</P><P>If using code pal for ABAP, Cloud Edition, you can also adapt your code for Clean ABAP using single quick fixes (Ctrl + 1) in ABAP development tools for Eclipse:</P><P><IMG src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/10/cl_qf_bsp_3.jpg" border="0" /></P><P>We recommend to automate your code adaptation to Clean ABAP by using the mass-enabled quick fixes:</P><P><IMG src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/10/cl_mass_qf_wizard.jpg" border="0" /></P><P>Just try out ABAP tools for Clean ABAP!</P> 2023-10-09T13:09:59+02:00 https://community.sap.com/t5/application-development-blog-posts/abap-cleaner-project-open-configurable-and-automated/ba-p/13575404 ABAP cleaner project – open, configurable, and automated 2023-10-30T15:32:32+01:00 Fempel https://community.sap.com/t5/user/viewprofilepage/user-id/10046 Clean ABAP and open source go hand in hand, as many of you might confirm thinking of the <A href="https://github.com/SAP/styleguides" target="_blank" rel="nofollow noopener noreferrer">clean ABAP styleguides</A> (<A href="https://blogs.sap.com/2019/05/03/clean-abap/" target="_blank" rel="noopener noreferrer">read more</A>), <A href="https://github.com/fidley/ABAPQuickFix" target="_blank" rel="nofollow noopener noreferrer">ABAPQuickFix</A> or the <A href="https://github.com/SAP/code-pal-for-abap" target="_blank" rel="nofollow noopener noreferrer">code pal for ABAP</A> open-source project, and <A href="https://dotabap.org/" target="_blank" rel="nofollow noopener noreferrer">others</A>.<BR /> <BR /> <SPAN style="font-size: 1rem">The intention of open sourcing these ABAP tools for clean code is to offer collaboration, full transparency and to allow the whole SAP ecosystem to benefit from high quality code! Since April 2023, there is another open-source project pursuing the same aim: </SPAN><STRONG style="font-size: 1rem">ABAP cleaner</STRONG><SPAN style="font-size: 1rem">.</SPAN><BR /> <BR /> The general objective of the ABAP cleaner tool is the same as of code pal for ABAP: helping ABAP developers to follow the rules of Clean ABAP. While code pal quick fixes are most suitable to clean existing code according to Clean ABAP rules, ABAP cleaner can be used immediately while writing code to clean the code in an automated way (<A href="https://blogs.sap.com/2023/10/09/abap-tools-for-clean-abap/" target="_blank" rel="noopener noreferrer">read more</A>).<BR /> <BR /> <STRONG>ABAP cleaner</STRONG><BR /> <BR /> ABAP cleaner applies 60+ cleanup rules to ABAP code at a single keystroke. It is a configurable tool with the ambition to automate whatever can be automated with respect to ABAP code style: Alignment, formatting, syntax improvements, replacement of obsolete commands etc. It is available both as a plug-in to ABAP Development Tools (ADT, a.k.a. ABAP in Eclipse) and as a stand-alone version and allows you and your team to configure exactly which of the 60+ cleanup rules you want to apply. Like Pretty Printer, the cleanup is then done with a single keystroke, cleaning any selected amount of code from a single statement or method up to a whole multi-thousand-line code document. This project has been a very popular Inner Source project at SAP for two years and was open sourced earlier this year.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/10/ABAP_cleaner.jpg" /></P><BR /> For a better understanding of how to use ABAP Cleaner and an overview of some of the other ABAP tools in the context of clean ABAP, please refer to Olga Dolinskaja’s recent <A href="https://blogs.sap.com/2023/10/09/abap-tools-for-clean-abap/" target="_blank" rel="noopener noreferrer">blog post</A>. For a demo on how to use and install the ABAP cleaner, you can watch a recording of the Devtoberfest 2023 session on YouTube&nbsp;<A href="https://www.youtube.com/watch?v=0mp0FuJV5_k" target="_blank" rel="nofollow noopener noreferrer">How to Clean your ABAP code in Seconds with ABAP Cleaner</A>.<BR /> <BR /> In the Webinar <A href="https://vods.dm.ux.sap.com/webinars/ospo-webinar-series/vods/abap_cleaner_webinar_edited_recording-edited.mp4" target="_blank" rel="noopener noreferrer">recording</A> from November 15th you can hear more about the open source journey of this the ABAP cleaner project. In this virtual event <STRONG>Jörg-Michael Grassau, </STRONG>author of the ABAP cleaner tool, explained the scope and usage of this tool and gave interesting insights into his learnings on the way from initiating the tool, sharing it internally as InnerSource project and the process until having it open for the entire ABAP ecosystem on <A href="https://github.com/SAP/abap-cleaner" target="_blank" rel="nofollow noopener noreferrer">GitHub</A> (<A href="https://d.dam.sap.com/a/m7QFgad/Open-Source Project ABAP Cleaner.pdf?rc=10" target="_blank" rel="noopener noreferrer">link to slides</A>).<BR /> <BR /> With this project, Jörg-Michael's original intention of saving himself time when programming now benefits many other ABAP developers (recent comment by a user: “I wasted so much time doing all this manually”).<BR /> <BR /> &nbsp; 2023-10-30T15:32:32+01:00 https://community.sap.com/t5/technology-blogs-by-sap/how-to-use-abap-test-cockpit-atc-in-the-cloud-as-a-developer-in-an-on/ba-p/13574060 How to use ABAP Test Cockpit (ATC) in the cloud as a developer in an on-premise system 2023-11-12T21:27:55+01:00 OlgaDolinskaja https://community.sap.com/t5/user/viewprofilepage/user-id/6638 <P>As you probably already know, you can use the Custom Code Migration app in the SAP BTP, ABAP environment to check your ABAP custom code in an SAP Business Suite, SAP S/4HANA Cloud, private edition (or SAP S/4HANA on-premise) system (further referenced as “on-premise” system) for quality issues. Over and above that, to enable central ABAP test cockpit (ATC) quality checking in the cloud for on-premise landscapes, we have delivered further essential capabilities for using ATC in the cloud. These include, amongst others, the configuration via the ATC Configurator app, and the management of custom ATC check variants. For further information, see the blog <A href="https://blogs.sap.com/2023/11/12/usage-of-abap-test-cockpit-atc-in-the-cloud-for-on-premise-developments/" target="_blank" rel="noopener noreferrer">Usage of ABAP Test Cockpit (ATC) in the Cloud for on-premise developments</A>.<BR /><BR />With SAP BTP, ABAP environment 2311 (November 2023 release) we have now also enabled the remote developer scenario between ATC in the cloud and developers in on-premise systems.</P><P><IMG src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/10/atc_devscenario.png" border="0" width="483" height="494" /></P><P><BR />As an ABAP developer in an on-premise SAP system you can now check your code during the development process using ATC checks from the central ATC check system in the SAP BTP, ABAP environment and request exemptions as needed.</P><H2 id="toc-hId-963952218"><FONT color="#666699"><SPAN>Prerequisites</SPAN></FONT></H2><H3 id="toc-hId-896521432"><STRONG>Central ATC check system (cloud)</STRONG></H3><P>You need access to the <A href="https://discovery-center.cloud.sap/serviceCatalog/abap-environment" target="_blank" rel="noopener nofollow noreferrer">SAP BTP, ABAP environment</A>, and you have to create &nbsp;communication arrangement based on the communication scenario <EM>Custom Code Migration Integration</EM>&nbsp; (SAP_COM_0464) to enable communication from the ABAP environment to on-premise systems using RFC and SAP Cloud Connector. For more details, see the SAP Help Portal documentation <A class="" title="A communication arrangement describes a communication scenario with a remote system during configuration time. It provides the required metadata for the service configuration." href="https://help.sap.com/docs/btp/sap-business-technology-platform/maintaining-communication-arrangements-7849aa40e01a4d7fac4bcaa9287657cd?version=Cloud" target="_blank" rel="noopener noreferrer">Maintaining Communication Arrangements</A>.</P><H3 id="toc-hId-700007927"><STRONG>Checked system (on-premise)</STRONG></H3><P>The on-premise system must be on the SAP_BASIS &gt;= 7.40 release.</P><P>Depending on the support package level of your on-premise system you need to apply the respective SAP Notes for using ATC to perform remote analysis. See the collective SAP Note <A href="https://me.sap.com/notes/2364916" target="_blank" rel="noopener noreferrer">2364916</A> under the "Checked System" section.</P><P>In addition the <A href="https://me.sap.com/notes/3358660/E" target="_blank" rel="noopener noreferrer">SAP Note 3358660 - Developer Scenario Cloud</A>&nbsp;must be implemented.</P><H2 id="toc-hId-374411703"><FONT color="#666699"><SPAN>Technical Setup</SPAN></FONT></H2><H3 id="toc-hId-306980917"><STRONG>Central ATC check system (cloud)</STRONG></H3><P>In order to enable developers in on-premise systems to check their code using a remote ATC check variant of the central ATC check system in the cloud you need to create a communication arrangement based on the communication scenario <EM>ABAP Test Cockpit - Reference Check System Inbound Integration</EM> (SAP_COM_0936) in your SAP BTP, ABAP environment system.<BR /><BR />To do this, you need to log on to the SAP Fiori launchpad of your SAP BTP, ABAP environment. Next, in the&nbsp;<STRONG>Communication Management</STRONG>&nbsp;section, select the&nbsp;<STRONG>Communication Arrangement</STRONG>&nbsp;tile and create a new communication arrangement using the&nbsp;SAP_COM_0936&nbsp;scenario. Enter <EM>Communication System</EM> and <EM>Object Provider</EM>. The <EM>Communication System</EM> must be defined as <EM>Inbound Only</EM> beforehand under the <STRONG>Communication System</STRONG> tile. The <EM>Object Provider</EM> is specified in the communication arrangement for the integration of your on-premise system based on the communication scenario SAP_COM_0464.</P><P><IMG src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/10/dc_comm_arrange.jpg" border="0" /></P><H3 id="toc-hId-110467412"><STRONG>Checked system (on-premise)</STRONG></H3><P>For the configuration of the developer scenario in an on-premise checked system (in transaction <EM>ATC</EM> under <EM>Basic Settings),</EM> you need to enter the connection to the central ATC check system in the cloud (<EM>Reference Check System</EM>) and a corresponding reference ATC check variant that points to the check variant of the central ATC system in the cloud (<EM>Global Check Variant</EM>) :</P><P><IMG src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/10/dc_atc_basic_settings.jpg" border="0" width="468" height="182" /></P><P>To do this, the RFC destination to the central ATC check system in the cloud must be created beforehand in the <EM>SM59</EM> transaction (SKZ_ATC_CC in this case, classic Type 3 connection over SAP Cloud Connector). The ATC check variant (Z_CLOUD_REF in this case) must be created in the Code Inspector (SCI transaction) as a reference check variant (use <EM>Reference Check System</EM> checkbox) that references the variant in the central ATC check system (for example SLIN_SEC) that you want to use.</P><P><IMG src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/10/dc_check_variant.jpg" border="0" width="496" height="269" /></P><P><BR />See also the SAP Help Portal documentation <A href="https://help.sap.com/docs/btp/sap-business-technology-platform/using-sap-btp-system-as-atc-central-check-system?version=Cloud" target="_blank" rel="noopener noreferrer">Configuring the ATC Developer Scenario</A> for more details.</P><H2 id="toc-hId--215128812"><FONT color="#666699"><SPAN>Check your source code</SPAN></FONT></H2><P>Just run the ATC over your code using the default system check variant in an on-premise system in ABAP development tools for Eclipse (in the context menu, choose <EM>Run As &gt; ABAP Test Cockpit</EM>) and your code will be checked with the ATC check variant (that you specified as a reference check variant) of the central ATC check system in the cloud:</P><P><IMG src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/11/dc_atc_check_source_error.jpg" border="0" /></P><P><IMG src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/10/dc_atc_check_source_error.jpg" border="0" /></P><H2 id="toc-hId--411642317"><FONT color="#666699"><SPAN>Check transport before release</SPAN></FONT></H2><P>With the central ATC check system in the cloud, you can also execute remote ATC checks for your transport requests before release. In the <EM>Transport Organizer</EM> view, select your transport request and run ATC using the default system check variant (in the context menu, choose <EM>Run As &gt; ABAP Test Cockpit</EM>) :</P><P><IMG src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/10/dc_atc_check_transport.jpg" border="0" /></P><P><IMG src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/10/dc_atc_check_transport_error.jpg" border="0" /></P><P>Typically, your system is configured so that the checks are also performed upon the release of the transport requests.</P><H2 id="toc-hId--608155822"><FONT color="#666699"><SPAN>Request exemption</SPAN></FONT></H2><P>To request an exemption for a finding, position the cursor on the ATC finding and choose <EM>Request Exemption</EM> from the context menu.</P><P><IMG src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/10/dc_request_exemption.jpg" border="0" /></P><P><BR />The exemption processing will take place in the central ATC check system in the cloud. For more details, see the blog post <A href="https://blogs.sap.com/2023/11/12/how-to-work-with-exemptions-using-abap-test-cockpit-atc-in-the-cloud-during-development-in-an-on-premise-system/" target="_blank" rel="noopener noreferrer">How to work with exemptions using ABAP Test Cockpit (ATC) in the cloud during development in an on-premise system</A>.</P><H2 id="toc-hId--804669327"><FONT color="#666699"><SPAN>Use Quick Fixes</SPAN></FONT></H2><P>When using a central ATC check system in the cloud, you can also apply Quick Fixes in ABAP development tools for Eclipse for your source code in an on-premise system (Quick Fixes are supported in the releases &gt;= SAP S/4HANA 1809).</P><P><IMG src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/11/dev_sc_qf.jpg" border="0" width="384" height="292" /></P><P><IMG src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/11/dev_sc_qf_before_after.jpg" border="0" /></P> 2023-11-12T21:27:55+01:00 https://community.sap.com/t5/technology-blogs-by-sap/how-to-work-with-exemptions-using-abap-test-cockpit-atc-in-the-cloud-during/ba-p/13574027 How to work with exemptions using ABAP Test Cockpit (ATC) in the cloud during development in an on-premise system 2023-11-12T21:29:26+01:00 OlgaDolinskaja https://community.sap.com/t5/user/viewprofilepage/user-id/6638 <P>If you are an ABAP developer in an SAP Business Suite or an SAP S/4HANA Cloud, private edition (or SAP S/4HANA on-premise) system (further referenced as “on-premise” system), you have the option to check code for static quality issues during your development process using the ABAP test cockpit (ATC) checks from the central ATC check system in the SAP BTP, ABAP environment. More details are provided in the blog <A href="https://blogs.sap.com/2023/11/12/how-to-use-abap-test-cockpit-atc-in-the-cloud-as-a-developer-in-an-on-premise-system/" target="_blank" rel="noopener noreferrer">How to use ABAP Test Cockpit (ATC) in the cloud as a developer in an on-premise system</A>.<BR /><BR />In case your ATC finding cannot be corrected because, for example, it is a false-positive result or can be accepted in terms of quality, you as developer can request an exemption from your quality expert to suppress the finding from the ATC result. The ATC exemption can be requested in ABAP development tools for Eclipse. For the exemption processing, the new SAP Fiori app <EM>Approve ATC Exemptions</EM> must be used by quality experts to accept or reject exemptions from developers. This functionality became available with SAP BTP, ABAP environment 2311 (November 2023 release).</P><H2 id="toc-hId-963952101"><FONT color="#333399"><SPAN>Prerequisites and Technical Setup</SPAN></FONT></H2><P>The prerequisite for working with exemptions is the enablement of the developer scenario between the central ATC check system in the SAP BTP, ABAP environment and on-premise systems.<BR /><BR />Please follow the chapters <EM>Prerequisites</EM> and <EM>Technical Setup</EM> in the blog <A href="https://blogs.sap.com/2023/11/12/how-to-use-abap-test-cockpit-atc-in-the-cloud-as-a-developer-in-an-on-premise-system/" target="_blank" rel="noopener noreferrer">How to use ABAP Test Cockpit (ATC) in the cloud as a developer in an on-premise system</A> to setup the developer scenario.<BR /><BR />For more details, see the SAP Help Portal documentation <A href="https://help.sap.com/docs/btp/sap-business-technology-platform/using-sap-btp-system-as-atc-central-check-system?version=Cloud" target="_blank" rel="noopener noreferrer">Using an SAP BTP System as ATC Central Check System</A>.<BR /><BR />For approving/rejecting exemptions you will also need a business role based on the template SAP_BR_QUALITY_MNGR_SW_DEV (Quality Manager – Software Development).</P><P>Exemptions can be created only in the ABAP development tools for Eclipse since the exemptions workflow is managed via the central ATC check system in the SAP BTP, ABAP environment, where SAP GUI is not supported.<BR /><BR />For more details, see the SAP Help Portal documentation <A href="https://help.sap.com/docs/btp/sap-business-technology-platform/enable-usage-of-approve-atc-exemptions-app?version=Cloud" target="_blank" rel="noopener noreferrer">Enable Usage of the Approve ATC Exemptions App</A>.</P><H2 id="toc-hId-767438596"><FONT color="#333399"><SPAN>ATC Exemptions Workflow</SPAN></FONT></H2><P>To gain basic understanding of how to work with exemptions using ATC in the cloud during development in on-premise systems, let’s take a look at the example of the exemption workflow.</P><H3 id="toc-hId-700007810"><STRONG>Developer:</STRONG></H3><P>Just imagine, you as a developer in an on-premise development system want to check your code for static quality issues. To do this, you run ATC over your source code (open the context menu in the Project Explorer and choose <EM>Run As &gt; ABAP Test Cockpit</EM>) in ABAP development tools for Eclipse and have the following findings displayed in your ATC result:</P><P><IMG src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/10/dc_atc_check_source_error-1.jpg" border="0" /></P><P>If you try to release the transport request containing this source code, your transport will be blocked:</P><P><IMG src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/10/ex_transport_error.jpg" border="0" /></P><P>Since you want to release your transport request, you will try to request exemptions from your quality expert for both findings.</P><P><IMG src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/10/ex_request_exemption.jpg" border="0" /></P><P>For the first finding you could justify that no translation is needed for a log message. Please note that currently only all approvers can be chosen in the <EM>Approver</EM> field:</P><P><IMG src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/10/ex_enter_justification.jpg" border="0" /></P><P>Now request an exemption for the other finding:</P><P><IMG src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/10/ex_request_2_exemption.jpg" border="0" /></P><P>For this finding you are convinced that a hard-coded username shouldn’t be a problem:</P><P><IMG src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/10/ex_enter_2_justification.jpg" border="0" /></P><H3 id="toc-hId-503494305"><STRONG>Quality Expert:</STRONG></H3><P>As a quality expert on the central ATC check system in SAP BTP, ABAP environment, log on to the SAP Fiori launchpad, navigate to the section <STRONG>Custom Code Analysis</STRONG> and select the tile <EM>Approve ATC Exemptions</EM> to start the app:</P><P><IMG src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/10/ex_app_tile.jpg" border="0" width="520" height="221" /></P><P><BR />In the app, you will see the two exemptions that have been reported by your developer:</P><P><IMG src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/10/ex_app_view_ex.jpg" border="0" /></P><P>Select an exemption to see that the <EM>Approve</EM> and <EM>Reject</EM> buttons will become active. You can use these buttons to process exemptions, the <EM>Exemption State</EM> is currently <EM>Open</EM>.</P><P><IMG src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/10/ex_app_reject_approve.jpg" border="0" /></P><P>During the exemption process, you can also maintain the <EM>Exemption Details </EM>(to do this, select the "<EM>&gt;"</EM> button in the table row with the corresponding exemption). In this section, you as a quality expert can enter your assessment elaborating on you reasons for rejecting the exemption:</P><P><IMG src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/10/ex_app_details.jpg" border="0" /></P><P>After the exemption has been processed, the <EM>Exemption State</EM> will change to either <EM>Rejected</EM> or <EM>Approved</EM>:</P><P><IMG src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/10/ex_app_processed.jpg" border="0" /></P><H3 id="toc-hId-306980800"><STRONG>Developer:</STRONG></H3><P>Now, if you as developer recheck your source code with ATC, you will be left with only one finding, for which the exemption was rejected by your quality expert:</P><P><IMG src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/10/ex_app_adt_recheck.jpg" border="0" /></P><P>This issue must be corrected before you release your transport request.</P><P>Using the menu <EM>View Menu -&gt; Include Exempted Findings</EM> you can anytime display the exempted findings again in the ATC result:<BR /><BR /><IMG src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/10/ex_app_show_exempted.jpg" border="0" /></P> 2023-11-12T21:29:26+01:00 https://community.sap.com/t5/technology-blogs-by-sap/how-to-configure-abap-test-cockpit-atc-in-the-cloud/ba-p/13573962 How to configure ABAP Test Cockpit (ATC) in the cloud 2023-11-12T21:34:09+01:00 OlgaDolinskaja https://community.sap.com/t5/user/viewprofilepage/user-id/6638 <P>The SAP BTP, ABAP environment offers you by default some predefined ATC check variants. For example, the check variant ABAP_CLOUD_DEVELOPMENT_DEFAULT contains the ATC checks, which will be used, if you just run ATC in ABAP development tools for Eclipse over your custom code in your cloud-based ABAP system.<BR /><BR />You can also display and change existing ATC check variants, create new variants or implement your own ATC checks in ABAP development tools for Eclipse. See also the blogs <A href="https://blogs.sap.com/2021/05/25/how-to-create-and-use-your-own-atc-check-variant-in-sap-btp-abap-environment/" target="_blank" rel="noopener noreferrer">How to create and use your own ATC check variant in ABAP Development Tools for Eclipse</A> and <A href="https://blogs.sap.com/2021/05/25/how-to-create-your-own-atc-check-in-sap-btp-abap-environment/" target="_blank" rel="noopener noreferrer">How to create your own ATC check in ABAP Development Tools for Eclipse</A> for more details .<BR /><BR />But surely beyond this you may want to configure the ATC according to your needs for example, set your default ATC check variant, adjust the ATC check messages priorities, set priority levels that block or interrupt transport releases and so on.<BR /><BR />The SAP Fiori app<STRONG> ABAP Test Cockpit Configurator</STRONG> allows you to maintain ATC configurations for the cloud based on ATC check variants. For more information how to provide access to users and how to implement this app, see the <A href="https://help.sap.com/viewer/65de2977205c403bbc107264b8eccf4b/Cloud/en-US/22c26ff27b9f44b7b7229a01e8e8ed25.html" target="_blank" rel="noopener noreferrer">SAP Help Documentation ABAP Test Cockpit Configurator</A><STRONG>.</STRONG><BR /><BR /><IMG src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2020/07/atc_config_entry.png" border="0" width="183" height="249" /></P><H3 id="toc-hId-1093013797"><STRONG>View and maintain ATC configurations </STRONG></H3><P>Open the <EM>ABAP Test Cockpit Configurator</EM> App by clicking on it. All available ATC configurations in your ABAP system in the SAP BTP, ABAP environment are listed, and the active configuration is checked. You can any time click the respective "&gt;" button and adjust an ATC configuration.<BR /><BR />As you see from this example already 3 ATC configurations were created and one of them is checked as <EM>Active</EM>:</P><P><IMG src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2020/08/ccm_cloud_8.jpg" border="0" width="490" height="211" /></P><H3 id="toc-hId-896500292"><BR /><STRONG>Create a new ATC configuration based on an ATC check variant</STRONG></H3><P>Let’s create a new ATC configuration based on the default ATC check variant for cloud ABAP_CLOUD_DEVELOPMENT_DEFAULT. To do so click the <EM>Create</EM> button, enter the <EM>Name</EM> and select the ATC check variant ABAP_CLOUD_DEVELOPMENT_DEFAULT:</P><P><IMG src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2020/08/ccm_cloud_2.png" border="0" /></P><P><BR />Press <EM>Create</EM> button:</P><P><IMG src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2020/08/ccm_cloud_3.jpg" border="0" width="517" height="244" /></P><H3 id="toc-hId-699986787"><BR /><STRONG>Change priorities of ATC check messages</STRONG></H3><P>Here you can (if needed) change the messages priorities of the ATC checks. This configuration will be then valid for all ATC runs in the system (not only for the ATC runs with the default ATC check variant of the active configuration).<BR /><BR />Use the <EM>Search</EM> field to search for the check class or message code you want to edit.</P><P><IMG src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2020/07/atc_config_search_message.png" border="0" /></P><P>Click <EM>Edit</EM> button and use the drop-down menu to change a priority of a message:</P><P><IMG src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2020/07/atc_config_change_priority.png" border="0" /></P><P>Don’t forget to save your changes:</P><P><IMG src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2020/07/atc_config_priorities.png" border="0" /></P><H3 id="toc-hId-503473282"><BR /><STRONG>Configure transport settings</STRONG></H3><H4 id="toc-hId-436042496"><EM><U>For developments in SAP BTP, ABAP environment</U></EM></H4><P>You can also configure the behavior at transport release using the <EM>Transport Settings,</EM> for example in order to prevent release of transport requests at ATC errors of certain priorities:</P><P><IMG src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2020/08/atc_config_transport_settings.png" border="0" /></P><P>Consequently, while trying to release a transport request containing the source code with ATC findings in the ABAP development tools for Eclipse, developer will get the corresponding error message, for example:</P><P><IMG src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2020/08/ccm_cloud_4.jpg" border="0" /></P><H4 id="toc-hId-239528991"><BR /><EM><U>For developments in private cloud (or on-premise) systems using remote ATC in SAP BTP, ABAP Environment</U></EM></H4><P>If you are a developer in private cloud (or on-premise) system and use remote ATC in SAP BTP, ABAP environment for quality checking (so-called developer scenario, see also the blog <A href="https://blogs.sap.com/2023/11/12/how-to-use-abap-test-cockpit-atc-in-the-cloud-as-a-developer-in-an-on-premise-system/" target="_blank" rel="noopener noreferrer">How to use ABAP Test Cockpit (ATC) in the cloud as a developer in an on-premise system </A>) then ATC transport settings must be configured in your local system.<BR /><BR />See SAP Help Portal documentation <A href="https://help.sap.com/docs/ABAP_PLATFORM_NEW/ba879a6e2ea04d9bb94c7ccd7cdac446/40c14df0a883467bb90ef5a70cee7cc2.html?version=202310.000" target="_blank" rel="noopener noreferrer">Setting up ATC Transport Checking</A> for more details.</P><H3 id="toc-hId--86067233"><STRONG>Set your ATC configuration as active</STRONG></H3><P>If you now want to use your adjusted ATC configuration as active just select it in the ATC configurations list and click the <EM>Set as Active</EM> button:</P><P><IMG src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2020/08/ccm_cloud_6.jpg" border="0" width="492" height="215" /></P><P><BR />Now all ATC runs in the system will be executed under consideration of this active configuration.</P> 2023-11-12T21:34:09+01:00 https://community.sap.com/t5/technology-blogs-by-sap/usage-of-abap-test-cockpit-atc-for-developments-in-sap-btp-abap-environment/ba-p/13575890 Usage of ABAP Test Cockpit (ATC) for developments in SAP BTP ABAP Environment 2023-11-12T21:37:09+01:00 OlgaDolinskaja https://community.sap.com/t5/user/viewprofilepage/user-id/6638 If you use (or intend to use) the <A href="https://community.sap.com/topics/btp-abap-environment" target="_blank">SAP BTP ABAP Environment</A> to develop ABAP applications in the cloud and want to establish quality assurance for your cloud-based ABAP developments then you are surely interested in the execution of ABAP test cockpit checks over your ABAP custom code in the cloud.<BR /> <BR /> Learn in this blog, how to use the ABAP test cockpit (ATC) for your developments in the SAP BTP, ABAP environment.<BR /> <H2 id="toc-hId-963989790"><SPAN style="color: #33a7ff">Use default ATC check variant</SPAN></H2><BR /> You do not need to choose an ATC check variant for the execution of an ATC check run. The default ATC check variant (delivered by SAP) will be used automatically by ATC. This default ATC check variant ABAP_CLOUD_DEVELOPMENT_DEFAULT includes all recommended by SAP ATC checks that should be executed to ensure the quality standard for ABAP cloud development, including also the execution of ABAP Unit tests:<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/07/atc_s4cloud_variant.jpg" /></P><BR /> <BR /> <H2 id="toc-hId-767476285"><SPAN style="color: #33a7ff">How to check your code during development&nbsp;</SPAN></H2><BR /> During your development process, in order to check your code with ATC, select your custom code package or objects in the ABAP development tools for Eclipse in the <EM>Project Explorer</EM> and execute ATC run by using the context menu <EM>Run As -&gt; ABAP Test Cockpit:</EM><BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/07/atc_s4cloud_run_atc.jpg" /></P><BR /> Consequently, the ATC run results will be displayed in the <EM>ATC Problems View</EM> as usual:<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/07/atc_s4cloud_atc_results-1.jpg" /></P><BR /> <BR /> <H2 id="toc-hId-570962780"><SPAN style="color: #33a7ff">Code Vulnerability Analyzer (CVA) security checks</SPAN></H2><BR /> CVA security checks in the SAP BTP, ABAP environment can be used without any additional license fee. The checks are included in the ATC default check variant ABAP_CLOUD_DEVELOPMENT_DEFAULT under the category <EM>Security</EM> and will be executed automatically as you run ATC over your code.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/07/atc_s4cloud_cva.jpg" /></P><BR /> <BR /> <H2 id="toc-hId-374449275"><SPAN style="color: #33a7ff">How to check your transports during release</SPAN></H2><BR /> You should run ATC checks explicitly in the Transport Organizer before releasing a transport request or task. The releases of transports and tasks containing the ATC findings of priority levels 1 and 2 are blocked automatically by the system, for ATC findings of priority level 3 you will get notification.<BR /> <BR /> You can find more information in the SAP Help Documentation <A href="https://help.sap.com/docs/BTP/5371047f1273405bb46725a417f95433/c0d95a9263da476eb5b6ae03225ce7ba.html" target="_blank" rel="noopener noreferrer">Working with ATC During Transport Release</A>.<BR /> <H2 id="toc-hId-177935770"><SPAN style="color: #33a7ff">How to check the custom code in the system</SPAN></H2><BR /> If you are a quality expert and want to check the custom code in the whole system, you can use Custom Code Migration app with the “Custom code analysis” project type.<BR /> <BR /> Just click the <EM>Create</EM> button in the Custom Code Migration App and select a custom code analysis project:<BR /> <P style="text-align: left;overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2020/08/s4public_ccm_choose_project-1.jpg" /></P><BR /> <P style="text-align: left;overflow: hidden;margin-bottom: 0px">Then you can enter the project data and select the ATC check variant. You can check your custom code in the same system (as shown on the screenshot below) as well as the code in remote system (in this case you need to use remote-enabled ATC check variant and enter the connection to your remote system).</P><BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2020/08/ccm_cloud_1.png" /></P><BR /> Under the <EM>Advanced Configuration</EM> you can restrict custom code analysis and choose which packages you want to analyze:<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2020/08/cc_cloud_analysis_config.png" height="194" width="450" /></P><BR /> After you saved your custom code analysis project, ATC will execute custom code analysis and you can examine your ATC results under the <EM>Analysis</EM> tab by clicking the <EM>Analyze Findings</EM> button or by clicking directly on the reported “Number of Findings” in the project:<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2020/08/cc_cloud_analysis_fndings.png" /></P><BR /> <BR /> <H2 id="toc-hId--18577735"><SPAN style="color: #33a7ff">How to set up your own ATC check variant</SPAN></H2><BR /> For the ATC execution in the SAP BTP, ABAP environment, we currently offer some standard ATC check variants. But surely, you may want to create your own ATC check variants as you can do it in your on-premise SAP systems to bundle ATC checks as it is suitable for your own development use case.<BR /> <BR /> If you want to create your own ATC check variant in SAP BTP, ABAP environment, you can either create it from scratch or copy and change an existing ATC check variant delivered by SAP.<BR /> <BR /> More details in the blog <A href="https://blogs.sap.com/2021/05/25/how-to-create-and-use-your-own-atc-check-variant-in-sap-btp-abap-environment/" target="_blank" rel="noopener noreferrer">How to create and use your own ATC check variant in ABAP Development Tools for Eclipse.</A><BR /> <H2 id="toc-hId--215091240"><SPAN style="color: #33a7ff">How to implement your own ATC checks</SPAN></H2><BR /> Some of you may not only want to configure the ATC checks delivered by SAP and bundle them to custom ATC check variants but are eager to write own ATC checks.<BR /> <BR /> More details how to do it in the blog <A href="https://blogs.sap.com/2021/05/25/how-to-create-your-own-atc-check-in-sap-btp-abap-environment/" target="_blank" rel="noopener noreferrer">How to create your own ATC check in ABAP Development Tools for Eclipse.</A><BR /> <H2 id="toc-hId--411604745"><SPAN style="color: #33a7ff">How to create and handle ATC exemptions</SPAN></H2><BR /> You can create and approve ATC exemptions using ABAP development tools for Eclipse and transport them between different SAP BTP, ABAP environment systems.<BR /> <BR /> More details in the blog <A href="https://blogs.sap.com/2021/05/25/how-to-create-and-approve-atc-exemptions-in-sap-btp-abap-environment/" target="_blank" rel="noopener noreferrer">How to create and approve ATC exemptions in ABAP Development Tools for Eclipse.</A><BR /> <H2 id="toc-hId--608118250"><SPAN style="color: #33a7ff">How to configure ATC&nbsp;</SPAN></H2><BR /> If you want to configure the ATC according to your needs for example, set your default ATC check variant, adjust the ATC check messages priorities, set priority levels that block or interrupt transport releases and so on, the SAP Fiori App<STRONG> ABAP Test Cockpit Configurator</STRONG> allows you to maintain ATC configurations for the cloud based on ATC check variants.<BR /> <BR /> More details in the blog <A href="https://blogs.sap.com/2023/11/12/how-to-configure-abap-test-cockpit-atc-in-the-cloud/" target="_blank" rel="noopener noreferrer">How to configure ABAP Test Cockpit (ATC) in the cloud.</A><BR /> <H2 id="toc-hId--804631755"><SPAN style="color: #33a7ff">How to integrate ATC checks into your CI/CD processes</SPAN></H2><BR /> If you use <A href="https://www.jenkins.io/" target="_blank" rel="nofollow noopener noreferrer">Jenkins</A> as a CI/CD server to control your lifecycle and quality processes you can also set up the <A href="https://sap.github.io/jenkins-library/pipelines/abapEnvironment/introduction/" target="_blank" rel="nofollow noopener noreferrer">ABAP environment pipeline</A> and configure the execution of ATC checks within this pipeline. Find more details in the Daniel's Mieg blog: <A href="https://blogs.sap.com/2020/10/22/ci-cd-tools-for-sap-cloud-platform-abap-environment/" target="_blank" rel="noopener noreferrer">https://blogs.sap.com/2020/10/22/ci-cd-tools-for-sap-cloud-platform-abap-environment/</A>.<BR /> <BR /> Please consider that the ATC exemptions that you have defined in your development system will be also considered within the pipeline.<BR /> <H2 id="toc-hId--653890903"><SPAN style="color: #33a7ff">How to export and import ATC objects across on-premise and cloud ABAP systems</SPAN></H2><BR /> We also enabled the export and import scenario via abapGit for ATC related objects. You can use abapGit to import and export ATC check variants, ATC check objects and ATC check categories across your on-premise and cloud ABAP systems.<BR /> <BR /> More details in the blog <A href="https://blogs.sap.com/2022/12/13/export-and-import-atc-objects-across-on-premise-and-cloud-abap-systems/" target="_blank" rel="noopener noreferrer">Export and import ATC objects across on-premise and cloud ABAP systems</A>.<BR /> <BR /> &nbsp; 2023-11-12T21:37:09+01:00 https://community.sap.com/t5/technology-blogs-by-sap/usage-of-abap-test-cockpit-atc-in-the-cloud-for-on-premise-developments/ba-p/13576887 Usage of ABAP Test Cockpit (ATC) in the cloud for on-premise developments 2023-11-12T21:43:23+01:00 OlgaDolinskaja https://community.sap.com/t5/user/viewprofilepage/user-id/6638 <P>As you for sure already know, using the <A href="https://blogs.sap.com/2016/12/12/remote-code-analysis-in-atc-one-central-check-system-for-multiple-systems-on-various-releases/" target="_blank" rel="noopener noreferrer">remote code analysis with the central ABAP Test Cockpit (ATC) check system</A> is the essential prerequisite for static quality assurance of your private cloud (or on-premise) developments.<BR /><BR />While keeping in mind SAP alignment on cloud strategy and the advantages of the cloud solutions for our customers like takeover by SAP of upgrade, system maintenance and operations tasks under the retention of continuous and regular feature delivery, we decided to enable central ATC quality checking for on-premise developments using the <A href="https://community.sap.com/topics/btp-abap-environment" target="_blank">SAP BTP, ABAP environment</A><U>.</U><BR /><BR />Some of you have already used Custom Code Migration app in the SAP BTP, ABAP environment to check your ABAP code in SAP Business Suite systems for SAP S/4HANA readiness during SAP S/4HANA system conversion or for cloud readiness. Over and above that to enable central ATC quality checking in the cloud for on-premise landscapes we have delivered further essential capabilities for using ATC in the cloud like support of classic ATC custom code analysis projects in the Custom Code Migration app, configuration via the <EM>ATC Configurator</EM> app, management of custom ATC check variants in ABAP development tools for Eclipse and more.<BR /><BR />With SAP BTP, ABAP environment 2311 (November 2023 release) we have rounded off the feature scope of the cloud ATC with such indispensable capabilities like developer scenario for using a central ATC cloud system during your on-premise development tasks, and robust exemption workflow.<BR /><BR />Learn in this blog how you can use a central ATC quality checking in the cloud for your on-premise landscapes.</P><P><IMG src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/11/atc_cloud.png" border="0" width="505" height="423" /></P><P>&nbsp;</P><TABLE border="1"><TBODY><TR><TD><SPAN><STRONG>PLEASE NOTE:</STRONG> </SPAN>after custom code analysis you can stop your SAP BTP, ABAP environment system to save the costs, if the system is temporarily not used. Learn how to do it in this blog <A href="https://blogs.sap.com/2023/07/26/sap-btp-abap-environment-manage-system-hibernation/" target="_blank" rel="noopener noreferrer">SAP BTP ABAP Environment - Manage system hibernation</A>.</TD></TR></TBODY></TABLE><H2 id="toc-hId-964019557"><FONT color="#333399"><SPAN>Prerequisites</SPAN></FONT></H2><P><FONT color="#333399"><SPAN><FONT color="#333333">You need to purchase the entitlement to SAP BTP ABAP Environment. For more details see</FONT>&nbsp;<A href="https://discovery-center.cloud.sap/serviceCatalog/abap-environment" target="_blank" rel="nofollow noopener noreferrer">SAP BTP, ABAP environment in SAP Discovery Center</A>&nbsp;<FONT color="#333333">or</FONT>&nbsp;<A href="https://www.sapstore.com/solutions/40191/SAP-BTP%2C-ABAP-environment" target="_blank" rel="nofollow noopener noreferrer">SAP BTP, ABAP environment in the SAP Store</A>.</SPAN></FONT></P><H2 id="toc-hId-767506052"><FONT color="#333399"><SPAN>Technical Setup</SPAN></FONT></H2><H4 id="toc-hId-829157985"><SPAN>With CIAS guided workflow (recommended)</SPAN></H4><P><SPAN>SAP recommends to use for the setup of the Custom Code Migration app the Cloud Integration Automation Service (CIAS), which provides a guided workflow for simpler and faster setup and configuration.</SPAN></P><P><SPAN>1.&nbsp;</SPAN><SPAN>First you would need to subscribe to CIAS on SAP BTP and activate it. See the blog&nbsp;<A class="" href="https://community.sap.com/t5/technology-blogs-by-sap/how-to-activate-cloud-integration-automation-service-on-cloud-foundry/ba-p/13520065" target="_blank">How to activate Cloud Integration Automation Service on Cloud Foundry</A>&nbsp;or <A href="https://help.sap.com/docs/cloud-integration-automation/user-guide/overview" target="_self" rel="noopener noreferrer">CIAS User Guide</A> in the SAP Help Portal documentation.</SPAN></P><P><SPAN>2. Execute CIAS guided workflow, which will prepare your on-premise system for remote code analysis, set up SAP BTP, ABAP environment and </SPAN>RFC connection between the SAP BTP subaccount and the on-premise SAP system across the SAP Cloud Connector&nbsp;<SPAN>and enable Custom Code Migration app.&nbsp;</SPAN><SPAN>See also for more details the blog&nbsp;<A href="https://community.sap.com/t5/technology-blogs-by-sap/start-a-scenario-integration-workflow-with-cloud-integration-automation/ba-p/13520476" target="_blank">Start a scenario integration workflow with Could Integration Automation Service on Cloud Foundry (BTP)</A>, containing the Custom Code Migration app as a chosen scenario.<BR /></SPAN></P><H4 id="toc-hId-632644480"><SPAN>Manual<BR /></SPAN></H4><P><SPAN>For manual setup you would need to execute the following steps:<BR /></SPAN></P><P>1. First for your on-premise SAP system you need to apply the SAP Notes mentioned in SAP Note&nbsp;<A href="https://launchpad.support.sap.com/#/notes/2364916" target="_blank" rel="noopener noreferrer">2364916</A>&nbsp;for the&nbsp;<STRONG>Checked System&nbsp;</STRONG>(Recommended SAP Notes for using ATC to perform remote analysis) and apply the SAP Note&nbsp;<A href="https://launchpad.support.sap.com/#/notes/2599695" target="_blank" rel="noopener noreferrer">2599695</A>&nbsp;(Custom Code Migration app: Remote Stubs for the Checked System).</P><P>2. After that you have to set up your SAP BTP, ABAP environment.&nbsp;<A href="https://help.sap.com/viewer/65de2977205c403bbc107264b8eccf4b/Cloud/en-US/cd7e7e6108c24b5384b7d218c74e80b9.html" target="_blank" rel="noopener noreferrer">Use a Booster to Automate the Setup of the ABAP Environment</A>.</P><P>3. Afterwards you must enable the Custom Code Migration app in the SAP BTP, ABAP environment to check your SAP on-premise system. Use SAP documentation on SAP Help Portal&nbsp;<A href="https://help.sap.com/viewer/65de2977205c403bbc107264b8eccf4b/Cloud/en-US/34f67edd5f3e4c1eb00ad1943f551fb8.html" target="_blank" rel="noopener noreferrer">Enable Usage of the Custom Code Migration App</A>.</P><P>Now you can start the the Custom Code Migration app on your SAP Fiori Launchpad in the SAP BTP and create your first project.</P><H4 id="toc-hId-436130975"><SPAN>Setup of developer scenario&nbsp;<BR /></SPAN></H4><P><SPAN>If you as an ABAP developer in an on-premise SAP system want to check your code during the development process using ATC checks from the central ATC check system in the SAP BTP, ABAP environment then you should set up developer scenario in addition.</SPAN></P><P><SPAN>See the SAP Help Portal documentation&nbsp;<A href="https://help.sap.com/docs/btp/sap-business-technology-platform/using-sap-btp-system-as-atc-central-check-system?version=Cloud" target="_blank" rel="noopener noreferrer">Configuring the ATC Developer Scenario</A>&nbsp;for more details.</SPAN></P><H2 id="toc-hId--18547968"><FONT color="#333399"><SPAN>How to execute custom code analysis for on-premise system</SPAN></FONT></H2><P>Custom Code Migration app, which is the SAP recommended tool for analysis of your custom code for SAP S/4HANA and cloud, supports also classic custom code analysis projects.<BR /><BR />If you press <EM>Create</EM> button in the Custom Code Migration app you can now select a custom code analysis project:</P><P><IMG src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2020/08/s4public_ccm_choose_project-1.jpg" border="0" /></P><P>Then you can enter the project data and select an ATC check variant. In order to check your custom code in the remote on-premise system (as shown on the screenshot below) you need to use remote-enabled ATC check variant and enter the connection to your remote system.</P><P><IMG src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/11/catc_create_project.jpg" border="0" /></P><P>Under the <EM>Advanced Configuration</EM> you can restrict custom code analysis and choose the packages you want to analyze:</P><P><IMG src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2020/08/cc_cloud_analysis_config.png" border="0" width="450" height="194" /></P><P>After you saved your custom code analysis project, ATC will execute custom code analysis and you can examine your ATC results under the <EM>Analysis</EM> tab by clicking the <EM>Analyze Findings</EM> button or by clicking directly on the reported “Number of Findings” in the project:</P><P><IMG src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2020/08/cc_cloud_analysis_fndings.png" border="0" /></P><H2 id="toc-hId--215061473"><BR /><FONT color="#333399"><SPAN>How to execute CVA checks in the cloud</SPAN></FONT></H2><P>You can also execute SAP Code Vulnerability Analyzer (CVA) checks for your custom code using the custom code analysis project of the SAP Fiori Custom Code Migration app. Using SAP CVA in the SAP BTP, ABAP environment is included at no additional licensing fee.<BR /><BR />It works as following. Use <EM>Create</EM> button in the Custom Code Migration app and select a custom code analysis project:</P><P><IMG src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2020/08/s4public_ccm_choose_project.jpg" border="0" /></P><P><BR />Then enter the project data and select the ATC check variant SLIN_SEC. Choose as location of your custom code your remote on-premise system and enter the connection to this system:</P><P><IMG src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2020/08/cva_create.png" border="0" /></P><P><BR />After you saved your project data, the custom code analysis will be executed and afterwards you can see the results as usual, for example by clicking on the <EM>Number of Findings</EM>:</P><P><IMG src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2020/08/cva_findings.png" border="0" /></P><P><BR />In the <EM>Findings</EM> list you will get the results of all CVA checks executed for your custom code:</P><P><IMG src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2020/08/cva_results.png" border="0" />&nbsp;</P><H2 id="toc-hId--411574978"><FONT color="#333399"><SPAN>How to set up your own ATC check variant</SPAN></FONT></H2><P>For the ATC execution in the SAP BTP, ABAP environment, we currently offer some standard ATC check variants. But surely, you may want to create your own ATC check variants as you can do it in your on-premise SAP systems to bundle ATC checks as it is suitable for your own development use case.</P><P>If you want to create your own ATC check variant in SAP BTP, ABAP environment, you can either create it from scratch or copy and change an existing ATC check variant delivered by SAP.</P><P>More details in the blog <A href="https://blogs.sap.com/2021/05/25/how-to-create-and-use-your-own-atc-check-variant-in-sap-btp-abap-environment/" target="_blank" rel="noopener noreferrer">How to create and use your own ATC check variant in ABAP Development Tools for Eclipse.</A></P><H2 id="toc-hId--608088483"><FONT color="#333399"><SPAN>How to implement your own ATC checks</SPAN></FONT></H2><P>Some of you may not only want to configure the ATC checks delivered by SAP and bundle them to custom ATC check variants but are eager to write own ATC checks.<BR /><BR />More details how to do it in the blog <A href="https://blogs.sap.com/2021/05/25/how-to-create-your-own-atc-check-in-sap-btp-abap-environment/" target="_blank" rel="noopener noreferrer">How to create your own ATC check in ABAP Development Tools for Eclipse.</A></P><H2 id="toc-hId--804601988"><FONT color="#333399"><SPAN>How to configure ATC in the cloud</SPAN></FONT></H2><P>If you want to configure the ATC according to your needs for example, set your default ATC check variant, adjust the ATC check messages priorities, set priority levels that block or interrupt transport releases and so on, the SAP Fiori App<STRONG> ABAP Test Cockpit Configurator</STRONG> allows you to maintain ATC configurations for the cloud based on ATC check variants.</P><P>More details in the blog <A href="https://blogs.sap.com/2023/11/12/how-to-configure-abap-test-cockpit-atc-in-the-cloud/" target="_blank" rel="noopener noreferrer">How to configure ABAP Test Cockpit (ATC) in the cloud.</A></P><H2 id="toc-hId--653861136"><FONT color="#333399"><SPAN>How to check your code during development in an on-premise system</SPAN></FONT></H2><P>As an ABAP developer in an on-premise SAP system you can check your code during your development process using the ATC checks from the central ATC in the SAP BTP, ABAP environment and request exemptions as needed.<BR /><BR />More details in the blog <A href="https://blogs.sap.com/2023/11/12/how-to-use-abap-test-cockpit-atc-in-the-cloud-as-a-developer-in-an-on-premise-system/" target="_blank" rel="noopener noreferrer">How to use ABAP Test Cockpit (ATC) in the cloud as a developer in an on-premise system</A>.</P><H2 id="toc-hId--850374641"><FONT color="#333399"><SPAN>How to handle ATC exemptions</SPAN></FONT></H2><P>As an ABAP developer in an on-premise SAP system you can request an exemption from your quality expert to suppress the finding from the ATC result. The ATC exemption can be requested in the ABAP development tools for Eclipse. For the exemption processing there is the new SAP Fiori app <EM>Approve ATC Exemptions,</EM> which must be used by quality experts to accept or reject exemptions from developers.<BR /><BR />More details in the blog <A href="https://blogs.sap.com/2023/11/12/how-to-work-with-exemptions-using-abap-test-cockpit-atc-in-the-cloud-during-development-in-an-on-premise-system/" target="_blank" rel="noopener noreferrer">How to work with exemptions using ABAP Test Cockpit (ATC) in the cloud during development in an on-premise system</A>.</P> 2023-11-12T21:43:23+01:00 https://community.sap.com/t5/enterprise-resource-planning-blogs-by-sap/abap-platform-for-sap-s-4hana-2023/ba-p/13573791 ABAP Platform for SAP S/4HANA 2023 2023-11-27T08:57:45+01:00 OlgaDolinskaja https://community.sap.com/t5/user/viewprofilepage/user-id/6638 <P><SPAN>SAP S/4HANA 2023 was released to the SAP customer base on October 11, 2023.</SPAN><BR /><BR /><SPAN>ABAP Platform 2023 is the technology platform underlying SAP S/4HANA 2023 and is shipped as part of SAP S/4HANA 2023. In addition, ABAP Platform 2023 is part of SAP S/4HANA Foundation 2023 for SAP HANA-only Add-Ons.</SPAN><BR /><BR /><SPAN>ABAP Platform 2023 is not shipped as a standalone product. ABAP Platform 2023 consists of the AS ABAP, the ABAP development tools for Eclipse and several additional technology components which are required to run SAP S/4HANA.</SPAN><BR /><BR /><SPAN>Previous SAP S/4HANA versions such as 1610, 1709, 1809, 1909, 2020, 2021 and 2022 can be upgraded directly to SAP S/4HANA 2023, which is based on ABAP Platform 2023 (corresponding to</SPAN> <A href="https://help.sap.com/doc/abapdocu_latest_index_htm/latest/en-US/index.htm?file=abennews-75.htm" target="_blank" rel="noopener noreferrer">SAP_BASIS 758</A>).<BR /><BR /><SPAN>Future-proof ABAP extensibility for SAP S/4HANA is crucial for the success of SAP, and SAP customers and partners. It provides means for key-user extensibility, on-stack developer extensibility and side-by-side extensibility options using ABAP Cloud as development model. ABAP Cloud is SAP’s new development model for cloud-ready and upgrade-stable extensions targeting clean core for customer systems. ABAP Cloud is offered on SAP BTP and in all SAP S/4HANA editions: public and private cloud and on-premises. The ABAP Cloud supports the development of transactional (OLTP) and analytical (OLAP) apps and services, both sided with a strong support for data and application integration to complement the programming model requirements of today’s service-oriented environments. ABAP Cloud development can be carried out in SAP S/4HANA using local public APIs offered by the SAP S/4HANA applications and the underlying ABAP Platform, as well as remote APIs. ABAP Cloud comprises public SAP APIs and extension points, the cloud-optimized ABAP language, ABAP development tools for Eclipse, ABAP Core Data Services (CDS), and ABAP RESTful Application Programming Model (RAP).</SPAN><BR /><BR /><SPAN>ABAP Cloud is the SAP recommended development model for all new custom extensions in SAP S/4HANA 2023, whereby the classic ABAP extensibility can still be used.</SPAN><BR /><BR /><SPAN>ABAP Platform 2023 delivers innovations for the ABAP stack in different areas.</SPAN><BR /><BR /><SPAN>One of the other major investment areas in the ABAP Platform is the ABAP RESTful Application Programming Model (RAP) which is at the heart of ABAP Cloud for the development of transactional business apps and services.The ABAP Platform 2023 enhances the functional scope of RAP with the ability to model side effects in the behavior definition of a RAP Business Object (BO) - to trigger reloads of SAP Fiori elements UIs based on user input. Developers can model hierarchical data as read-only tree views in RAP based SAP Fiori elements-based applications using with CDS hierarchies. Business events modelled and raised in RAP BOs can be consumed locally by other applications and frameworks in SAP S/4HANA, in addition to the remote consumption via SAP Event Mesh on SAP BTP. SAP object types are provided to semantically relate and group RAP development artefacts. Thanks to the new background processing framework (bgPF), asynchronous processing can be triggered from RAP BOs without breaking the RAP logical unit of work (LUW). The easy integration of services from SAP Workflow Management on SAP BTP into RAP BOs enables the development of applications with workflow capabilities for process automation. RAP provides various options for the modification-free extension of business objects. Starting with release 2023, service definition objects can also be enabled for modification-free enhancement.</SPAN><BR /><BR /><SPAN>The SAP Fiori elements feature showcase app for RAP and ABAP CDS has been enhanced with capabilities around actions, actions parameters, front-end validations, quick views, and more. The app is available on GitHub and can be imported into the relevant system. A detailed guide is also provided on GitHub (see</SPAN> <A href="https://blogs.sap.com/2023/09/20/the-sap-fiori-elements-feature-showcase-with-rap-whats-new-in-release-2308/" target="_blank" rel="noopener noreferrer">here</A><SPAN>).</SPAN><BR /><BR /><SPAN>ABAP analytics is in ABAP Cloud for building multidimensional analytical apps and services. ABAP CDS support the modeling of analytical star schemas. Queries can be defined on top of dimensions and cubes and exposed using business services.</SPAN><BR /><BR /><SPAN>Several enhancements have been made to ABAP CDS and ABAP SQL. For example, developers can define CDS simple and enumerated types that combine the main features of data elements and domains from the ABAP Dictionary. CDS scalar functions can be defined and used in CDS-based data models. A new cardinality syntax for associations and joins can be specified to improve the query performance in ABAP CDS and ABAP SQL. A new type of access rules is available for CDS projection views of type CDS transactional query.</SPAN><BR /><BR /><SPAN>The ABAP development tools for Eclipse deliver various enhancements for RAP, ABAP CDS, and ABAP for SAP HANA development for the ABAP Platform 2023. The BO context of the <EM>Relation Explorer</EM> was enhanced by a navigation to the base behavior definition. The RAP BO behavior (BDEF) extensions and abstract BDEFs can now be extended, BDEF extensions are now also shown in the <EM>Element Information</EM> popup. Beyond this, different migration capabilities for CDS and RAP are now supported: it is possible to migrate a CDS based BOPF BO to a RAP BO using the migration wizard and to migrate CDS DDIC-based views to CDS view entities. In the area of troubleshooting the ABAP Cross Trace can now display the record stack of a trace result. Over and above that, the ABAP development tools for Eclipse offer the new view <EM>Object Set Playground</EM>, which enables developers to create and combine object sets with the goal to perform different actions on the contained objects, such as running ABAP test cockpit checks or ABAP Unit tests. Developers can export their object sets for example to share them with colleagues. Other improvements were implemented in the management of transports, like for example it is now possible to configure tree hierarchy in the Transport Organizer view, view action logs and group ABAP objects in the transport by object type. The ABAP Object Search was reworked to offer more options for sorting and grouping search results and to support additional object types (for example behavior definitions). The new ABAP Memory (Debugger) View is delivered to investigate changes in the memory consumption of your ABAP application while debugging it.</SPAN><BR /><BR /><SPAN>Further enrichments are offered in the code analysis tools of ABAP Platform 2023. The Custom Code Migration App supports the custom code analysis for ABAP Cloud based on the information from the</SPAN> <A href="https://github.com/SAP/abap-atc-cr-cv-s4hc" target="_blank" rel="noopener nofollow noreferrer">Cloudification Repository</A> <SPAN>on GitHub, which provides the list of released local public APIs offered by the SAP S/4HANA business objects. If using remote ABAP test cockpit (ATC) the replication of exemptions from the ATC central check system to the checked systems is now supported. It is now also possible to display processing times by object and check of the ATC check runs.</SPAN><BR /><BR /><SPAN>Additional enhancements are provided in the connectivity, integration, and security areas, like for example advanced integration with SAP Event Mesh for the large projects where performance is crucial, local business event consumption, outbound SOAP enablement for ABAP Cloud, further features for OpenID Connect and option to regain access to AS ABAP client after having lost the credentials of all privileged users.</SPAN></P><DIV>&nbsp;</DIV><DIV><STRONG><span class="lia-unicode-emoji" title=":right_arrow:">➡️</span>This document will be updated. Stay tuned to get the latest ABAP Platform 2023 news.</STRONG></DIV><H2 id="toc-hId-963929248">&nbsp;<BR /><FONT color="#993300"><SPAN>Latest News</SPAN></FONT></H2><DIV><BR /><TABLE width="650"><TBODY><TR><TD><SPAN><STRONG>October 11th, 2023:</STRONG> &nbsp;SAP S/4HANA 2023 based on ABAP Platform 2023 is generally available!</SPAN></TD></TR></TBODY></TABLE></DIV><H2 id="toc-hId-767415743"><SPAN><FONT color="#993300"><SPAN><BR />At a Glance</SPAN></FONT>&nbsp;</SPAN></H2><UL><UL><LI><SPAN>Foundation for SAP S/4HANA 2023, SAP HANA-only Add-Ons and custom applications</SPAN></LI></UL></UL><UL><UL><LI><SPAN>SAP S/4HANA versions such as 1511, 1610, 1709, 1809, 1909, 2020, 2021 and 2022 can be upgraded to SAP S/4HANA 2023</SPAN></LI></UL></UL><UL><UL><LI><SPAN>No standalone</SPAN> <SPAN>ABAP platform installation supported</SPAN></LI></UL></UL><UL><UL><LI><SPAN>Supports</SPAN> <SPAN>only</SPAN> <SPAN>SAP HANA database </SPAN><SPAN>with full exploitation of its advanced capabilities</SPAN></LI></UL></UL><UL><UL><LI><SPAN>Continuous innovation without disruption</SPAN></LI></UL></UL><UL><UL><LI><SPAN>Seamless end-to-end development experience in <SPAN>Eclipse</SPAN></SPAN></LI></UL></UL><UL><UL><LI><SPAN>One common <SPAN>ABAP extensibility</SPAN> for all SAP S/4HANA editions</SPAN></LI></UL></UL><UL><UL><LI><SPAN>Fosters clean core with the <SPAN>ABAP Cloud</SPAN> development model</SPAN></LI></UL></UL><H2 id="toc-hId-570902238"><FONT color="#993300"><BR />Product Highlights</FONT></H2><P><IMG src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/11/product_highlights_2023-1.png" border="0" /></P><H2 id="toc-hId-374388733"><BR /><FONT color="#993300"><SPAN>Overview Presentation</SPAN></FONT></H2><P>This presentation provides the official slide deck, just click on it to view:</P><P><A href="https://www.sap.com/documents/2023/11/02e1d825-9a7e-0010-bca6-c68f7e60039b.html" target="_blank" rel="noopener noreferrer"><IMG src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/11/title_slide_pic.png" border="0" /></A></P><H2 id="toc-hId-177875228"><FONT color="#993300"><SPAN><BR />Useful Blogs, Community pages and Learnings</SPAN></FONT></H2><P>ABAP Community Topic Pages:<BR /><BR /><A href="https://community.sap.com/topics/abap" target="_blank">ABAP Development Community</A><BR /><A href="https://community.sap.com/topics/abap-testing-and-analysis" target="_blank">ABAP Testing and Analysis Community&nbsp;</A><BR /><A href="https://community.sap.com/topics/abap-extensibility" target="_blank">ABAP Extensibility Community</A><BR /><A href="https://community.sap.com/topics/abap-connectivity" target="_blank">ABAP Connectivity Community</A><BR /><A href="https://community.sap.com/topics/btp-abap-environment" target="_blank">SAP BTP ABAP Environment Community</A><BR /><A href="https://community.sap.com/topics/s4hana-cloud-abap-environment" target="_blank">SAP S/4HANA Cloud ABAP Environment Community</A><BR /><BR />ABAP Cloud at SAP Events:<BR /><BR /><A href="https://blogs.sap.com/2023/10/02/abap-cloud-at-sap-teched-in-2023/" target="_blank" rel="noopener noreferrer">ABAP Cloud at SAP TechEd 2023</A><BR /><A href="https://blogs.sap.com/2023/09/18/abap-cloud-at-devtoberfest-2023/" target="_blank" rel="noopener noreferrer">ABAP Cloud at Devtoberfest 2023</A><BR /><BR />ABAP Cloud:<BR /><BR /><A href="https://blogs.sap.com/2023/05/26/abap-cloud-sap-s-4hana-extensibility-may-2023-update/" target="_blank" rel="noopener noreferrer">ABAP Cloud blog – May 2023 Update</A><BR /><A href="https://www.sap.com/documents/2022/10/52e0cd9b-497e-0010-bca6-c68f7e60039b.html" target="_blank" rel="noopener noreferrer">ABAP Extensibility Guide</A><BR /><A href="https://blogs.sap.com/2023/05/24/abap-cloud-what-does-it-comprise/" target="_blank" rel="noopener noreferrer">ABAP Cloud – What does it comprise?</A><BR /><A href="https://blogs.sap.com/2023/03/29/make-use-of-abap-cloud-support-in-the-abap-development-tools-for-eclipse/" target="_blank" rel="noopener noreferrer">Make use of ABAP Cloud support in the ABAP development tools for Eclipse (ADT)</A><BR /><A href="https://blogs.sap.com/2023/05/22/how-the-abap-test-cockpit-supports-you-to-adopt-abap-cloud/" target="_blank" rel="noopener noreferrer">How the ABAP test cockpit supports you to adopt ABAP Cloud</A><BR /><A href="https://blogs.sap.com/2023/05/24/abap-cloud-how-to-mitigate-missing-released-sap-apis-in-sap-s-4hana-cloud-private-edition-and-sap-s-4hana-the-new-abap-cloud-api-enablement-guide/" target="_blank" rel="noopener noreferrer">How to mitigate missing released SAP APIs</A> | <A href="https://developers.sap.com/group.sap-s4hana-extensibility-wrap-api.html" target="_blank" rel="noopener noreferrer">Mitigate missing released SAP API – Developer Tutorial</A><BR /><A href="https://blogs.sap.com/2023/03/19/how-to-check-your-custom-code-for-abap-cloud/" target="_blank" rel="noopener noreferrer">How to check your custom code for ABAP Cloud</A><BR /><A href="https://community.sap.com/topics/abap/abap-cloud-faq" target="_blank">ABAP Cloud FAQ</A><BR /><BR />Training and Certification<BR /><BR /><A href="https://learning.sap.com/learning-journey/learn-the-basics-of-abap-programming-on-sap-btp" target="_blank" rel="noopener noreferrer">Learning the Basics of ABAP Programming on SAP BTP</A><BR /><A href="https://learning.sap.com/learning-journey/acquire-core-abap-skills" target="_blank" rel="noopener noreferrer">Acquire Core ABAP Skills</A><BR /><A href="https://learning.sap.com/learning-journey/practicing-clean-core-extensibility-for-sap-s-4hana-cloud" target="_blank" rel="noopener noreferrer">Practicing Clean Core Extensibility for SAP S/4HANA Cloud</A><BR />Become <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><BR /><BR />Further blogs and topic pages:<BR /><BR /><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><BR /><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><BR /><A href="https://blogs.sap.com/2023/11/12/usage-of-abap-test-cockpit-atc-in-the-cloud-for-on-premise-developments/" target="_blank" rel="noopener noreferrer">Usage of ABAP Test Cockpit (ATC) in the cloud for on-premise developments</A><BR /><A href="https://blogs.sap.com/2023/10/14/how-to-report-an-incident-for-adt/" target="_blank" rel="noopener noreferrer">How to report an incident for ABAP development tools for Eclipse</A><BR /><A href="https://blogs.sap.com/2023/05/19/consuming-a-business-technology-platform-service-from-an-s-4-hana-system-using-sm59-destination-with-oauth/" target="_blank" rel="noopener noreferrer">Consuming a SAP BTP service from an S/4HANA system using SM59 destination with OAuth</A><BR /><A href="https://blogs.sap.com/2023/11/06/consume-services-of-an-on-premise-system-securely-from-sap-s-4hana-cloud-public-edition-or-sap-btp-abap-environment/" target="_blank" rel="noopener noreferrer">Consume services of an on-premise system securely from SAP S/4HANA Cloud, public edition or SAP BTP ABAP Environment</A></P><H2 id="toc-hId--18638277"><FONT color="#993300"><SPAN><BR />Useful Links</SPAN></FONT></H2><P><A href="https://help.sap.com/whats-new/6a9ccc848f4047178da63fe4eaa86d50?Business_Area=ABAP%20Platform&amp;Version=ABAP%20Platform%202023&amp;locale=en-US#top" target="_blank" rel="noopener noreferrer">Release Notes for ABAP Platform 2023</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&amp;o=most_viewed%7Cdesc&amp;st=l&amp;rpp=20&amp;ts=5&amp;page=1&amp;pvnr=73554900100900003539&amp;pt=g%7Cd" target="_blank" rel="noopener noreferrer">Product Availability Matrix (PAM)</A><BR /><A href="https://blogs.sap.com/2019/06/19/the-abap-platform-strategy/" target="_blank" rel="noopener noreferrer">The ABAP Platform Strategy</A><BR /><A href="https://blogs.sap.com/2020/04/15/abap-platform-releases-and-consumers/" target="_blank" rel="noopener noreferrer">ABAP Platform Releases and Consumers</A><BR /><A href="https://me.sap.com/notes/3346290/E" target="_blank" rel="noopener noreferrer">SAP Note 3346290 – ABAP Platform 2023 – General information</A></P><H2 id="toc-hId--215151782"><FONT color="#993300"><SPAN>Previous landing pages</SPAN></FONT></H2><P><A href="https://blogs.sap.com/2022/11/30/abap-platform-for-sap-s-4hana-2022/" target="_blank" rel="noopener noreferrer">ABAP Platform for SAP S/4HANA 2022</A><BR /><A href="https://blogs.sap.com/2021/12/13/abap-platform-for-sap-s-4hana-2021/" target="_blank" rel="noopener noreferrer">ABAP Platform for SAP S/4HANA 2021</A><BR /><A href="https://blogs.sap.com/2020/11/30/abap-platform-for-sap-s-4hana-2020/" target="_blank" rel="noopener noreferrer">ABAP Platform for SAP S/4HANA 2020</A><BR /><A href="https://blogs.sap.com/2019/10/17/abap-platform-for-sap-s4hana-1909/" target="_blank" rel="noopener noreferrer">ABAP Platform for SAP S/4HANA 1909</A><BR /><A href="https://blogs.sap.com/2018/10/01/abap-platform-for-sap-s4hana-1809/" target="_blank" rel="noopener noreferrer">ABAP Platform for SAP S/4HANA 1809</A><BR /><A href="https://blogs.sap.com/2017/09/14/sap-netweaver-as-for-abap-7.52-available-now/" target="_blank" rel="noopener noreferrer">SAP NetWeaver AS for ABAP 7.52</A><BR /><A href="https://blogs.sap.com/2015/09/22/sap-netweaver-as-for-abap-75-one-abap-platform-for-sap-business-suite-and-sap-s4hana-on-premise-edition/" target="_blank" rel="noopener noreferrer">SAP NetWeaver AS ABAP 7.50</A><BR /><BR />&nbsp;<BR /><BR />&nbsp;</P> 2023-11-27T08:57:45+01:00 https://community.sap.com/t5/supply-chain-management-blogs-by-sap/the-abap-test-cockpit-checks-for-sap-tm/ba-p/13579119 The ABAP Test Cockpit Checks for SAP TM 2023-12-14T22:14:29+01:00 lucian_lidy https://community.sap.com/t5/user/viewprofilepage/user-id/387244 Back in July of 2022 we published&nbsp;<A href="https://blogs.sap.com/2022/07/18/the-sap-extended-warehouse-management-faq-series-support-guidance-tools/" target="_blank" rel="noopener noreferrer">an article highlighting some of the support and guidance tools</A> that can be used during an implementation project to identify errors before full deployment, or to troubleshoot an issue when identified in a productive system. One such tool that we briefly touched upon was the ABAP Test Cockpit (ATC).<BR /> <BR /> There are times when customer implementations require not just standard SAP coding, but also custom ABAP coding tailored to specific customer requirements. The ATC is a central quality assurance toolset through which users can create static functional, performance and security code checks as well as ABAP Unit tests for ABAP programs. To make sure migrations go smoothly and provide comparable check results throughout the company, the ATC is compatible with SAP’s Code Inspector, SAP’s tool for the static analysis of ABAP programs and other SAP repository objects. This means that custom Code Inspector checks and variants can be reused in the ABAP Test Cockpit.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/12/Picture2-20.png" /></P><BR /> &nbsp;<BR /> <BR /> Prior to the SAP S/4HANA 2022 release, there were no SAP TM specific checks available in the toolset. However, with the new release, SAP has delivered 11 TM checks. Currently the ATC checks are available only on embedded and decentral On Premise or Private Cloud SAP S/4HANA systems from release 2022 on. SAP plans to offer downports in upcoming months.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/12/Picture3-17.png" /></P><BR /> <EM>Demo of Delivery Query ATC results</EM><BR /> <BR /> &nbsp;<BR /> <P style="overflow: hidden;margin-bottom: 0px">The first step is to activate the ACT checks for TM (see below):<BR /> <IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/12/Picture4-12.png" /></P><BR /> <P style="overflow: hidden;margin-bottom: 0px">When activated the checks can be found in the TM folder (see below):<BR /> <IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/12/Picture5-11.png" /></P><BR /> &nbsp;<BR /> <BR /> The currently available ATC checks for SAP TM are (ATC checks were ported into older versions as well):<BR /> <BR /> &nbsp;<BR /> <BR /> <STRONG>1. Check for TM buffer super class</STRONG>&nbsp;<STRONG>(/SC</STRONG><STRONG>TMS</STRONG><STRONG>/CL_</STRONG><STRONG>CI</STRONG><STRONG>_</STRONG><STRONG>BUFFER</STRONG><STRONG>_</STRONG><STRONG>SUPER</STRONG><STRONG>)</STRONG><BR /> <BR /> This check class verifies the correct usage of the TM Buffer Variants Dispatcher in the TM BO’s (Business Objects). It is checked if the buffer dispatcher of a BOPF BO doesn’t inherit from the class /SCMTMS/CL_BUFVAR_DISPATCHER. And if the DO Delegation Class in a BOPF Dependent Node doesn’t inherit from Class /SCMTMS/CL_BUFVAR_DODEELEGATION. (available from release SAP S/4HANA 1909 SP08)<BR /> <BR /> &nbsp;<BR /> <BR /> <STRONG>2. No logflag set in data element</STRONG> <STRONG>(/SC</STRONG><STRONG>TMS</STRONG><STRONG>/CL_</STRONG><STRONG>CI</STRONG><STRONG>_</STRONG><STRONG>CHANGEDOC</STRONG><STRONG>_</STRONG><STRONG>FLAG</STRONG><STRONG>)</STRONG><BR /> <BR /> This check class is relevant for BOBF BO’s which have a Change Document object. It is checked if all relevant data elements of the BO are marked for Change Document and leaves a warning if a relevant data element, which is not part of the exclusion list, is not marked.<BR /> The following data elements are usually excluded from the check: GUIDs of generic type /BOBF/CONF_KEY; admin data, like Last Change User/ Last Change Timestamp, where the change information is already contained in the relevant DB fields; explicitly excluded data elements. (available from SAP S/4HANA 2020 SP06)<BR /> <BR /> &nbsp;<BR /> <BR /> <STRONG>3. Check Change Documents for BOPF Business Objects</STRONG><STRONG>&nbsp;(/SC</STRONG><STRONG>TMS</STRONG><STRONG>/CL_</STRONG><STRONG>CI</STRONG><STRONG>_</STRONG><STRONG>CHECK</STRONG><STRONG>_</STRONG><STRONG>CHANGE</STRONG><STRONG>)</STRONG><BR /> <BR /> This check class is relevant for Business Objects (BO) which have a Change Document Object (CDO) assigned. It compares the list of database tables in the BO and CDO for inconsistencies like a missing assignment of a BO to a CDO with an existing Cross BO Association to the Change Document BO in the BO. It also compares if the CDO doesn’t contain all database tables of the related BO or if the CDO contains database tables which are not in the related BO. (available from release SAP S/4HANA 1909 SP08)<BR /> <BR /> &nbsp;<BR /> <BR /> <STRONG>4. Check for duplicate elements in BOPF Business Object Meta Models</STRONG><STRONG>&nbsp;(/SC</STRONG><STRONG>TMS</STRONG><STRONG>/CL_</STRONG><STRONG>CI</STRONG><STRONG>_</STRONG><STRONG>DUPLI</STRONG><STRONG>_</STRONG><STRONG>ELEMENTS</STRONG><STRONG>)</STRONG><BR /> <BR /> This provided check class checks BO Meta Models for duplicate BOBF Elements. Duplicates of the elements can occur, when deleting or recreating parts of the Meta Model and then implementing a Support Package/ SAP Note which contains BO Meta Model updates for the manually recreated BO Element.<BR /> At runtime, only one of duplicate elements is used (random, but stable per system). (available from release SAP S/4HANA 1909 SP08)<BR /> <BR /> &nbsp;<BR /> <BR /> <STRONG>5. Check for locking action super class</STRONG> <STRONG>(/SC</STRONG><STRONG>TMS</STRONG><STRONG>/CL_</STRONG><STRONG>CI</STRONG><STRONG>_</STRONG><STRONG>LOCK</STRONG><STRONG>_</STRONG><STRONG>ACT_SUPER</STRONG><STRONG>)</STRONG><BR /> <BR /> This ATC check verifies the correct usage of the TM Locking Superclass in TM BOs. It is checked that a BO lock/unlock action implementation class doesn’t inherit from the /SCMTMS/CL_LIB_A_FLOCKO class. And it also checks that a BO lock/unlock action doesn’t have an implementation class. (available from release SAP S/4HANA 1909 SP08)<BR /> <BR /> &nbsp;<BR /> <BR /> <STRONG>6. Check </STRONG><STRONG>if sy-tabix and sy-index is used correctly</STRONG><STRONG>&nbsp;(/SC</STRONG><STRONG>TMS</STRONG><STRONG>/CL_</STRONG><STRONG>CI</STRONG><STRONG>_</STRONG><STRONG>LOOP</STRONG><STRONG>_</STRONG><STRONG>SYNTAX</STRONG><STRONG>)</STRONG><BR /> <BR /> This ATC check is relevant for ABAP classes. It checks for the right usage of SY-TABIX and SX-INDEX in LOOP- and DO-ENDDO-branches.<BR /> In the following situations the check will return a warning: SY-INDEX is used within a LOOP-ENDLOOP branch/ after READ TABLE statement; SY-TABIX is used within a DO-ENDDO branch. (available from release SAP S/4HANA 2021 SP04)<BR /> <BR /> &nbsp;<BR /> <BR /> <STRONG>7. Check </STRONG><STRONG>Mergeability of Determinations</STRONG><STRONG>(/SC</STRONG><STRONG>TMS</STRONG><STRONG>/CL_</STRONG><STRONG>CI</STRONG><STRONG>_</STRONG><STRONG>MIN</STRONG><STRONG>_</STRONG><STRONG>DET</STRONG><STRONG>)</STRONG><BR /> <BR /> With this ATC checks it is checked if there are determinations defined, which can be merged. The BO performance is influenced by the number of determinations in the same BO. Therefore, the determinations for the same Business Object should always be merged. &nbsp;(available from release SAP S/4HANA 2023 FPS1)<BR /> <BR /> &nbsp;<BR /> <BR /> <STRONG>8. Check </STRONG><STRONG>Mergeability of Validations</STRONG><STRONG>(/SC</STRONG><STRONG>TMS</STRONG><STRONG>/CL_</STRONG><STRONG>CI</STRONG><STRONG>_</STRONG><STRONG>MIN</STRONG><STRONG>_</STRONG><STRONG>VAL</STRONG><STRONG>)</STRONG><BR /> <BR /> This provided check class checks if there are validations defined, which can be merged. The BO performance is influenced by the number of validations in the same BO. Therefore, validations for the same action/consistency validations for the same Business Object should always be merged. (available from release SAP S/4HANA 2023 FPS1)<BR /> <BR /> &nbsp;<BR /> <BR /> <STRONG>9. Check </STRONG><STRONG>usage of TM determination superclass</STRONG><STRONG>(/SC</STRONG><STRONG>TMS</STRONG><STRONG>/CL_</STRONG><STRONG>CI</STRONG><STRONG>_</STRONG><STRONG>TST</STRONG><STRONG>_</STRONG><STRONG>DET</STRONG><STRONG>)</STRONG><BR /> <BR /> This ATC check verifies the correct usage of the TM Determination superclass in TM Business Objects. It is checked whether the determination class doesn’t inherit from /SCMTMS/CL_D_SUPERCLASS class and/or the determination doesn’t have a class implemented. (available from release SAP S/4HANA 1909 SP08)<BR /> <BR /> &nbsp;<BR /> <BR /> <STRONG>10. Check </STRONG><STRONG>usage of TM query superclass</STRONG><STRONG>(/SC</STRONG><STRONG>TMS</STRONG><STRONG>/CL_</STRONG><STRONG>CI</STRONG><STRONG>_</STRONG><STRONG>TST</STRONG><STRONG>_</STRONG><STRONG>QUER</STRONG><STRONG>)</STRONG><BR /> <BR /> This ATC check verifies the correct usage of the TM Query superclass in TM Business Objects. It is checked whether a query class doesn’t inherit from /SCMTMS/CL_Q_SUPERCLASS class, a query overwrites the /BOBF/IF_FRW_QUERY~QUERY() method and/or the query doesn’t have a class implemented. (available from release SAP S/4HANA 1909 SP08)<BR /> <BR /> &nbsp;<BR /> <BR /> <STRONG>11. Check usage of TM validation superclass </STRONG><STRONG>(/SC</STRONG><STRONG>TMS</STRONG><STRONG>/CL_</STRONG><STRONG>CI</STRONG><STRONG>_</STRONG><STRONG>TST</STRONG><STRONG>_</STRONG><STRONG>VAL</STRONG><STRONG>)</STRONG><BR /> <BR /> This ATC check verifies the correct usage of the TM Validation superclass in TM Business Objects. It is checked whether the validation class doesn’t inherit from /SCMTMS/CL_V_SUPERCLASS class and/or the validation doesn’t have a class implemented. (available from release SAP S/4HANA 1909 SP08)<BR /> <BR /> &nbsp;<BR /> <BR /> For guidance on how to write an ATC check please refer to the&nbsp;<A href="https://blogs.sap.com/2018/09/06/remote-code-analysis-in-atc-how-to-write-an-atc-check/" target="_blank" rel="noopener noreferrer">blog article “Remote Code Analysis in ATC – How to write an ATC check”</A>&nbsp;which acts as a central repository for all manner of ATC related guidelines and setups.<BR /> <BR /> In case you have questions or are curious to find out more on how to create checks for the Code Inspector, you can read about it the guide “<A href="https://wiki.scn.sap.com/wiki/download/attachments/3669/CI_NEW_CHECK.pdf?api=v2" target="_blank" rel="noopener noreferrer">How to Build a New Check for the Code Inspector</A>”.<BR /> <BR /> For more details about the involved roles (developers, quality experts, admins) please take a look at the corresponding Getting Started guides:<BR /> <UL><BR /> <LI><A href="https://blogs.sap.com/2012/10/19/getting-started-with-the-abap-test-cockpit-for-qms-and-admins/" target="_blank" rel="noopener noreferrer">Getting Started with the ABAP Test Cockpit for QMs and Administrators</A></LI><BR /> <LI><A href="https://blogs.sap.com/2012/10/18/getting-started-with-the-abap-test-cockpit-for-developers/" target="_blank" rel="noopener noreferrer">Getting Started with the ABAP Test Cockpit for Developers</A></LI><BR /> </UL><BR /> For more information about SAP Transportation Management, please follow us on social media, our YouTube channel or our community pages:<BR /> <BR /> SAP TM Community:<BR /> <BR /> <A href="https://community.sap.com/topics/transportation-management" target="_blank">SAP Transportation Management | SAP Community</A><BR /> <BR /> SAP Digital Supply Chain Channel:<BR /> <BR /> <A href="https://www.youtube.com/channel/UCELmE2CEAkcwqpBLnuZHufA" target="_blank" rel="nofollow noopener noreferrer">https://www.youtube.com/channel/UCELmE2CEAkcwqpBLnuZHufA</A><BR /> <BR /> TM LinkedIn Community:<BR /> <BR /> <A href="https://www.linkedin.com/groups/3107838/" target="_blank" rel="nofollow noopener noreferrer">SAP Transportation Management | Groups | LinkedIn</A><BR /> <BR /> Release information and restrictions of TM on SAP S/4HANA 2022:<BR /> <A href="https://me.sap.com/notes/3232331" target="_blank" rel="noopener noreferrer">S/4HANA 2022 Release/Restrictions Information</A><BR /> <BR /> <EM>&nbsp;</EM><EM>In case you do not find your specific question there, feel free to post your question via the following form:</EM><EM><BR /> </EM><A href="https://answers.sap.com/questions/ask.html?primaryTagId=01200615320800000705" target="_blank" rel="noopener noreferrer"><EM></EM></A><A href="https://answers.sap.com/questions/ask.html?primaryTagId=01200615320800000705" target="test_blank" rel="noopener noreferrer">https://answers.sap.com/questions/ask.html?primaryTagId=01200615320800000705</A><BR /> <BR /> &nbsp;<BR /> <BR /> &nbsp; 2023-12-14T22:14:29+01:00 https://community.sap.com/t5/technology-blogs-by-members/abap-code-retreat-isernhagen/ba-p/13579688 ABAP Code Retreat Isernhagen 2023-12-15T14:11:58+01:00 ennowulff https://community.sap.com/t5/user/viewprofilepage/user-id/7046 Testing - coding - thinking - eating.<BR /> <BR /> The Inwerken-ABAP Code Retreat took place in Isernhagen (Hanover, Germany) on November 22nd 2023. On an <A href="https://majcon.de/events/coderetreat/" target="_blank" rel="nofollow noopener noreferrer">ABAP Code Retreat</A> - founded in 2016 by <SPAN class="mention-scrubbed">majcon</SPAN> and <SPAN class="mention-scrubbed">christian.drumm</SPAN> - you will code together with other developers. The main task is to show how test driven development works. For this purpose the organizers choose a fairly common programming task like Game of Life or Bowling Kata.<BR /> <BR /> This time my colleague <SPAN class="mention-scrubbed">maic.haubitz</SPAN> and I chose the programming task "<A href="https://kata-log.rocks/mars-rover-kata" target="_blank" rel="nofollow noopener noreferrer">Mars rover</A>".<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/12/Kopie-von-SNAG-1239.png" /></P><BR /> <P class="image_caption" style="text-align: center;font-style: italic;font-family: 'SAPRegular', 'Helvetica Neue', Arial, sans-serif">Enno and Maic</P><BR /> <BR /> <H2 id="toc-hId-964107009">Mars Rover</H2><BR /> The International space exploration network (German: INternationale Weltraum ERKundungs Netzwerk - INWERKN) had to program a mars rover which sould be controlled by some simple command sequence like: F10RF5LF3<BR /> <BR /> The meaning of the commands is:<BR /> <UL><BR /> <LI>F = Forward</LI><BR /> <LI>R = rotate right</LI><BR /> <LI>L = rotate left</LI><BR /> </UL><BR /> A command can be followed by a number that describes how many times the command must be executed. Example: F10 means "Go forward 10 steps"<BR /> <BR /> Although this task seems to be quite easy, there are some pitfalls which need to be discussed or where you have to talk to the "client". There are several rounds with a different focus on the programming method. At least it is important how to proceed to produce testable code. Doing is the best way to learn and discuss with others.<BR /> <P style="overflow: hidden;margin-bottom: 0px"><IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/blog_attachments/2023/12/IG_ABAP_CodeRetreat_2023_10-1.jpg" /></P><BR /> <P class="image_caption" style="text-align:center;font-style:italic;, Arial, sans-serif">Maic explaining things</P><BR /> <BR /> <H2 id="toc-hId-767593504">Why Test Driven Development?</H2><BR /> TDD - short for Test Driven Development - is a programming technique where you build your application by starting with defining the expectation of what the source code should do. You start by calling a method (that has no implementation yet) with some input parameters and gving the expected result. You do this with all reasonable test caes that you might think of. After having defined the test cases, you will start to implement the method. Your aim of course is to fulfill all given expectations.<BR /> <BR /> Writing test cases is not as easy as it might sound, because you need to know the <EM>edge cases</EM>. If you test a function that adds two numbers, then it is useless to test hundreds of simple positive numbers. It is more <EM>interesting</EM> to test negative numbers, veeeery big numbers and so on. Depending on the input type you might also have to test if the input is a valid number.<BR /> <BR /> This procedure makes sure that you have to think about all requirements in detail. The developer then exactly knows what input parameters might be used and what the output should be.<BR /> <H2 id="toc-hId-571079999">Is Test Driven Development the holy grail of programming?</H2><BR /> In my opinion TDD is one method to get better coding. But it is not always and everywhere a <EM>no brainer</EM>. My reservation about TDD is, that you need to start with a quite detailed plan/ interface of your code. The used interfaces often changes as the application gets more complicated. Therefore you might refactor at an early time of the project. This also means that all already defined test cases need to be refactored.<BR /> <BR /> Another point is, that TDD-advocates might want to have a 100% test coverage, where I think that it is not always possible and not always reasonable.<BR /> <BR /> My favorite way is to build a prototype to make sure that all things work as suggested and to get a fast discussable result. After all that it is also possible to write test cases.<BR /> <BR /> At least these are great things to discuss. Knowing the TDD technique definitely is a must-have skill for programmers. So if you do not know this technique or have not expreienced it in real life, then I highly recommend to train it. ABAP Code Retreats are really a great way to learning TDD.<BR /> <BR /> Watch out in the SAP Community for ABAP Code Retreat events nearby.<SPAN style="font-size: 1rem">Unfortunately the ABAP Code Retreats are not listed in the </SPAN><A style="font-size: 1rem" href="https://groups.community.sap.com/t5/events/ct-p/events" target="_blank" rel="noopener noreferrer">SAP Community Events page</A><SPAN style="font-size: 1rem">... If anyone knows if there is a central page, please let me know.</SPAN><BR /> <BR /> ~Enno 2023-12-15T14:11:58+01:00 https://community.sap.com/t5/technology-blogs-by-sap/automated-testing-of-applications-developed-with-abap-cloud/ba-p/13583979 Automated testing of applications developed with ABAP Cloud 2024-01-29T05:06:20.707000+01:00 Mani_P_S https://community.sap.com/t5/user/viewprofilepage/user-id/131162 <P>While moving from the world of on-premise deployments to the world of cloud deployments, one thing becomes clear: delivery times are getting dramatically reduced. Performing manual regression tests for large applications are simply not a valid option anymore. Regression tests should be fully automated. Delivering software in the cloud requires us to adapt code quickly and with excellent quality.&nbsp;Therefore, test automation is one of the key factors to run efficiently in the cloud.&nbsp;In this blog, I present a collection of links to kickstart your test automation journey with <a href="https://community.sap.com/t5/c-khhcw49343/ABAP+Cloud/pd-p/9ada5ac7-3f77-49de-b5c9-9019df1d1e09" class="lia-product-mention" data-product="1202-1">ABAP Cloud</a>&nbsp;<BR /><BR />What kind of tests exist and how can I write a test?</P><UL><LI><A href="https://help.sap.com/docs/btp/sap-abap-development-user-guide/ensuring-quality-of-abap-code?locale=en-US" target="_blank" rel="noopener noreferrer">SAP Help Documentation – Ensuring Quality of ABAP Code</A> – Understand the ABAP Unit framework and the ABAP Test Cockpit (ATC). Understand the basics of where, how to write ABAP Unit tests, launching and evaluating the results of these tests. Deep dive into the various frameworks available for managing dependencies you may encounter when writing ABAP Unit tests such as Object-Oriented dependencies, database dependencies, ABAP function modules, RAP business objects or Authority checks.</LI><LI><A href="https://help.sap.com/docs/ABAP_PLATFORM_NEW/fc4c71aa50014fd1b43721701471913d/1fa88de357464d98a08165cb5830c0ad.html" target="_blank" rel="noopener noreferrer">RAP Test Guide</A> - For the ABAP RESTful Application Programming Model (RAP) in general, the RAP Test Guide&nbsp;is a great source to understand the various unit and integration test possibilities.</LI><LI><A href="https://github.com/SAP-samples/abap-platform-refscen-flight/tree/ABAP-platform-cloud" target="_blank" rel="nofollow noopener noreferrer">Code Samples</A> – The flight reference scenario comes with code samples for tests around various use cases and is available on GitHub.</LI></UL><P>How can I integrate tests into the development process?</P><UL><LI><A href="https://help.sap.com/docs/abap-cloud/abap-development-tools-user-guide/checking-quality-of-abap-code-with-atc?locale=en-US%3Fversion%3Dsap_btp" target="_blank" rel="noopener noreferrer">Checking Quality of ABAP Code with ATC | SAP Help Portal</A> - The ABAP Test Cockpit (ATC) is the standard tool for checking the quality of ABAP development objects using static checks.</LI><UL><LI>You could work with ATC Checks during development to frequently check and clean-up defects either at object level or at package/transport request level.</LI><LI>You, as a developer, could explicitly run the ATC check in the transport organizer tool before releasing a transport request or task. This could also be done implicitly where the ATC check is launched automatically. This automatic check provides a first Q gate when the code leaves the development system. ATC findings may stop the release of the transport.</LI></UL><LI><A href="https://help.sap.com/docs/btp/sap-business-technology-platform/automate-software-lifecycle-management-process?locale=en-US" target="_blank" rel="noopener noreferrer">Automate the software lifecycle management process</A> – On SAP Business Technology Platform, to make the setup of continuous integration pipelines as easy as possible, the open-source project "Piper" was created. In general, there are various functions (Library steps) as well as whole pipelines available for reuse. Some of these include running ABAP Unit tests, deploying, and executing ABAP Test Cockpit (ATC) checks, etc.</LI><UL><LI>If you are a partner developing add-on-based applications on the SAP BTP ABAP Environment, the <A href="https://help.sap.com/docs/sap-btp-abap-environment/abap-environment/build-product-version" target="_blank" rel="noopener noreferrer">Build Product Version</A> application of the Landscape Portal also runs a <A href="https://help.sap.com/docs/btp/sap-business-technology-platform/build#loio96f9db9e6c784e5a89ede4d038daaa43" target="_blank" rel="noopener noreferrer">pipeline</A> which includes a step for execution of ATC checks and ABAP units.&nbsp;</LI></UL></UL><P>Looking forward to conversations in the chat on your ABAP testability experience in the cloud.&nbsp;&nbsp;</P> 2024-01-29T05:06:20.707000+01:00 https://community.sap.com/t5/enterprise-resource-planning-blogs-by-sap/test-automation-tool-for-sap-s-4hana-cloud-public-edition-2402-release/ba-p/13585998 Test Automation Tool for SAP S/4HANA Cloud Public Edition 2402 Release Overview 2024-01-30T10:12:22.850000+01:00 Anurag_Nayak https://community.sap.com/t5/user/viewprofilepage/user-id/19436 <P>Embedding intelligence into our products has been the main focus topic for this release. The 2402 Cloud Release introduces new features around AI/ML for advanced error analysis and functions which build on the tool being an integrated part of the SAP S/4HANA Cloud solution.</P><P style=" text-align: center; "><FONT size="5"><STRONG>Intelligent Test Scoper(i-TS)</STRONG></FONT></P><P>The new Intelligent Test Scoper(i-TS) app leverages the embedded nature of the test automation tool to provide an optimized scope based on the code changes done as part of a major release or <a href="https://community.sap.com/t5/c-khhcw49343/SAP+Continuous+Integration+and+Delivery/pd-p/73554900100800001771" class="lia-product-mention" data-product="1173-1">SAP Continuous Integration and Delivery</a>&nbsp;. The app currently suggests Post Upgrade Tests(PUT) Standard Scripts which cover the changes done in the particular software update. The consolidated list of automates provide a more efficient and optimized scope for running PUT.<BR /><BR /><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Intelligent Test Scoper(i-TS) Application" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/55537i6174F5A3D47B847A/image-size/large?v=v2&amp;px=999" role="button" title="iTS.jpg" alt="Intelligent Test Scoper(i-TS) Application" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Intelligent Test Scoper(i-TS) Application</span></span></P><P>&nbsp;</P><P>The i-TS app is integrated with the Manage Upgrade Tests(MUT) solution and provides a one click option of moving the optimized scope to a new execution variant. The execution variant created is marked as “optimized” scope and will be then available for PUT in the Test Your Process(TYP) application.</P><P>You can read more about the evolution of the <A title="Evolution of Intelligent Test Scoper(i-TS)" href="https://community.sap.com/t5/enterprise-resource-planning-blogs-by-sap/i-ts-intelligent-test-scoper-journey-of-an-in-house-test-engineering/ba-p/13578938" target="_blank">i-TS tool here</A>.</P><P style=" text-align: center; "><FONT size="5"><STRONG>ABAP Units as part of Post Upgrade Tests(PUT)</STRONG></FONT></P><P><A title="Embedded Steampunk – Some more details for ABAP developers" href="https://community.sap.com/t5/enterprise-resource-planning-blogs-by-sap/embedded-steampunk-some-more-details-for-abap-developers/ba-p/13532714" target="_blank">Embedded Steampunk</A> <SPAN>allows customers and partners to create cloud-ready and upgrade-stable ABAP extensions</SPAN>. There is a need to ensure these <A title="Automated testing of applications developed with ABAP Cloud" href="https://community.sap.com/t5/technology-blogs-by-sap/automated-testing-of-applications-developed-with-abap-cloud/ba-p/13583979" target="_blank">extensions work well release on release</A>. With the feature of <A title="ABAP Units in PUT" href="https://help.sap.com/docs/SAP_S4HANA_CLOUD/9f3351bbe2f04b42bb29f690886a6f54/fbef3b02fc394d45b2018630c8ee7ab1.html?locale=en-US&amp;version=latest" target="_blank" rel="noopener noreferrer">ABAP Units as part of the PUT process</A> we enable customers to test their custom ABAP Units as part of the release regression suite. MUT application has been enhanced with an additional tab “ABAP Units” where users can add ABAP Units to an execution variant and utilize it in the PUT run. Results will be shown on the PUT track results page, the information can be downloaded as an excel file and further actions can be taken up in ABAP Development Tool(ADT).<BR /><BR /><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="ABAP Units in Post Upgrade Tests(PUT)" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/55539i729611CFFF5CA0B1/image-size/large?v=v2&amp;px=999" role="button" title="ABAP Units.jpg" alt="ABAP Units in Post Upgrade Tests(PUT)" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">ABAP Units in Post Upgrade Tests(PUT)</span></span></P><P style=" text-align: center; "><FONT size="5"><STRONG>Automation Failure Classification(AFC)</STRONG></FONT></P><P>While the feature of AFC has been available in the Analyse Automated Test Results(AATR) application for some time, from this release you would be able to see if the classification has happened via “ML Text Classification” or “Regular Expressions”. AFC is now able to categorize close to 70% of the automate failures. This features also provides Recommendations to solve the automate error based on the error message and classification.<BR /><BR /><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="Error Classification" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/55540i7D78A2F2A87342E5/image-size/large?v=v2&amp;px=999" role="button" title="Classification.jpg" alt="Error Classification" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">Error Classification</span></span></P><P style=" text-align: center; ">&nbsp;<STRONG>Additional Innovations</STRONG></P><P>Some additional features which increase the overall user experience are as follows:</P><UL><LI>The ”Execution Variant” tab is now deprecated and all relevant PUT scope grouped into an execution variant called Default PUT Scope</LI><LI>Restriction on deleting execution variants that has been executed before or the one currently being executed</LI></UL><P style=" text-align: center; "><STRONG>SAP Delivered Standard Automates</STRONG></P><P>The total list of SAP delivered automated test scripts are 414 for 2402 and can be accessed via link – <A href="https://support.sap.com/content/dam/SAAP/SAP_Activate/S4H_640%20Automated%20Test%20Scripts%20Index.xlsx" target="_blank" rel="noopener noreferrer">Automated Test Scripts Index</A>”. This includes 8 new scope items which were added this release.</P><P>Further detailed change information about the standard automate is available in the “<A href="https://support.sap.com/content/dam/SAAP/SAP_Activate/S4H_667%20Automated%20Test%20Scripts%20Change%20History.xlsx" target="_blank" rel="noopener noreferrer">Automated Test Script Change History</A>” and “<A href="https://support.sap.com/content/dam/SAAP/SAP_Activate/S4H_606%20Test%20Script%20Release%20Change%20Information.xlsx" target="_blank" rel="noopener noreferrer">Test Script Release Change Information</A>”.</P><P style=" text-align: center; "><STRONG>Important Links and Updates</STRONG></P><P>You can also access the replay from the&nbsp;<A href="https://saplearninghub.plateau.com/learning/user/catalog/launchOnlineContentFromCatalog.do?origin=catalog&amp;componentTypeID=EXPERT%5fLED&amp;componentID=LS%5f00004526&amp;revisionDateMilliseconds=1702368296000&amp;revisionDate=1702368296000&amp;actionName=launchContent&amp;classification=#/FBA99B003B8498C318005D42C60A1A34" target="_blank" rel="noopener nofollow noreferrer">SAP S/4HANA Cloud 2402 Early Release Series</A>&nbsp;which highlights the key new features. Details on how to login and access the content is available&nbsp;<A href="https://blogs.sap.com/2020/11/11/sap-s-4hana-cloud-early-release-series-watch-replays-on-demand/?preview_id=1218772" target="_blank" rel="noopener noreferrer">here</A>.</P><P>As part of our PUT 2.0 Enablement also we have created a set of short videos which cover the most important aspects of the process. The video playlist can be accessed <A href="https://video.sap.com/playlist/dedicated/1_hq6vc3yd/" target="_blank" rel="noopener noreferrer">here</A>.</P><P>Also continuing our trend of highlighting important blogs written on test automation topic below are some blogs we definitely recommend:</P><UL><LI><A title="SAP Cloud ALM and a Test Automation Tool" href="https://community.sap.com/t5/technology-blogs-by-sap/how-to-connect-sap-cloud-alm-and-a-test-automation-tool/ba-p/13575967" target="_blank">How to connect SAP Cloud ALM and a Test Automation Tool</A> by <A href="https://community.sap.com/t5/user/viewprofilepage/user-id/164863" target="_blank">Xavier06</A></LI><LI><A title="Tooling for ERP as a Service Test Automation in SAP S/4HANA Cloud, Public Edition" href="https://community.sap.com/t5/enterprise-resource-planning-blogs-by-sap/cloud-erp-close-up-tooling-for-erp-as-a-service-test-automation-in-sap-s/ba-p/13576681" target="_blank">Cloud ERP Close-Up: Tooling for ERP as a Service Test Automation in SAP S/4HANA Cloud, Public Edition</A> by <A href="https://community.sap.com/t5/user/viewprofilepage/user-id/8440" target="_blank">Bert Schulze</A></LI><LI><A title="Manage Test Data in SAP S/4HANA Cloud Test Automation Tool" href="https://community.sap.com/t5/enterprise-resource-planning-blogs-by-sap/manage-test-data-in-sap-s-4hana-cloud-test-automation-tool/ba-p/13577147" target="_blank">Manage Test Data in SAP S/4HANA Cloud Test Automation Tool</A> by <A href="https://community.sap.com/t5/user/viewprofilepage/user-id/167162" target="_blank">Hrishikesh Wagle</A></LI><LI><A title="Deprecation of Outdated Automates" href="https://community.sap.com/t5/enterprise-resource-planning-blogs-by-sap/deprecation-of-outdated-automates/ba-p/13575651" target="_blank">Deprecation of Outdated Automates</A> by <A href="https://community.sap.com/t5/user/viewprofilepage/user-id/12997" target="_blank">Apoorva</A></LI></UL><P>Please bookmark the&nbsp;<A href="https://community.sap.com/topics/s4hana-cloud/automation-testing" target="_blank">test automation community page</A>&nbsp;to keep up with the latest updates happening in the test automation space.</P><P>For more details on the functionality please refer the links below:</P><P style=" text-align: center; "><A title="Intelligent Test Scoper" href="https://help.sap.com/docs/SAP_S4HANA_CLOUD/d72d7bb74cf043a58474f0c2d76e857d/5d5d6bfa02c24adf8e12d272d93acaef.html?locale=en-US&amp;version=2402.500" target="_self" rel="noopener noreferrer">Intelligent Test Scoper (i-TS)</A>&nbsp;<BR /><A href="https://help.sap.com/viewer/9f3351bbe2f04b42bb29f690886a6f54/latest/en-US/dd1dc59e34364a26b1c6183a1369612b.html" target="_blank" rel="noopener noreferrer">Manage Upgrade Tests&nbsp;</A><BR /><A href="https://help.sap.com/viewer/1e9ba004e0504506a135afda960e9495/latest/en-US/b076dd00e70b4b30b1c250be655d45d2.html" target="_blank" rel="noopener noreferrer">Manage Your Test Processes</A><BR /><A href="https://help.sap.com/viewer/2ab07d21f68c41109a2eef21b8fd8466/latest/en-US/ddd0a0cf45964225bff64c10e8de8e38.html" target="_blank" rel="noopener noreferrer">Test Your Processes</A><BR /><A href="https://help.sap.com/viewer/1c73afbf7d154fcf9b5ec127d1793ffa/latest/en-US/70e4bb5e3875480ea15a033d943e4ecf.html" target="_blank" rel="noopener noreferrer">Test Data Container</A><BR /><A href="https://help.sap.com/viewer/7ce8f79186e1445ab82e37439eba795c/latest/en-US/a4a4c6e62b894d5a88d0d8300620e278.html" target="_blank" rel="noopener noreferrer">Analyze Automated Test Results</A><BR /><A href="https://help.sap.com/viewer/2ab07d21f68c41109a2eef21b8fd8466/latest/en-US/5d867592753c465aadb81115de672f91.html#loiod3af90f0c9ec4e819bdd945f54ed9b72" target="_blank" rel="noopener noreferrer">Configure Conditional Authentication</A><BR />Also refer&nbsp;<A href="https://help.sap.com/viewer/2ab07d21f68c41109a2eef21b8fd8466/latest/en-US/acaf51440ec84e409895cd8cde9486cb.html?q=FAQ" target="_blank" rel="noopener noreferrer">FAQs</A></P><P style=" text-align: center; ">--------------------------------------------------------------------------------------------------------------------------------------------------</P><P>Don’t hesitate to leave a comment and check out our <SPAN><A href="https://pages.community.sap.com/topics/s4hana-cloud" target="_blank" rel="noopener noreferrer">new community page</A></SPAN> to ask your questions and engage with the experts. Follow the <SPAN><A href="https://community.sap.com/t5/tag/PSCC_Enablement/tg-p/board-id/erp-blog-sap" target="_blank">PSCC_Enablement</A></SPAN> tag to stay up to date with our latest blog posts.</P><P>Follow us on <SPAN><A href="https://twitter.com/sap" target="_blank" rel="noopener nofollow noreferrer">@SAP</A></SPAN> and #S4HANA, and myself via <A href="https://www.linkedin.com/in/annayak/" target="_blank" rel="noopener nofollow noreferrer">LinkedIn</A>.</P><P>&nbsp;</P><P><span class="lia-unicode-emoji" title=":film_projector:">📽</span>️ Watch Our Live Sessions</P><P>In January 2024, we hosted a series of <STRONG>19 compelling live sessions</STRONG> to highlight the exciting innovations shipped with the <STRONG>SAP S/4HANA Cloud Public Edition 2402 release</STRONG>. Missed the live sessions? No problem! Take advantage of the entire series or pick and choose the sessions most relevant to you <SPAN><A href="https://community.sap.com/t5/enterprise-resource-planning-blogs-by-sap/watch-the-replays-of-our-exclusive-sap-s-4hana-cloud-public-edition-2402/ba-p/13587019" target="_blank"><STRONG>on demand</STRONG></A></SPAN>.</P><P>&nbsp;</P><P><span class="lia-unicode-emoji" title=":studio_microphone:">🎙</span>️ Inside SAP S/4HANA Cloud</P><P>There is no customer success without project success and product success! Leverage the unique knowledge and expertise of SAP S/4HANA Cloud experts, partners, and customers, sharing their SAP S/4HANA Cloud implementation project best practices and lessons learned – anywhere, anytime. In this podcast, we give you all ingredients to get to the next level and make your SAP S/4HANA Cloud project a success. <SPAN><A href="https://podcast.opensap.info/inside-sap/" target="_blank" rel="noopener nofollow noreferrer">Subscribe now</A></SPAN> and benefit from the shared knowledge!</P><P>&nbsp;</P><P><span class="lia-unicode-emoji" title=":laptop_computer:">💻</span>openSAP Microlearnings for SAP S/4HANA Cloud</P><P>Our openSAP microlearnings for SAP S/4HANA Cloud offer an exciting new learning opportunity. What began with a small batch of 20 videos, has now become a channel with more than 50 microlearnings that have generated over 20,000 views. Today, we cover multiple lines of business such as finance, manufacturing, and supply chain management, and key technology topics like Master Data Management, extensibility, SAP User Experience, and upgrade management. We are continuously adding new microlearnings to <SPAN><A href="https://blogs.sap.com/2020/05/07/boost-your-knowledge-with-sap-s-4hana-microlearnings/" target="_blank" rel="noopener noreferrer">our channel</A></SPAN>, so make sure you check them out.</P><P>&nbsp;</P><P><span class="lia-unicode-emoji" title=":speaking_head:">🗣</span>️ Your Voice Matters</P><P>You want to learn more and actively engage with SAP subject matter experts on SAP S/4HANA Cloud topics? We have just the right place for you! Join our <SPAN><A href="https://community.sap.com" target="_blank">interactive community</A></SPAN> where we bring together customers, partners, and SAP experts with a clear mission: To engage with one another about best practices and product solutions. We invite you to explore the ‘one-stop shop’ as the central place for all resources, tools, content questions, answers and to connect with experts who will guide you through your journey to the intelligent, sustainable enterprise.</P><P>&nbsp;</P><P><span class="lia-unicode-emoji" title=":magnifying_glass_tilted_right:">🔎</span>Find All of Our Assets</P><P>SAP S/4HANA Cloud is the foundation of the intelligent, sustainable enterprise and is an innovative, robust, and scalable ERP. We at Cloud ERP Product Success and Cloud Co-Innovation offer a service as versatile as our product itself. Check out the numerous offerings our team has created for you below:</P><P style=" text-align: center; "><A href="https://chart-bdmaicr0au.dispatcher.eu2.hana.ondemand.com/index.html?hc_reset" target="_self" rel="nofollow noopener noreferrer"><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Anurag_Nayak_0-1710157527044.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/78441i39676B2A8CFFE5E0/image-size/medium?v=v2&amp;px=400" role="button" title="Anurag_Nayak_0-1710157527044.png" alt="Anurag_Nayak_0-1710157527044.png" /></span></A></P><P>&nbsp;</P><P><span class="lia-unicode-emoji" title=":direct_hit:">🎯</span>Where to Find More Information:</P><UL><LI>Read up on the highlights of the SAP S/4HANA Cloud Public Edition 2402 release here: <SPAN><A href="https://community.sap.com/t5/enterprise-resource-planning-blogs-by-sap/highlights-of-the-sap-s-4hana-cloud-public-edition-2402-release/ba-p/13587480" target="_blank">https://community.sap.com/t5/enterprise-resource-planning-blogs-by-sap/highlights-of-the-sap-s-4hana-cloud-public-edition-2402-release/ba-p/13587480</A></SPAN></LI><LI>Interested in an SAP S/4HANA Cloud Public Edition 2402 update on the intelligent ERP? Read all about it here: <SPAN><A href="https://community.sap.com/t5/enterprise-resource-planning-blogs-by-sap/sap-s-4hana-cloud-public-edition-2402-intelligent-erp-update/ba-p/13584760" target="_blank">https://community.sap.com/t5/enterprise-resource-planning-blogs-by-sap/sap-s-4hana-cloud-public-edition-2402-intelligent-erp-update/ba-p/13584760</A></SPAN>&nbsp;</LI><LI>Watch the replays of our exclusive SAP S/4HANA Cloud Public Edition 2402 Early Release Series here: <SPAN><A href="https://community.sap.com/t5/enterprise-resource-planning-blogs-by-sap/watch-the-replays-of-our-exclusive-sap-s-4hana-cloud-public-edition-2402/ba-p/13587019" target="_blank">https://community.sap.com/t5/enterprise-resource-planning-blogs-by-sap/watch-the-replays-of-our-exclusive-sap-s-4hana-cloud-public-edition-2402/ba-p/13587019</A></SPAN></LI><LI>Explore the ready-to-run cloud ERP here: <SPAN><A href="https://www.sap.com/products/erp/s4hana.html" target="_blank" rel="noopener noreferrer">https://www.sap.com/products/erp/s4hana.html</A></SPAN></LI><LI>Watch our SAP S/4HANA Cloud product update videos on YouTube: <SPAN><A href="https://www.youtube.com/playlist?list=PLWV533hWWvDnnyN2j-CcUheNN-GaNCb3H" target="_blank" rel="noopener nofollow noreferrer">https://www.youtube.com/playlist?list=PLWV533hWWvDnnyN2j-CcUheNN-GaNCb3H</A></SPAN></LI><LI>Check out our digital enablement wheel here: <SPAN><A href="https://chart-bdmaicr0au.dispatcher.eu2.hana.ondemand.com/index.html?hc_reset" target="_blank" rel="noopener nofollow noreferrer">https://chart-bdmaicr0au.dispatcher.eu2.hana.ondemand.com/index.html?hc_reset</A></SPAN></LI><LI>Find out how to switch from groups to spaces and pages here: <SPAN><A href="https://blogs.sap.com/2023/11/06/deactivation-of-groups-in-the-sap-fiori-launchpad-in-sap-s-4hana-cloud-public-edition-2402-switching-to-spaces-and-pages-mandatory/" target="_blank" rel="noopener noreferrer">https://blogs.sap.com/2023/11/06/deactivation-of-groups-in-the-sap-fiori-launchpad-in-sap-s-4hana-cloud-public-edition-2402-switching-to-spaces-and-pages-mandatory/</A></SPAN></LI><LI>Become an early adopter for Joule in SAP S/4HANA Cloud Public Edition here: <SPAN><A href="https://influence.sap.com/sap/ino/#campaign/3612" target="_blank" rel="noopener noreferrer">https://influence.sap.com/sap/ino/#campaign/3612</A></SPAN></LI><LI>Check out the SAP Activate Roadmap for early adopters here: <SPAN><A href="https://go.support.sap.com/roadmapviewer/#/group/658F507A-D6F5-4B78-9EE1-0300C5F1E40F/roadmapOverviewPage/0894b61141a74a65b8da92db32685da5" target="_blank" rel="noopener noreferrer">https://go.support.sap.com/roadmapviewer/#/group/658F507A-D6F5-4B78-9EE1-0300C5F1E40F/roadmapOverviewPage/0894b61141a74a65b8da92db32685da5</A></SPAN></LI><LI>Review the PPL content here: <SPAN><A href="https://go.support.sap.com/roadmapviewer/#/group/658F507A-D6F5-4B78-9EE1-0300C5F1E40F/roadmapContentPage/0894b61141a74a65b8da92db32685da5:t8" target="_blank" rel="noopener noreferrer">https://go.support.sap.com/roadmapviewer/#/group/658F507A-D6F5-4B78-9EE1-0300C5F1E40F/roadmapContentPage/0894b61141a74a65b8da92db32685da5:t8</A></SPAN></LI><LI>Listen to our podcast here: <SPAN><A href="https://podcast.opensap.info/inside-sap/" target="_blank" rel="noopener nofollow noreferrer">https://podcast.opensap.info/inside-sap/</A></SPAN></LI><LI>Watch our openSAP microlearnings to learn about SAP S/4HANA Cloud topics at your own pace here: <SPAN><A href="https://microlearning.opensap.com/" target="_blank" rel="noopener noreferrer">https://microlearning.opensap.com/</A></SPAN></LI><LI>Find best practices on SAP S/4HANA Cloud Public Edition here: <SPAN><A href="https://me.sap.com/processnavigator/SolS/EARL_SolS-013/latest?region=DE" target="_blank" rel="noopener noreferrer">https://me.sap.com/processnavigator/SolS/EARL_SolS-013/latest?region=DE</A></SPAN></LI><LI>Check out what’s new here: <SPAN><A href="https://help.sap.com/doc/ce01d82756b947a1a043a5d5a3204226" target="_blank" rel="noopener noreferrer">https://help.sap.com/doc/ce01d82756b947a1a043a5d5a3204226</A></SPAN> <SPAN>&nbsp;</SPAN></LI><LI>Find help here: <SPAN><A href="https://help.sap.com/docs/SAP_S4HANA_CLOUD" target="_blank" rel="noopener noreferrer">https://help.sap.com/docs/SAP_S4HANA_CLOUD</A></SPAN></LI><LI>Read the feature scope description here: <SPAN><A href="https://help.sap.com/doc/7c9e0bbbd1664c2581b2038a1c7ae4b3" target="_blank" rel="noopener noreferrer">https://help.sap.com/doc/7c9e0bbbd1664c2581b2038a1c7ae4b3</A></SPAN></LI></UL> 2024-01-30T10:12:22.850000+01:00 https://community.sap.com/t5/technology-blogs-by-members/deep-dive-into-abap-debugging/ba-p/13621386 Deep dive into ABAP Debugging 2024-02-28T08:48:10.935000+01:00 prabhakaran_rajenthiran https://community.sap.com/t5/user/viewprofilepage/user-id/395174 <P style=" text-align: center; "><FONT size="4"><STRONG><U>Deep Dive into ABAP Debugging - Basic</U></STRONG></FONT></P><P>&nbsp;</P><P>&nbsp;</P><P><STRONG>What is ABAP Debugger?</STRONG></P><P style=" text-align : justify; ">The ABAP Debugger is the important tool used to analyze ABAP programs. In the development phase of any program, the Debugger can be used to analyze error situations like runtime errors and unexpected program behaviors. Also, it can also be used to analyze existing programs to understand their logic flow.</P><P><STRONG>Versions of ABAP Debugger</STRONG></P><OL><LI>Classic Debugger.</LI><LI>New Debugger.</LI></OL><P><STRONG>How to start ABAP Debugger?</STRONG></P><OL><LI>For Executable Programs &amp; Transactions<OL><LI>In Object Navigator-SE80, Right click on the Program, Choose <STRONG>to Execute &amp; click</STRONG> <STRONG>Debugging.</STRONG></LI><LI>In ABAP Editor-SE38, under option Program, Choose <STRONG>to Execute &amp; click</STRONG> <STRONG>Debugging</STRONG>.</LI><LI>In ABAP Editor-SE38, Click <STRONG>Debugging </STRONG>in application toolbar.</LI></OL></LI><LI>For Background Jobs<OL><LI>In Job Overview-SM37, select a finished Background job &amp; in the command field enter <STRONG>JDBG</STRONG>. This will trigger the Debugger &amp; simulate the exact scenario with the variant of the Background job.</LI></OL></LI><LI>For Methods in Class &amp; Function modules<OL><LI>Both Function module Builder-SE37 &amp; Class Builder-SE24 have Test Environment (in Execution mode), using this we can start Debugging all the methods or Function modules.</LI></OL></LI></OL><P><STRONG>How to start/switch on Debugging when running applications/transactions?</STRONG></P><OL><LI>For Executable Programs &amp; Transactions<OL><LI>To debug screen i.e., ABAP statements &amp; Screen logic, enter <STRONG>/h </STRONG>in command field.</LI><LI>To debug system i.e., Screen, custom programs &amp; System programs, enter <STRONG>/hs</STRONG> in command field.</LI><LI>To debug ABAP only, enter <STRONG>/ha </STRONG>in command field. This includes PAI &amp; PBO modules debugging also.</LI></OL></LI></OL><P style=" text-align : justify; ">Just like activating debugger with <STRONG>/h</STRONG> in command field, to activate classic debugger enter <STRONG>/hset debugger=classic </STRONG>and use <STRONG>/hset debugger=standard </STRONG>to activate standard debugger. However, this will have effect only on the current logon session. Standard debugger will be the default for any new SAP logon session.</P><P>Note: Post SAP release 7.4, Standard debugging has been the only way for Debugging external requests irrespective of the OK Codes used.</P><P><STRONG>Now, how to end Debugging session? </STRONG></P><OL><LI>Under Debugging in the toolbar, when the debugger is active.<OL><LI>Option <STRONG>Restart</STRONG> – Debugger is closed &amp; Application is restarted.</LI><LI>Option <STRONG>Exit (close application)</STRONG>, both Debugger &amp; Application is closed.</LI><LI>Option <STRONG>Exit (Application continues running)</STRONG>, Debugger is closed while Application continues running.</LI></OL></LI><LI>Enter <STRONG>/hx</STRONG> in command field, to switch off debugging that was switched on by <STRONG>/h.</STRONG></LI></OL><P><STRONG>Types of ABAP Debugger</STRONG></P><OL><LI>External Breakpoint&nbsp;<span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="prabhakaran_rajenthiran_6-1709049949902.png" style="width: 25px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/71997i7884A3C469251956/image-dimensions/25x28?v=v2" width="25" height="28" role="button" title="prabhakaran_rajenthiran_6-1709049949902.png" alt="prabhakaran_rajenthiran_6-1709049949902.png" /></span></LI><LI><P>Session Breakpoint&nbsp;<span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="prabhakaran_rajenthiran_8-1709050022076.png" style="width: 26px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/72000i392FA7BD957C9268/image-dimensions/26x25?v=v2" width="26" height="25" role="button" title="prabhakaran_rajenthiran_8-1709050022076.png" alt="prabhakaran_rajenthiran_8-1709050022076.png" /></span></P></LI><LI><P>Persistent Breakpoint&nbsp;<span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="prabhakaran_rajenthiran_9-1709050506826.png" style="width: 102px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/72002iBCBB28D22F799F90/image-dimensions/102x24?v=v2" width="102" height="24" role="button" title="prabhakaran_rajenthiran_9-1709050506826.png" alt="prabhakaran_rajenthiran_9-1709050506826.png" /></span></P></LI></OL><P><STRONG>Default tools available in Debugging&nbsp;</STRONG><STRONG>session: -</STRONG><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="prabhakaran_rajenthiran_12-1709051049848.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/72006i5185E94037FF900C/image-size/medium?v=v2&amp;px=400" role="button" title="prabhakaran_rajenthiran_12-1709051049848.png" alt="prabhakaran_rajenthiran_12-1709051049848.png" /></span></P><P><STRONG>Other tools available that can be added in the debugger screen: -</STRONG></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="prabhakaran_rajenthiran_13-1709051597141.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/72011i7D132BC30AD16EC3/image-size/medium?v=v2&amp;px=400" role="button" title="prabhakaran_rajenthiran_13-1709051597141.png" alt="prabhakaran_rajenthiran_13-1709051597141.png" /></span></P><P>We will see about the tools in detail as we go on.</P><P><STRONG>Debugging in ABAP code</STRONG></P><UL><LI>Options available to step through the code</LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="prabhakaran_rajenthiran_14-1709055018305.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/72052iFDDB2FF1AEAE1C92/image-size/medium?v=v2&amp;px=400" role="button" title="prabhakaran_rajenthiran_14-1709055018305.png" alt="prabhakaran_rajenthiran_14-1709055018305.png" /></span></P><P>Debugger options explained with the purpose: -</P><UL><LI>Options available other than the above 4, to step through the code.<UL><LI><STRONG>Continue to cursor</STRONG> – Execute the ABAP code till the cursor position – Press SHIFT + F8.</LI><LI><STRONG>Goto Statement</STRONG> – Helps in skipping/reprocessing section of source code, without having to go in a new debugger session. Right click on the ABAP statement from which we want to execute, choose Goto statement in the dialog menu that pops up.</LI></UL></LI><LI>Step Size<span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="prabhakaran_rajenthiran_15-1709055095182.png" style="width: 65px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/72155i7FF6BFCB2622B0FA/image-dimensions/65x25?v=v2" width="65" height="25" role="button" title="prabhakaran_rajenthiran_15-1709055095182.png" alt="prabhakaran_rajenthiran_15-1709055095182.png" /></span><SPAN>&nbsp;</SPAN><UL><LI>If we want to debug the sub conditions in the ABAP code. This can help in the following places,<UL><LI>When we have multiple sub conditions in the conditional statements.</LI><LI>When we want to debug every step in VALUE, REDUCE, FOR iterations &amp; similar ABAP 7.4 &amp; above statements.</LI></UL></LI></UL></LI></UL><P><STRONG>Call stack Debugger tool: -&nbsp;</STRONG></P><P>This tool helps to see the programs (call stack) that are called before reaching the debugger stop.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="prabhakaran_rajenthiran_20-1709056132036.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/72067i26EFB3F28C258DAF/image-size/medium?v=v2&amp;px=400" role="button" title="prabhakaran_rajenthiran_20-1709056132036.png" alt="prabhakaran_rajenthiran_20-1709056132036.png" /></span></P><P><STRONG>Breakpoints &amp; Watchpoints</STRONG></P><P style=" text-align : justify; ">All types of breakpoints do the job of the allowing the developers to mark places/statements in the ABAP code where the debugger should start/stop.</P><P>Every type of breakpoints has different scopes &amp; lifetimes.</P><P><STRONG>Session Breakpoint</STRONG></P><P style=" text-align : justify; ">If the breakpoint should be active only in the current user session, then Session break point would be right choice. This breakpoint will get deleted once the user logs off. This breakpoint can be set in the following ways.</P><UL><LI>Place the cursor on the statement where we want to have breakpoint, then press <STRONG>CTRL + SHIFT + F12</STRONG> key.</LI><LI>Place the cursor on the statement where we want to have breakpoint, click on <span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="prabhakaran_rajenthiran_22-1709056219450.png" style="width: 25px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/72069iE8921109FD8F3429/image-dimensions/25x23?v=v2" width="25" height="23" role="button" title="prabhakaran_rajenthiran_22-1709056219450.png" alt="prabhakaran_rajenthiran_22-1709056219450.png" /></span>in the toolbar.</LI><LI><STRONG>Left click on the status column</STRONG> i.e., left side of the source code line on which we want the breakpoint in the ABAP editor.</LI><LI>Session breakpoint can be created in Debugger session also, right click on the source code line on which we want the Session Breakpoint &amp; select the <STRONG>Create Session Breakpoint</STRONG> option.</LI></UL><P><STRONG>External Breakpoint</STRONG></P><P style=" text-align : justify; ">External Breakpoints will be active/valid for future user sessions. These breakpoints are valid for 2 hours and whenever a new breakpoint is set, the lifetime of all breakpoints is reset. These breakpoints are useful when we want to debug applications/ web services that are connected to SAP via RFC &amp; HTTP request. Also, these breakpoints can be set specific for certain User or a Terminal ID. Following are the ways to set external breakpoint,</P><UL><LI>Place the cursor on the statement where we want to have breakpoint, then press <STRONG>CTRL + SHIFT + F9</STRONG> key.</LI><LI>Place the cursor on the statement where we want to have breakpoint, click on&nbsp; &nbsp; &nbsp; <span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="prabhakaran_rajenthiran_23-1709056263346.png" style="width: 20px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/72070i1A4F023C331F7FEE/image-dimensions/20x22?v=v2" width="20" height="22" role="button" title="prabhakaran_rajenthiran_23-1709056263346.png" alt="prabhakaran_rajenthiran_23-1709056263346.png" /></span>&nbsp;in the toolbar.</LI><LI>Right click on the Status column, left side of the source code line, Select <STRONG>Create External breakpoint.</STRONG></LI><LI>External breakpoint can be created in Debugger session also, right click on the relevant statement and choose <STRONG>Create User Breakpoint</STRONG>.</LI></UL><P style=" text-align : justify; ">External breakpoints can be set for another user, can be helpful when we are trying to debug RFC call or HTTP request made by another user. To do this, follow the below steps,</P><UL><LI>Click on <STRONG>Utilities</STRONG> in the ABAP editor top menu, then <STRONG>Settings -&gt; ABAP editor </STRONG>tab <STRONG>-&gt; Debugging</STRONG>. Enter the user for whom the External breakpoint needs to be set.</LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="prabhakaran_rajenthiran_24-1709056683711.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/72080i5353B423AC239350/image-size/medium?v=v2&amp;px=400" role="button" title="prabhakaran_rajenthiran_24-1709056683711.png" alt="prabhakaran_rajenthiran_24-1709056683711.png" /></span></P><P>In cases where the external breakpoint (for another user) needs to be only in the current application server, Flag the checkbox <STRONG>Current application server only</STRONG>.</P><P><STRONG>Debugger Breakpoint</STRONG></P><P style=" text-align : justify; ">As the name indicates, these breakpoints can be set only in Debugger session, so they are visible in debugger session and deleted right after the debugger session ends. Both Session &amp; External breakpoints can be set on the ABAP statements (Known positions) that is seen on the screen while Debugger breakpoints can be set on unknown positions as well. We will see how to do this.</P><P style=" text-align : justify; ">Set Debugger breakpoints at a known position,</P><UL style=" text-align : justify; "><LI>Right click on the relevant ABAP statement &amp; Choose <STRONG>Create Debugger Breakpoint</STRONG>.</LI><LI>Left click on the status column i.e., the left side of the line number in ABAP editor, to the left of the relevant ABAP statement.</LI></UL><P style=" text-align : justify; ">Set the cursor the on the ABAP statement that is of interest, choose <STRONG>Breakpoints -&gt; Line Breakpoint</STRONG>. We get options to <STRONG>Set/Delete </STRONG>&amp; <STRONG>Activate/Deactivate</STRONG> debugger breakpoint.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="prabhakaran_rajenthiran_25-1709056904483.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/72085i4CABA64C704744CB/image-size/medium?v=v2&amp;px=400" role="button" title="prabhakaran_rajenthiran_25-1709056904483.png" alt="prabhakaran_rajenthiran_25-1709056904483.png" /></span></P><P style=" text-align : justify; ">Let’s see how to set Debugger breakpoints at an unknown position.</P><UL style=" text-align : justify; "><LI>Simply by pressing F9 key.</LI><LI>Click on the <STRONG><STRONG>Stop&nbsp;</STRONG></STRONG><span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="prabhakaran_rajenthiran_27-1709057002785.png" style="width: 25px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/72093i1FCDAA61E715B24B/image-dimensions/25x22?v=v2" width="25" height="22" role="button" title="prabhakaran_rajenthiran_27-1709057002785.png" alt="prabhakaran_rajenthiran_27-1709057002785.png" /></span><STRONG><STRONG>&nbsp;</STRONG></STRONG>in the Toolbar.</LI><LI>Choose <STRONG>Breakpoints </STRONG>in the Menu, Select <STRONG>Breakpoint at.</STRONG></LI></UL><P style=" text-align : justify; ">This dialog box opens when we press F9 or <STRONG>Create breakpoint</STRONG>. With this, Debugger breakpoints can&nbsp;be created for the following items.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="prabhakaran_rajenthiran_28-1709057329842.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/72100iBA141482389D915B/image-size/medium?v=v2&amp;px=400" role="button" title="prabhakaran_rajenthiran_28-1709057329842.png" alt="prabhakaran_rajenthiran_28-1709057329842.png" /></span></P><UL><LI><STRONG>ABAP statements</STRONG> – Breakpoint can be set for all possible ABAP command statements.</LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="prabhakaran_rajenthiran_29-1709057480565.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/72101i78A733D7113FD506/image-size/medium?v=v2&amp;px=400" role="button" title="prabhakaran_rajenthiran_29-1709057480565.png" alt="prabhakaran_rajenthiran_29-1709057480565.png" /></span></P><UL><LI><STRONG>Methods of Class</STRONG> (Global &amp; Local).</LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="prabhakaran_rajenthiran_30-1709057530966.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/72102i5B2E62F74E6F1484/image-size/medium?v=v2&amp;px=400" role="button" title="prabhakaran_rajenthiran_30-1709057530966.png" alt="prabhakaran_rajenthiran_30-1709057530966.png" /></span></P><P>We should enter the class &amp; method to set a breakpoint for the method. Similarly, if we want to set a breakpoint for a method of a local class within any specific program.</P><UL><LI><STRONG>Function modules</STRONG> – If we want to set breakpoint for any Function module.</LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="prabhakaran_rajenthiran_31-1709057740681.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/72105i9008DEE1451F1AA2/image-size/medium?v=v2&amp;px=400" role="button" title="prabhakaran_rajenthiran_31-1709057740681.png" alt="prabhakaran_rajenthiran_31-1709057740681.png" /></span></P><UL><LI><STRONG>Forms</STRONG> (Both in current program and in a called program).</LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="prabhakaran_rajenthiran_33-1709057977728.png" style="width: 406px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/72111i1FC473259BF60342/image-dimensions/406x140?v=v2" width="406" height="140" role="button" title="prabhakaran_rajenthiran_33-1709057977728.png" alt="prabhakaran_rajenthiran_33-1709057977728.png" /></span></P><UL><LI><STRONG>Exceptions &amp; Messages</STRONG> of all types – Set breakpoints at all instances of specific exception class. Also, we set breakpoint for a specific Message of a certain Type (I, E, A, S).</LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="prabhakaran_rajenthiran_34-1709058175783.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/72119i69F1FC3E8D942FE1/image-size/large?v=v2&amp;px=999" role="button" title="prabhakaran_rajenthiran_34-1709058175783.png" alt="prabhakaran_rajenthiran_34-1709058175783.png" /></span></P><UL><LI>Include programs &amp; PAI/PBO flow logic of any screen at any specific line numbers – We can set breakpoint at a specific line in an Include of a Program. Also, Set breakpoint on a line no. within any PAI/PBO flow logic.</LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="prabhakaran_rajenthiran_40-1709058685611.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/72129i20C47CF4EF2FCE5C/image-size/large?v=v2&amp;px=999" role="button" title="prabhakaran_rajenthiran_40-1709058685611.png" alt="prabhakaran_rajenthiran_40-1709058685611.png" /></span></P><UL><LI>Simple Transformation templates.</LI><LI><STRONG>Methods of Web Dynpro controller</STRONG> – We can set breakpoint for methods in controller of any Web Dynpro component.</LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="prabhakaran_rajenthiran_41-1709058754793.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/72130iB1E35D3426F5D9D0/image-size/large?v=v2&amp;px=999" role="button" title="prabhakaran_rajenthiran_41-1709058754793.png" alt="prabhakaran_rajenthiran_41-1709058754793.png" /></span></P><P><STRONG>Breakpoint Overview</STRONG></P><P style=" text-align : justify; ">All the Breakpoints that are defined can be seen in within <STRONG>Breakpoint </STRONG>Tab in <STRONG>Break/Watchpoints </STRONG>tab in <STRONG>Debugger session</STRONG>. From this tab, Breakpoints can be created, activated, deactivated &amp; deleted. Also, we can change the type of breakpoint from here.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="prabhakaran_rajenthiran_42-1709058800318.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/72131iDC0AC1DAE7B2BACA/image-size/large?v=v2&amp;px=999" role="button" title="prabhakaran_rajenthiran_42-1709058800318.png" alt="prabhakaran_rajenthiran_42-1709058800318.png" /></span></P><P style=" text-align : justify; ">We can also set conditions for the breakpoints., if we want the breakpoint (that is already set) to be triggered only on for a specific condition. Like the below example, if we want the breakpoint to be triggered only when the username is ‘PRABHAKARAN’</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="prabhakaran_rajenthiran_43-1709059368931.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/72135i2765C85CFD009EA4/image-size/large?v=v2&amp;px=999" role="button" title="prabhakaran_rajenthiran_43-1709059368931.png" alt="prabhakaran_rajenthiran_43-1709059368931.png" /></span></P><P style=" text-align : justify; ">We can also see the overview of Breakpoint from ABAP Editor.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="prabhakaran_rajenthiran_44-1709059439392.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/72136iCDF186F55CAA9491/image-size/large?v=v2&amp;px=999" role="button" title="prabhakaran_rajenthiran_44-1709059439392.png" alt="prabhakaran_rajenthiran_44-1709059439392.png" /></span></P><P><STRONG>Watchpoints</STRONG></P><P style=" text-align : justify; ">Watchpoints are a way to make the debugger stop when the value of the variable/data object (for which watchpoint is created) changes.</P><P style=" text-align : justify; ">How to create Watchpoints – Watchpoints can be created only in debugger sessions.</P><UL><LI>Choose <STRONG>Watchpoint </STRONG>in the application toolbar.</LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="prabhakaran_rajenthiran_52-1709059747067.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/72146iC6100F6A7461C9FC/image-size/medium?v=v2&amp;px=400" role="button" title="prabhakaran_rajenthiran_52-1709059747067.png" alt="prabhakaran_rajenthiran_52-1709059747067.png" /></span></P><UL><LI>Choose <STRONG>Breakpoint </STRONG>-&gt; <STRONG>Create Watchpoint</STRONG></LI></UL><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="prabhakaran_rajenthiran_53-1709059988610.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/72147i64E258F62A9E2A0E/image-size/medium?v=v2&amp;px=400" role="button" title="prabhakaran_rajenthiran_53-1709059988610.png" alt="prabhakaran_rajenthiran_53-1709059988610.png" /></span></P><UL><LI>Press <STRONG>SHIFT + F4&nbsp;</STRONG><STRONG>key.</STRONG></LI></UL><P style=" text-align : justify; ">On creating the Watchpoint, we get the below dialog box where we should enter the variable/data object for which Watchpoint needs to be created.</P><P style=" text-align : justify; ">Below example, Watchpoint is created for variable <STRONG>SY-UNAME </STRONG>with condition <STRONG>SY_UNAME = ‘PRABHAKARAN’</STRONG>. So whenever the value of SY_UNAME changes to PRABHAKARAN debugger will stop. If we want the debugger to stop whenever the value of the variable changes, then leave the Free condition blank.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="prabhakaran_rajenthiran_54-1709060052116.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/72148iB6D95C0A99874163/image-size/large?v=v2&amp;px=999" role="button" title="prabhakaran_rajenthiran_54-1709060052116.png" alt="prabhakaran_rajenthiran_54-1709060052116.png" /></span></P><P>Watchpoints created can be seen in <STRONG>Watchpoints </STRONG>tab under <STRONG>Break./Watchpoint </STRONG>tab in debugger session. We can also activate, deactivate, create, change, delete any watchpoint from here also.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="prabhakaran_rajenthiran_55-1709060143041.png" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/72149i348A251349D990B3/image-size/large?v=v2&amp;px=999" role="button" title="prabhakaran_rajenthiran_55-1709060143041.png" alt="prabhakaran_rajenthiran_55-1709060143041.png" /></span></P><P>How to save &amp; load Debugger session?</P><P>Following the below steps, Debugger sessions can be saved, loaded for a later debugging session, can also be deleted if no longer needed along with components that can be chosen.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="prabhakaran_rajenthiran_56-1709060201676.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/72152iE7B21E6991878715/image-size/medium?v=v2&amp;px=400" role="button" title="prabhakaran_rajenthiran_56-1709060201676.png" alt="prabhakaran_rajenthiran_56-1709060201676.png" /></span></P><P>Dialog box while saving &amp; loading the Debugger session.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="prabhakaran_rajenthiran_57-1709060265020.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/72153i6D8FFAADFDC73A64/image-size/medium?v=v2&amp;px=400" role="button" title="prabhakaran_rajenthiran_57-1709060265020.png" alt="prabhakaran_rajenthiran_57-1709060265020.png" /></span></P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="prabhakaran_rajenthiran_58-1709060547930.png" style="width: 400px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/72154i905DA35399291089/image-size/medium?v=v2&amp;px=400" role="button" title="prabhakaran_rajenthiran_58-1709060547930.png" alt="prabhakaran_rajenthiran_58-1709060547930.png" /></span></P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P> 2024-02-28T08:48:10.935000+01:00 https://community.sap.com/t5/application-development-blog-posts/a-journey-of-discovery-and-a-prime-example-for-utilizing-dynamic-logpoints/ba-p/13668125 A journey of discovery and a prime example for utilizing dynamic logpoints 2024-04-16T13:02:04.868000+02:00 BaerbelWinkler https://community.sap.com/t5/user/viewprofilepage/user-id/439 <P>I recently got pulled into trying to resolve a helpdesk ticket raised by a user department because they had noticed something "off" with delivery note attachments&nbsp; to several deliveries. For some unknown reason, some deliveries kept getting the same PDF attached over and over again - and not just a few times but really often, like up to almost 140,000 times!</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="JourneyOfDiscovery-01.jpg" style="width: 651px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/95501i51DAEEF856E0D195/image-size/large?v=v2&amp;px=999" role="button" title="JourneyOfDiscovery-01.jpg" alt="JourneyOfDiscovery-01.jpg" /></span></P><P><STRONG>Collecting information</STRONG></P><P>To begin with, we didn't really know where these were coming from and our only lead were the many entries also getting added to the archive link table TOA01. There, we noticed a big jump in daily additions at around November 20. Before then, we had daily additions in the 3 digit numbers range and afterwards it quickly jumped up to 250K entries per day.</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="JourneyOfDiscovery-03.jpg" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/95567i4E76FFBB011961E7/image-size/large?v=v2&amp;px=999" role="button" title="JourneyOfDiscovery-03.jpg" alt="JourneyOfDiscovery-03.jpg" /></span></P><P>I then did a <STRONG>where-used analysis</STRONG> for table TOA01 and found function module ARCHIVE_CONNECTION_INSERT which looked like a promising lead just based on its name! Luckily enough, we have the <STRONG>SAP Call Monitor (SCMON)</STRONG> active in our productive environments, so I went there to see if there were any "interesting" hits for the function module. Not too surprisingly, there was a very clear outlier within the 7 days worth of data readily available:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="JourneyOfDiscovery-04.jpg" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/95568i987451E352E40AA2/image-size/large?v=v2&amp;px=999" role="button" title="JourneyOfDiscovery-04.jpg" alt="JourneyOfDiscovery-04.jpg" /></span></P><P>So, I checked&nbsp; our RFC-enabled function module which looked fine logic-wise and which also hadn't been changed recently. It therefore couldn't really be the underlying reason for what was happening in the system. I now however had some impacted piece of code to take a closer look at.</P><P><STRONG>Dynamic logpoints to the rescue!</STRONG></P><P>As far as I'm concerned, dynamic logpoints (SDLP) are one of the best options to troubleshoot issues like the one at hand where you can't capture the process stand alone via starting a report or transaction. So, I identified a suitable place in the code and defined a logpoint for a few relevant fields:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="JourneyOfDiscovery-05.jpg" style="width: 631px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/95576i705F45F71233BB0C/image-dimensions/631x296?v=v2" width="631" height="296" role="button" title="JourneyOfDiscovery-05.jpg" alt="JourneyOfDiscovery-05.jpg" /></span></P><P>It didn't take long for a very distinct patter to emerge in that we had most delivery numbers showing up with slowly increasing KEY COUNTS (the combination of fields in Key Definition) and a few others where the numbers went up far more quickly.</P><P>Slow cycle with something between 36 and 40 minutes between each addition:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="JourneyOfDiscovery-06.jpg" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/95580i83BB93F4F904B7AA/image-size/large?v=v2&amp;px=999" role="button" title="JourneyOfDiscovery-06.jpg" alt="JourneyOfDiscovery-06.jpg" /></span></P><P>Fast cycle with something between 1m50s and 2m30s (ignoring the outlier):</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="JourneyOfDiscovery-07.jpg" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/95581i059F89CD911B1F68/image-size/large?v=v2&amp;px=999" role="button" title="JourneyOfDiscovery-07.jpg" alt="JourneyOfDiscovery-07.jpg" /></span></P><P>Watching this for a few days, the pattern was eerily consistent so that it was roughly possible to tell when numbers would go up again for one of the deliveries simply by knowing if it was stuck in the slow or fast cycle! Just how eerily regular the pattern was, can be seen in this screenshot with only partially masked delivery numbers. I had the dynamic logpoints active for about 8 hours each day, during which time they had been triggered about 74K times each:</P><P><span class="lia-inline-image-display-wrapper lia-image-align-center" image-alt="JourneyOfDiscovery-08.jpg" style="width: 999px;"><img src="https://community.sap.com/t5/image/serverpage/image-id/95582i322DBFC47B9EE735/image-size/large?v=v2&amp;px=999" role="button" title="JourneyOfDiscovery-08.jpg" alt="JourneyOfDiscovery-08.jpg" /></span></P><P><STRONG>Resolution of the issue</STRONG></P><P>By that time we had collected more than enough data to be "fairly" certain that the root cause for the issue was outside our SAP system and had to be with one of our external logistic partners who kept re-sending the same delivery notes over and over again instead of just once. After getting in touch with them, the issue was quickly resolved: the root cause of all of this was a local C-drive running out of space with nobody noticing! Once that was tackled on their end, the number of transmitted delivery notes went down to pre-issue numbers immediately!</P><P><STRONG>Next steps</STRONG></P><P>Now that we successfully stopped the build-up of unwanted attachments we'll need to find a way to get rid of the millions of obsolete attachments in an orderly way with always obviously leaving one attachment intact but deleting all the many others from an impacted delivery. I already identified one most likely helpful function module for this task: <SPAN>ARCHIV_DELETE_META. I'll however have to investigate how best to get rid of the many items without causing issues for the system with these many updates. </SPAN></P><P><SPAN>So, here is a question for you: did you per chance already have to tackle a comparable clean-up of archivelink attachments and if so, am I on the right track with ARCHIV_DELETE_META or are there other/better options available? If you have any suggestions, please mention them in the comments. Thanks!</SPAN></P> 2024-04-16T13:02:04.868000+02:00