0% found this document useful (0 votes)
26 views

Extend SAP S4HANA in the cloud and on premise with ABAP based extensions

This document provides guidelines for extending SAP S/4HANA in both cloud and on-premise environments using ABAP-based extensions. It outlines the new extensibility model, which emphasizes the use of public APIs and predefined extension points to ensure smooth upgrades and cloud readiness. The document also details various extensibility options available, including key user extensibility, on-stack developer extensibility, and side-by-side extensibility, along with recommendations for managing existing custom code.

Uploaded by

Aditya Kartik
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF or read online on Scribd
0% found this document useful (0 votes)
26 views

Extend SAP S4HANA in the cloud and on premise with ABAP based extensions

This document provides guidelines for extending SAP S/4HANA in both cloud and on-premise environments using ABAP-based extensions. It outlines the new extensibility model, which emphasizes the use of public APIs and predefined extension points to ensure smooth upgrades and cloud readiness. The document also details various extensibility options available, including key user extensibility, on-stack developer extensibility, and side-by-side extensibility, along with recommendations for managing existing custom code.

Uploaded by

Aditya Kartik
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF or read online on Scribd
You are on page 1/ 44
Extend SAP S/4HANA in the cloud and on premise with ABAP based extensions Guidelines for extension project managers, key users, and ABAP developers Table of Contents 2 ntRopuction. 1.1 MoTIVaTIONFORA NeW ExTENSBIUTY MODEL 2 THE SAP S/4HANA CLOUD EXTENSIBILITY MODEL. 1 1 4 2.1 OVERVEEW oF THE EXTENSIBIUTY OPTIONS FOR SAP S/AHANA CLOUD. 4 22 Kev UseRexrENsury 5 2.3 ONSTACK DEVELOPER EXTENSIIUTY WiTH SAP S/4HANA CLOUD ABAP ENVIRONMENT... 7 2.4 SIDE-BY-SIDE EXTENSIOUTY USING THE SAP BTP ABAP ENVIRONMENT 9 2.5. SUNIMARY OF THE EXTENSIBILITY OPTONS FOR SAP S/4HANA CLOUD - 40 3 WHEN TO USE WHICH CLOUD EXTENSIBILITY OPTION. 3.1 ADDTIONAL ASPECTS TO CONSIDER 2 32 BxANeus, 43 B21 Key user extensibilY mmm . . “ sonnel 322 On-stack developer extensibility 43 323 Side-by-side extensibility 13 4 THE ABAP CLOUD DEVELOPMENT MODEL. 4.1 THE ABAP RESTFuLAPPLCATION PROGRAMMING MODEL 41.1 The big picture. 412 Extensibility of RAP business objects (RAP BO} 42 Cloup-cptimzeo ABAP Lancuace 4.3. ABAP PLATFORMAREUSE SERVICES 43.1 — Released local APs. 432 Technical reuse services 433 Identity and Access Management. 43.4 Connectivity. = se 4.4 SAPS/4HANA BUSINESS APIS, XTENS[N POINTS AND EVENTS 45 BUSINESS CONFIGURATION (BC) 5. EXTENDING A NEW SAP S/4HANA CLOUD PRIVATE EDITION OR SAP S/4HANA ON-PREMISE SYSTEM. 5.1 SETTING UP THE THREE TIER MODEL 25 5.2 TleR2: WHEW ANO HOUTO USECLASSICAL ABAP CODE TOMITIGATE MESSING APIS. 28 53__TIER3: CASSICERTENSIONSwrnsnsee win as sree iO 53.1 Using classic structure extensions. . 30 5.32 Using clossical business logic extension techniques 130 5.33 Modifications 3 6 MANAGING AND TRANSFORMING EXISTING CODE IN SAP S/4HANA CLOUD PRIVATE EDITION AND ‘SAP S/4HANA ON-PREMISEsrnnninunnnsnnsnninininnnsnninninniniinnninennninnnnnnninnnnnnnned2 6-1 HOW TOHANDLEEMISTING CLASSIC ABAP CUSTOM CODE IN PARALLEL WITH THE NEW CLOUD READY EXTENSIONS 2 6.2 How ro HanbLeexisnns custom coae IN & RAP COMPUANT FASHION. 34 7 MORE INFORMATION, 35 UST OF FIGURES... 36 UST OF TABLE: 36 LUST OF SOURCE CODE EXAMPLES. 36 POUT 1 INTRODUCTION Extensibiliy is a key capabilty of every Enterprise Resource Planning (ERP) solution. It enables customers. 1o create a competitive advantage by customizing their business processes and allows partners to enrich ERP with tailor-made solutions, The importance of extensibility has been confirmed for SAP's on-premise ERP and will remain valid for the more Standardized cloud ERP. ‘SAP S/AHANA is SAP's flagship product providing the inteligent ERP in the cloud and on-premise. This document helps SAP S/4HANA customers and partners to choose, implement and use the extensibility ‘options correctly, and takes into account the various customer environments (public cloud, private cloud or on-premise) ‘The goal is to move from classic custom ABAP extensions to an SAP S/AHANA extensibility model that allows customers to consume SAP innovations smoothly, leading to future-proof extensions that are ready for tho next cloua transformation stops. 1.1 Motivation for a new extensibility model During the last decades SAP's on-premise customers and partners have mainly used classic ABAP_ ‘extensibility to extand their ERP solution. Classic extensibility allows ABAP developers to use and evan to modify all SAP objects. This is very powerful and flexible. But the missing clear interface between SAP code ‘and the extensions adds a lot of customer specific test and adaptation effort during SAP upgrades. In the public cloud there are no customer-specific SAP upgrade projects. Instead automated software Updates run forall customers in parallel. Therefore, classic extensibilty, based on classical custom ABAP ‘code, can no longer be used. SAP S/4HANA Cloud public edition provides a new upgrade-stable cloud extensibility mode! that clearly separates SAP code and extensions via mandatory public SAP APIs and SAP extension points. It supports the following standard extensibility scenarios: + On-stack extensions that depend on proximity to or tight coupling with SAP S/4HANA Cloud data, transactions or apps and therefore run on the SAP S/AHANA Cioud stack ‘+ Side-by-side extensions running on the separated SAP Business Technology Platlorm (SAP BTP) for all ‘other loosely.coupled extension scenarios ntagrating with SAP S/4HANA. ‘The different personas working on extensibility use cases are supported via: + Low-code/no-code tools for key users/business experts, + A development environment (IDE) for professional developers, ‘SAP S/4HANA Cloud covers these dimensions with the following extensibility options: Prieta agosto) Si CeCe aa aerial aren Cy Caae aa pene ee eC Got tad eres eo) Law endehcde shone (SAP BUSINESS EXPERT, | xp syHaNA Cloud Bud ape SAP Bucrese E key user extensibility application studio, SAP Build fle aaa Process automation and and others) PUBIC Tae Prieta bade ngea tac) TT oo nae en aieaiinal pert arrays pera ee Pc a) ere coy Developer extensibility using the | Java, Node.js SAP BTP 'SAP S/MHANA Cloud ABAP ‘environments ED Environment SAP BTP ABAP Envronment (aka, Embedded Steampunk’) | (aka. Steampunk’) Table 1.1 - SAP SHANA Goud exenabity options All these extensibility options use only SAP APIs and SAP extension points that have been released and are stable. ‘This new SAP S/4HANA Cloud extensibility model, frst introduced in SAP S/4HANA Cloud public edition, is now available in all SAP S/AHANA editions, to achieve smoother upgrades everywhere and to pave the way to the cloud: ‘Table 1.2 below lists the different SAP S/4HANA editions and why a customer should adopt the new cloud ‘extensibility model in the respective environment. The right column in the table lists which topics are covered in this guice, WHY CLOUD EXTENSIBILITY? WHAT WILL BE EXPLAINED + The SAP SISHANA cloud Mandatory extensibility mode ‘SAP S/AHANA Cloud public ‘© When to use which cloud cation Classical ABAP extensibility is not ‘acianabilty opfion supported ‘+The ABAP cloud development model + Technical setup to use the new start wt tne superior tua Saeco poce vate exerci a «Went re he Goasenestaty Sap stat Cloud private 3 rues eo Seana ccaer ee (eee Greene instatation earl eee eee ae es ee ances cloud extensions Get tne benefits deseribed above SAP S{HANA Cloud private _‘fornew and existing extensions Best practices on how to manage, ection and on-premise Developers lam the new extensiity " Giminato or vansiorm exist» Installation with converted Desinisebases les hgeniyasinin! aeerang classic extensions classic extensions ee step-by-step to cloud ready extensions Table 1.2- Overview about the positioning of the new dowd extenbiliy model in he diferent SAP S/AHANA ections * Steampunk and Embedded Steampunk ae the SAP internal project names to detver the ABAP environment on SAP BTP and in SAP S/AHANA Goud, These project names are often used in development-related blogs and articles PUBIC TE ‘The list below gives some recommendations on how to read this guide: + Chapters 1-3 are recommended for all readers to get an overview of the ABAP-related aspects of the new cloud extensibility madel and to understand when to use which extensibility option * Chapter 4 introduces the new ABAP cloud development model. ‘+ Chapters 6 and 6 provide initial uidance on how to apply the cloud extensibility model in SAP S/4HANA Cloud private edition or on-premise. Here we differentiate between greenfield SAP S/4HANA systems. and converted SAP S/4HANA systems containing existing custom ABAP code, ‘This guide concentrates on the ABAP-based extensibility options (key user and developer extensibility on SAP S/HANA and the SAP BTP ABAP Environment) For low-code/na-code toals on SAP BTP please refer to Low-Code/No-Code Development Tools in SAP ‘community ‘More information on Node_js and Java development on SAP Business Technology Platform as well as the ‘SAP Cloud Application Programing Model (CAP) is referenced on the More Information page at the end of this document. PUBIC TE 2. THE SAP S/MMHANA CLOUD EXTENSIBILITY MODEL, SAP S/4HANA Cloud public edition allows customers and partners to take full advantage of al the innovations delivered by SAP without the need to take responsiblity forthe cloud infrastructure and ‘operations. SAP manages all operation and lifecycle management tasks such as continuous feature delivery ‘or providing hotfixes and regular upgrades to new software versions Consequently, the new cloud extensibility model as explained in Chapter 1 is mandatory to ensure that customer and partner extensions continue to run without any change or adaptation effort independent of ‘changes made by SAP. ‘Therefore, all extensions must adhere to the following rules to ensure cloud-readiness: * Rule 4 - Extensions can only use released remote or local SAP APIs. SAP keeps these APIs stable. + Rule 2 - SAP objects can only be extended via predefined extension points. SAP keeps these extension points stable, Modifications of SAP objects as in on-premise systems are no longer supported. * Rule 3 - Extensions can only use cloud-enabled and released technologies. Many benefits of the classic extensibility model known from the on-premise world have been preserved: * Extensions are built using the exact same programming model that SAP uses to develop the standard ‘applications. + The ABAP code of the SAP applications can be analyzed and inspected by customers and partners. This allows seamless end-to-end debugging of the extensions and provides a quick learning path for extension projects. 21 Overview of the extensibility options for SAP S/4HANA Cloud In this chapter we will intloduce the three ABAP-based extensibilly options for SAP S/HANA Cloud editions that follow the rules of the cloud extensibility model (> Figure 2.1) ‘Type 1 and 2 extensions run directly on the SAP S/4HANA Cloud stack. They are implemented based on the technology stack of the core solution (ABAP Platform for SAP S/4HANA): + Key user extensibility (1) for low-code/no-cade extensions created by key users, such as adapting the user interface or adding custom fields, * On-stack developer extensibility (2) using the SAP S/4HANA Cloud ABAP Environment for developer ‘extensions that are implemented in ABAP directly on the SAP S/4HANA Cloud technology stack ‘Type 8 extensions run side-by-side to the core on SAP BTP. * Side-by-side extensibility (3) for developer extensions using the development and runtime environments. offered by SAP BTP. For ABAP this is the SAP BTP ABAP Environment All three extensibility options are based on the usage of public SAP interfaces providing access to public SAP APIs and SAP extension points. Key user extensions and on-stack developer extensions have access to local public APIs released by the underlying ABAP Platform or the SAP S/4HANA Cloud applications. These APIs can be released for key User extensibility, for on-stack developer extensibility or for both options, Side-by-side extensions can access SAP S/4HANA Cloud business objects through remote SAP APIs (2.9., ‘OData services). In addition, these side-by-side extensions on SAP BTP ABAP Environment have access to the exposed local public interfaces of the underlying ABAP Platform stack Both SAP BTP ABAP Environment and SAP SI4HANA Cloud ABAP Environment are based on the same ABAP Platform stack and use the same local ABAP Platform interfaces, PUBIC WE KEY USER EXTENSIONS “ONSTAGK DEVELOPER EXTENSIONS e ‘SIDE-BY-SIDE EXTENSIONS [a] Ana tron ce par eonsons © Pu rece aed devpeeentiy Ue] Sees intr © Prete mraces means tortoyeserecensy Figure 21 - Overvaw a extenebity tons ‘The three extensibility options are not isolated from each other. In many scenarios they are combined, for ‘example developing a side-by-side application in conjunction with a thin on-stack extensibilty layer that offers more suitable remote APIs to access the SAP S/4HANA Cloud functionality. 22 Key user extensibility SCENARIO —_Low-codefno-code adaptations and extensions of SAP S/4HANA applications USE CASES | Adapting Uls, adding custom fields, adding custom business ebjects and more PERSONA _ | Business expert, implementation consultant, citizen developer, key user Kay user extensibility (lormerty also known as in-app extensibility) empowers business experts to add ‘extensions to SAP S/4HANA Cloud solutions without the need to dive deeply into the implementation details of the underlying SAP applications. Key users typically have a deep knowledge of the SAP S/4HANA processes and business configuration. The focus is on so-called /ast mile extensions extending SAP S/HANA user interfaces, processes, or forms using low-code/no-code tools. Key users typically have no or only limited coding skills and therefore do not need a fully integrated development environment, with capabilities such as versioning, dependency handling, refactoring, or debugging. ‘The main argument for using key user extensibility is that simple extensions can be realized quicker than with developer extensibility, because the communication overhead between the business expert (responsible {or specttication of the extension, and later tor testing and approval) and the developer (responsible for development and developer test) is avoided, PUBIC STE KEY USER EXTENSIONS: (Low-codeine-code extensions) ‘SAP SIHANA CLOUD F] Koy user ‘extension tools @ ikohteaces reossd Bowen Shine Bee Figure 22 Key user extensaty ‘With the provided key user tools the key user can achieve the following: * Adapt the screen layout such as moving fields and field groups, hiding fields, changing labels ote Add custom fields to business objects. The custom field is then available in the entite application stack (from the Ul to the database tables or for developer extensblity), ‘+ Add custom business objects to handle custom data with very litle coding efforts. + Add custom logic to validate the custom fields using cloud BAdis. + Add custom fields to a process group (e.g., from sales quotation and sales order to delivery and invoice) to provide a consistent end-to-end extensibility, * Add custom Core Data Service (CDS) views and create new analytical applications (reports, KPIs, ..) * Copy and adapt print and email form templates. ‘The adaptations made by a key user are registered in transport requests which can be propagated from a development environment to quality assurance and production. ‘The following screenshots illustrate typical key user tasks such as adding custom fields (> Figure 2.8) or User interface adaptation for SAP Fioti apps (-> Figure 2.4). Figure 23 Asaing a custom fold with key user exensbity PUBIC OTE Figure 24 Key user adaptation ‘The following white paper, blog posts and documentation provide more details on key user extensibility ‘Custom Extensions in SAP S/SHANA Implementations - A Practical Guide for Senior IT Leadership, The Key User Extensibility Tools of SAP S/4HANA, ‘SAP S/4HANA Extensibilty: A Learning Journe\ SAP Help Portal - Personalizing and Adapting Apps. ‘SAP Help Portal - Extending an SAP Fiori Application. Extending SAP-delivered SAP Fiori elements apps using adaptation projects to create SAP S/4HANA a variants, 23° On-stack developer extensibility with SAP S/4HANA Cloud ABAP Environment Fee UM eI ee ee Re Rete nd ETL UT ee ie anes aie USE CASES | Custom applications with frequent or complex SQL access to SAP S/MHANA data Custom extensions running in the same logical unit of work? (LUW) as SAP applications Tallored custom remote APIS or services which serve side-by-side SAP BTP apps. PERSONA | ABAP developer (On stack developer extensiblityis intended for development projects requiring proximity to or coupling with SAP S/ZHANA data, transactions, or apps. The requitements ofthe extension project go beyond the scope of key user extensions and therefore require full access to development capabiltes ike debugaing, refactoring suppor, version contel et. In contrast to side-by-side extensions, on-stack extensions are developed and run on the same software ‘slack as the underlying SAP S/4HANA Cloud system, This allows extensions to access SAP S/4HANA logic land data via SAP extension points, local SAP APIS or via SQL queries. Typical on-stack scenarios are extensions with frequent or complex SQL access to SAP data (e.g, SOL ‘queries that jin customer and SAP data), which cannat be realized easly by remote data access or data replication. Another typical on-stack pattern are extensions that store custom data in the same logical unit of ‘work’ as the extended SAP S/AHANA app. 2 A sequence of programming steps and data updates distributed across multiple work processes, whose database ‘changes are updated within a single database comrnit 9 On-slack developer extersibilty uses the SAP S/4HANA Cloud ABAP Environment PUBIC TE ‘On-stack developer extensibility allows ABAP developers to connect to an SAP S/4HANA Cloud system Using the ABAP Development Tools (> Figure 2.5). This feels almost like developing custom ABAP code on ‘an SAP S/4HANA on-premise system. On-stack developer extensibilty offers the standard ADT tool support like ABAP Unit, ABAP Test Cockpt, ABAP prolller, ABAP debugger and the well-known SAP lifecycle management (change and transport system) However, with SAP S/4HANA Cloud ABAP Environment, extensions are developed using the new ABAP cloud development model (-> Chapter 4). The ABAP cloud development model ensures that no SAP object is modified and that only local public SAP APIs and public SAP extension points are used in the extensions. ‘SAP S/HANA Cloud and the ABAP Platform otter a large set of local APIs and extension points which can be used in on-stack extensions. Developers can explore these in the released objects tree of ADT (> Figure 2.6). Additionally, the SAP API business hub* provides a section for developer extensibility and SAP CDS ‘views showing the core local SAP APIs. Depending on the use case, one of these options can be used to expose the functionality built using on-stack developer extensibility on an SAP Fiori Ul: '* Create a custom SAP Fiori elements or freestyle SAPUIS app using SAP Fiori tools. + Extend an SAP-delivered app, e.g., with adcitional fields using Developer Adaptation®. + Extend an SAP-delivered SAP Fiori elements app using ABAP CDS annotations or XML annotations. ‘ON-STAGK DEVELOPER ‘SAP SHANA CLOUD Wests (custom code!partner extensions) ga \ee == Betopment ET J roo © Publics vee Ter on-siack develope exensbitiy BRU ena nase rca Figure 25- SAP S/AHANA Clous ABAP Enwonment + Business Object Interiace | SAP S/4HANA Cioud | SAP API Business Hub © Note that Developer Adaplation is not yet available for SAP S/4HANA Cloud PUBIC OE RELEASED ‘OBJECTS TREE PUBLIC APis (wap Tene aces} LOCAL EXTENSION POINTS (9.8408) Figure 26 Released object toe in ABAP Development Took USE CASES _| Custom applications for a separate target group (no ERP users) Custom application workload that shall run separated from ERP Custom applications needing proximity to intelligent SAP BTP services like machine learing, Al ete. ‘Solutions integrating with several ERP systems and cloud services ‘SaaS applications provided by partners PERSONA —_| ABAP developer ‘The SAP BTP ABAP Environment provides the ABAP Platform as a service on SAP BTP. ABAP-minded ‘customers and partners can reuse their ABAP skillset to build new cloud solutions, or to transform already ‘existing on-premise ABAP assets to the cloud. ‘The cloud applications and extensions run side-by-side to the extended SAP S/4HANA system. This model is the preferred option for scenarios which are loosely-coupled to SAP S/4HANA data, transactions, of apps. ‘Atypical side-by-side use case is the hub scenario. A hub solution integrates with saveral ERP systems and ‘cloud services, €.g., to consolidate SAP S/4HANA data and trigger derived actions via separate cloud ‘services. By their very nature, hub scenarios are loosely-coupled and can run side-by-side with the SAP S/4HANA eystems, ‘Another use case is that partners want to provide a SaaS solution and therefore need to operate their service independently of SAP S/4HANA Cloud. ‘SAP BTP ABAP Environment is specially optimized for large SAP or partner Saa$ solutions which benefit {rom the multitenancy offerings and services for partners to run and operate the solution. PUBIC OTE Figure 27 ~ Sige by side extensions wth SAP ETP, ABAP Envircoment Socterenccte ‘An ABAP developer accesses SAP BTP with the ABAP Development Tools and uses the ABAP cloud ‘development model (3 Chapter 4) to build SAP Fiori apps® or services based on the ABAP RESTIul application programming madel (RAP) (> Figure 2.7). The ABAP cloud development model ‘ensures that only released local APIs of the underlying ABAP Platform can be used. ‘One main difference compared to the on-stack extensibility model is that accessing business objects of SAP S/dHANA Cloud is only possibie using remote APIs which are published in he SAP API Hub 25 Summary of the extensibility options for SAP S/JHANA Cloud ‘The following picture shows a recap of the three ABAP-related extensibility options which are available in SAP S/4HANA Cloud, and which were introduced in the previous sections. Key USER ON-STACK DEVELOPER SIDE-BY-SIDE EXTENSBLITY EXTENSBLITY EXTENSIBILITY iS 46 tore se rome SNES SRR SEER. cant nt SCENARIO Sim ernest = Saree scramererrageme omnis cme USE pasa Un traci ti, aurracmursmrgeipasame oe omar pony CASES SSetwamonbmmeaecnes, — Sdenmtaon LUN SA Seer cscs TESLSRAETE GAGS Stara east wnat rere senert bocca” Sate ca en Seas eaten Saar Eeciecaew cnn Sm Figure 28 - Summary of ABAP-oatedextensbiay opions in SAP SHANA Cioud © The comesponcing SAP Flor Ul can be created using SAP Fiot! elements or SAPUIS tteastyie. > Developing Apps with SAP Fieri Elemenis and SAP UI5 documentation PUBIC TOE 3 WHEN TO USE WHICH CLOUD EXTENSIBILITY OPTION ‘This chapter describes when to use which extensibility option. In many cases a combination of the ‘extensibility options is needed to solve the extensibility task, ‘The major aspects to consider are: + Extension use the extension a new application, or an extension to an SAP app? + Extension architecture - is the extension loosely or tghlly coupled to SAP S/4HANA? + Extension scope & size - who provides the extension for which purpose? For example, is the extension ‘a small extension that is provided by key users in a line of business organization, a custom development project that is provided by a development organization, or a partner SaaS application that is provided to many customers (even independent irom the core product)? “The following Figure 3.1 provides a decision tree to select the right extensibility option. Tare group ant consumption ‘Sa ston? ‘Sytem orecoce ey Useror Figure 3.1 - Sequence clagram on how to find the igh extnstaityofions ‘The first three options describe typical side-by-side scenarios on SAP BTP: + External target group or consumption via mobile and consumer-grade Uls: this includes native mobile apps, apps that need freestyle UI development for consumer-grade UIs, or apps for persons without a named user in SAP S/4HANA, + Partner SaaS solution: a partner solution shall be provided as a cloud service operated by a partner. ‘This use case can only be realized separated from the SAP S/4HANA Cloud operation model and is therefore always a side-by-side scenario. SAP BTP provides multtenancy concepts to minimize the cost Of service and provides services to build and operate the partner SaaS solution on SAP BTP. + Independent infrastructure and operation: side-by-side on SAP BTP, customers and partners are independent of the cloud infrastructure and operation model of SAP S/4HANA Cloud. The main benefits are: '* Customers can flexibly access resources for the respective runtime environment. Resources can be scaled without impact on the core system. This means customers can physically outsource the workload and resource consumption of the extensions to safeguard the performance of their ERP system '* Customers can schedule the downtime of their extensions independently of SAP S/4HANA Cloud. PUBIC TE ‘+ Customers can choose the data center for the SAP BTP extension. This can be of interest ife.g., the co-location of the extension with certain SAP BTP services lke Alor machine learing is more important than the proximity to SAP S/4HANA Cloud. '* Customers can freely choose which services, libraries or products shall be used or integrated in their SAP BTP extension, ‘The next important selection criteria are the extension requirements concerning proximity to and coupling with SAP S/4HANA Cioud data, transactions, and apps. Here we distinguish between loosely- and tightly- ‘coupled extensions: Loosely-coupled extensions and custom apps: ‘Stand-alone applications or new process steps with occasional usage of SAP S/4HANA Cloud data Data is replicated to SAP BTP or read via remote AP! calls trom the core product ‘Custom data is not changed together with core data (no transactional consistency required) Data hubs or integration hubs that integrate, collect, or distribute data from many systems across, ‘company units are typical loosely-coupled scenarios, For loosely-coupled extensions and custom apps, side-by-side extensibility on SAP BTP is the default choice. Tightly coupled extensions need coupling and proximity to SAP S/4HANA Cloud data, transactions, or apps. Typical patterns for tightly coupled extensions are: Frequent read-access or changes to SAP data (many roundtrips). Reading of customer data and SAP data in complex SOL queties (e.g, joins) and with high data volume Required transactional consistency when customer data and SAP data is changed jointly. Extends the Ul of an SAP app, extends the SAP data model, implements the extension point of an SAP app. Uses local SAP APIS to build an own tailored remote service for a side-by-side SAP BTP solution. ‘Tightly-coupled scenarios shall be realized with key user or on-stack developer extensibility. “The final decision step for tightly coupled extension is to choose between on-stack developer and key user ‘extensibility + Key user extensibility shall be chasen for extensions by single business experts as explained in ‘chapter 2.2 * Developer extensibility shall be chosen for extensions requiring professional ABAP development as ‘explained in chapter 2.3. Customers may additionally define a company-specfic policy that considers available business expert and developer resources as well as the extension scenario to choose between these options. 3.4 Additional aspects to consider Finally, the following aspects should be considered for extension projects: + Consider the knowledge and experience of your development teams. With the ABAP-based on-stack and side-by-side extensibility options, you can leverage the ABAP skils of your development teams. Loosely-coupled extensions on SAP BTP can similarly be realized in other development environments, but that would require a different set of skis. + Balance between homogenous versus hybrid extensions: customers and partners must find the right balance between homogenous (only on-stack or only side-by-side) versus hybrid (mixture of on-stack and side-by-side) extensions, Homogenous extensions should be preferred for simpler lifecycles, but in some ‘cases, hybrid extensions are the best solution. + Layering of key user and developer extensibility: on-stack extensions are often a mixture of key user ‘extensions and developer extensibility. For these scenarios customers must consider that these ‘extension types are layered (key user extensions on top of developer extensions). Objects built wth PUBIC Tare developer extensibility can be released for key user extensibilty, but not vice versa. Consequently, ‘objects that are to be re-used in both layers must be built with developer extensibilty ”. 3.2 Examples 3.2.1 Key user extensibility A customer adds custom fields for new package properties (color of the ordered package) and customer member status (level of membership) to the standard SAP S/4HANA Cloud sales process. ‘These new custom fields are then part of all standard SAP S/4HANA Cloud sales screans and all process steps. This includes prefiling, validating, and using the custom fields along the entire sales process (propagate along sales quotation, sales order, outbound delivery, and billing document) Additionally, the customer creates custom analytical reports and a custom form template for the order ‘confirmation printout. The new custom fields are part of the analytical reports and the printout as well ‘This comprehensive example can be completely realized with key user extensibility tools, see: Koy User Extensibilty in SAP S/4HANA Cloud Sales | SAP Blogs 9.2.2 On-stack developer extensibility ‘A.customer simplifies the process for recurring employee purchases below a certain amount. He uses the ‘ABAP RESTIul application programming model (-> chapter 4.1) and SAP Fiori elements to implement an ‘employee selt-service app on SAP S/4HANA Cloud ABAP environment. “The apo uses local public procurement APIs and extension points to validate, create and release the purchase orders automatically. 9.2.3 Side-by-side extensibility ‘A-customer uses multiple SAP S/4HANA systems in several oftheir subsidiaries to manage his purchasing processes. To improve the purchasing process he develops a central purchasing approver determination ‘application on SAP BTP. Based on a set of business rules, the application identities the allowed approvers for specific purchasing ‘documents and provides the information as a central remote OData API to the distributed purchasing processes, 7 Exception: custom fields created with key user tools are usable in both ayers PUBIC TEE 4 THE ABAP CLOUD DEVELOPMENT MODEL, With the launch of SAP BTP ABAP Environment, SAP introduced a new ABAP cloud development model which leads to modem, cloud-ready, and upgrade-stable ABAP applications and extensions. ABAP cloud development means first and foremost. ‘Only public SAP APIs and SAP extension points can be used. No modifications to SAP objects are allowed, Use ABAP Development Tools in Eclipse (ADT) as your ABAP development environment. Build RAP (ABAP RESTtul application programming model) based SAP Fiori apps or services. ‘Technologies like Dynpro or Web Dynpro are nat supported. ‘The ABAP cloud development rules are enforced via + ABAP compiler and ABAP runtime checks: the ABAP cloud development model uses ABAP cloud as the language version®. This cloud-optimized ABAP language defines the set of supported ABAP statements, and launches syntax- or runtime errors ife.g., a non-public SAP API is used (3 Chapter 4.2), ‘* ABAP authorization checks: ABAP cloud redefined the authorizations in the ABAP cloud developer role (€@,, no authorization to change SAP objects) The ABAP cloud development model is mandatory for ABAP apps developed on SAP BTP and for ‘extensions built on SAP S/4HANA Cloud public edition and can be enabled in SAP S/4HANA Cloud private cecition and SAP S/SHANA on-premise when desired, ‘This chapter will provide details about the main building blocks of this model ‘The ABAP RESTIul application programming model (RAP), ‘ABAP cloud the cloud-optimized ABAP language version. Reuse services. Identity and access management Connectivity. Business APIs and extension points. Business configuration. “The primary purpose of RAP is to build and expose back-end services based on semantic data models. The services are then consumed by SAP Fiori apps or exposed as Web APIs. The RAP programming model is therefore at the core of every extension project (> Chapter 4.1) For the implementation layer ABAP cloud is used (-> Chapter 4.2). In addition, SAP offers a large library of reuse services (-> Chapter 4.3), ‘SAP Fiori applications follow a role-based approach which can be properly modelled with the identity and access management capabilities of the underlying ABAP Platform (> Chapter 4.3.3). Since extensions typically interface, interact and integrate with SAP's business solutions a large set of ‘connectivity options and protocols is needed (-> Chapter 4.3.4). Stable business APIs and extension points provide the semantic link to the standard application (> Chapter 4.4). Last, but not least, business configuration frameworks and tools provide the flexibility to deliver extensions {for a wider range of business scenarios and use cases (> Chapter 4.5), Inthe following we will examine the various building blocks in more detail, 4.1 The ABAP RESTful application programming model In recent years the requirements for business applications and related technologies have significantly ‘changed. End users expect enhanced user experience qualities. For example, continuous work - start ® ABAP cloud is aso referred to as ABAP for Cioud Development, ABAP classic fs also referred to as Standard ABAP (eg, in ABAP Development Tools) PUBIC Tare ‘working at home, continue during commuting and finalize the task at the company or the ability to accomplish tasks on different device types. In addition, end users expect personalized, web-like business apps. So, user ‘experience is taking center stage in a constantly evolving business landscape. ‘On the other hand, modern business apps must be able to run in hybrid system landscapes supporting cloud, on-premise and virtualization. In addition, these modern business apps must continue to meat the requirements of latge enterprises including all the steps of the product Itecycle. To satisfy all these business needs and to make the development of modern business applications efficient, ‘a standardized ABAP programming model that guides ABAP developers and optimally supports cloud ‘operation, SAP Fiori, and SAP HANA, has become a pressing need. ‘To meet this need, SAP offers the ABAP RESTIul application programming madel (RAP). RAP is the new standard ABAP programming model used at SAP to build SAP S/4HANA Fiori apps and services. RAP is the recommended programming model for customers and partners for all ABAP based SAP S/4HANA ‘extensions. 4.1.1 The big picture RAP is a sot of concepts, tools, languages, pawerful frameworks, and best practices provided on the ABAP. Plattorm for efficient and rapid development of innovative and cloud-ready enterprise applications, as well as the extension of SAP standard applications in the cloud and on-premise. RAP is deeply integrated with the ‘ABAP language and the ABAP development tools have been optimized to support the RAP development flow. The main RAP building blocks are: ‘+ Core Data Services (CDS) used for SAP HANA optimized queries, to define semantically rich data models for all application domains, and to define the transactional behavior of the modeled entities. ‘The modemized and extended ABAP language used to implement business logic. ‘The OData protocol used for stateless communication. ‘The concept of business object (BO) used for building transactional applications, ‘The concept of business service used to define services, RAP offers a standardized development flow in the modern, Eclipse-based ABAP Development Tools (ADT) anda rich feature set for building applications from different domains, such as transactional and analytical ‘apps, either from scratch or by reusing existing custom code. Buil-n capabilities such as ABAP unit tests (2 Unit testing with ABAP unit) the ABAP cross trace tool (-> Working with ABAP Cross trace tools), and knowledge transfer documents (-> Documenting ABAP development objects | SAP Blogs) are offered along the RAP development stack to cover core software quality concepts such as testabilly, supportablity and documentabilty Different types of services can be built with RAP: + OData-based services for building role-based and responsive SAP Fiori apps. * OData-based sarvices for exposure as Web APIS. * Business events. Figure 4.1 gives an overview of the RAP big picture. A detailed description of the architecture can be found in the RAP developer guide: RAP Developer Guide on SAP Help Portal PUBIC TET Wes APIs EVENTS: ‘SAP FIORI Uls CCongume OD as bases sevices Conus business evens Consume ODate bases Ut ‘CONSUMPTION servoee SERVICE BINDING - 23 0 petsce venton and eonare © SERVICE DEFINITION — eine scxpe10 be exosed BUSINESS OBJECT PROJECTION AND INTERFACES () cos: 80 projection views (@)s0eF Beaver pejacton ‘BUSINESS: © chavo implementation" sina (G)s0Ar- bares ingonaiaton PROVISIONING cos ewrmes. ‘BUSINESS OBJECTS cos: ata mosetng (60S: Data modeing (G BOEE: Bonar ct JbaTA MODELING (AAP: Bate een ‘BEHAVIOR Figure 41 - RAP big pictre Cloud-ready and upgrade-stable apps and services can be built when using RAP together with ABAP cloud, released SAP APIs and objects. ‘SAP uses RAP to provide local APIs on SAP S/MHANA Cloud for central business objects like Sales Order. ‘These APIs can be used for on-stack developer extensibility to @.¢., create or change a Sales Order. Examples of thase local RAP-based SAP APIs can be found in the developer extensibility section of SAP API business hub’. Find more information on RAP here: Modem ABAP Development with the ABAP RESTIul Application Programming Mode A more detailed description on supported RAP implementation scenarios and when to use which option can be found in this blog: Modemization with the ABAP RESTiul Application Programming Model (RAP) | SAP. Blogs 4.1.2 Extensibility of RAP business objects (RAP BO) Business objects developed with RAP can have built-in extensibilty options". They can be extended as part (of the developer extensibility”? model This is particularly useful when SAP S/4HANA business objects or AP business objects rom partner applications have to be extended. The extensibility options for RAP business objects are of course designed for Itecycte stability and a separation of concems between the ‘original RAP BO and its extensions. By default, extensibility of a RAP BO is disabled. Therefore, RAP BO extensibility must be explicitly ‘enabled on the orginal 80", to allow extensions at dedicated extension points. The extension options are developed to be controlled on a fine-granular level, o give full control over which parts of a BO can be ‘extenced with what kind of extension. Trying to define extensions for non-enabled extension points of the original BO leads to a syntax error and cannot be activated" ° hitps Map sap com/products/SAPS44HANA Cloud/develonerextensibitybointertace "© Providing RAP BO extensioilly for Key users is planned for upcoming releases 1 The orignal RAP BO is the base BO on which the RAP BO extension bears * Exlensiilly enablement of RAP BOs created by SAP can only be enabled or changed by SAP and not by customers or partners PUBIC Tere Its crucial to understand that: + Each RAP BO extension can only define behavior specifically for its own extension elements and ‘operations and is independent of all other RAP BO extensions. ‘+ RAP BO extensions cannot redefine or change any behavior for any elements of the original RAP BO. From the consumer's perspective, the original RAP BO and all associated RAP BO extensions appear as ‘one large RAP BO. Wes apie ‘SAP FIOR! Lie EVENTS [cONsuMeTION service ows sence none ‘SERIE PROJECTION ausmess SERVICE Figure 42. RAP Extensbilty options overviow ‘The major extensibility scenarios for RAP BOs, as shown in Figure 4.2 are: ‘Adding a new field including related business logic. Enriching the business logic of the BO. ‘Adding a new action resulting in a new bution in an SAP Fiori application. ‘Adding a completely new entity to an SAP BO, ‘The extensibility options for RAP BOs are described in Table 4.1 below and links to further information are provided Maga aca d DATA MODEL. Extensibility enablement: EXTENSION ‘Add annotations and extension include structures to the original RAP. Buca BO to enable data model extensions. For more information about enabling full-stack data extensibility, entonsions by acing new oe ‘ re felis and assoctons "| FE an plementation orale See Eatin Feld xls including corresponding ais ey a behavior characteristics and uthorzaton contro, _ Extension development Extends the original RAP BO with new fields or associations including fil characteristics depending on the options defined by the extensibility enabler. For more information about how to develop data model extensions, see CDS Daa Mosel Extensions For an implementation example, see Develop Field Extensions. PUBIC TE ee Maegan ard BEHAVIOR EXTENSION Extensibility enablement suléaaitenalenavor "tales at el eters and bar extension like new validations, ae . ke new vaidatons, Formere inormation about how te enable your BO for behavior eterminations acne rensone, see Extenity Enablement or Behavior Extensions. oueol et oa field- For an implementation example, see Enabling Non-Standard Behavior se iea oe and Feld Related Sehavor and Enabing Standard Behar i Extensions. Extension development Extends the original RAP BO with new validations, determinations or actions depending on the options defined by the extensibilty-enabler. For more information about how to davelap different behavior extensions, see Behavior Extensions. For an implementation example, see Develop Behavior Extensions. NODE EXTENSION Extensibility development: ; _ les __ Enables node extensibilty on the original RAP BO. Bud additional BO nades For more information about nade extensibility enabling, with own behavior and Pet data model with node Extensiilly-Erablement for the Node Extensibiiy. onsrabaly For an implementation example, see Enabling Node Extensions. Extension provisioning: Extend the orginal BO with new nodes that have their own data model and behavior. For more information about how to develop node extension, see Node Extensions, Table 4.1 -Extenebty options for RAP BOS 4.2 Cloud-optimized ABAP language ABAP is a programming language highly optimized for business applications, both at the small and at the large scale. Itis designed to minimize the total costs of development for business applications. As such, the ABAP language has evolved over a long time from procedural and dynamic programming to ABAP objects ‘and is the foundation of the ABAP RESTtul application programming model. Thereby, both its capabilities and the number of ABAP keywords increased steadily, allowing for enormous flexibility but leading to ‘complexity at the same time. Now, for the ABAP cloud development model, the scope of ABAP language commands has been refined to simplify and standardize ABAP development and enable cloud-ready programming. In the new language version named ABAP cloud, only modern ABAP statements and concepts, with a focus on cloud-enabied, ‘object-oriented design and modem programming models are supported. Using non-supported statements results in syntax etrors. To ensure the intearity of the cloud extensibility model direct access to the file system, profile parameters or ABAP server operations is not permitted, ‘ABAP cloud is mandatory in SAP S/4HANA Cloud public edition and in SAP BTP ABAP environment and ‘can be enabled in SAP S/4HANA Cloud private edition and SAP S/4HANA on-premise when desired. More PUBIC Tere details are provided in chapter 5. An overview of programming concepts is shown below and serves as a (non-comorehensive) list of criteria to decide which concepts can be used or not rest al sects ‘Core Daa Senne (C05) ) -=- ‘Sys ace va ABAP Development Tost aese etennon pot for deus dvs ‘SAP data can only be accessed by using ABAP SQL or ABAP managed database procedures on released SAP CDS views, or by released SAP APIs, For more information on ABAP cloud scope, see the ABAP Keyword Documentatior Many technical ABAP Platform features and reuse services are available via public APIs and libraries © Chapter 4.9), 43 ABAP Platform reuse services. Besides RAP as programming model for cloud-ready development and ABAP cloud as language version, the 'ABAP cloud development model comprises further aspects like usage of modern reuse services, released {APIs and modem business configuration and connectivity frameworks. 43.1 Released local APIs ‘The released local APIs constitute the local public interface of the SAP code. This stable intertace is the key {othe lifecycle independence of SAP code and customer and partner extensions. Hence, only released interfaces, released APIs, frameworks and services can be used in extensions, “The scope of released local ABAP Platform APIS is continuously enhanced and already covers major building blocks: * Data access APIs (CDS views). Technical ABAP Services (Parallel Processing, Compression/Decompression, Funtime Info, Dynamic Programming, XSLT, ...) * Technical Reuse Services (-> Chapter 4.3.2) * APIs required to develop integration scenarios (OData, HTTP, RFC, SOAP, Business Events > Chapter 4.3.4) Important SAP APIs and abjects which are not suited for cloud development have been replaced by new and moder APIS that ft into the cloud extensibility model. For these objects, having a direct successor released {or cloud development, the syntax error messages directly point towards the successor to be used. An ‘example is given below in Figure 44, A direct select on the database lable Tes is forbidden, the successor, CDS view 2_cOUNTRY, is directly indicated in the syntax error ¥ © Eros) tem) @ Toe use of Table T25 is not permite. Use CDS Enity | COUNTRY instead Figure 44 Syntax enor or drect able accoss| PUBIC Tore All released APIS are shown in the released objects tree in ABAP Development Tools. In case releasad APIs. are missing, please make use of the Customer Influence Channels for the ABAP Platform (https:/influence.sap.com/sap/ina/#campaign/2911). ‘This way you can shape and sharpen the public APIs available for your extensions in the cloud extensibility model 4.3.2 Technical reuse services ‘Technical Reuse Services are essential to lower the TCD and TCO of business applications. Hence, dedicated released APIs and configuration possibilities for well-known ABAP Platform reuse services like Change Documents, Number Ranges, Email Processing, Factory Calendar, and others are provided. In ‘general, to achere to the principles for cloud development explained above: + Reuse services are consumed by calling the corresponding released local APIs. + Necessary davelopmant objacts (ike a number range object) are developed in ABAP Development Tools. ‘Required configuration and monitoring is done via SAP Fiori Apps. ‘As with the scope of the ABAP language, also in the area of reuse services, cloud-optimized services used by SAP S/AHANA are enabled for consumption in the context of developer extensibiliy and replace existing ‘older services and frameworks. Popular examples of technical services which shall be used in developer ‘extensibility are provided in the table below. Note that this table is only a snapshot providing hints on which ssrvices to focus, but is neither a complete list of all services, nor does it state that all services listed there are already available in the full functional scope. Instead, the services listed to be used will be enabled and integrated into the programming model step-by-step ‘TECHNICAL REUSE SERVICES USED IN CLOUD DEVELOPMENT Email Service =| saPomes Email Templates ° Factory Calendar . "Notes for Apelication Objects © | SAPsctptLongtexts, STL Knouladge Transfer Documents | SaPscnpt, SE61, DOKTL Forms Processing integrating SAP BTP Forms by Adobe | SaPsctpt, smarttorms ‘Adobe Forms © | SAPsctipt, Smarttorms Number Ranges . change Documenta . ‘Archive Development Kit ° Information itecycle Management ° Printing Queue © | Spool Application Jobs | Classica! Bat Joo sM38 ‘Application Logs . XCO ABAP Repository + | Legacy Worbench APIE, eg, for DIC PUBIC BOTT Dee eae Rake ake XCO Standard Litxary . Translation . Units of Measurement . ‘SAP BTP Document Management Service + | KPro, Content Server, SAP Otice ‘SAP BTP Worktiow . SAP BTP Rules . ‘Teme zones . Exchange Rates and Currency Conversion : Gonene Object Senicas, Business Attachment Service © | Document Service, Archive Link, SAP Ottce ‘SAP SIAHANA Output Control © | Post Processing Framework Table 4.2 Technical rause services fr coud develop 4.3.3. Identity and Access Management In cloud products a strict content separation between users and roles is neaded to ensura stable cloud ‘operations. Thus, customers de not have direct access to the classical transaction for role maintenance (PFCG). Instead, SAP delivers a new cloud Identity and Access Management (IAM), which consists of: ‘IAM SAP Fiori apps for user and role maintenance on top of IAM catalogs and role templates (maintain business roles, ...) and APIs for user upload e.., from SAP Identity Provisioning Service or other SCIM providers, + The IAM app, IAM business catalog, and IAM business role templates, for creating IAM content for their ‘own applications and for SAP applications (with released authorzation objects). + IAM catalogs and role templates for cloud-enabled applications delivered by SAP application development + Key user extensibilty: with a custom catalog extension, customers can extend an existing SAP IAM. ‘eatalog (¢.9., add authorization allowing to start a custom OData service) in an SAP Fiori app. Business users can authenticate via the SAP cloud identiy services. The Identity Authentication Service can be set up in proxy mode to use a corporate identity provider in hybrid landscapes. More information can be found in this SAP community blog: Integrating Identity Authentication service in SAP loud Platform ~ Proxy & Conditional Authentication scenarios. 43.4 Connectivity Connectivity capabilities of the ABAP Platform are key to enable integration between SAP cloud products, SAP BTP services, customer extensions and external services. In hyorid landscapes, the SAP Cloud Connector can be used to integrate with protected internal customer landscapes by providing detailed control ‘over a secure tunnel connection, “The integration with extemal APIS is simplified through the generation of typed proxies in the system from uploaded metadata via the service consumption model (OData, SOAP, RFC) and event consumption model PUBIC OTE Deprecated integration technologias can no longer be used (e.g, Doc), only released frameworks are available for cloud development. A list of the current scope is alven below. Meu codeek marek cs (OData services Business Events HTTP services RFC via cloud enabled WebSocket RFC SOAP consumption (SOAP service provider planned) SQL service for extemal ODBC clients ‘SAP information access (InA) for analytical clients Table 4.2 tegration frameworks for claus development ‘To ensure content separation between credentials, customers do not have direct access to classical transactions for destinations (SM59) and logical ports (SOAMANGER) in SAP S/4HANA Cloud. Instead, SAP delivers a new Cloud Communication Management, which contains: ‘+ The ABAP Platform provides SAP Fiori apps for both inbound and outbound communication (Maintain ‘Communication Arrangements, Maintain Communication User ...) * Custom development: using the development objects Communication Scenario, Inbound & Outbound Services, customers can create integration content for theit own applications and for SAP application (with released services). + SAP application development delivers Communication Scenarios for supported integrations, + Key user extensibility: key users can create their own Cammunication Scenarios for OData services {generated from released CDS views and own applications in an SAP Fiori app. 4.4 SAP S/4HANA business APIs, extension points and events In addition to the ABAP Platform content, in SAP S/4HANA deployments released business APIs and ‘extension points are available in the ABAP cloud development model (> Table 4.4), Cetera) err Mee tao esos nic} * CDS Views © OData services ‘© Business Add-ins (BAdIs) © SOAP services pe rae ares + RAP BO extensions Sea * Classes + Events (planned) Table 4.4 Avalable business APs and extension points n SAP S'4HANA Information on the released SAP S/4HANA APIs can be found in the product documentation and on the SAP API Business Hub. In case an API is missing, please request itn the Customer Influence Channel for SAP S/4HANA: (htipsv/influence.sap.com/sap/ino/#/campaigtv'2759) PUBIC TETHE 45 Business Configuration (BC) ‘The ABAP Platform provides two programming models for business configuration (BC) apps + SAP GUL-based BC apps (SM30 - table view maintenance, SES4 - create table maintenance view), + SAP FiorifRAP-based BC apps. ‘Some aspects of business configuration apps are different from other apps, and the programming models reflect these differences. BC maintenance apps are used less often, and they are usually very simple ‘compared to the apps for master or transactional data. On the other hand, applications often have a greater umber of BC maintenance apps compared to the apps for master and transactional data. This calls for highly standardized apps. Therafore, the programming madels support standardized: Maintenance Uls. ‘Authorization management. ‘Change log. Maintenance of language-dependent texts. ‘Transport recording, Customers and partners in SAP BTP ABAP Environment and in SAP S/4HANA Cloud public edition ean only implement SAP Fiori/RAP-based apps. SAP GUIWeb GUI is not supported. For this purpose, SAP provides ‘a wizard to generate the required RAP objects and a generic SAP Fiori Ul. With these tools customers can ‘create simple maintenance apps with low development effort Details are described in the following tutorial Create a Business Configuration Maintenance App Customers and partners using SAP S/4HANA on-premise or SAP S/4HANA Cloud private edition can decide per scenatio if they go for SAP GUI or SAP Fiori BC apps. Customers and partners migrating their classical custom ABAP code trom SAP S/4HANA on-premise to SAP BTP ABAP Environment and SAP S/4HANA Cloud public edition can keep their configuration tables and generate an SAP Fiori/RAP-based app on top of these tables using a generator (available as of SAP S/4HANA Cloud release 2208) PURE Tare 5 EXTENDING ANEW SAP S/HANA CLOUD PRIVATE EDITION OR SAP S/4HANA ON-PREMISE SYSTEM ‘Today, in SAP S/4HANA Cloud private edition and SAP S/4HANA on-premise deployments, classic ABAP ‘custom code is generally used for extensions. This endangers smooth upgrades and makes further cloud, transformation steps more dificult, Hence, as explained in chapter 1 and chapter 2, reusing the SAP S/4HANA Cloud extensibility model also in private cloud or on-premise deployments is beneficial and recommended ®, In this chapter we provide guidance on how to achieve this goal. For simplicity, we will nly refer to the SAP S/4HANA private cloud, keeping in mind that the statements also hold for on-premise. In the private cloud we need compromises with respect to the pure cloud extensibility model since the broader functional scope of SAP S/4HANA Cloud private edition is not covered by public SAP APIs and typically existing classic ABAP custom code must be handled, ‘Therefore, the private cloud must allow extension use cases that are not supported in the public cloud (e.9., Using non-released APIs, extending Dynpro-based transactions). ‘To manage the coexistence of these different extensibility models in private cloud deployments we propose to work with three extensibilly tiers as shown in Figure 5.1 + Tier 1 - Cloud development: default choice for all new extensions following the SAP S/4HANA Cloud extensibility model + Tier 2— Cloud API enablement: mitigation of missing local public APIs or extension points. Here, ‘custom wrappers for non-released SAP objects are built and released for cloud development so that they ‘can be used in ter 1 ‘Once SAP provides a public local API, the custom wrapper can be removed. In this sense, tier 2 serves as an extension to tier 1 which wil follow the same ABAP cloud development model besides the usage of the wrapped non-released SAP object, + Tier 3 - Legacy Development: classic extensibility based on classic ABAP custom code that is not ‘supported in the ABAP cloud development model. The goal is to avoid and raduce developments in this tier to minimize the risk of upgrade issues. Guidance on how to achieve this for transformed legacy code is given in the next chapter. PCeTry Clu atest ede earn mipgeco sel come es waa rezismeevace ||| Seoretor Eine TER - oud AM eaten gies pat tA ero Figure 51 - Overview othe veer extensbilly model "© The trst version of the ABAP cloud development model will be available ln SAP S/SHANA Clous private ection and ‘on-premise wah the next SAP S/4HANA releaze planned for @4/2022. PURE RTE 5.1 Setting up the three tier model ‘The tiers shall be materialized as software components including clear interfaces between the tiers". Each tier has assigned development rules and code checks, The relevant setting for the software component is the ABAP language version + Software components using the language version ABAP cious: all objects created in this software ‘component must follow the ABAP cloud development model * Software components using the language version ABAP classic "objects that don't follow the ABAP. ‘loud development model. Using dedicated software components ensures that objects based on ABAP cloud cannot use objects in a software component based on ABAP classic. However, individual objects can explicitly be released for cloud development to make them accessible in software components based on ABAP cloud, ‘This setup is shown in the figure below. [ABAP code objects developed wih ABAP classic Shd released fr elu development [| Ss [ae] Figure 52 Setup of he vee ter meade! 'ABAP code objects in software components based on ABAP cloud can only use: * Code objects inside the own component, + Released SAP code objects. * Code objects released for cloud development of the software component based on ABAP classic. ‘Objects in software components based on ABAP classic have unrestricted access to other objects: * Code objects inside the own component. * Released and non-released SAP code objects. * Objects in software components based on ABAP cloud, ‘The language version for individual abjects in a software component based on ABAP classic can be changed to ABAP cloud if required (-> Figure 5.3) "©. ‘This option can be used to transform code step-by-step to prepare it for a move to a software component based on ABAP cloud "”. The ABAP Test Cockpit check variant ABAP_CLOUD_READINESS can be used to ‘check whether the rules of the ABAP cloud development model are respected during this transformation’, “Tier 1 Is modeled as a separated software component to assign the ABAP cloud language version. Tier 2 and 3 can reside in one software component (oath use the ABAP classic language version) separated by packages or separated Software components are Used here as well 'S ABAP classic is also referred fo as Slandars ABAP ° ABAP cloud is also referred to as ABAP for Cloud Development, ABAP classic is also refeired to as Standard ABAP. (@.. in ABAP Development Tools) " Note that the individual change of the ABAP language version is possible for ABAP code objects (e.9., classes, interfaces) as of SAP S/4HANA release 2019, while the change ofthe language version for DIC, CDS and otner Objects is possible as of SAP SISHANA release 2022 '® For more information, see also: Hove lo check your custom ABAP code for SAP BTP ABAP Envitonment PUBIC ETE hotiens Sroaert. 1 Temps. Wocokm. stiscie. etskust Greco. we Tanyo. @rowsle FAICPo. WADAPL. = & © [ope] ZcL 15 DEMO STD Tesco espera SeHNUENT (Dr ig] © SHectAEAPLom.ngc Veen Lestcngesby, ——_SOHNEIDERT_ (DT Lococngesont May 222 "2045 Figure 53- Seting te ABAP Language Version for incl eben ADT An overview of setup, tools, and rules in the three tiers represented by software components is given in the table below TOOLS / RULES FOR ON-STACK ‘CUSTOM ABAP CODE era i ‘The ABAP coud development mde used + ny osjecs asec on ABAP cloud can be Tier t eated Cloud Development «BAP coud anguage is enforced via syntax check This tieris dedicated for» Usage of eleased APs enorced via Sonware component based the cloud ready symtex-eneck on ABAP cloud aeaoaea at fi + Rasonmended ATC Checks: al checks of applications and ATC variant — ‘ARAP_CLOUD_DEVELODMENT_DEFAULT plus SVCHLCHECK-ABAP_LANGU_VERSTON + ADTIn the mandatary IDE + APIs canbe released fr usage ter 1 {Only objects based on ABAP coud should be ‘rated Ths enforced via ATC check see Tier 2 a Cloud API Enablement « _ABAP douse enforced vie ATC check (see Dei) This toris dedicated for «Usage of released APIsis enforced via ATC Now packages in HOME or the enablement of tock (00 below ‘an Sofware component {eloacod APle as wrapper «Usage of mn-eleasad APIs canbe controled around non released SAP via ATC exemptions rem + ecommened ATC checks: al checks of Tovar ‘BAP CLOUD_DEVELOPMENT_DEFAULT and ‘ABAP_CLOUD_READINESS Tier 3 LSeey Development * Ne rstrctone conceming woes ABAP language, exec pes ar API age This ieris decicatod or uaa neath feueae of legacy ABAP_CLOUD_DEVELOPMENT_DEFAULT caine New packages in HOME or ‘own software component Table 51 - Overview ofthe tree exensbitytrs PUBIC WTAE {tis important to realize that in the software component representing tier 1 the clean rules of the ABAP cloud development model are enforced by syntax and runtime checks and cannot be circumvented, In contrast, in tier 2, the ABAP cloud development model is governed by ATC checks. This way itis possible to provide clear guidance towards clouc-ready development and at the same time introduce a monitoring and ‘governance option for deviations from the ABAP cloud develapment model Another important mechanism to control the kind of extensions being developed are proper authorizations: with the new authorization abject S_ABPLNGVS administrators can control if a developer can create abjects, based on ABAP cloud only, or also abjects based on ABAP classic. Restricting the developer to the modem programming model with ADT is also based on the developer's authorization and can be controlled by the ‘authorization object S_DEVELOP “In this way its possible to create a dedicated developer role to enforce ABAP cloud development in tier 1. For development in tier 2 and 3 an extended development role can be provided and assigned to selected developers only. “To make the three-tier model more tangible, here are some examples of custom code use cases and their mapping to the three-tier model veo een sae uo] ‘Custom field on DB table or CDS view via released extension include Implementation of released SAP BAI 1 ‘Custom field on DB table or ODS view vie ‘Monitor winen extension include extension include that has not been released or 3 | willbe available and adapt va classic append accoraingiy 1ons _| Implementation of an SAP BAI that has not Monitor wien BAdI wll be exrens! been released 3 | released and adapt accordingly Extension ofan SAP Fiori app (RAP based) 1 Exlension of an SAP Flot app (SEGW, BOPF, U5) Extension ofan SAP appication with legacy Ul 9 | Monitor SAP Fi application technology, « g., SAP GUI transaction will be available (Custom SAP Fiori app (RAP based) for the core SAP S4IHANA Cloud scope Prefer to use RAP. Exception fesetad Custom SAP Fiori app (SEGW, BOPF, UIS) | eo ee OE ere APPLICATIONS ‘Custom application with legacy UI technology (@g,, ABAP report with ALV, WD application) 5 [Sete ‘SE54 based BC UI 3 Wrapper classes around SAP objects that have ‘Monitor wnen the released ‘ot been released (e.g., BAPI) forthe core 2 | RAP intertace is available and SAP S/ZHANA Cloud scope Teplace the wrapper WRAPPER APL \Wrapper CDS view for SAP table or CDS views ‘Monitor wnen a released CDS that have not oeen released forthe core 2 | View is available and replace SAP S4JHANA Cloud scope the wrapper "In prvate coua systems, there Is no oplion to technically force developers to use ABAP Development Tools in Eclipsed only. Bul we stronaly recommend using ADT PUBIC OTE Oo CW) Doe So RAP neraces a wrapper sound SAP objects SterrpenisfSar Pils Goutony scope 2 tea Hew oping SAP note wih manvalcorecione@,} 4 | Rsstmaiioson once he O60 ect Hom SAP BASIS Covecton pata crs ines of hdr oto ontori SAP leased BA MODIFICATIONS | capmv4sa) a can be used instead oct (Bune a) 2 | Szutbe stowe ony n Tle 5.2- Custom cade use cases and the mapaing ‘Armajor difference between SAP S/4HANA Cloud public edition on the one hand and SAP S/4HANA Cloud. private edition on the other is the Identity and Access Management (IAM) and Communication Management (COM). In SAP S/4HANA Cloud private edition, there is no strict content separation between SAP and customers with regard to users, roles, and communications. The administrative SAP Fiori apps for AM and ‘COM are not available. Instead, the classic transactions must be used (PFCG, SM89, SOAMANGER, ...). 5.2 Tier 2: When and how to use classical ABAP code to mitigate missing APIs ‘As explained above, the target for any new extension is tier 1. I a suitable public API is missing, custom ‘wrapper objects around the non-public SAP APIS willbe created in tier 2. The wrapper objects are developed based on ABAP classic and need to be released for cloud development as shown in Figure 5.6 Feria eaaamaies & Figure 5.4 ABAP clas rleased for cloud development ‘The rest of the code and other objects created in tier 2 will follow the ABAP cloud development model. Once SAP releases the necessary APIs, the non-released objects used in the wrappers can be replaced by public local APIs and the code can be moved from tier 2 to tier 1. PUBIC WaT Inthe following we provide more guidance how to develop such wrappers: + CDS views fa suitable SAP CDS view exists that is not yet released, a custom CDS view on top of the SAP CDS. view can be created and released for cloud development. CDS views that are referenced in the SAP CDS. views (e.g., association targets or value help views) may need a custom wrapper as well Ia suitable SAP CDS view does not exist at all, a custom CDS view on top of the database table needs to be created. + ABAP classes/intertaces Ifa suitable SAP function module or class exists that is not released, a custom wrapper class can be created and released for cloud development, ‘When creating such a wrapper class for an SAP class or function module that has not been released, no ccopies of data types that have not been released (data elements, structures, table types) used in the signature of the abject that has not been released willbe created. Instead, those dala types will be wrapped as well, using TYPES declarations in the public section of the wrapper class. In this way, only the wrapper class itself needs to be released for cloud development, ‘Source code 6.1 shows an example for a wrapper of BAPT_SALESORDER CHANGE ‘ior Store aso ty ee Baa ‘Han oven tonaeinw Woe beech, ‘Fors Cpuccemee TE STMCRS MALE‘ partoee HW BAY RR Source cade'5 1 - Simplifed wrapper for BAPL_SALESORDER_CHANGE + RAP business objects Ifa suitable SAP function modulo (e.g., BAPI) or class exists that is not released, and itis planned to ‘expose the functionality and data model as OData or Web API itis possible to create a custom wrapper RAP business object and release it for cloud development. Ifthe SAP function module or class offers a check method or simulation mode, a check action or function ‘can be implemented optionally ‘Wrapper RAP business objects willbe defined in the so-called strict mode. The strict mode adds accltional checks during development so that the RAP business object is developed in a lfecycle-stable More on RAP BO strict mode can be found in the RAP 80 documentat PUBIC Bre + Authorizations Ifa classical SAP APIis used, itis likely that non-released authorization objects will be checked. These authorization objects cannot be used with ABAP cloud. Thus, all service bindings, HTTP services, ‘application jobs, and event consumers that use authorization objects that have not been released in their default authorization values need to be developed based on ABAP classic. PFCG roles can be built using both authorization objects that have been released as well as ones that have not been released. 58 Tier 3: Classic extensions Extensions that do not follow the rules of ABAP cloud development and cannot be developed in tier 1 and 2 need to be developed in tier 3. The clear recommendation is to control and minimize extensions developed in this tier because they may lead to errors during upgrades. An extension in tier 1 and 2 is always to be preferred over an extension in tier 3 In the following sections we give guidance on haw to reduce the negative impact of such extensions for selected extension scenarios. 5.3.1 Using classic structure extensions Structure extensions are extensions of the data model of database tables, structures, CDS views, and services (OData, SOAP, BAPI, IDOC, ...) ‘A general rule for related objects is: no modifications to the corresponding SAP objects, pple Append fields to non-released structures and database tables using existing customer includes (Clincludes) or extension includes (EEW includes), + Use domain value appends, search help appends, search help exits, cps + Use CDS extends. + Use GDS metadata extension. OData Services # Use redefinition of OData services. More information can be found in: How to redefine ADS based OData services? | SAP Blogs. 5.3.2 Using classical business logic extension techniques Classic business logic extensions should follow the below recommendations below: + BAdls: even if a BAd! is not released for usage in cloud development itis a good choice for customers to extend the application. Most likely the BAd! will be released with an upcoming release or will be replaced with a released BAd! as successor. * User exits, like VOFM, SAPMVASA: user exits are coding parts pre-defined by SAP (form routines, includes) in SAP namespace where the customer can implement custom code to extend the SAP. business process. The predefined coding parts from SAP are stable and typically do not lead to issues ater an upgrade. Technically the custom code here is treated as modification. Itis planned that BAdIs will replace these extensions over time, + Customer exits (SMOD/CMOD): customer exits is the predecessor technology of BAdls and will be replaced. Anyhow you can still se them in exceptional cases where no BAdIs exist yet in the application, Most likely they will be replaced complately with upcoming releases. + Explicit enhancement spots: these are extension points that were mainly created by SAP to enable industry specific adaptations to the core ERP applications. We recormmend using them only in exceptional ‘cases to include custom defined BAdIs into the SAP core. You should not directly include extension code into the enhancement spot, + Implicit enhancement spots: this extension technique is very similar to modifications and should therefore not be used to extend the core applications, PUBIC TOE 5.3.3 Modifications Modifications of SAP core abjects should be avoided completely. In case they cannot be prevented, we strongly recommend using the modification assistant, This makes the adjustment of the modifications after ‘an upgrade manageable in contrast to free-style modifications, Moreover, the ATC check Search customer ‘modifications allows one to establish a govemance for this purpose. PUBIC TE 6 MANAGING AND TRANSFORMING EXISTING CODE IN SAP S/4HANA CLOUD PRIVATE EDITION AND SAP S/4HANA ON-PREMISE. 6.1 How to handle existing classic ABAP custom code in parallel with the new cloud ready ‘extensions In chapter 5 we described how customers should apply the cloud extensibility model in a new implementation project. Now we want to look at SAP S/4HANA projacts where a classical conversion is the basis for the transition. In this ecenario the customer must handle existing classic ABAP custom code. In the 3-tier model described in chapter 5 the converted classic ABAP custom code willbe in tier 3. ‘The goal is to minimize and control the content of tier 8. Therefore, we recommend leaving behind as much oid legacy code as possible when converting to SAP S/4HANA — cleaning up some time after the conversion involves much more work. ‘We do not want to repeat all he recommendations for custom code in a conversion project as this is already described in the whitepaper: In a nutshell the procedure is: + Analyze the classic ABAP custom code with the Custom Code Migration App to estimate the impact. + Detect unused classic ABAP custom code based on usage analysis and remove it during the conversion. * Adapt the classic ABAP custom code by using ABAP Test Cockpit and automate the adeptation with quick fixes, ‘We now want to focus on the recommendations for customers on how to apply the cloud extensibility modal after a system conversion. In principle the three-tier model is also valid for these customers with the difference that the amount of legacy code in ier 3 is much higher. Rewriting the complete legacy code with the cloud extensiblity model is expensive and would be like a new implementation project. Therefore, we recommend the following options for the existing legacy custom code: SA Sn VER cloud ae made Cleat ABAP development © Figure 61 - Options for custom code migaton Retire unused code: the analysis of classic ABAP custom code in SAP S/4HANA projects shows that roughly 60% (sometimes even more) of the code is not used productively in a typical ERP system, In case Yyou did not use the option of removing classic ABAP custom cade during system conversion we recommend making use of the custom code usage analysis in the productive SAP S/4HANA system to detect unused ‘code and retire the code accordingly. PUBIC ETE ‘After an SAP S/4HANA transition large parts of the classic ABAP custom cade ara no longer relevant because the use case of the customer extension is now part of the core application. We recommend removing the customer extension and using the core logic instead. ‘The same apples for clones of SAP code. Remove the clones and use the cloud extensibility model to fulfill the business requirements directly in the core application. ‘Typical tasks for custom code retirement: Collect usage data in production with transaction SUSG/SCMON, ‘Analyze usage data in SAP's Custom Code Migration app. Removelbackup unused classic ABAP custom coda with the Custom Code Migration app. Use the clone finder. Renovate & Innovate on SAP BTP: another portion of the classic ABAP custom code no longer fits the modern approach to Intelligent ERP. Instead, the SAP Business Technology Platform (SAP BTP) should be used with its broad set of business services and innovative technologies like machine leaming Replace the classic ABAP custom code and move the extension use case ta SAP BTP. Especially for Joosely-coupled extensions, this is the right way to keep the core clean ‘Typical tasks are + Analyze dependencies between extensions and the core with the Custom Code Migration App (more information: Custom Code Migration app in SAP community) ‘Transfer custom code trom SAP S/4HANA to SAP BTP. * Adapt custom code in SAP BTP via ATC and Quick fixes Renovate & Innovate on the SAP S/4HANA ABAP platform: after a system conversion there is still a ‘cettain amount of custom code which does not match the categories above. These are mainly extensions or ‘even legacy modifications of SAP code, which are tightly coupled with the core application logic of SAP S/AHANA. For such code the recommendation is to analyze the business case and decide if a new implementation based on the ABAP cloud development model is the way to go. ‘Typical tasks are’ Analyze custom code complexity with Custom Code Migration App to detest TCO divers. ‘Make your custom code compliant with the ABAP cloud development model following the guideline from chapter 4, + Replace usage of not-released SAP abjects with released APIS, ¢.9., CDS views instead of DB tables. + Toextend or change an SAP object use only released extension points (released BAdls, released RAP BOs, custom fields, of logic rom key user extensibility), Adapt In case you want that the custom code is running on SAP S/4HANA ust like before the conversion - without Using the new cloud development model - you must at least adapt the code concerning the simplification database. We recommend using ABAP Test Cockpit and quick fixes in ADT to adapt your custom code Leveraging quick fixes will significantly reduce your custom code adaptation efforts through semiautomatic, ‘adaptation, and you can expect up to 60% automation rate for the most frequent findings of the typical SAP S/4HANA simpification use cases. Consequently, we recommend also using SQL Monitor to detect performance optimization candidates which can be optimized with the new ABAP code pushdown ‘capabilities, for example AMDP. ‘Typical tasks for adaptation: + Adapt usage of SAP objects based on SAP S/4HANA readiness ATC checks, the Simplification Database, and the Quick fixes in ADT. + Usage of SAL Monitor to detect performance optimization candidates, Clean cote: an extension metnadology where extensions are kept stily separate ftom the SAP application Extensions access SAP business objects only trough well delined, upgrade-stable interfaces PUBIC BE + Adapt your SOL usage to be SAP HANA ready, e.9., fik ORDER BY issues. + Use CDS, AMDP and ABAP SQL to adapt performance ciitical SAL queries. ‘The following overview gives some guidance for the transition of classic ABAP custom code towards the cloud extensibility model: USE CASE Existing custom field on DB table or CDS view Existing implementation of an SAP BAdl Existing extension of an SAP Fiori app (SEGW, EOP U5) EXTENSIONS —_EXsting implementation of user ext (eg, SAPMVa5A) Existing moatications Existing enhancement implementation (pict, expiit) Existing Custom SAP Fiori ap (SEGW, BOPF, SAP UI5) RELATEDTIER GUIDANCE/RECOMMENDATION, Migrate to released extension includes (it available) Migrate to released BAd! and adaot the implementation to ABAP cloud Migrate the SAP Fiori app extension (or parts of) o the newly delvered RAP application it available Migrate to released BAdls Check released Bad! is avaiatie to replace the mexification Check i released BAd! is avaiable to replace the mocification ‘Refactor with RAP/SAP Fiorl Elements Classic ABAP reports (with oF Wo ALY) custom Dynpro and Web Dynpro APPLICATIONS vnpem Refactor with RAP/SAP Flor Elements Refactor with RAP/SAP Fiori Elements “Table 1 - Overview: transton of classic ABAP custom code wards he cloud extensbily made 62 How to handle existing custom code in a RAP compliant fashion Itis not a surprise that a lot of existing custom ABAP codo is based on legacy UI technologies like (Web) Dynpro or Business Server Pages (BSP). Some of the apps based on these technologies can be transformed with minor effort, ¢.g., using the generator for repository objects (a.k.a. RAP generator) or by Using the wizard for creating SAP Fiori Business Configuration apps (-> Chapter 4.5). Nevertheless, transformation of most of the apps to SAP Fiori can be very complex. Consequently, many of these ‘applications need to be rewritten to make them future proof. The following blag post provides a description how to assess existing custom ABAP code to create a RAP modernization strategy. Modernization with the ABAP RESTful Application Programming Model (RAP) PUBIC TE 7 MORE INFORMATION KEY USER EXTENSIBILITY ‘Custom Extensions in SAP S/4HANA Implementations - A Practical Guide for Senior IT Leadership ‘The Key User Extensibilty Tools of SAP S/4HANA ‘SAP S/4HANA Extensibility: A Learning Journey ‘SAP Help Portal - Personalizing and Adapting Apps Low-CodeiNo-Code Development Tools ‘SAP Help Portal - Extending an SAP Fiori Apolication Extending SAP-delivered SAP Fiori elements apps using adaptation projects to create SAP S/4HANA app variants ‘SAP FIORI AND SAP UIS: SAP Fiot tools Developer Adaptation ABAP CDS annotations Developin. with SAP Fiori Elements SAP UIS documentation ABAP RESTFUL APPLICATION PROGRAMMING MODEL ‘+ BAP Developer Guide on SAP Help Portal Modernization with the ABAP RESTful applicstion programming model (RAP) | SAP Blogs Modern ABAP Development with the ABAP RESTIul Application Programming Model Working with ABAP Cross trace tools Unit testing with ABAP unit Documenting ABAP development objects | SAP Blogs) (CUSTOM CODE TRANSFORMATION How to check your custom ABAP code for SAP BTP ABAP Environment | SAP Blogs m. ns in SAP S/MHANA img ions - A Practical jor IT i + How to redefine RDS based OData services? | SAP Blogs ‘¢ Got started with the ABAP custom code migration process | SAP Blogs ABAP CLOUD ‘¢ ABAP Keyword Documentation ‘CUSTOMER INFLUENCE CHANNELS '* ABAP Platform (htips:/nfluence sap com/sap/ino/iicampaign/2311) ‘© SAP S/4HANA (hitps:/influence.sap.com/sap/ino/#/campaignv/2759) BUSINESS CONFIGURATION ‘* Create a Business Configuration Maintenance App NONE ABAP BASED DEVELOPMENT ON SAP BUINESS TECHNOLOGY PLATFORM ‘¢ The SAP Business Technolgy Platform '* Start developing on SAP Business Technology Platform ‘¢ SAP Business Technology platiorm developer center PUBIC STE LIST OF FIGURES FIGURE 2.1 - OVERVIEW OF EXTENSLTY OPTIONS. FlouRe 2.2- Kev USEREXTENSIIITY FIGURE 2.3 ADDING A CUSTOM FELD WITH KEY USER EXTENSILTY FIGURE 2.4 Kev USER ADAPTATION. smn FIGURE 2.5 -SAP 5/AHANA CLOUD ABAP ENVIRONMENT. FIGURE 2.6 - RELEASED OBJECT TRE IN ABAP DEVELOPMENT TOOLS. FIGURE 2.7 ~SIDE-3-SIDE EXTENSIONS WITH SAP BTP, ABAP ENVIRONMENT... FIGURE 2.8 -SUNRWARY OF ABAP-RELATED EXTENSBILTY OPTIONS IN SAP S/SHANA CLOUD, FIGURE 3.1 ~ SEQUENCE DAGRAM ON HOWV TO FIND THE RIGHT EXTENSISLITY OPTIONS FIGURE 4.1 -RAP AG PICTURE. FIGURE 4.2 - RAP EXTENSIBILITY OPTIONS OVERVIEW. Figure 4.3 -Conce?Ts I Coup DEvELCPMENT FIGURE 5.1 - OVERVIEW OF THE THREE-TEREXTENSIBLETY MODEL FIGURE 5.2 SETUP OF THETHREE TER MODEL. Ficure 5.3 -SerrING THE ABAP LaNGUAGE VERSION FORINGIVIOUAL OBIECTS IN ADT. FIGURE 5.4 - ABAP CLASS RELEASED FOR CLOUD DEVELOPMENT. FIGURE 6.1 - OPTIONS FOR CUSTOM CODE MIGRATION wn LIST OF TABLES ‘Taste 1.1 SAP S/4HANA Cou! “TaaLE .2- OVERVIEW ABOUT THE POSITIONING OF THE NEW CLOUD EXTENSIBLITY MODELIN THE OFFERENT SAP S/4HANA EDITIONS, ‘TABLE 4.1-EXTENSILITY OPTIONS FOR RAP BOS.. “TABLE 4.2 TECHNICAL REUSE SERVICES FOR CLOUD DEVELOPMENT “TABLE 4.3 - INTEGRATION FRAMEWORKS FOR CLOUD DEVELOPMENT “TABLE 4.4 AVAILABLE BUSINESS APIS AND EXTENSION POINTSIN SAP S/4HANA... ‘TABLE S.1- OVERVIEW OF THE THREE EXTENSIBLITY TERS. “TABLE 5.2 - CUSTOM CODEUSE CASES AND THEIR MAPPING “TAGLE 6.1 - OVERVIEW: TRANSITION OF CLASSIC ABAP CUSTOM CODE TOWARDS THE LOUD EXTENS LIST OF SOURCE CODE EXAMPLES SOURCE CODE S.1-SIMPUFED WRAP FOR BAP|_SALESORDER_CHANGE 29 PUBIC TE GLOSSARY ABAP classic Highly optimized programming language for business applications, both small-scale and large-scale. ABAP classic allows developers to use the full range of ABAP statements and concepts provided by SAP ABAP cloud Refined, simpliiad, and standardized ABAP language (based on > ABAP classic) for ctoud-ready programming. Only modern ABAP statements and concepts, with a focus on cloud-enabied, object-oriented design and modern programming models are allowed |ABAP Development Tools Integrated development environment (IDE) for ABAP development (ao7) implemented as a plugin for the Eclipse piatform (nw. ectipse.or4 [ABAP Platform reuse [Aset of technical and business-related services to be easily integrated and services used in ABAP development, addressing recurring development requirements ADT >-ABAP Development Tools ABAP cloud development model) 'A modern development model for cloud-ready, and upgrade-stable ABAP_ applications and extensions that follows the clear cloud rules to avoid the need to make adaptations atter a version change of the SAP software ATC checks > ABAP Test Cockpit ABAP Test Cockpit (ATC) Toolset directly integrated in > ABAP Development Tools for doing static land dynamic quality checking of ABAP code and associated objects Business user Persona that personalizes SAP SaaS applications (e.g., adapt Ul layouts, report views and dashboards, ...), by using > key user (extensibility) tools, Citizen developer Classic (custom) (ABAP) code Classic custom ABAP. extensions Persona that compases and extends applications and automations on SAP Business Technology Platform using the > Key user (extensibility) tools ‘SAP Build apps, SAP Business application studio, SAP Bulld Process automation and others) ABAP code and artefacts developed for the traditional ABAP programming ‘models such as Dynpro, BSP and Web Dynpro Classic extensibility (model) PUBIC WE Classic extensibility (model) An extensibility model that offers a great degree of freedom tor classical ABAP code, but that requites serious adaptation efforts after an upgrade Clean core ‘An extension methodology where extensions are kept stiictly separate from the SAP application. Extensions access SAP business objects only through well defined, upgrade-stable interfaces Cloud extensibility model An extensibility model for SAP S/4HANA that ensures that the customer and partner extensions continue to run without any change or adaptation effort independent of changes made by SAP during cloud updates Cloud-optimized ABAP > ABAP cloud language Embedded steampunk SAP intemal project name for > SAP S/4HANA Cloud ABAP Environment | Hybrid extensions ‘An extension scenario where different extensibilty options (-> key user extensibility, > on-stack (developer) extensibility, > side-by-side extensibility) are jointly used In-app extensibility key user extensibility | key user Persona that extends SaaS applications by using > key user (extensibility) tools to implement simple business requirements (custom fields, layout changes, validation rules, simple custom logic, ...) Key user (extensibility) tools A set of web-based, easy-to-use low-code/no-code tools used for > key ser extensibility Key user extensibility {An extensibility approach that allows key users to make small adaptions to standard applications or create lightweight custom apps without advanced development skills. The key user implements the extensions and apps directly on the software stack using dedicated key user apps that provide a high user guidance and convenient standard solutions for common problems | Local public interfaces Local public interfaces provide non-remote access to SAP APIs, These stable interfaces are the key to the ltecycle independence of SAP code and customer and partner extensions PUBIC STE Logical unit of work ‘A sequence of programming steps and data updates distributed across ‘mutiple work processes, whose database changes are updated within a single database commit Loosely-coupled extensions: Extensions with a low proximity to data, transactional behavior, or apps: and therefore typically run on a separate platform lke the -> SAP Business Technology Platform Low-codeino-code tools Toolset to develop apps with litle or no code, mostly visual and drag-and- Crop simplicity, based on a large library of pre-built content, > key user (extensibility) tools Low > Logical unit of work On-stack (developer) extensibility ‘An extensibility approach that allows ABAP developers to create ‘sophisticated extensions and apps using a development environment that supports professional development teams. In the ABAP platform, developer extensibilty allows ABAP developers to implement the extensions and apps directly on the software stack using the > ABAP Development Tools Original (RAP) BO ‘The original RAP BO is the base BO on which the RAP BO extension bears Private cloud ‘A cloud infrastructure that allows customers to run their solutions with maximum flexillty. However, adaptations are typically necessary after a version change of the SAP solution Public cloud AA standardized cloud infrastructure that allows customers to run their solutions with minimal cost. A version change of SAP software has no Impact on the custom extensions Public interface ‘An interface such as a Public API that is publicly documented and available with stable semantics after a version change of SAP software Released APIs Released interfaces ‘An API that is publicly documented and released for use in extensions. > Released APIs Released objects tree A view in > ABAP Development Tools project explorer showing all SAP released > local public interfaces and local extension points Flamote API [An interface of a software component allowing communication between two or more stacks, providing a service to other software components PUBIC TE SAP BTP SAP Business Technology Platform SAP Business Technology SAP Platform-as-a-Serviee (PaaS) offering for ABAP development that Platform, ABAP Environment enables developers to make use of their traditional on-premise ABAP knowledge to develop and run ABAP applications in the SAP Business Technology Platform, either as an extension to SAP software or as. standalone applications (hitps.//community.sap.com/topics/btp-abap- environment) SAP Business Technology SAP Business Technology Platform brings together application Platform (SAP BTP) evelopment, data and analytics, integration, and Al capabilities into one Unified environment optimized for SAP applications https //community.sap.comopies/business-lechnology- platform) ‘SAP extension points Extension points (such as Business Add Ins) offered by SAP to customers and partners to extend the SAP logic with custom and partner logic through well-defined interfaces SAP SHANA Cloud ABAP SAP SI4HANA Cloud ABAP Environment enables modern ABAP Environment development for SAP customers and partners of > tightly coupled extensions running directly on the SAP S/4HANA technology stack ‘SAP S/MHANA ‘SAP's flagship enterprise resource planning product (ERP) is available in the cloud (> SAP S/4HANA Cloud public edition or > SAP S/MHANA Cloud private edition) or on-premise (> SAP S/4HANA on premise) SAP S/4HANA on premise SAP SIHANA on premise offers enterprise management capabilities for the Intelligent Enterprise. SAP S/SHANA is deployed and managed in the customers premises SAP S/4HANA Cloud private SAP SIHANA Cloud private edition offers enterprise management exition Capabilities for the Inteligent Enterprise. SAP S/4HANA Cloud private edition is deployed and managed by SAP in private cloud data centers, offered by hyper scalers and SAP SAP S/4HANA Cloud public SAP SI4HANA Cloud public edition offers enterprise management eciton Capabilities for the Inteligent Enterprise. SAP S/4HANA Cloud public edition is deployed and managed by SAP in public cloud data centers offered by hyper scalers and SAP ‘SAP API Business Hub ‘An SAP operated platform to explore, discover and consume APIs, pre- packaged integrations, business services and sample apps from SAP. (ettos/apsap.corv) Side-by-side extensibility An extensiblity approach that allows implementing sophisticated evelopment projects, such as creating custom UIs, custom applications {in Java, Node.JS, ABAP), or analytical or workflow extensions. The development projects are implemented on > SAP Business Technology Platform (SAP BTP) and integrated via released remote APIS Side-by-side extension > side-by-side extensibility PUBIC TTT

You might also like