...
Layers apply dependencies from the top down. From the diagram above, the Presentation layer depends on all other layers, while the Domain Infrastructure layer has no immediate dependencies. The order of the layers shown above is what is commonly used.
...
When re-using existing code ensure the abstraction is right. If not, duplication appropriate to the context is the best approach – favor simplicity before generality if both options are equally feasible.
User Interface Framework
Syensqo has invested in a diverse SAP platform which spans both hosted ABAP based applications for delivering core business suite functionality and cloud-based applications such as Success Factors for HR, C4C for CRM and Concur for Travel Management. Delivery of these applications will be primarily via a Web Browser, and additional UX concerns such as responsive design for Mobile and Tablet users’ needs to be considered when developing custom user interfaces or extending existing applications.
To support the development and extension of these new applications SAP has delivered the UI Development Toolkit for HTML5 (SAPUI5) which is a UI framework based on Jquery, HTML5 and CSS3. This framework is designed to provide a modern web experience for consumer grade applications and casual enterprise users by enabling the development of highly interactive and focused applications that support responsive design. SAPUI5 applications can be targeted at desktop, tablet and mobile phone users.
SAPUI5 apps are compliant with the SAP UX Strategy and deliver on the Fiori UX experience. The Fiori Elements framework allows you to generate UI5 apps based on meta data additions in CDS views and RAP. If the required app is targeted to expert users, or has a higher complexity than Fiori Elements can handle, a Freestyle app needs to be developed. Freestyle apps start with a blank canvas. These apps can be built in SAPUI5 or React. All SAPUI5 apps can be deployed on either S/4Hana or BTP. React apps can only be deployed to BTP.
ABAP Dynpro is not allowed in custom development. If there is a legitimate requirement to transform an existing Dynpro application to conform to the Fiori UX experience, and a suitable standard SAPUI5 or Web Dynpro ABAP application cannot be used, and a custom development is not deemed appropriate, then SAP Screen Personas can be used to transform the Dynpro to a Fiori type User Interface.
SAP has positioned the Business Technology Platform (BTP) as the extension platform for all SAP Solutions. When building front end extensions using the BTP, the SAPUI5 framework or React JS is to be used.
The following table illustrates the preferred UI framework for custom developments for several possible use cases.
Use Case | Dynpro/ Floor Plan Manager WDA | Fiori Elements | Freestyle (SAP UI5/React JS) |
Single purpose focused application or casual use | |||
Transactional application targeted at an expert user | |||
Responsive Design; Support for tablet or mobile phone. |
Rule | Choose the appropriate UI framework based on the use case. |
Patterns
Software Patterns provide generic solutions to well-known problems in software development. A pattern provides an approach that can be contextualised to a specific implementation. Software patterns provide a common language for developers to use; there is no ambiguity, and new team members don’t require problem domain knowledge to understand what the pattern does.
Patterns, by applying a known approach, drive software architecture away from haphazard collections of classes and functions towards a structured, maintainable solution. For example, the Model View Controller pattern is used to ensure a clear Separation of Concerns in UI development while the Strategy pattern is used to allow application logic to be dynamically substituted at runtime.
Rule | Use patterns where appropriate. |
Time Zone Handling
Date and time values must be expressed in such a way that there is no ambiguity about the time zone of the date/time value. A format described in the ISO 8601 standard must be used to represent dates and times. Where specific technical limitations prevent this (e.g. SAP-standard database tables which store dates in the YYYYMMDD format).
Rule | Only use formats defined in ISO 8601 for representing date and time values, unless a specific technical limitation makes this impossible.
|
Development Tool Decision Trees
The following set of decision trees shows the decision path to take to find the right development tool and approach to deliver compliant objects in SAP.
Workflow
Analytics
Reporting
Metrics
Integration Process
SCPI - Integration Development Process
APIM Management/CI/Event Mesh
System Interface
Enhancement
Rule | UI Adaptation and clean core enhancement points are preferred. |
Rule | Standard modification and implicit enhancements are not allowed by default and require specific DA approval. |
Standard Modification process
- Exact object(s) that require modification or implicit enhancement are identified and listed.
- DA forum to explicitly approve the modification through custom development request process.
- Critical Developer Role is updated with the requested SAP standard objects (exact name will be mentioned in S_DEVELOP object).
- Access will be provided to the assigned developer to complete the development.
- Implicit Enhancements are treated as standard modifications.
Form (Output)
User Interface
Rule | Fiori UI5 App is preferred for any enhancements of UI. |
Rule | Neptune’s DX platform to be used for mobile apps. |
...
Rule
...
Patterns
Software Patterns provide generic solutions to well-known problems in software development. A pattern provides an approach that can be contextualised to a specific implementation. Software patterns provide a common language for developers to use; there is no ambiguity, and new team members don’t require problem domain knowledge to understand what the pattern does.
Patterns, by applying a known approach, drive software architecture away from haphazard collections of classes and functions towards a structured, maintainable solution. For example, the Model View Controller pattern is used to ensure a clear Separation of Concerns in UI development while the Strategy pattern is used to allow application logic to be dynamically substituted at runtime.
Rule | Use patterns where appropriate. |
User Interface Framework
Syensqo has invested in a diverse SAP platform which spans both hosted ABAP based applications for delivering core business suite functionality and cloud-based applications such as Success Factors for HR, C4C for CRM and Concur for Travel Management. Delivery of these applications will be primarily via a Web Browser, and additional UX concerns such as responsive design for Mobile and Tablet users’ needs to be considered when developing custom user interfaces or extending existing applications.
To support the development and extension of these new applications SAP has delivered the UI Development Toolkit for HTML5 (SAPUI5) which is a UI framework based on Jquery, HTML5 and CSS3. This framework is designed to provide a modern web experience for consumer grade applications and casual enterprise users by enabling the development of highly interactive and focused applications that support responsive design. SAPUI5 applications can be targeted at desktop, tablet and mobile phone users.
SAPUI5 apps are compliant with the SAP UX Strategy and deliver on the Fiori UX experience. The Fiori Elements framework allows you to generate UI5 apps based on meta data additions in CDS views and RAP. If the required app is targeted to expert users, or has a higher complexity than Fiori Elements can handle, a Freestyle app needs to be developed. Freestyle apps start with a blank canvas. These apps can be built in SAPUI5 or React. All SAPUI5 apps can be deployed on either S/4Hana or BTP. React apps can only be deployed to BTP.
ABAP Dynpro is not allowed in custom development. If there is a legitimate requirement to transform an existing Dynpro application to conform to the Fiori UX experience, i.e. for a mobile device screen, or to simplify the UI and a suitable standard SAPUI5 cannot be used, then SAP Screen Personas can be used to transform the Dynpro to a Fiori type User Interface.
SAP has positioned the Business Technology Platform (BTP) as the extension platform for all SAP Solutions. When building front end extensions using the BTP, the SAPUI5 framework or React JS is to be used.
The following table illustrates the preferred UI framework for custom developments for several possible use cases.
Use Case | Dynpro/ Floor Plan Manager WDA | Fiori Elements | Freestyle (SAP UI5/React JS) |
Single purpose focused application or casual use | |||
Transactional application targeted at an expert user | |||
Responsive Design; Support for tablet or mobile phone. |
Rule | Choose the appropriate UI framework based on the use case. |
Reporting
Realtime analytics will be restricted to small data sets so as to not impact performance on the source system.
This is typical of generic analysis of financial data vs plan for say the current month for a company. The same could be applied to the material ledger.
In these scenarios, you would want to apply the restriction to the dataset via parameters or filters in the CDS view.
Besides small data sets, we also want to avoid cases where data sets are accessed frequently. The concept is to cater for ad-hoc requests rather than be a frequently recurring path to access data.
The CDS views are using associations, which means that master data is only accessed on demand. This does result in an efficient data access request.
Other SAP development tools to be considered where appropriate:
- Custom Analytical Queries (F1572) - however, this uses deprecated views rather than projections
- Manage KPI's and Reports (F2814)
Extraction of data to be acquired in Datasphere will require a delta scenario by way of Change Data Capture (CDC) being applied to the CDS view. In this case you would not want to have parameters or filters. If no fields available for a timestamp, then a pseudo-delta can be used where for example the current month can be extracted in full.
Rule | Realtime analytics only to be used for small data sets that are accessed on an ad-hoc basis. |
Development Tool Decision Trees
The following set of decision trees shows the decision path to take to find the right development tool and approach to deliver compliant objects in SAP.
BTP vs S/4HANA on stack vs Others
Workflow
Analytics
Integration Process
SCPI - Integration Development Process
APIM Management/CI/Event Mesh
System Interface
Enhancement
Form (Output)
User Interface
Link to the original file containing the drawings: SAP Development Approach drawings
Development Process
Every development requirement must go through four phases as shown in below picture. Failure to comply results in a “no-go” decision at go-live.
...
While onboarding new resources to the development team it is mandatory for them to read, understand and acknowledge the Development Approach document and relevant Standards.
This acknowledgement is a pre-requisite to approving the SAP user provisioning.
...
Standard and Guideline | Link |
SAP Development Standards | SAP Development StandardsNeptune |
mobile App SAP Integration Development Standards | |
SAP Analytics and Reporting Development Standards | SAP Analytics and Reporting Standards |










