%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
ABAP State of the Art
1. ABAP state-of-the-art –
Do’s and Don’ts and How to be
Successful when going beyond
Simple Prototypes
Martin Fischer BridgingIT GmbH
Tobias Trapp AOK Systems GmbH
2. Motivation
Using new tools and frameworks is sometimes like a first ascent in
mountaineering: the challenges are quite high and the way to the
summit is not always clear and straight forward. But it’s also much
more interesting then hiking a well paved trail.
But the feeling on the summit must be beyond words!
3. Modern Application Architecture
• Domain Driven Development
• Digitization
• Expose Business Functions as (Micro) Services
• Beautiful User Interfaces
• Principle of One
4. Domain Driven Development
• Do’s:
• focus on the core domain and domain logic
• design business objects processes based on conceptual model
• think in term of resources: RESTful thinking
• avoid abstraction
• develop business processes and not frameworks
5. Digitization
• Do’s:
• three layer architecture
• support full automatic and mass processing as well as beautiful user
interfaces
• identify services that are corner stones of your digitization strategy (f.e. SAP
Hybris Commerce)
• learn API design: services should be small & fine-grained to perform a single
function
6. Beautiful Use Interfaces
• Do’s:
• follow Fiori Design Principles
• use Fiori Elements whenever possible
• Dont’s:
• don’t use Fiori Elements when using Design Thinking methodology
• don’t think that beautiful freestyle apps come for free
7. Principle of One
• Do’s:
• use strategic Frameworks: BOPF, BRFplus…
• apply the new ABAP programming model:
data model-> CDS -> BOPF -> Gateway -> Fiori
• look at SAP Partner Guides for S/4HANA
• Benefits:
• standardization & good maintainability
• high productivity (after training period)
• you are close to SAP’s technology strategy & tool support
8. The New Programming Model
SAP UI5 and Fiori Smart Elements
SAPNetWeaverASABAPUI
Core Data Services
SAP Gateway Service
Business Object Processing
With Smart Elements it is possible to
create SAP Fiori Apps without coding
• SAP Fiori Apps as Frontend
• SAP Gateway Services
• Data and Application Modelling: CDS
• Implement Business Logic with BOPF
The back-end integration is done via
OData-based SAP Gateway Services
CDS is used for modelling data and the
BOPF application
The whole business logic is
implemented in ABAP using the BOP
Framework
SAP introduces with S/4 HANA the new
Fiori Programming Model. This can also
be used for custom development!
9. Start the Climb now!
Even if the implementation of S/4
HANA is not on the horizon yet, start to
use the tools and frameworks
whenever possible!
Make your development team familiar
with new concepts in order to be ready
for the S/4 HANA climb!
BOPF, Gateway and BRF+ are there
since ages!
CDS can be used also with anyDB!
Further advantages:
• the development time will get
reduced due to efficient frameworks
• Maintenance efforts get reduced due
to more uniform code base
10. … be aware of pitfalls!
Attention:
• BOPF changed over time:
Dynpro based tooling vs.
ADT vs. modelling with CDS
=> SAP offers no migration
path for applications
• CDS with anyDB: the
performance can differ a lot
between different DBs
• CDS on releases below 7.5
may cause problems during
transports
11. Architecture Patterns
• spend effort on the data model based on
domain model
• create business objects
• identify services as cornerstone for
digitization:
• how can they outshine competitors?
• use user journeys for validation
• create internal & external APIs
• use ABAP package concept
• apply TDD & develop Unit Tests
• usage of ABAP OO & modern ABAP syntax
is evident so we don’t mention it in the
rest of this lecture
12. Architecture Nightmares
• application design as generic
frameworks that can work
with any business object
• generic persistence esp. XML
• batch-driven architecture
• reuse without use case
• don’t start developing
frameworks – they have the
tendency to constrict yourself
13. What may
cause problems?
• ABAP CDS on anyDB
• CDS lifecycle problems
• Fiori UIs with more than 1 business object
• limitations of OData V2
• missing Gateway features
• missing features of Fiori Smart Elements in
NW 7.5
• wishful thinking: “this feature is necessary and
should be there – so I base my design on it
without doing a prototype”
• missing skills within development team
14. How to go Directly
to Hell when Using CDS
• ignore warnings during activation
• fix activation errors with the debugger
• reuse between different software
components & transport layers
• mixing analytical & transactional models
• reuse between applications unless you
don’t have a good plan (I confess I don’t
have - so I don’t do it)
• too complex code pushdown to
S/4HANA with CDS: try analytical CDS
and use ADMP when necessary
15. Avoid cyclic CDS models
whenever possible
• they make it complex
• they have lifecycle problems:
https://help.sap.com/doc/abapd
ocu_750_index_htm/7.50/de-
DE/abenddic_cds_cycle_problem
s.htm
• use them only in BOPF models -
you can’t avoid them
• transport early
• apply OSS notes when transport
problems occur
16. Best Practices for CDS
Models
• start with NW 7.5
• get latest version of ADT tools
• use DCL
• follow SAP Guidelines for anyDB:
https://tinyurl.com/SAP-ABAP-CDS-on-anyDB
• check whether your DB platform supports
the features you use
• do performance testing – even on HANA
• governance of CDS models
• get SQL skills in your team – f.e. SAP BW
experts can help you
• check DB versions and get DB admins on
board
17. Apply CDS Patterns &
Conventions of S/4HANA
Consumption Views
different views for transactional UIs
(RDS, transient data), Analytics
Interface Views
public & stable – foundation für BOPF object
Basic Views
Projection of DB table used for Draft
Database
18. Best Practices for Backend
Development of UIs
• study CDS UI annotations
• be prepared that there are no
annotations for domain values
• complex search helps are a
challenge
• follow NW roadmap: complex
types for function imports are
supported not till NW 7.51 f.e.
19. Best Practices for Fiori
Development
• keep high UI5 level
• apply Fiori Design Principles:
https://experience.sap.com/
• use Smart Elements – but be
aware of missing features
(read the documentation)
• use Drafts (NW 7.51 and
higher)
20. What to do without
Drafts?
• use optimistic locking concept
• follow SAP floorplan:
• save data when moving from
master to detail and back
• SAP Web IDE will help you when
there is no ACTIVATE function
• if you don’t follow that advice
trouble will occur when
temporal GUIDs remain
because of failing validations
21. Be Aware of Limitations
of Auto Exposure
• auto exposure replaces Gateway programming
• you cannot navigate from one
#TO_COMPOSITION_ROOT view to another BO‘s
associated objects
Picture taken from SAP Library
https://help.sap.com/viewer/cc0c305d2fab47bd80
8adcad3ca7ee9d/7.5.9/en-
US/79cb3bf4eafd4af9b39bc6842e5be8bd.html
22. Use Referenced Data Sources
• use OData Service Based on a
Referenced Data Source (RDS) –
NW 7.5ff
• read Documentation in SAP
Library & André Fischer’s blogs
about RDS:
https://blogs.sap.com/2016/06/
02/odata-service-development-
with-sap-gateway-using-cds-via-
referenced-data-sources-how-to-
implement-updates/
BOPF model
RDS based on
Consumption view
on top of BOPF
model +
SEGW programming
for updates
23. Transient Data
for Fiori Apps
• BOPF exposed as CDS doesn’t supports virtual
elements in NW 7.51
• IMHO there are some missing features – so I
recommend prototyping
Picture taken from SAP Library
https://help.sap.com/viewer/cc0c305d2fab47bd808adcad3ca7ee9d/1709.001/en-
US/a7fc007921d44263b09ccc092392b05f.html