3. Context
• Integrate on-premise ABAP based SAP
systems with non ABAP based systems
• Put the ABAP stack into center for today
• Focussing on custom implementations
• Participants should obtain a more
complete picture about integration
capabilities and opportunities within SAP
landscapes
• Increase mutual understanding
(UI)
Application
Database
SAP ERP SAP CRM
non SAP app
non SAP
6. Challenges
• 25 years of legacy
• „developed historically“
• technical and business process debt
• Busy with keeping the stuff running
• backward compatibility
• modern development approaches vs. 1990
• Enhancement capabilities
• New techniques and technologies available
• Database
• UI
• Interfaces
• abapGit
• other products as SAP Cloud Platform, different cloud offerings
• Increasing technical complexity
• Agile Transition
• CI/CD
• Impact the whole organization
Copyright by SAP
9. SAP ERP System
Business Process
components
Technical interfaces – application level
OData
SOAP
RFC
ALE (IDOC)
File
http Function
Modules
ABAP
Classes
BAPI
• Different communication technologies
available on AS ABAP directly
• For more complex scenarios (e.g. SOAP
WS-RM) usage of an ESB (e.g. SAP PO) is
necessary
• Usually SAP interfaces exposed in ABAP
based systems are very complex
10. Hey SAP, where are my APIs?
https://blogs.sap.com/2014/05/29/hello-sap-where-are-my-apis/ by Dr. Christian Drumm
11. Infamous BAPI aka „Business API“
• Transaction code: BAPI
• Stable interfaces since the
beginning
• Target group: experts
• Consumption via
• RFC
• JCo
• OData wrapper (generated)
• SOAP wrapper (generated)
• Still heavily used internally &
externally
12.
13. BAPI
BAPIs expose public interfaces for an object model
Stable
General usage purpose
Stateful
Business
Partner
Address
BankAccount
BAPI_BUPA_ADDRESS_ADD
BAPI_BUPA_CENTRAL_CHANGE
BAPI_BUPA_BANKDETAIL_ADD
20. SAP Gateway in short words
• Component for service implementation and runtime
• Operations
• Monitoring/Troubleshooting
• OAuth support
• ALM (transport management)
• Versioning
• on-premise & SAP Cloud Integration (formerly known as SAP HANA
Cloud Integration or SAP GWaaS)
21. Pure REST in ABAP
• Variant 1
• Completely implement by your own
• Variant 2
• Updates with SAP AS ABAP 7.50
• Pure implementation w/o framework support by SAP
• Real REST
• Strong ABAP skill recommended
• Combination with Swagger possible
• view ABAP REST API description in Swagger https://github.com/larshp/ABAP-Swagger
23. Assumptions
• Different teams
• Backend team
• Frontend/mobile team (agile methodology)
• Application Lifecycle
• 4 major releases per year
• No agile SAP development (more waterfall, v-model)
• High degree of custom development on SAP side
• Process knowledge concentrated on SAP side
• Lacking knowledge because of staff fluctuation
25. SAP ERP System
Think about your process design
SAP Process Components
API consumer
application
Step 1 Step 4 Step 8 Step 2 Step 3
Step 1 Step 2 Step 3
Customer Process
Configuration
SAP Process
Configuration
exposes
SAP ERP custom API
(OData)
Customer Process
Components
use
http/OData
Instead of mobilizing a complex, existing
business process it could offer benefits
to start a new process e.g. for mobile
scenarios from scratch
28. ALM – 3 system landscape
API consumer
application DEV
SAP Gateway DEV Server
OData endpoint
SAP ERP DEV system SAP ERP TST system SAP ERP PRD system
SAP Gateway TST Server
OData endpoint
SAP Gateway PRD Server
OData endpoint
API consumer
application TST
API consumer
application PRD
29. ALM – 4 system landscape
API consumer
application TST
SAP Gateway TST Server
OData endpoint
SAP ERP TST system SAP ERP PPR system SAP ERP PRD system
SAP Gateway PPR Server
OData endpoint
SAP Gateway PRD Server
OData endpoint
API consumer
application PPR
API consumer
application PRD
API consumer
application DEV
SAP Gateway DEV Server
OData endpoint
SAP ERP DEV system
Preproduction
Just transport requests which are imported into PRD in
a timely manner
30. Versioning
• Code and executables are stored in database
• Central repository with exactly one active version per artifact
• No branching
• Manual removal/go back to predecessor version per artifact manually
• SAP Community project abapGit could help (to a certain extent)
• Configuration is stored as entries in db tables (no versioning, must be
defined on application level , e.g. processID and processVersion)
https://github.com/larshp/abapGit
32. Dependencies
• The custom development artifacts („Workbench objects“) fully rely on
underlying components
• Changes on the dependent component result in changes elsewhere
• Configuration („Customizing“) also represents dependencies which
are not transparent in most cases (e.g. OrderTypes,
CustomerClassifications, Conditions, and many more)
33. SAP ERP System
How one single db-entry disrupts your app
SAP Process Components
API consumer
application
Customer Process
Configuration
SAP Process
Configuration
SAP ERP custom API
(OData)
Customer Process
Components
ScoreIndicator
scoreIndicator == “Y01“
Y01 => Y09
Discipline
More abstraction of the business process
(HATEOAS, State Machines)
http command
exposes
34. What is the problem with pervasive
conformists?
SAP MDMSAP ERP
Mobile App
conformist
conformist
U (upstream)
D (downstream)
U (upstream)
D (downstream)
35. What is the problem with pervasive
conformists?
SAP MDMSAP ERP
Mobile App
conformist
conformist
U (upstream)
D (downstream)
U (upstream)
D (downstream)
36. What is the problem with pervasive
conformists?
SAP MDMSAP ERP
Mobile App
conformist
conformist
U (upstream)
D (downstream)
U (upstream)
D (downstream)
37. What is the problem with pervasive
conformists?
SAP MDMSAP ERP
Mobile App
conformist
conformist
U (upstream)
D (downstream)
U (upstream)
D (downstream)
38. Summary
• Separate SAP Gateway System vs. Integrated approach
• Dependencies
• Releases/Lifecycle
• Customizing
• Rules (imperative, customizing, rules engines, person)
• API approach influences the whole ABAP development of the whole system
(thesis)
• CI/CD
• Versioning
• Stack
• these topics will be present also when you think about SAP S/4HANA (cloud or
on-premise)
40. Finding appropriate abstraction
Business API
System API
Backend System
RESTful APIs representing the business need
Domain Driven Design helps (Bounded Context)
Fits into API-first strategies
Anti-Corruption-Layer (ACL)
RESTful APIs representing the system reality
Simply usage of complex APIs offered by backend systems/services
Anti-Corruption-Layer (ACL)
Technical scalability not essential as tight coupling to backend with limits
Represents (parts) of the core domain processes and artifacts
Interfaces are complex and for general use purpose
Probably long release cycles
42. Microservices Environment or
ESB
Finding appropriate abstraction
Consumer Complaint
System API
SAP CRM components
SAP CRM System
Microservices Environment or
ESB
Consumer Complaint
Business API
Business API
System API
43. SAP ERP System
Microservices Environment
or ESB
Business API with multiple relations
Consumer Complaint
System API
SAP ERP components
Microservices Environment or
ESB
Consumer Complaint
Business API
Business API
System API
SAP CRM System
Consumer Interaction
System API
Consumer Interaction
components
44. Abstracting with System/Business APIs
• API first approach
• Documentation capability
• Versioning
• Open technologies
• Mature methodologies (DDD, CI/CD, contract based testing)
• Business logic for calling complex System APIs
• Somehow contrasting the Fiori development model (could complement it)
• Support a so called „bi-modal IT“ or „Two-speed-IT“ to a certain extent
45. Harmonized interfaces?
• The System APIs could enable a harmonization of different interface
technologies (depends on strategy and requirements)
• Easier access of non experts to processes running on SAP AS ABAP
systems, e. g. by providing lightweigt RESTful interface for an IDOC
46. Protect your Backend Teams and their systems
• Control resource usage on SAP AS ABAP systems caused by inbound
communication
• Also organizational protection of the teams (quicker release cycles on
consumer side than on ABAP side)
49. Microservices Environment
The return of forgotten interfaces
Consumer Complaint
Business API
Legacy Business Partner
Management
Forgotten Legacy System
Not replaced legacy systems
Still supplied with data updates
Other legacy systems rely on this component
Usually a hidden feature in some Enhancements/UserExits which just comes up when things are not working as expected
System availability under expectations
Different release cycles
Many teams
SAP ERP components
Consumer Complaint
System API
SAP ERP System
Consumer Interaction
System API
SAP CRM components
SAP CRM System
50. The devil is stored in detail
• SAP Datatypes
• Not type-safe
• Leading zeros
• Errors are returned as HTTP Codes by default
• What does your firewall say to this?
• Could lead to an own message handling approach
• Produce significant load on SAP ABAP backend server using OData
• Offense programming style (missing null pointer checks)
• UI elements coming up from persistency related components
52. Event Sourcing is possible today
Data cleansing app
Special Billing
Application
Java EE app
Streaming Platform
• Replace classic file transfer by
streaming approach
• Analytical functions and data correction
executed on streaming data
• Reduce manual activities
subscribe
subscribe
topic/queue/ccl
topic/queue/ccl
publish
SAP ERP System
custom publish
component
SAP Business Workflow
Events
Database
SAP Gateway Push
ABAP REST Atom Feed
53. SAP ERP System
Subscribe with JCo
Consumer Complaint
System API
custom publish
component
Read operation
Streaming Platform
SAP Business Workflow
Events
Database
READ ModelWRITE Model
SAP Gateway Push
ABAP REST Atom Feed
write operation
JCo + trusted SNC connection for „delegation scenario“
OAuth 2.0
BAPI
54. Technical communication users vs.
named users
• Authorization concept in SAP AS ABAP systems base on named users
(e.g. MSTEINBERG)
• Which Organizational Unit do I belong to? (e.g. Complaint Team in Call Center
Paris)
• What am I allowed to do (create sales orders, read salaries...)
• User name appears in the application logs
• For each user license fees have to be paid (depends on user type)
61. Organizational Aspects
• Who should create the System APIs?
• Who should create the Business APIs?
• More ABAP focus
• Then invest in your teams
• More independence?
• Broader market for architects, software engineers
63. SAP ERP System
Connector for publish from ABAP
Consumer Complaint
System APIcustom publish
component
Streaming Platform
SAP Business Workflow
Events
Database
READ ModelWRITE Model
SAP Gateway Push
ABAP REST Atom Feed
write operation
http POST
ABAP connector
read operation
65. Entering the world of analytics
• Obtain data
• Filter
• Validate
• Analyze streaming data (e.g. anomalies)
• Transform
• Transform streaming data into a useful model
• Persistency
• Query
• Provide APIs to query the (pre-processed) data