Technology Core Platform Product Management, SAP SE September 2018 ABAP Platform in SAP S/4HANA 1809 Overview and Product Highlights PUBLIC
Technology Core Platform Product Management, SAP SE
September 2018
ABAP Platform in SAP S/4HANA 1809Overview and Product Highlights
PUBLIC
2PUBLIC© 2018 SAP SE or an SAP affiliate company. All rights reserved. ǀ
This presentation outlines our general product direction and should not be relied on in making a purchase
decision. This presentation is not subject to your license agreement or any other agreement with SAP. SAP
has no obligation to pursue any course of business outlined in this presentation or to develop or release any
functionality mentioned in this presentation. This presentation and SAP's strategy and possible future
developments are subject to change and may be changed by SAP at any time for any reason without notice.
This document 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. SAP
assumes no responsibility for errors or omissions in this document, except if such damages were caused by
SAP intentionally or grossly negligent.
Disclaimer
3PUBLIC© 2018 SAP SE or an SAP affiliate company. All rights reserved. ǀ
Agenda
ABAP Platform overview
ABAP Platform 1809 Product highlights
ABAP development tools
ABAP language today
SAP HANA-centric optimizations
ABAP Programming Model for SAP Fiori
ABAP code analysis tools
Custom code adaptation for SAP S/4HANA
Real-time events, Industrial IoT, M2M communication
SAP S/4HANA extensibility
Summary
5PUBLIC© 2018 SAP SE or an SAP affiliate company. All rights reserved. ǀ
ABAP PLATFORM IS THE TECHNOLOGY
PLATFORM UNDERLYING SAP’s DIGITAL CORE
ROCK SOLID AND SCALABLE SERVER
EFFECTIVE PROGRAMMING ENVIRONMENT
CONTINUOUSLY EXTENDED
… built for mission critical business systems
… built for the complete life cycle of business apps
… to serve new business scenarios
ABAP Platform
Product description
SAP S/4HANA, SAP S/4HANA Cloud
SAP Business Suite,
SAP Business Warehouse,
Partner,
Custom Code,
…
SAP NW / ABAP Platform
Database
6PUBLIC© 2018 SAP SE or an SAP affiliate company. All rights reserved. ǀ
ABAP Platform
The Evolution – Innovations driven by SAP HANA and SAP S/4HANA
< 2013 2013-2014
SAP Business Suite EHP x
SAP NetWeaver 7.x
SAP NW AS for ABAP 7.x
SAP Business Suite EHP 7
SAP NetWeaver 7.4
SAP BW 7.4
SAP NW AS for ABAP 7.4
SAP HANA
SAP S/4HANA
SAP Fiori UX
Cloud
SAP Business Suite EHP 8
SAP NetWeaver 7.5
SAP BW 7.5
SAP S/4HANA Finance
SAP S/4HANA 1511
SAP S/4HANA Cloud
SAP NW AS for ABAP 7.5 /
7.6x packages for cloud
2015 2016
innovation package for
SAP NW AS for ABAP 7.51
SAP S/4HANA 1610
SAP S/4HANA Cloud
SAP NW AS for ABAP 7.51
/ 7.6x packages for cloud
2017
Innovation package for
SAP NW AS for ABAP 7.52
SAP S/4HANA 1709
SAP S/4HANA Cloud
SAP NW AS for ABAP 7.52
/ 7.7x packages for cloud
7PUBLIC© 2018 SAP SE or an SAP affiliate company. All rights reserved. ǀ
Competitive
ABAP Platform Cloud
ABAP Programming Model for
SAP Fiori & ABAP RESTful
Programming Model*(*for ABAP PaaS)
Custom Code Adaptation
for SAP S/4HANA
ABAP Platform 1809: Foundation for SAP S/4HANA
Main investment topics
on premise cloud
ABAP PLATFORM CLOUD
SAP HANA ONLY
NEW ABA LAYER
ONE COMMON ABAP PLATFORM INNOVATION CODELINE
SAP S/4HANA 1809
ABAP add-ons for SAP S/4HANA
Custom applications
SAP S/4HANA Cloud
SAP Integrated Business Planning
ABAP PLATFORM 1809
(AS ABAP 7.53)
SAP HANA ONLY
NEW ABA LAYER
NO STANDALONE ABAP PLATFORM
INSTALLATION
SAP Cloud Platform
ABAP Environment
Extensions for SAP S/4HANA
ABAP PLATFORM
AS A SERVICE
SAP HANA ONLY
NEW ABA LAYER
WHITELISTED APIs
8PUBLIC© 2018 SAP SE or an SAP affiliate company. All rights reserved. ǀ
ABAP Platform 1809 at a glance
Further simplification of the ABAP language
ABAP application development further optimized for SAP HANA
Enhanced SAP S/4HANA extensibility
Real-time events, Industrial IoT and M2M communication
Increased developer efficiency in Eclipse
Advanced quality assurance tools and custom code adaptation for SAP S/4HANA
Improved ABAP Programming Model for SAP Fiori
11PUBLIC© 2018 SAP SE or an SAP affiliate company. All rights reserved. ǀ
ABAP development on the Eclipse platform
Eclipse
Tooling
Platform
Easy installation and upgrade
Selective usage
Available in SAP Development Tools site *
* https://tools.hana.ondemand.com
Central Eclipse update site
Powerful ABAP Development Tools
Advanced source code editing, search & navigation
Full ABAP for SAP HANA support
Tools for Floorplan Manager and Web Dynpro ABAP
Test, Quality Assurance, Troubleshooting
Toolset for Core Data Services development
Increased developer
productivity
Power of SAP HANA for
ABAP developers
Easy integration of
custom or 3rd party tools
Various SAP development tools
SAPUI5
SAP Gateway
SAP Cloud Platform
SAP BW4/HANA and SAP BW
12PUBLIC© 2018 SAP SE or an SAP affiliate company. All rights reserved. ǀ
ABAP Development Tools in Eclipse
AS ABAP 7.53 features overview (1)
Change customer enhancementsModify development objects in the
SAP NamespaceAnalyze Runtime Errors
Enhancement Implementation Editor
13PUBLIC© 2018 SAP SE or an SAP affiliate company. All rights reserved. ǀ
ABAP Development Tools in Eclipse
AS ABAP 7.53 features overview (2)
Ensuring quality of ABAP code
ABAP Unit with Test Relations
Test object types, which cannot have own tests (DDL source,
CDS, Simple Transformations)
Write foreign tests in another development object
Write @testing link as ABAP Doc comment at test method/class
ABAP Unit finds foreign test and executes it
Configure test execution with ABAP Unit Launch Dialog
Executed foreign tests for the CDS view
ABAP Unit Launch Dialog
14PUBLIC© 2018 SAP SE or an SAP affiliate company. All rights reserved. ǀ
ABAP Development Tools in Eclipse
AS ABAP 7.53 features overview (3)
Classic objects in ABAP Dictionary
Create and edit Lock Objects
Transport Organizer
View and edit details of a Transport Request Transport Request Editor
Lock Object Editor
Transport Request Editor
16PUBLIC© 2018 SAP SE or an SAP affiliate company. All rights reserved. ǀ
Inline code documentation with ABAP Doc
Simple and concise ABAP code thru new language features
like inline declarations, constructor expressions
Extensively expression-oriented syntax
Advanced table operations like CORRESPONDING( )
operator, grouping and filtering
JSON support in sXML library, INT8 support
Modern
ABAP
Test seams and injections for ABAP unit testing
Declarative modernization of the ABAP language
17PUBLIC© 2018 SAP SE or an SAP affiliate company. All rights reserved. ǀ
DATA: it1 TYPE tt1,wa1 LIKE LINE OF it1.
wa1-a = 7. wa1-b = 9.INSERT wa1 INTO TABLE it1.wa1-a = 3. wa1-b = 5.INSERT wa1 INTO TABLE it1.
FIELD-SYMBOLS <wa1> LIKE LINE OF it1.DATA wa2 LIKE LINE OF it2.LOOP AT it1 ASSIGNING <wa1>.
wa2 = t1_to_t2( <wa1> ).INSERT wa2 INTO TABLE it2.
ENDLOOP.
DATA: ref TYPE REF TO class1,tmp TYPE string.
READ TABLE it1 WITH KEY a = 3 ASSIGNING <wa1>.CREATE OBJECT ref.tmp = <wa1>-b.ref->do_something( tmp ).
DATA(it1) = VALUE tt1( ( a = 7 b = 9 )( a = 3 b = 5 ) ).
it2 = VALUE #( FOR <wa1> IN it1( t1_to_t2( <wa1> ) ) ).
NEW class1( )->do_something(CONV #( it1[ a = 3 ]-b ) ).
ABAP < 7.40 ABAP >= 7.40
Inline declaration
with inferred type
Constructor
expression
Table
comprehension
Object creation
Value conversion
to inferred typeTable selection
Simplified ABAP code – Example
18PUBLIC© 2018 SAP SE or an SAP affiliate company. All rights reserved. ǀ
Enumerated type support as of release 7.51
TYPES:BEGIN OF ENUM colors1,
black,red,gold,
END OF ENUM colors1.
…DATA mycolor1 TYPE colors1.mycolor1 = black.
TYPES:BEGIN OF ENUM colors2 STRUCTURE colors2_values,
red,white,blue,
END OF ENUM colors2 STRUCTURE colors2_values.
…DATA mycolor2 TYPE colors2.mycolor2 = colors2_values-red.
Simple Handy
TYPES:BEGIN OF ENUM colors3 STRUCTURE colors3_values BASE TYPE int1,
red VALUE IS INITIAL,green VALUE 42,blue VALUE 255,
END OF ENUM colors3 STRUCTURE colors3_values.
…DATA mycolor3 TYPE colors3.mycolor3 = colors3_values-green.
Full Support
19PUBLIC© 2018 SAP SE or an SAP affiliate company. All rights reserved. ǀ
MESSAGE ID 'SABAPDEMOS' TYPE 'S'NUMBER '888'WITH 'Message'.
TRY.RAISE EXCEPTION TYPE cx_demo_dyn_t100 USING MESSAGE.CATCH cx_demo_dyn_t100 INTO DATA(oref).cl_demo_output=>display( oref->get_text( ) && `, ` && oref->msgty).
ENDTRY.
Implicit message specification in RAISE EXCEPTION MESSAGE
DATA(mapper) =cl_abap_corresponding=>create_with_value
(source = struct|itabdestination = struct|itabmapping = mapping_tabdiscarding_duplicates = flag
).
Assignment of values
cl_abap_itab_utilities=>virtual_sort(im_virtual_source = VALUE #(( source = REF #( from_city_tab ) components = VALUE #( ( name = 'latitude' )( name = 'longitude' ) ) )( source = REF #( to_city_tab ) components = VALUE #( ( name = 'latitude' )( name = 'longitude' ) ) )( source = REF #( flight_tab ) components = VALUE #( ( name = 'carrid' ) ( name = 'connid' ) ) )
) )
Virtual Sorting of internal tables
Language highlights in release 7.52
20PUBLIC© 2018 SAP SE or an SAP affiliate company. All rights reserved. ǀ
More language enhancements with release 7.53
Enhancement for native SQL
New Method GET_ABAP_CONNECTION in CL_SQL_CONNECTION provided
Resumable Exceptions in Deserializations with ST
Various other enhancements and improvements
Checks on Common Data Areas , Checks on STRUCTURE typing, Checks on literals as
actual parameters, …
New Methods for Handling Code Pages
More robust methods CONVERT of the interfaces IF_ABAP_CONV_OUT and
IF_ABAP_CONV_IN provided
Improved Exception handling
Raising runtime errors associated with an exception object using RAISE SHORTDUMP,
access to the last message in a chain of exception objects, setting the attribute
IS_RESUMABLE
22PUBLIC© 2018 SAP SE or an SAP affiliate company. All rights reserved. ǀ
Out-of-the-box
transparent
optimizations
Fast Data Access
For all entries
ABAP optimizations for SAP HANA
Overview
Utilization of SAP HANA capabilities
Effort for
code
pushdown
LOW HIGH
MORE
LESS
Quick wins with
reuse components
ALV with integrated
data access
Enhanced search help
Advanced SQL
programming
Open SQL
enhancements
Advanced view
building with Core
Data Services (CDS)
Exploit
SAP HANA native
features
ABAP managed
database procedures
CDS table functions
23PUBLIC© 2018 SAP SE or an SAP affiliate company. All rights reserved. ǀ
CODE BREAKOUTS
ABAP optimizations for SAP HANA
Mainstream and code breakouts
MAINSTREAM
ABAP Core Data Services (CDS)
Open SQL
ABAP Managed Database
Procedures
CDS Table Functions
AB
AP
-managed c
ode p
ushdow
n
24PUBLIC© 2018 SAP SE or an SAP affiliate company. All rights reserved. ǀ
Next generation data modelling and access with CDS
Improved
programming
model
For all application domains
Rich set of build-in functions
Code pushdown capabilities
Common
data
model
Semantically rich
Declarative
Close to conceptual
thinking
Capture
business
intend
Reduced complexity
Extending SQL
25PUBLIC© 2018 SAP SE or an SAP affiliate company. All rights reserved. ǀ
CDS integration into the ABAP platform
SAP HANA
ABAP platform
Lifecycle
managem
ent
Database
Open SQL
ABAP CDS
(S)QL engine
Highly reusable and extensible CDS artefacts02
01 Leverage DDIC semantics
03 Fully integrated into the ABAP infrastructure
Proven and consistent ABAP lifecycle management04
05 Consumption in Open SQL and Gateway/SADL
26PUBLIC© 2018 SAP SE or an SAP affiliate company. All rights reserved. ǀ
Built-in SQL functions and expressions in ABAP CDS
GENERIC /
AGGREGATION CONVERSION DATE / TIME
ARITHMETIC STRING
27PUBLIC© 2018 SAP SE or an SAP affiliate company. All rights reserved. ǀ
CDS associations
WHERE
CLAUSEPROJECTION
LISTHAVING
CLAUSE
GROUP BY
CLAUSE
LEFT
OUTER
JOIN
FROM
CLAUSE
INNER
JOIN
Capturing the relationships between entities in the
data model
Used (!) associations are implicitly translated into
SQL joins
Reuse of generated joins when semantically
identical
Can be queried in CDS views and Open SQL
Navigate thru entity using path expressions
28PUBLIC© 2018 SAP SE or an SAP affiliate company. All rights reserved. ǀ
Hierarchy of views and extensibility
Hierarchical view-on-view concept
Optimized result sets with minimum data
transfer
Append additional columns, arithmetic
expressions or literals to result set
Basic View
View on View
Consumer ExtensionsC1
V1
&
Consumer ConsumerC2 C3
View on View
V2
29PUBLIC© 2018 SAP SE or an SAP affiliate company. All rights reserved. ǀ
CDS annotations for domain-specific frameworks
CDS
ANNOTATION
DOMAINS
Analytics
BI-Tools
Planning
Search
OData
Business
Logic
Enrich meta model with consumer-specific
vocabularies
Reusable and unified view model for all use
cases
Enabling flexible usage in different contexts
Separation of concern using CDS metadata
extensions for UI-specific annotations
Vital part of ABAP programming model for
SAP Fiori in SAP S/4HANA
30PUBLIC© 2018 SAP SE or an SAP affiliate company. All rights reserved. ǀ
CDS metadata extensions (MDE)
Build in
SQL
functions
CDS
METADATA
EXTENSIONS
Simplified
change
management
Separation of
concerns
Change UI-specific annotations
without modifying underlying
CDS view
No need to change original (SAP)
views when metadata changes
Simplified mass activation /
activation chain
Keep view definition distinct
from UI-specific annotations
Use one view definition with
various layers of metadata
(e.g. SAP, partner, customer
or industry specific)
Tool support
Wizard for extracting
existing metadata from CDS
view to CDS MDE
31PUBLIC© 2018 SAP SE or an SAP affiliate company. All rights reserved. ǀ
Declarative access control with CDS roles
Classical approach
<Code>
<Code>
SQL
Authorization
check
PFCG
Declarative approach
<Code>
<Code>
SQL
PFCG
CDS role
CDS view
&
Declarative approach instead of
coded approach
Thru CDS Data Control Language
Based on CDS entities and PFCG
data
Full access rules and roles inheritance
supported
Authorizations pushed down to the
database
Defined once and automatically
used everywhere
32PUBLIC© 2018 SAP SE or an SAP affiliate company. All rights reserved. ǀ
CDS feature overview in AS ABAP 7.53
CDS Hierarchy support
For providing a high-level overview with drill down options to navigate into lower
hierarchy branches and nodes, supported by CDS Test Double framework
Definition of Metadata Extensions for any CDS entities
Except for CDS table functions
Enhanced Access Control
New inheritance conditions and enhanced PFCG conditions
Various Enhancements
Like new condition IS INITIAL, Literals now handled as INT8
Definition of Abstract CDS entity
For defining the type properties of a CDS entities
33PUBLIC© 2018 SAP SE or an SAP affiliate company. All rights reserved. ǀ
CDS hierarchy support starting with release 7.53
CDS hierarchies enable a high-level overview with drill down
options to navigate into lower hierarchy branches and nodes
Defined using new statement DEFINE HIERARCHY in a CDS data
definition
Based on the SAP HANA hierarchy function
Identical name for data definition and Hierarchy entity required
ABAP Unit testing with CDS Test Double framework
34PUBLIC© 2018 SAP SE or an SAP affiliate company. All rights reserved. ǀ
Abstract CDS entity support starting with release 7.53
Used to define the type attributes of a CDS entity without
creating an instance of a database object, i.e. only metadata is
created
Defined using new statement DEFINE ABSTRACT ENTITY in a
CDS data definition
Known as data type in the ABAP dictionary and as global object
type in the class library
Abstract CDS entity name must comply to naming convention for
dictionary types
ABAP Unit testing with CDS Test Double framework
35PUBLIC© 2018 SAP SE or an SAP affiliate company. All rights reserved. ǀ
Broader SQL standard coverage
SQL-92 Standard
Open SQL
(before
AS ABAP 7.4)
Open SQL renamed to ABAP SQL
▪ Reflecting the stronger focus on leveraging native
SAP HANA features as of release 7.53
Higher expressiveness in Open SQL statements
Code pushdown support thru new language
features and reduction of existing limitations
Flexible consumption of CDS modeling entities
and rolesOpen SQL Enhancement
(≥ AS ABAP 7.4)
Incl. CDS Associations
36PUBLIC© 2018 SAP SE or an SAP affiliate company. All rights reserved. ǀ
Advanced ABAP SQL capabilities
Extended
JOIN
support
Increased
number of
allowed sub-
queries
Various SQL
functions &
expressions
Common
Table
Expressions
UNION
(ALL)
Access to
Global
Temporary
Tables
CDS
consumption
Access to
cached
views in
SAP HANA
37PUBLIC© 2018 SAP SE or an SAP affiliate company. All rights reserved. ǀ
ABAP SQL highlights in AS ABAP 7.53
Support of CDS Hierarchy Functions as Data Source in Queries
Table functions with a tabular results set
Support for various Date/Time Functions
Time, time stamp, date/time conversion, time zone functions supported
Consumption of CDS Associations within Common Table Expressions
Various Enhancements
New relational expression IS INITIAL, client handling in subquery of SELECTstatement, Null values in table buffer, aggregate function GROUPING, GROUP BY clause
addition GROUPING SETS for grouping multiple aggregations under one SELECTstatement, enhanced CAST matrix, …
38PUBLIC© 2018 SAP SE or an SAP affiliate company. All rights reserved. ǀ
Why code breakouts make sense …
Unleash the full potential of your
SAP HANA database
Some scenarios require
selective measure
Highest performance requirements
e.g. with complex calculations
Use of database / analytical engine
specific functions required
Open SQL and CDS views are not
sufficient to solve problem efficiently
Restrictions
Database specific
SAP HANA only
No automatic fallback for any DB
39PUBLIC© 2018 SAP SE or an SAP affiliate company. All rights reserved. ǀ
ABAP managed database procedures (AMDP)
Easy access to SAP
HANA advanced
engines / libraries
Like predictive analysis, financials,
text mining, calculation engine
Integrated in
ABAP
infrastructure
Development, runtime error
analysis, enhancement,
transport
SQLScript coding embedded
in ABAP classes
Seamless integration with
CDS
Utilize
native SAP
HANA
entities
Stored procedures and
database functions
supported
Complex logic with
if / else…
Parameterized requests
and multiple result sets
40PUBLIC© 2018 SAP SE or an SAP affiliate company. All rights reserved. ǀ
Seamless AMDP integration into CDS
CDS Table function definition
Parameter list
Return Parameter
Reference to implementing method
AMDP function
Implementation
Runtime for table function
Runs stored SQLScript procedure
generated from AMDP on database
tables
SAP HANA
DatabaseDDL
Source
AMDP
class
Includes SQLScript based
database function body
41PUBLIC© 2018 SAP SE or an SAP affiliate company. All rights reserved. ǀ
AMDP feature overview in AS ABAP 7.53
AMDP Scalar Functions now Supported
Option to buffer the result of the function for the duration of a query provided
Enhancement to Logical Database Schemas
Current ABAP database schema can now be mapped in the transaction DB_SCHEMA_MAPwhen flagged appropriately
Various Restrictions Removed
Tabular input parameters now allowed in AMDP implementations of CDS table functions
Tabular input parameters of AMDP implementations can now be set optional
Similar behavior as in regular methods when declaring a replacement parameter with
addition DEFAULT for AMDP implementations
Improved Client Handling
New mandatory option CDS SESSION CLIENT required when accessing CDS database
views of CDS view in AMDP method
42PUBLIC© 2018 SAP SE or an SAP affiliate company. All rights reserved. ǀ
AMDP scalar functions support starting with release 7.53
AMDP scalar functions now supported alongside
AMDP database functions
Based on the SAP HANA scalar function
Implemented as an AMDP function in an AMDP class
▪ Elementary data types of input parameters
▪ With an elementary return value
▪ New database-specific option DETERMINISTIC in the ADMP function
implementation to allow automatic result buffering for the duration of a
query
Can be called in ABAP like any regular function method and
used as a functional method in a functional method call
44PUBLIC© 2018 SAP SE or an SAP affiliate company. All rights reserved. ǀ
Development of state-of-
the-art web based apps
SAP Fiori user experience
on all devices drives the
model
Combining transactions,
search and analytics
Optimized for SAP HANA
Common cloud qualities
(e.g. extensibility)
New types of apps intrinsically optimized for SAP HANA
SAP
Fiori
SAP
HANA
Gateway
Core Data
Services
45PUBLIC© 2018 SAP SE or an SAP affiliate company. All rights reserved. ǀ
ABAP Programming Model for SAP Fiori
Develop modern SAP HANA-optimized apps
SAPUI5
SAP HANA
SQL
OData
One common data modelling technology for all scenarios
Core Data Services (CDS)
OData protocol infrastructure
SAP Gateway
Transaction, error and event handling services
Business Object Processing Framework (BOPF)
Effective and efficient application development
Modern ABAP language and development tools
Freestyle or templates based UI development
SAPUI5 / SAP Fiori Elements
Exploit SAP HANA features and performance
AMDP and CDS Table Functions
ABAP Platform
Application
Frameworks
Core Data
Services
ABAP
Development
SAP Gateway
46PUBLIC© 2018 SAP SE or an SAP affiliate company. All rights reserved. ǀ
ABAP Programming Model for SAP Fiori
Major components and responsibilities
SAP HANA
REST
OData
SQL
ABAP platform
Client
Core
Data
Services
OData protocol implementation
Authorization, metering, …
Write and draft handling
Locking
Authorization
Business logic exits
BO Processing
Framework
SAP Gateway
Query Dispatcher EngineCommon data modelling
Database artefacts
UI semantics
Request dispatching
Query pushdown
BO: Business Object
REST: Representational State Transfer
SADL: Service Adaptation Description Language
47PUBLIC© 2018 SAP SE or an SAP affiliate company. All rights reserved. ǀ
Where to invest now to be prepared for the ABAP Programming Model?
Follow the programming model and best practices and use…
*Core Data Services (CDS) for database artefacts(≥ 7.40, Documentation)
*CDS Metadata Extensions for UI Annotations(≥ 7.51 SP2, Documentation)
*DCL for read/query instance-based authority checks( ≥ 7.50, Documentation)
BOPF stand-alone(≥ 7.40, Documentation, newer releases: CDS/BOPF integration)
*BOPF and CDS integration including draft(≥ 7.51 SP2, Documentation)
Gateway integration of CDS or BOPF
(= 7.40, Documentation, newer releases: OData Exposure)
*OData Exposure of CDS / BOPF for
SAP Fiori and future development(≥ 7.50 SP5, Documentation)
Floorplan-Manager integration of CDS and BOPF(≥ 7.40, Documentation)
Implement things that are already solved
Manual implementation of read-only calls to DB
Business logic mixed with technical aspects (e.g. locks, authority-check, LUW handling, persistency)
Business logic mixed with protocol specific APIs (e.g. PBO/PAI, Gateway classes: DPC_EXT)
YOU SHOULD DO NOT
BENEFITS
Reuse / prepare your skillset and coding for the future
Reuse CDS and DCL in SAP S/4HANA
Lower TCD for the future: Minimal investment on
technical protocol level
*: best practice Fiori apps, E2E documentation
49PUBLIC© 2018 SAP SE or an SAP affiliate company. All rights reserved. ǀ
ABAP Code Analysis Tools
Advanced quality assurance
SQL Monitor for runtime SQL performance analysis in
productive ABAP-based systems
Classic performance monitoring and trace tools
(SQL Trace, ABAP runtime analysis/Profiler…)
ABAP Test Cockpit for static quality checks and unit tests
ABAP Call Monitor for usage analysis of ABAP code
50PUBLIC© 2018 SAP SE or an SAP affiliate company. All rights reserved. ǀ
SCMON is a successor of UPL (Usage Procedure Logging)
SCMON collects usage data in your productive system
Which ABAP code is executed in your productive system?
How often an ABAP object was called?
Which business transactions called an ABAP object ?
SQL Monitor allows to link to the calling business process
Available with AS ABAP 7.50, (>=7.00 per ST-PI Add-on)
SCMON does not harm your business processes
(performance overhead < 5%)
For better results turn on SCMON for a longer period of time
(>=1 year)
ABAP Code Analysis Tools
Usage analysis with ABAP Call Monitor (SCMON)
Find more about ABAP Call Monitor (SCMON) –
Analyze usage of your code
51PUBLIC© 2018 SAP SE or an SAP affiliate company. All rights reserved. ǀ
ABAP Code Analysis Tools
ABAP Test Cockpit - One tool for all quality aspects
Central infrastructure for functional,
performance and security code checks
Extensible infrastructure for customer specific
checks
Uniform quality criteria for your whole system
landscape
New quality assurance processes minimize
errors in productive systems
Smooth migration of ABAP code to SAP HANA
and SAP S/4HANA
Security Checks (CVA)
SAP HANA Checks
Standard Code Inspector checks incl. SLIN
Customer specific checks
ABAP Unit Tests
SAP S/4HANA Checks
ABAP
Test
Cockpit
(ATC)
based on
Code
Inspector
(SCI)
Check the ATC Introduction blog in the SAP community
52PUBLIC© 2018 SAP SE or an SAP affiliate company. All rights reserved. ǀ
ABAP Code Analysis Tools
Remote code analysis with ATC
Central ATC system (SAP_BASIS = 7.52) 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
Integrated in development system
All kinds of custom code are supported (incl. modifications and
enhancements)
Suppress false-positive findings with pseudo-comments
Minimized administration efforts
One quality standard for your whole system landscape
Central Check System (SAP_BASIS = 7.52)
Checked
System A
(≥ 7.00)
Customer
Code
Checked
System B
(≥ 7.00)
Checked
System C
(≥ 7.00)
ABAP Test Cockpit (ATC)
Remote Stubs
Customer
Code
Customer
Code
RFC
Check the SAP Community blogs Remote Code Analysis in ATC
53PUBLIC© 2018 SAP SE or an SAP affiliate company. All rights reserved. ǀ
SQL Monitor allows to get 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 my transaction VA01?
SQL Monitor allows to link the monitored SQL to the driving
business process
Available for SAP NetWeaver ≥ 7.00
SQL Monitor does not harm your business processes
(performance overhead < 3%)
ABAP Code Analysis Tools
Performance tuning using SQL Monitor
Find more about SQL Monitor Guide and Best Practices
dummy01
dummy02
Batman
Batman
Batman
54PUBLIC© 2018 SAP SE or an SAP affiliate company. All rights reserved. ǀ
ABAP Test Cockpit
Automatic code adaptations via Quick Fixes (Ctrl + 1)
in ABAP Development Tools in Eclipse
Examples: NoOrder-Check, MATNR-Check
Notifications for ATC findings and exemptions
Configure and send notifications for exemptions immediately
Notify for ATC findings as soon as ATC check run is finished
Contact person can be set in the ATC basic settings
The “object responsible” and “last changed” can be
overwritten
ABAP Code Analysis Tools
AS ABAP 7.53 features overview (1)
Quick Fixes in the Editor
Quick Fixes in the ATC Problems View
55PUBLIC© 2018 SAP SE or an SAP affiliate company. All rights reserved. ǀ
SCMON
New transaction SUSG collects and aggregates usage
data from SCMON
Improved error behaviour
New field on the status display, which shows errors and
warnings in the log
ABAP Code Analysis Tools
AS ABAP 7.53 features overview (2)
SCMON: errors and warnings in the log
SUSG Transaction
57PUBLIC© 2018 SAP SE or an SAP affiliate company. All rights reserved. ǀ
Custom code adaptation for SAP S/4HANA
Challenge for your custom code after a SAP S/4HANA system conversion
SAP Business Suite System
Custom code
SAP code
SAP S/4HANA System
Simplified SAP code
Custom code
*
*
XX
XX
Custom code
has to be
adapted
58PUBLIC© 2018 SAP SE or an SAP affiliate company. All rights reserved. ǀ
Custom code adaptation for SAP S/4HANA
Adapt your custom code using Simplification Database
Simplification Database contains a list of
simplification items
Each simplification item refers to
An SAP Note that describes the impact and how
related custom code can be adapted
Changed or removed SAP objects
SAP provides tools based on the Simplification
Database to detect custom code that needs to be
adapted to SAP S/4HANA
SAP S/4HANA System
Simplified SAP code
Custom code
*
Simplification
database
XX
X X
*
SAP NoteSAP Note
SAP NoteSAP Note
59PUBLIC© 2018 SAP SE or an SAP affiliate company. All rights reserved. ǀ
Custom code adaptation for SAP S/4HANA
Custom code related steps in SAP S/4HANA system conversion process
Application specific
follow-up activitiesCustom code preparation
Prepare phase Realization phase
System requirementsMaintenance
plannerSI checks
Software Update
Manager (SUM)
Remove obsolete code
based on Usage Procedure
Log (UPL/SCMON)
Custom code
evaluation
Adapt custom code to SAP
HANA and SAP S/4HANA
related changes
Adapt modifications in
SPDD/SPAU
Functional
adaptation
Custom code preparationApplication specific
follow-up activities
Check SAP HANA related
changes (NO ORDER)
Check SAP S/4HANA
related changes
(Simplification DB)
SAP
S/4HANA
checks
Tune performance of
critical database queries
Performance
tuning
More about Custom Code
Adaptation process
60PUBLIC© 2018 SAP SE or an SAP affiliate company. All rights reserved. ǀ
Custom code adaptation for SAP S/4HANA
Setup the remote ATC checks for SAP S/4HANA
I. Setup remote ATC in central system and implement
the SAP Note 2436688
II. Download the newest version of the Simplification
Database from SAP Service Marketplace
(SAP Note 2241080)
III. Install the Simplification Database on the central
check system (transaction SYCM)
IV. Run ATC with check variant
S4HANA_READINESS_REMOTE
V. Analyze the ATC result list
Central Check System (SAP_BASIS =7.52)
Checked
System A
(≥ 7.00)
Customer
Code
Checked
System B
(≥ 7.00)
Checked
System C
(≥ 7.00)
ABAP Test Cockpit (ATC)
Remote Stubs
Customer
Code
Customer
Code
RFCSimplification
database
More about Technical setup of remote ATC
61PUBLIC© 2018 SAP SE or an SAP affiliate company. All rights reserved. ǀ
Custom code adaptation for SAP S/4HANA
SAP S/4HANA readiness checks in AS ABAP 7.52
Simplification use cases
Functionality not available anymore
Data model changes
Data type changes
SAP HANA use cases
Usage of DB vendor specifics (native SQL)
DB operations on pool / cluster tables
SELECT / OPEN CURSOR statements without
ORDER BY
Use check variant
S4HANA_READINESS_REMOTE
SAP S/4HANA checks
SAP HANA checks
Check variant S4HANA_READINESS_REMOTE
includes SAP S/4HANA and SAP HANA checks
62PUBLIC© 2018 SAP SE or an SAP affiliate company. All rights reserved. ǀ
SAP Fiori App Custom Code Migration to
analyse custom code for SAP S/4HANA
conversion based on usage data
Key Features
Scoping
Define the scope of custom code for SAP S/4HANA based
on usage data (of SCMON or UPL)
Create a deletion transport to remove unused ABAP code
Analysis
Execute SAP S/4HANA custom code checks (ABAP Test
Cockpit)
Analytical representation of custom code check findings
Results can be filtered by scope and usage data
Custom code adaptation for SAP S/4HANA
AS ABAP 7.53 features overview
64PUBLIC© 2018 SAP SE or an SAP affiliate company. All rights reserved. ǀ
Real-time user experience
Always up-to-date data on UI
Immediate reaction to events
ABAP Channels
ABAP Push Channel (APC)
ABAP Messaging Channel (AMC)
Collaboration, Industrial IoT, M2M communication
ABAP Channels (WebSocket, TCP/IP)
MQTT
ABAP Daemons
Always available ABAP sessions to handle events
Real-time events and Industrial IoT
65PUBLIC© 2018 SAP SE or an SAP affiliate company. All rights reserved. ǀ
ABAP Push Channel – No polling
WebSockets in ABAP
UI automatically updates when data changes
ABAP Messaging Channel – Collaboration
Pub/sub infrastructure to exchange messages
between sessions
Data changes are published to subscribed clients
immediately
Industrial IoT
Direct communication with sensors/machines
Support native TCP/IP protocols
ABAP Channels
No polling. Collaboration. Industrial IoT.
ABAP SYSTEM
ABAP Push
Channel
Direct TCP/IP
communication
USER INTERFACESENSORS /
MACHINES
Application
Server
User session
Application
Server
User sessionABAP Messaging
Channel (pub/sub)
66PUBLIC© 2018 SAP SE or an SAP affiliate company. All rights reserved. ǀ
ABAP Push Channel (APC)
GOALS
Always up-to-date data on UI
Send UI changes to ABAP immediately
Eliminate “Refresh” button in UI applications
No polling
Browser cache update/invalidation
USE EXAMPLES
Frequently and irregular changing data
short-lived financial data
sales figures
stock availability
8,479,211,44USD
8,265,011,44USD
NO REFRESH
NEEDED
Total Open Sales Orders: 408
Average Days Open: 42
Total Open Sales Orders: 406
Average Days Open: 42
67PUBLIC© 2018 SAP SE or an SAP affiliate company. All rights reserved. ǀ
ABAP Messaging Channel (AMC)
ABAP SYSTEM
Application Server
ABAP session
Goals
React to events in another ABAP session
No polling on the database
Pub/sub infrastructure for events
Use examples
Stop long running calculations and batch jobs
Get status of process steps in a central process
Broadcast of messages
Send notification
Logging/Tracing in another session
ABAP Messaging Channel
PUBLISH /
SUBSCRIBE
Application Server
ABAP session
68PUBLIC© 2018 SAP SE or an SAP affiliate company. All rights reserved. ǀ
Real-time collaboration
GOALS
Bind AMC to APC (WebSocket)
Real-time events between users
No polling
USE EXAMPLES
Broadcasting: ABAP system -> UI sessions
Distribute UI changes to ABAP and other UIs
Collect external data in ABAP and display it on UI
Collaborative real-time editing of business object
ABAP SYSTEM
Application
Server A
User session
ONE
Application
Server B
User session
TWO
ABAP Messaging
Channel (pub/sub)
NO REFRESH
NEEDED
ABAP Push Channel ABAP Push Channel
3.0
NO REFRESH
NEEDED
3.0
REAL TIME
COLLABORATION
69PUBLIC© 2018 SAP SE or an SAP affiliate company. All rights reserved. ǀ
Goals
Industrial IoT scenarios in intranet
Directly connect ABAP server and shop-floor
Eliminate expensive middleware (PLCs)
TCP/IP connectivity (client/server)
ABAP Push Channel as TCP Socket
Use examples
Extended Warehouse Management scenarios
Shop-floor applications
Industrial IoT with ABAP Channels
TCP/IP
AS ABAP
≥ 7.50
70PUBLIC© 2018 SAP SE or an SAP affiliate company. All rights reserved. ǀ
SAP Cloud Platform for all IoT applications and
scenarios
ABAP Platform for shop-floor applications in
customer intranet
ABAP Push Channel connects to SAP Cloud Platform
mainly for notification scenarios
Send / receive selected sensor events
Shop-floor applications
ABAP Channels and SAP Cloud Platform
On-
Premise
Intranet
Cloud
AS ABAP
ABAP Push Channel
ABAP Push Channel
SAP Cloud Platform
IoT APPLICATIONS
SAP IoT Foundation
SENSORS /
MACHINES
71PUBLIC© 2018 SAP SE or an SAP affiliate company. All rights reserved. ǀ
MQTT
AS ABAP 7.53 features overview
MQTT
MQTT Version 3.1.1 support
API to implement MQTT clients
Based on ABAP Push Channel technology
Connection types: WebSocket and TCP Socket
Event-driven programming model (analogous to APC)
APC Security and Supportability
Use cases
External business event communication
SAP Enterprise Messaging and Enterprise Event Enablement
Machine-to-Machine (M2M) communication
72PUBLIC© 2018 SAP SE or an SAP affiliate company. All rights reserved. ǀ
FEATURES
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 (SMDAEMON), debugging, runtime analysis
(SAT), kernel statistical records (STAD, STATS)
GOALS
Daemon session with event handling capabilities
Reliability (session and pending tasks kept alive)
Notification on error and restart
Monitoring & Supportability
ABAP Daemons (1)
Always available ABAP sessions to handle real-time events
73PUBLIC© 2018 SAP SE or an SAP affiliate company. All rights reserved. ǀ
ABAP Daemons (2)
Always available ABAP sessions to handle real-time events
Implement a daemon application
Monitor active daemons with SMDAEMON
Use examples
Events scheduling
Parallel processing and LUW handling similar to
tRFC/qRFC
Event detection and processing
Lightweight background activities
Tracing & Logging
Health Check, cleanup of resources, synchronization
of caches and error handling
Proxy-Session for external communication
Messaging proxy(e.g. MQTT client in Gateway’s SAP
Enterprise/Unified Eventing)
74PUBLIC© 2018 SAP SE or an SAP affiliate company. All rights reserved. ǀ
ABAP Daemons (3)
AS ABAP 7.53 features overview
Start-Up Configuration – Bootstrapping of daemons
by application server
Each start-up configuration entry specifies for a
daemon application:
how many many instances of a daemon should be started in
the system and on which application servers
under which user a daemon should be started
A daemon user can be provided as
RFC destination (with logon information)
user name (trust relationship to DDIC user has to be
maintained)
Reuse of existing security concepts of the RFC
SMDAEMON transaction
Start-up configuration
75PUBLIC© 2018 SAP SE or an SAP affiliate company. All rights reserved. ǀ
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 application server
Supportability tools integrated into SAPC and SMWS
transactions
TCP log
Security
Virus scan profile for messages, authorization for involved
addresses and domains
Secure communication using SSL (TCPS for TCP Sockets
and WSS for WebSockets)
Supportability and Security
TCP log
SMWS
77PUBLIC© 2018 SAP SE or an SAP affiliate company. All rights reserved. ǀ
Extensibility
In-app extensibility and side by side extensibility
SAP Cloud Platform
for side by side extensions
and cloud integration
Key user can do
easy changes directly
in the app
78PUBLIC© 2018 SAP SE or an SAP affiliate company. All rights reserved. ǀ
Extensibility
Side by side extensibility using SAP Cloud Platform
Build Extend
Run Enjoy
Building new applications
General IoT services and industry use-case support Partner services
Extending SAP solutions
Support additional SAP SuccessFactors modules, extensions for SAP Ariba
Try, explore and run SAP Fiori applications in the cloud
Extensions to SAP S/4HANA
Running applications
Enhanced monitoring
Improvements for business continuity and scalability
Platform APIs
Developer experience
Deepen commitment to open source communities
Support additional runtimes and infrastructure services
Developer Portal / API Marketplace
SAP CP
79PUBLIC© 2018 SAP SE or an SAP affiliate company. All rights reserved. ǀ
Extensibility
In-app extensibility for SAP S/4HANA
SAP S/4HANA
UI
Database
In-app
extensionsApplication
Custom fields
Custom user interface
Custom Business Objects
Custom business logic
Custom reports / queries
Custom forms / reports
Extensibility inventory
Extensibility cockpit
80PUBLIC© 2018 SAP SE or an SAP affiliate company. All rights reserved. ǀ
In-app Extensibility
AS ABAP 7.53 features overview
Custom Reuse Libraries (CRL) – Your custom
container to group your custom reuse functions
Key user app “Custom Reusable Elements” for the
whole lifecycle of CRL
Possibility for key user to create type definitions for
CRLs
Supported Types for CRL:
Example: Custom Reuse Library containing functions
Amount with Currency
BooleanBusiness Object
(custom business object)
Business Object (released standard
business object)
Code List
Date E-Mail Address NumberNumeric Identifier
Phone Number
Quantity with Unit
String (Text without length
restriction)Text Web Address Timestamp
82PUBLIC© 2018 SAP SE or an SAP affiliate company. All rights reserved. ǀ
Key takeaways
ABAP Platform 1809
(AS ABAP 7.53)
03
01
03
03
First class development experience in Eclipse using
enriched ABAP language
Common data model with CDS and various SAP HANA
optimizations
Efficient ABAP Programming Model for SAP Fiori
Real-time events with ABAP Channels and ABAP
Daemons, Industrial IoT, and M2M communication
Best quality assurance with code analysis tools,
efficient custom code adaptation for SAP S/4HANA
Extensible to the cloud with SAP Cloud Platform
83PUBLIC© 2018 SAP SE or an SAP affiliate company. All rights reserved. ǀ
Further Information
SAP Community
▪ https://go.sap.com/community/topic/abap.html – ABAP Development Community
▪ https://go.sap.com/community/topic/abap-connectivity.html – ABAP Connectivity Community
▪ https://go.sap.com/community/topic/abap-extensibility.html – ABAP Extensibility Community
▪ https://go.sap.com/community/topic/abap-testing-and-analysis.html – ABAP Testing and Analysis Community
Developer on sap.com
▪ https://www.sap.com/developer/topics/abap-platform.html
SAP Help Portal
▪ https://help.sap.com/viewer/53a5091ea9e945839b860232b7796747/1809.000/en-
US/d3fe02ca03bd4c48bd7607a87f8802a6.html
Thank you
Contact information:
Carine Tchoutouo Djomo
Product Management
Technology Core Platform, SAP SE
Olga Dolinskaja
Product Management
Technology Core Platform, SAP SE
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/corporate-en/legal/copyright/index.epx for additional trademark information and notices.
© 2018 SAP SE or an SAP affiliate company. All rights reserved.