Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

ABAP State of the Art

871 Aufrufe

Veröffentlicht am

Slides from SAP Inside Track Frankfurt 2018 (Martin Fischer and Tobias Trapp)

Veröffentlicht in: Software
  • Als Erste(r) kommentieren

ABAP State of the Art

  1. 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. 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. 3. Modern Application Architecture • Domain Driven Development • Digitization • Expose Business Functions as (Micro) Services • Beautiful User Interfaces • Principle of One
  4. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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

×