ABAP Platform in SAP S/4HANA 2020 Overview and Product Highlights ABAP Platform Product Management, SAP March 2021 PUBLIC Disclaimer The information in this presentation is confidential and proprietary to SAP and may not be disclosed without the permission of SAP. Except for your obligation to protect confidential information, this presentation is not subject to your license agreement or any other service or subscription agreement with SAP. SAP has no obligation to pursue any course of business outlined in this presentation or any related document, or to develop or release any functionality mentioned therein. This presentation, or any related document and SAP's strategy and possible future developments, products and or platforms directions and functionality are all subject to change and may be changed by SAP at any time for any reason without notice. The information in this presentation is not a commitment, promise or legal obligation to deliver any material, code or functionality. This presentation is provided without a warranty of any kind, either express or implied, including but not limited to, the implied warranties of merchantability, fitness for a particular purpose, or non-infringement. This presentation is for informational purposes and may not be incorporated into a contract. SAP assumes no responsibility for errors or omissions in this presentation, except if such damages were caused by SAP’s intentional or gross negligence. All forward-looking statements are subject to various risks and uncertainties that could cause actual results to differ materially from expectations. Readers are cautioned not to place undue reliance on these forward-looking statements, which speak only as of their dates, and they should not be relied upon in making purchasing decisions. © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 2 Agenda ABAP Platform Overview ABAP Platform 2020 Product Highlights ABAP development tools ABAP language today SAP HANA-centric optimizations ABAP RESTful Application Programming Model (RAP) ABAP code analysis tools Custom code migration to SAP S/4HANA and SAP BTP ABAP Environment ABAP connectivity SAP S/4HANA extensibility Further enhancements SAP Business Technology Platform (BTP) ABAP Environment Summary © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 3 01 ABAP PLATFORM OVERVIEW © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 4 ABAP Platform – Some keys and figures Optimized for business applications > 100.000 Installed productive SAP systems based on ABAP Rock solid and scalable foundation for mission critical business systems 02 Comprehensive integrated lifecycle management Huge partner and customer community Foundation for a large variety of SAP, partner, and customer developments © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC ABAP PLATFORM 03 > 10.000 Custom ABAP objects per average SAP system > 5 MILLION Registered ABAP developers 5 ABAP Platform – Transformation to SAP S/4HANA and SAP BTP High innovation speed because of SAP HANA and SAP S/4HANA SAP Business Suite SAP S/4HANA SAP NetWeaver AS ABAP SAP BTP ABAP Environment ABAP Platform SAP HANA Major ABAP Platform innovations needed for SAP S/4HANA © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC SAP FIORI UX SAP Business Technology Platform 6 ABAP Platform – Versions and consumers on premise SAP Business Suite1 SAP NetWeaver hubs on premise cloud SAP S/4HANA On-Premise SAP S/4HANA Cloud ABAP PLATFORM 2020 (indirect shipment only) ABAP PLATFORM CLOUD 2102 (indirect shipment only) SAP NetWeaver add-ons Custom applications SAP NETWEAVER AS FOR ABAP 7.5x 2 ABAP-based SaaS solutions Extensions for SAP S/4HANA Custom cloud apps SAP BTP ABAP Environment 2102 PUBLIC INTERFACES CLASSIC ABA LAYER NEW ABA LAYER NEW ABA LAYER NEW ABA LAYER ANY DB & SAP HANA SAP HANA ONLY SAP HANA ONLY SAP HANA ONLY Improvements 1 (7.50) 2 One common ABAP Platform innovation codeline (7.50, 7.51 and 7.52) © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC This is the current state of planning and may be changed by SAP at any time. 7 ABAP development: Must learn topics UX, SAP HANA, state-of-the-art development, cloud Focus on user experience On any device Role based Utilize SAP HANA capabilities Efficient development Cloud ABAP managed code pushdown Secure app development, high code quality Stable cloud extensions Agile and test driven Device switch and collaboration © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC Cloud-ready apps Custom code management Browser based SAP Fiori and SAPUI5 ABAP RESTful application programming model In-app and side-by-side ABAP SQL, Core Data Services and code pushdown in SAP HANA ABAP tools, development methodology In-app extensibility, SAP BTP 8 ABAP Platform 2020 at a glance High developer efficiency with enhanced ABAP language and ABAP Development Tools in Eclipse 01 02 ABAP RESTful Application Programming Model for the efficient development of SAP HANAoptimized SAP Fiori applications and Web APIs 03 04 Real-time events, Industrial IoT, WebSocket RFC, M2M communication, MQTT and AMQP support Advanced quality assurance tools fully supporting custom code migration to SAP S/4HANA and SAP BTP ABAP Environment 05 06 © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC Easy usage of advanced SAP HANA capabilities Enriched SAP S/4HANA in-app extensibility with XCO library support 9 02 ABAP PLATFORM 2020 PRODUCT HIGHLIGHTS © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 10 02 ABAP PLATFORM 2020 PRODUCT HIGHLIGHTS © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC ABAP DEVELOPMENT TOOLS IN ECLIPSE 11 Modern ABAP development in Eclipse ABAP DEVELOPMENT TOOLS (ADT) MODERN DEVELOPMENT TOOLSET Fully eclipse-based Syntax check, Code completion Syntax highlighting, Pretty printing Navigation, Search, Quick Fixes QUALITY ASSURANCE Static code checks (CVA, ATC) with remote and local scenarios Unit testing incl. isolation frameworks Test seams and injections SUPPORTABILITY Debugging, profiling Static and dynamic logging Runtime monitoring and analysis © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 12 Modern ABAP development in Eclipse – ABAP Platform 2020 feature scope DEVELOPMENT Create and edit CDS View Entities Provide documentation for CDS artefacts using Knowledge Transfer Documents (KTD) More information and enhanced navigation in Element Info popup window Editing support for Business Add-Ins (BAdIs) QUALITY Support CDS View Entities and Projection Views in CDS Test Double Framework and ABAP SQL Test Double Framework Support for ABAP authority-check statements using Test Helper API TROUBLESHOOTING Problems View improvements MISCELLANEOUS Editor for Number Range objects Transport Organizer improvements Discontinue support for reading the legacy SAPLOGON.INI file format © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 13 ABAP Development Tools in Eclipse (1) NEW ECLIPSE BASED EDITORS Create and edit BAdI enhancement spots Create and edit BAdI enhancement implementations Check out How to extend SAP standard using ADT New editor for Number Range objects © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 14 ABAP Development Tools in Eclipse (2) FUNCTIONAL ENHANCEMENTS Transport request protection Only request owner can add more users Creating ABAP CDS artefacts based on references (insert all elements of the referenced object) Support for CDS Entity Views Check out Create CDS entities with reference © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 15 ABAP Development Tools in Eclipse (3) DOCUMENTABILTY FOR CDS ARTEFACTS Create knowledge transfer documents for behavior definitions, CDS views, and service bindings Check out the videos on YouTube DISCONTINUED SUPPORT FOR LEGACY SAPLOGON.INI FILE FORMAT © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC SAP UI Landscape format has become the default format for maintaining SAP GUI connection information. The legacy saplogon.ini format is deprecated Check out the documentation Using System Connections from SAP Logon Pad 16 02 ABAP PLATFORM 2020 PRODUCT HIGHLIGHTS © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC ABAP LANGUAGE TODAY 17 Declarative and expression-oriented ABAP language MODERN ABAP Simple and concise ABAP code through new language features like inline declarations, constructor expressions Extensively expression-oriented syntax Advanced table operations like CORRESPONDING( ) operator, grouping and filtering Entity Manipulation Language (EML) to control the transactional business object behavior in the RAP context JSON support in sXML library Inline code documentation with ABAP Doc ABAP Unit Testing with test doubles and test seams © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 18 ABAP Language – ABAP Platform 2020 feature scope DATA TYPES Indicator structures (new addition INDICATORS to the statement TYPES) EXPRESSIONS AND FUNCTIONS Use of calculation assignment operators (+=, +=, *=, /= or &&=) in assignments behind the addition NEXT of constructor operator REDUCE now supported STRING PROCESSING Support of Perl compatible regular expressions New catchable exception CX_SY_STRING_SIZE_TOO_LARGE Formatting option CURRENCY for decimal floating point numbers ABAP SESSIONS Increasement of the default value of profile parameter rdisp/max_alt_modes determining the possible number of ABAP sessions per user session (from 6 to 16) ABAP DICTIONARY Changes in internal handling of Name Table (nametab) EXCEPTION HANDLING Declare exceptions of category CX_NO_CHECK with RAISING © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 19 02 ABAP PLATFORM 2020 PRODUCT HIGHLIGHTS © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC SAP HANA-CENTRIC OPTIMIZATIONS 20 ABAP development for SAP HANA – Mainstream and code breakouts ABAP managed code pushdown MAINSTREAM ABAP Core Data Services (CDS) ABAP SQL ABAP Managed Database Procedures and Functions (AMDP) CDS Table Functions and Hierarchies SAP HANA BREAKOUTS © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 21 Evolution of ABAP CDS and Open/ABAP SQL CLASSIC ACCESS OPTIMIZED ACCESS for SAP HANA OPTIMIZED and SPECIALIZED ACCESS for SAP HANA CLOUD QUALITIES CDS / OPEN SQL (Key User) Extensibility CDS / ABAP SQL2 CDS / OPEN SQL Allowlisting-support for CDS & AMDP DB Administration BREAKOUTS 1 BREAKOUTS 1 Supportability ABAP RESTful Application Programming Model support SQL SQL SQL SQLScript SQL SQL Extensions Windowing Hierarchies CTE GEO Spatial Support Specialized Engines SQLScript Graph DB Tuning Objects (view caches) ANYDB ANYDB © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC SAP HANA SAP HANA 1*CDS 2 Table Functions and ABAP Managed Database Procedures (AMDP) Open SQL renamed to ABAP SQL as of ABAP Platform 1809 (AS ABAP 7.53) 22 ABAP CDS – Next-generation data modeling and access Semantically rich Declarative Close to conceptual thinking COMMON DATA MODEL For all application domains Rich set of built-in functions IMPROVED PROGRAMMING MODEL CORE DATA SERVICES © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC CAPTURE BUSINESS INTENT Code pushdown capabilities Declarative access control Reduced complexity Extending SQL 23 ABAP CDS – Overview of supported CDS entity types CATEGORY CDS ENTITY TYPE ABAP CDS STATEMENT Standard view building CDS View Entity CDS Projection View CDS DDIC-based View DEFINE VIEW ENTITY* DEFINE VIEW ENTITY AS PROJECTION DEFINE VIEW Transactional behaviour definition of business objects within the ABAP RESTful Application Programming Model (RAP) CDS Behavior Definition CDS Behavior Projection DEFINE BEHAVIOR Modification-free extension CDS Metadata Extension CDS View Extension CDS View Entity Extension ANNOTATE VIEW EXTEND VIEW EXTEND VIEW ENTITY* SAP HANA breakout CDS Table Function CDS Hierarchy DEFINE TABLE FUNCTION DEFINE HIERARCHY External implementation CDS Custom Entity CDS Abstract Entity DEFINE CUSTOM ENTITY DEFINE ABSTRACT ENTITY Access control CDS Role DEFINE ROLE * Available starting with ABAP Platform 2020 © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 24 ABAP Core Data Services (CDS) – ABAP Platform 2020 feature scope NEW CDS ENTITY TYPES SUPPORTED CDS view entities and CDS extension view entities as the successors of CDS DDICbased views are supported ENHANCED CDS PROJECTION VIEWS Definition of new associations supported ENHANCED CDS ACCESS CONTROL Checking the left side operand in a literal condition for (non) initial values Check alias or assigned business partner instead of username in user conditions allowed Data type RAW now allowed for left side operand of an access condition Addition bypass when to specify a bypass condition for an element © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 25 ABAP Core Data Services (CDS) – CDS view entity as of ABAP Platform 2020 CDS VIEW ENTITIES SIMPLIFIED DEFINITION, CONSUMPTION & LIFECYCLE MANAGEMENT Only ONE name for a CDS view entity – No SQL view name required Optimized creation of SAP HANA database artefacts Optimized CDS activation and performance Client handling completely transparent for the developer Stricter syntax- & semantic-checks to indicate problematic situations more explicitly (e.g. annotation checks) Improved type safety within CDS Expressions Check out Blog on CDS View Entities © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 26 ABAP SQL – ABAP Platform 2020 feature scope (1) NEW BUILT-IN CONVERSION FUNCTIONS CURRENCY_CONVERSION - for converting between currencies TIMESTAMPL, DATS and TIMS – to convert time stamps into dates or times, and vice versa TO_CLOB and TO_BLOB, and geometry conversion function AS_GEO_JSON to support streaming and locators on SQL expressions NEW BUILT-IN AGGREGATE FUNCTIONS ALLOW_PRECISION_LOSS in combination with aggregate function SUM to improve the performance at the cost of accuracy of the result Aggregate functions MEDIAN (statistical median), STDDEV (standard deviation), VAR (variance), CORR (Pearson product momentum correlation coefficient), and CORR_SPEARMAN (Spearman's rank correlation coefficient) NEW STRING FUNCTIONS REPLACE_REGEXPR, LIKE_REGEXPR, and OCCURRENCES_REGEXPR - supporting regular expressions © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 27 ABAP SQL – ABAP Platform 2020 feature scope (2) NEW WINDOW FUNCTIONS FIRST_VALUE and LAST_VALUE in window expressions – to return the first and the last value of a sorted set of values NTILE in window expressions – to divide the rows of a window into n buckets with the goal of filling all buckets with the same number of rows DATE AND TIME FUNCTIONS UTCL_CURRENT, UTCL_ADD_SECONDS, and UTCL_SECONDS_BETWEEN – to perform operations on time stamps DATN_DAYS_BETWEEN, DATN_ADD_DAYS, and DATN_ADD_MONTHS – working with arguments of the built-in data types DATN and DATS ENHANCED HIERARCHY FUNCTION New addition LOAD BULK | INCREMENTAL | load_option – to specify the load policy for a generated hierarchy ENHANCED SQL CONDITIONS SQL functions and cast expressions now supported as operands on the right side of comparison operators The operator IN can now be used with a subquery that returns value tuples © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 28 ABAP SQL – ABAP Platform 2020 feature scope (3) TYPED LITERALS IN READ POSITIONS Typed literals for many ABAP Dictionary data types can be used in read positions of statements where host variables are possible and where it is always treated as an elementary SQL expression of the specified data type VARIOUS OTHER ENHANCEMENTS AND IMPROVEMENTS Enhanced SELECT, INTO target statement – Inline declaration of host variables allowed for dynamic FROM-clauses with statically specified SELECT list NULLS FIRST and NULLS LAST after the ORDER BY clause - determine whether null values are placed before or after non-null values Specification of set indicators after the UPDATE FROM-clause - indicate columns for update STRING and RAWSTRING - allowed for elementary SQL expressions © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 29 02 ABAP PLATFORM 2020 PRODUCT HIGHLIGHTS © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC ABAP RESTful APPLICATION PROGRAMMING MODEL 30 Evolution of the ABAP programming model ABAP Platform ≤ 7.5 ABAP Platform ≥ 7.5 SAP BTP ABAP Environment SAP S/4HANA ≥ 1909 CLASSIC ABAP PROGRAMMING ABAP PROGRAMMING MODEL FOR SAP FIORI ABAP RESTful APPLICATION PROGRAMMING MODEL SEGW / @OData Referenced Data Source Business Service Best practice freestyle ABAP programming Core Data Services (CDS) © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC CDS-based BOPF Core Data Services Behavior Definition & Implementation 31 ABAP RESTful Application Programming Model (RAP) – In a nutshell The ABAP RESTful APPLICATION PROGRAMMING MODEL consists of … SAP Fiori UI services CONCEPTS Service development Web APIs TOOLS FRAMEWORKS Universally usable programming model Greenfield developments Brownfield developments LANGUAGES BEST PRACTISES Available on-premise and in the cloud SAP S/4HANA SAP BTP ABAP Environment … for the efficient development of ENTERPRISE-GRADE APPLICATIONS Get started with the ABAP RESTful Application Programming Model © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 32 RAP – The key players ABAP Development Tools in Eclipse for all development tasks Easy developer onboarding End-to-end development flow Languages: ABAP and CDS Standard implementation tasks via typed APIs supporting static code checks, auto-completion, element info Powerful frameworks Take over technical implementation tasks Business logic added in code exits on protocol-agnostic layers © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 33 RAP – The big picture SERVICE CONSUMPTION SAP Fiori UI Web API Consume OData UI services Consume OData Web APIs SERVICE BINDING - Bind to protocol version and scenario SERVICE DEFINITION - Define scope to be exposed BUSINESS SERVICES PROVISIONING BUSINESS OBJECT PROJECTION CDS: Projection views BDEF: Behavior projection ABAP: Behavior implementation BUSINESS OBJECTS DATA MODELING & BEHAVIOR QUERIES CDS: Data modeling BDEF: Behavior definition CDS: Data modeling ABAP: Behavior implementation © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 34 RAP – What is a business object? Behaviour CRUD, Actions, Functions Locks, eTag Authorizations, Feature Control Draft Data Model 2 R COMPOSITION TREE (root, parent and child nodes) 1 3 Runtime Implementation INTERACTION PHASE TX buffer SAVE SEQUENCE © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 35 RAP – Business object (BO) runtime implementation types SAVE SEQUENCE INTERACTION PHASE finalize UNMANAGED For brownfield developments with available application code for interaction phase, transactional buffer, and save sequence ➔ Developers in charge of BO runtime: CRUD operations ➔ Adapters needed to integrate the existing code adjust_numbers LOCK READ MODIFY check_before_save save MANAGED For greenfield developments with standard implementation (opt. unmanaged appl. components: DB tables, lock/PFCG object, update task FM) Transactional buffer ➔ Standard CRUD operations work out-of-the-box SAP HANA ➔ Developers add BO-specific business logic BUSINESS OBJECT RUNTIME © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 36 RAP – What is a business service? Web API Lifecycle Service Binding Release Protocol: OData V2 or OData V4? Versioning Scenario: Web API or UI? Deprecation 2 3 1 Tool support 4 Service Definition: which entities? UI: SAP Fiori Elements preview Web API: Swagger UI preview R BO Projection View: which elements? Behavior Projection: which behavior? © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 37 RAP – Development flow DEFINE ROLES Role SERVICE BINDING PREVIEW DEFINE SCENARIO and PROTOCOL SERVICE DEFINITION AUNIT Scenario & integration test DEFINE SCOPE ADD BEHAVIOR DATA MODEL PROJECTION BEHAVIOR PROJECTION PROJECT ELEMENTS & ENRICH Authority object CDS access control AUTHORITY-CHECK © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC PROJECT BEHAVIOR ADD BEHAVIOR QUERY DATA ACCESS CONTROL AUNIT Unit test CDS BASED DATA MODEL DATABASE TABLES IMPLEMENT BEHAVIOR CDS BEHAVIOR DEFINITION ABAP CODE Lock object 38 RAP – ABAP Platform 2020 feature scope BUSINESS OBJECT (BO) SAVE message mapping Instance-based authorization and feature control Operation precheck BO viewer (relation explorer) BO projection layer DRAFT HANDLING Draft support for universally unique identifier (UUID)-based behavior definitions MANAGED BUSINES OBJECT External and UUID-based numbering Determinations and validations for create, update, delete, and field trigger Break-outs: Unmanaged lock/save, additional save, persistence mapping TESTABILITY BO test double framework DOCUMENTABILITY Knowledge transfer documents for CDS views, behavior definition, and service binding © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 39 02 ABAP PLATFORM 2020 PRODUCT HIGHLIGHTS © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC ABAP CODE ANALYSIS TOOLS 40 ABAP Code Analysis Tools Advanced quality assurance ABAP Test Cockpit for static quality checks and unit tests SQL Monitor for runtime SQL performance analysis in productive ABAP-based systems Classic performance monitoring and trace tools (SQL Trace, ABAP runtime analysis/Profiler…) © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 41 Technical infrastructure for custom code analysis Central Check System CENTRAL ATC SYSTEM TO ANALYZE CUSTOM CODE in whole system landscape REMOTE stubs return a model from custom code CHECK LOGIC is executed on central system RESULT is analyzed in central system ABAP Test Cockpit (ATC) Simplification DB RFC RFC RFC INTEGRATED in development environment MOST CUSTOM CODE is supported (incl. modifications and enhancements, Adobe Forms, Smart Forms, SAP Queries) SUPPRESS false-positive findings with pseudo-comments e.g. for MATNR findings INSTALL Simplification DB via Note 2241080 Checked System A (>=7.00) Checked System B (>=7.00) Checked System C (>=7.00) Customer Code Customer Code Customer Code ESSENTIAL for custom code migration to SAP S/4HANA Remote Stubs Check out Remote code analysis with ATC © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 42 ATC Statistics View for better analysis of findings USE STATISTICS VIEW with display criteria: ATC Statistics View with Simplification Item information SAP Note number Referenced Object Application component USE DOUBLE-CLICK NAVIGATION from ATC result Navigate to SAP Notes, Referenced Objects, ATC findings USE SAP S/4HANA SIMPLIFICATION INFORMATION in ATC result with filtering and sorting capabilities: SAP Note number incl. title Referenced object Application component © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 43 Baseline in ATC – Focus on findings in new or recently changed code BASELINE CONCEPT Baseline management Take over individual ATC results into the baseline Options: suppress all findings (exclude from the ATC result) indicate the findings as exempted assign the low priority to the findings The baseline is effective as long as the related code sections remain unchanged BASELINE ACTIVITIES Adding/Removing individual check results Deleting baseline (reset the test system to original state) Check out Working with Baseline in ATC © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 44 Using ATC as Developer ABAP TEST COCKPIT (ATC) Run ATC in ABAP Development Tools in Eclipse Tightly integrated in development (`Run As…` menu) Browse all ATC check runs of the system (filter by users) using ATC Result Browser Quick Fixes in the ATC Problems View For custom code migration to SAP S/4HANA conversion: Simplification Item information (e.g. SAP Notes, Referenced Objects) Integrate checks in your on-going development activities, e.g. during transport release AUTOMATIC CODE ADAPTATIONS Quick Fixes to minimize adaptation efforts Examples: No Order-Check © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC Quick Fixes in the Source Code Editor 45 Performance tuning using SQL Monitor PERFORMANCE DATA FOR ALL SQLs executed in your productive system What are the most expensive and most frequently executed SQLs? Which SQL reads/writes millions of records? What is the SQL profile of transaction VA01? LINK the MONITORED SQLs TO the driving TRANSACTION AVAILABLE FOR SAP NETWEAVER >= 7.00 SQL MONITOR DOES NOT HARM YOUR BUSINESS PROCESSES (performance overhead < 3%) Check out SQL Monitor Guide and Best Practices © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 46 SQL Monitor – Example BUSINESS PROCESS LIST RANKED BY TOTAL DB TIME DRILL DOWN SQL PROFILE OF REPORT ZSQLM_TEST3 RUNNING AS BATCH JOB (6 SQL STATEMENTS) CODE NAVIGATE © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 47 02 ABAP PLATFORM 2020 Product Highlights © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC CUSTOM CODE MIGRATION TO SAP S/4HANA AND SAP BTP ABAP ENVIRONMENT 48 Transformation to SAP S/4HANA and SAP BTP – Your custom ABAP code on premise cloud CUSTOM CODE ADAPTATION SAP BUSINESS SUITE SAP NETWEAVER AS FOR ABAP 7.x extend SAP S/4HANA ABAP PLATFORM 2020 extend SAP S/4HANA CLOUD ABAP PLATFORM CLOUD 2102 extend JAVA or Node.js APPS & EXTENSIONS SAP BTP supports SAP S/4HANA and cloud transformation Save harbor for loosely coupled custom extensions ABAP APPS & EXTENSIONS SAP BTP ABAP ENVIRONMENT 2102 SAP BUSINESS TECHNOLOGY PLATFORM © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 49 SAP S/4HANA system conversion Custom code related process Preparation phase System requirements Maintenance planner SI checks Realization phase Custom code code preparation preparation Custom Custom code scoping Check out Custom Code Adaptation process © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC Custom code analysis Software Update Manager (SUM) Application specific specific Application follow-up activities follow-up activities Functional adaptation Custom code optimization Performance tuning Usage tracking of custom code in production (SCMON/SUSG or UPL) Remote ATC to check for S/4HANA related changes (Simplification DB) Adjust modifications in SPDD/SPAU Custom Code Migration App to detect unused code Custom Code Migration App for efficient custom code analysis Quick Fixes for semi-automated custom code adaptation Remove unused code via SUM ADT for Eclipse Code pushdown Simplification User experience 50 Custom code scoping Aggregate usage data in SUSG transaction MONITOR usage of your custom code via the ABAP Call Monitor (transaction SCMON) AGGREGATE usage data in your production system with SUSG transaction (without SAP Solution Manager *) ANALYZE usage data in SAP Fiori App Custom Code Migration to define custom code migration scope Scoping in SAP Fiori App Custom Code Migration REMOVE unused code during the SAP S/4HANA conversion automatically via SUM * Custom code evaluation with CCLM/UPL tools of SAP Solution Manager is still possible © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 51 Analysis of SAP S/4HANA findings in SAP Fiori App Custom Code Migration USE PREDEFINED FILTERS Analysis in SAP Fiori Custom Code Migration App Findings by SAP Note In which SAP S/4HANA simplification areas you get the most findings? Findings by Scope How many findings are in the custom code you take over to SAP S/4HANA? Findings by Priority What are the most important (urgent) findings? Findings by Quick Fix Availability Which findings can be fixed automatically? AGGREGATION AND FILTERING OF FINDINGS FOCUS ON USED CUSTOM CODE Check out SAP Fiori App Custom Code Migration DRILL-DOWN TO ATC RESULTS © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 52 Semi-automatic code adaptation in ADT for SAP S/4HANA Quick Fixes in the Source Code Editor QUICK FIXES to minimize adaptation efforts Order By MATNR and Amount Field Length Extension Field length extension of field VBTYP (SD document category) and elimination of field VBTYP_EXT Reduce findings for VBRK and VBRP Data Model Changes, e.g. Mass-enabled Quick Fixes in the ATC Problems View KONV VBUK/VBUP BSEG MASS-ENABLED Quick Fixes to adapt whole work packages in one step Check out Semi-automatic custom code adaptation © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 53 Custom code analysis for cloud with SAP Fiori App Custom Code Migration CUSTOM CODE MIGRATION APP BASED ON REMOTE ABAP TEST COCKPIT Analysis for cloud in SAP Fiori App Custom Code Migration AUTOMATIC SCOPING OF CUSTOM CODE DEPENDENT OBJECTS DETECT USAGE OF NON SUPPORTED TECHNOLOGIES (e.g. DYNPRO) DETECT USAGE OF NON-RELEASED OBJECTS DETECT INCOMPATIBILITIES WITH ABAP LANGUAGE VERSION CLOUD EVALUATION FOR AUTOMATED CODE ADAPTATION (QUICK FIXES IN ADT) © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC Check out Custom code analysis for cloud with SAP Fiori App Custom Code Migration 54 Custom code transformation for SAP BTP ABAP Environment 2 PUSH 3 PULL ABAP Development Tools 4 ABAP custom code ADAPT Custom Code Migration App ABAP custom code CLOUD CONNECTOR 1 ANALYZE BACKEND SYSTEM e.g. SAP ERP, SAP S/4HANA, SAP NetWeaver AS ABAP SAP BTP ABAP ENVIRONMENT Check out How to bring your ABAP custom code to SAP BTP ABAP Environment © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 55 Semi-automatic code adaptation in ADT for SAP BTP ABAP Environment MASS-ENABLED QUICK FIXES IN ADT IN ECLIPSE TO MINIMIZE ADAPTATION EFFORTS Quick Fixes in ATC Problems View of ABAP Development Tools in Eclipse Adapt to ABAP Language Version Cloud Adapt to usage of released objects API calls instead of direct access to SY fields EXAMPLES: USE CASES FOR QUICK FIXES Replace Data Element by released Data Element (->ABAP_BOOLEAN) Replace syntax element by new syntax element (e.g. MOVE) ABAP custom code © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC Check out Semi-automatic custom code adaptation for SAP BTP ABAP Environment 56 Configure SAP Fiori App Custom Code Migration in the cloud with CIAS © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 57 Custom code analysis options Remote ATC with SAP GUI SAP Fiori Custom Code Migration App SAP Fiori Custom Code Migration App in SAP BTP Required system Central ATC check system 1 Central ATC check system 2 SAP BTP ABAP Environment System location in customer landscape in customer landscape cloud Remote connectivity via RFC via RFC via RFC and SAP Cloud Connector Technical configuration manual manual with CIAS 3 Analyze Cloud findings Analyze SAP S/4HANA findings Simplification information in ATC result Filter results by scope and Quick Fix availability Define custom code migration scope based on usage data Remove unused code during system conversion via SUM 1 © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC SAP_BASIS 7.52 2 SAP S/4HANA >=1809 3 Only SAP S/4HANA >=1909 58 Custom code analysis tools feature scope SAP FIORI APP CUSTOM CODE MIGRATION Available in SAP BTP ABAP Environment Technical configuration in SAP BTP with Cloud Integration Automation Service (CIAS) Support for Greenfield projects Choose custom code packages for analysis Analysis of source code complexity Integration of ATC check results into SAP Readiness Check 2.0 QUICK FIXES IN ABAP DEVELOPMENT TOOLS IN ECLIPSE Provide comments for quick-fixed source code in Quick Fixes New Quick Fix for SD Billing Documents (for DB accesses to VBRK, VBRP) Improve Quick Fixes for VBTYP © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 59 Custom code analysis tools (1) SAP Fiori app Custom Code Migration now supports SAP S/4HANA greenfield projects Quick Fixes provide comments for the original source code Check out Comments for the ADT Quick Fixes Choose custom code packages for analysis ("Advanced Configuration") © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC Download ATC check results in SAP Fiori app Custom Code Migration for upload to SAP Readiness Check 2.0 60 Custom code analysis tools (2) COMPLEXITIY ANALYSIS IN SAP FIORI APP CUSTOM CODE MIGRATION Spot the top complex executables and development packages in your custom code Identify candidates for redesign to save adaptation effort and future maintenance costs Remove complex development packages from scope Check out Custom Extensions in SAP S/4HANA Implementations - A Practical Guide for Senior IT Leadership © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 61 02 ABAP PLATFORM 2020 PRODUCT HIGHLIGHTS © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC ABAP CONNECTIVITY 62 Real-time monitoring and Industrial IoT with ABAP Channels ABAP PUSH CHANNELS – CONNECTING THE WORLD SENSORS / MACHINES USER INTERFACE Direct communication with sensors/machines Push sensor data directly to UIs or to the Cloud Extended protocol support: WebSocket native TCP/IP protocols (AS ABAP 7.50) MQTT (ABAP Platform 1809) ABAP Push Channel Direct TCP/IP communication ABAP MESSAGING CHANNEL – COLLABORATION Transport sensor data across ABAP sessions Publish sensor data to bound WebSocket connections immediately User session Application Server Check out ABAP Connectivity © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC ABAP Messaging Channel (pub/sub) ABAP SYSTEM User session Application Server 63 Supportability and security for ABAP Channels TCP log SUPPORTABILITY Standard ABAP supportability tools for debugging, runtime analysis and performance, kernel trace Transaction SMWS shows active WebSocket, TCP Socket and MQTT subscriptions on each app server Supportability tools integrated into SAPC, SMWS transactions TCP log SECURITY Virus scan profile for messages, authorization for involved addresses and domains SMWS Secure communication using SSL (TCPS for TCP Sockets and WSS for WebSockets) © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 64 ABAP Daemons Always available ABAP sessions to handle real-time events FEATURES Implement a daemon application Daemon session with event handling capabilities Similar to Windows Services or Linux cron jobs Long-lived: once started, there is no limit for the lifetime Robust against errors (E/A/X messages) Event-driven programming model (ABAP Channels like) Monitoring & Supportability USAGE EXAMPLES Events scheduling Monitor active daemons with SMDAEMON Tracing & Logging Health Check, clean up of resources, synchronization of caches and error handling Proxy-Session for external communication Check out ABAP Daemons © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 65 WebSocket RFC RFC IS READY FOR INTERNET USE WebSocket RFC uses standard HTTP infrastructure: Reverse proxies, HTTP routers, etc. instead of proprietary SAP router WebSocket RFC VPN tunneling no longer needed for RFC connections across business networks Same CALL FUNCTION statement for RFC over WebSocket and CPIC Use new destination type “W” for RFC calls via WebSocket Security: HTTPS enforced and UCON protection for WebSocket RFC with dedicated allowlist to make Function Modules accessible from the internet. Limitations by WebSocket RFC: RFC callbacks and calling function modules that open SAP GUI-based user interfaces not supported Check out WebSocket RFC © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 66 ABAP Connectivity– ABAP Platform 2020 feature scope AMQP-based message exchange via a broker AMQP SUPPORT IN ABAP API to implement AMQP Clients (AMQP specification 1.0) Communication Point-to-point or publish-and-subscribe (via a message broker) ABAP to ABAP, ABAP to non-ABAP Based on ABAP Push Channel technology Connection types: WebSocket and TCP Socket Event-driven programming model (ABAP Channels like) APC Security and Supportability System-internal RFC function module SYSTEM-INTERNAL RFC FUNCTION MODULES Develop RFC function modules for purely system-internal use © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 67 02 ABAP PLATFORM 2020 PRODUCT HIGHLIGHTS © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC SAP S/4HANA EXTENSIBILITY 68 SAP S/4HANA Extensibility In-app extensibility and side by side extensibility Key user can do easy changes directly in the app © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC SAP Business Technology Platform for side by side extensions and cloud integration 69 SAP S/4HANA Extensibility In-app extensibility Custom fields Custom user interface SAP S/4HANA Custom Business Objects UI Application Database In-app extensions Custom business logic Custom reports / queries Custom forms / reports Extensibility cockpit Extensibility inventory © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 70 In-app Extensibility – ABAP Platform 2020 feature scope XCO LIBRARY Use XCO (Extension Components) library for efficient development experience CUSTOM BUSINESS OBJECTS Select which operations (create, update, and/or delete) are allowed for the root node and each sub-node when custom business object is accessed via UI or service Select the value of a field to be the title of the details page on the generated UI. CUSTOM FIELDS AND LOGIC Select custom fields on the Data Source Extensions tab Specify a logic to control the visibility of your custom field dynamically in the UI Define a label and tooltip for your data source extension fields Add value help for your data source extension fields © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 71 02 ABAP PLATFORM 2020 PRODUCT HIGHLIGHTS © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC FURTHER ENHANCEMENTS 72 Further enhancements – ABAP Platform 2020 feature scope APPLICATION PLATFORM AND INFRASTRUCTURE New client management tools Debugging of ABAP batch jobs in transaction SM37 SAP Web Dispatcher supports 1 million concurrent client connections on Linux Time-Based One-Time Passcodes (TOTP) for Credential Validation Workflows © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 73 Further enhancements in ABAP Platform 2020 NEW CLIENT MANAGEMENT TOOLS © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 74 03 SAP BUSINESS TECHNOLOGY PLATFORM (BTP) ABAP ENVIRONMENT © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 75 Vital parts of SAP BTP ABAP Environment SAP BTP ABAP ENVIRONMENT SAP Cloud Platform Services ABAP PLATFORM AS A SERVICE IoT CLOUD COCKPIT User Mgmnt. HTTP SERVICES AND NEW ABAP RESTful PROGRAMMING MODEL utilizing … CLOUD Analytics Core Data Services ABAP DEVELOPMENT TOOLS IN ECLIPSE Cloud optimized ABAP language WEB API WEB API WEB WEBAPI API CLOUD connectivity SAP S/4HANA GIT CODE MANAGEMENT SAP HANA SAP System SAP BTP © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC SAP CLOUD CONNECTOR ON PREMISE Non SAP System 76 Extension scenario 1: Cloud ERP Extend SAP S/4HANA Cloud or other SAP cloud offerings with cloud extensions SAP BTP ABAP ENVIRONMENT SAP BTP Services ABAP EXTENSION IoT ML … connectivity Use SAP BTP ABAP Environment to extend SAP S/4HANA Cloud or other SAP cloud solutions Analytics SAP HANA SAP BTP SAP Cloud solutions like SAP S/4HANA Cloud provide in-app extensibility to extend SAP apps and processes, but there is no support for classic custom ABAP development on top of SAP S/4HANA Cloud SAP BTP is the foundation to develop and run custom cloud extensions and the ABAP environment shall be used for ABAP based cloud extensions CLOUD © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 77 Extension scenario 2: Innovation Platform Develop and run innovative ABAP apps on a PaaS in the Cloud SAP BTP ABAP ENVIRONMENT SAP BTP Services ABAP EXTENSION IoT ML … connectivity Analytics SAP HANA SAP BTP SAP CLOUD CONNECTOR ON PREMISE © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC Benefit from the newest ABAP Platform and SAP HANA database technologies independent from your existing on-premise system landscape Build your Fiori apps with the new future proof ABAP RESTful Programming Model Utilize SAP BTP services like IoT, machine learning etc. in your cloud extension Delegate operation of the ABAP PaaS and new technologies to SAP ERP 78 Extension scenario 3: Hub-like usage Decouple ABAP implementations from your core business systems SAP BTP ABAP ENVIRONMENT SAP BTP Services ABAP EXTENSION IoT ML … connectivity Analytics SAP HANA SAP BTP SAP CLOUD CONNECTOR EXTERNAL USER GROUP Make your cloud app available to a broader audience that does not have access to your core business systems (e.g. consumer apps) INTEGRATION HUB Integrate in your cloud extension multiple cloud/on-premise systems with SAP/non-SAP cloud services DATA INTEGRATION Collect data from multiple sources in your cloud extension for further processing and analysis DECOUPLED EXTENSION Cloud extensions use only well defined (remote) APIs of the Business system. This reduces the risk and effort for business system upgrades. SAP S/4HANA WEB API WEB API WEB WEBAPI API SAP System ON PREMISE Non SAP System © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC CLOUD 79 Trial offering – available NOW: https://cockpit.hanatrial.ondemand.com ACCESS TO TRIAL SYSTEM SAP Business Technology Platform trial access https://cockpit.hanatrial.ondemand.com ABAP Trial is part of Cloud Foundry trial Access via SAP BTP Cockpit Local Eclipse and ADT installation required RULES OF THE GAME For educational purposes only Shared Trial Offering 2 months onboarding minimum 12 months usage Trial users share the same backend system No content separation between different users © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 14 months lifetime Lifetime of a trial system System will be deleted after 14 months 80 04 SUMMARY © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 81 Summary – Key takeaways 01 First class development experience in Eclipse using enriched ABAP language and tools 01 Enhanced ABAP CDS, ABAP SQL and various SAP HANA optimizations for advanced data modelling and access 03 Enhanced feature scope of the ABAP RESTful Application Programming Model (RAP) – incl. support of managed scenarios and draft handling 03 Best quality assurance with code analysis tools, efficient custom code adaptation for SAP S/4HANA and SAP BTP 01 Real-time events with ABAP Channels and ABAP Daemons, Industrial IoT, and M2M communication, WebSocket RFC, MQTT and AMQP support ABAP Platform 2020 03 © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC Enhanced In-App extensibility and side-by side extensibility with SAP Business Technology Platform (BTP) 82 Further Information SAP HELP PORTAL What‘s New in ABAP Platform in SAP S/4HANA 2020 SAP COMMUNITY ABAP Development https://community.sap.com/topics/abap ABAP Testing and Analysis https://community.sap.com/topics/abap-testing-and-analysis ABAP Connectivity https://community.sap.com/topics/abap-connectivity ABAP Extensibility https://community.sap.com/topics/abap-extensibility SAP BTP ABAP Environment https://community.sap.com/topics/btp-abap-environment DEVELOPERS ON SAP.COM ABAP Platform: https://developers.sap.com/topics/abap-platform.html Tutorials: https://developers.sap.com/tutorial-navigator.html?search=abap © 2021 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 83 Thank you. Contact information: Carine Tchoutouo Djomo Product Management Technology Core Platform, SAP SE carine.tchoutouo.djomo@sap.com Olga Dolinskaja Product Management Technology Core Platform, SAP SE olga.dolinskaja@sap.com Follow us www.sap.com/contactsap © 2021 SAP SE or an SAP affiliate company. All rights reserved. No part of this publication may be reproduced or transmitted in any form or for any purpose without the express permission of SAP SE or an SAP affiliate company. The information contained herein may be changed without prior notice. Some software products marketed by SAP SE and its distributors contain proprietary software components of other software vendors. National product specifications may vary. These materials are provided by SAP SE or an SAP affiliate company for informational purposes only, without representation or warranty of any kind, and SAP or its affiliated companies shall not be liable for errors or omissions with respect to the materials. The only warranties for SAP or SAP affiliate company products and services are those that are set forth in the express warranty statements accompanying such products and services, if any. Nothing herein should be construed as constituting an additional warranty. In particular, SAP SE or its affiliated companies have no obligation to pursue any course of business outlined in this document or any related presentation, or to develop or release any functionality mentioned therein. This document, or any related presentation, and SAP SE’s or its affiliated companies’ strategy and possible future developments, products, and/or platforms, directions, and functionality are all subject to change and may be changed by SAP SE or its affiliated companies at any time for any reason without notice. The information in this document is not a commitment, promise, or legal obligation to deliver any material, code, or functionality. All forward-looking statements are subject to various risks and uncertainties that could cause actual results to differ materially from expectations. Readers are cautioned not to place undue reliance on these forward-looking statements, and they should not be relied upon in making purchasing decisions. SAP and other SAP products and services mentioned herein as well as their respective logos are trademarks or registered trademarks of SAP SE (or an SAP affiliate company) in Germany and other countries. All other product and service names mentioned are the trademarks of their respective companies. See www.sap.com/copyright for additional trademark information and notices.