Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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

Image Removed

Image Removed

Image Removed

Transactional application targeted at an expert user

Image Removed

Image Removed

Image Removed

Responsive Design; Support for tablet or mobile phone.

Image Removed

Image Removed

Image Removed

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.

  • Where a date or time is rendered as a string for output to a user and can be guaranteed to never be used as an input by another system (e.g. when included in a PDF document), in this case, a more “user-friendly” formats may be used.
  • Code which processes dates or times (e.g. input screens, interfaces, SOAP web services, etc.) must be able to properly determine the time zone of an input and normalize it to the system-internal time zone.

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

Image Removed

Analytics

Reporting

Metrics

Integration Process

SCPI - Integration Development Process

Image Removed

APIM Management/CI/Event Mesh

System Interface

Enhancement

Image Removed

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

  1. Exact object(s) that require modification or implicit enhancement are identified and listed.
  2. DA forum to explicitly approve the modification through custom development request process.
  3. Critical Developer Role is updated with the requested SAP standard objects (exact name will be mentioned in S_DEVELOP object).
  4. Access will be provided to the assigned developer to complete the development.
  5. Implicit Enhancements are treated as standard modifications.

Form (Output)

Image Removed

User Interface

Image Removed

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

Image Added

Image Added

Image Added

Transactional application targeted at an expert user

Image Added

Image Added

Image Added

Responsive Design; Support for tablet or mobile phone.

Image Added

Image Added

Image Added


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

Image Added

Workflow

Image Added


Analytics

Image Added


Integration Process

SCPI - Integration Development Process

Image Added

APIM Management/CI/Event Mesh

Image Added


System Interface

Image Added



Enhancement

Image Added


Form (Output)

Image Added


User Interface

Image Added


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 Integration Development Standards

SAP Analytics and Reporting Development Standards

SAP Analytics and Reporting Standards