0% found this document useful (0 votes)
44 views

Key User Extensibility Overview

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
44 views

Key User Extensibility Overview

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 35

Key User Extensibility

ABAP Platform Product Management, SAP


September 2023

PUBLIC
Content

Motivation for a New Extensibility Concept in S/4HANA


Extensibility Spectrum and SAP S/4HANA Extensibility Scenarios
Key User Extensibility Tools
▪ UI Flexibility ▪ Analytics Extensibility – KPI Design

▪ Custom Fields ▪ Analytics Extensibility – Custom Analytical Queries (Query Builder)

▪ Custom Business Objects ▪ Analytics Extensibility – View Browser

▪ Custom Business Logic ▪ Custom Catalog Extensions


▪ Custom Tiles
– Custom Reusable Elements: Custom Code Lists
▪ Custom Communication Scenarios
– Custom Reusable Elements: Custom Libraries
▪ Custom Forms
– Custom Business Logic: XCO Library
▪ Extensibility Cockpit
– Tracing
▪ Maintain Translations
▪ Custom CDS Views
▪ Extensibility Inventory Application
▪ Lifecycle Management: Export/Import Collection
PUBLIC 2
SAP S/4HANA Extensibility
On-Stack Extensions Side-by-Side Extensions

Developer
Extensibility
(Clean Core)

Secured
connectivity
SAP BTP
Key User
Extensibility SAP S/4HANA User Interface
Rules / Workflow Side-by-Side
(Clean Core) Process / Events Extensibility
Data Replication
(Clean Core)

Classic
Extensibility1

1 SAP S/4HANA Cloud, private edition and on premise only; not “clean core”

PUBLIC 3
Motivation for Key User Extensibility in SAP S/4HANA

CLASSICAL EXTENSIBILITY DE-COUPLING AND LIFECYCLE STABILITY


Custom Code Development and Extensions today Key User Extensibility
• Modifications of SAP code • Custom fields and tables, customer analytics
and forms, business logic, … SAP
• Extensions calling SAP code SAP
S/4HANA S/4HANA
Cloud
On-premise
• Web-based key user tools
(no APIs available)
• Based on stable extension points and APIs
• Software updates require SAP
S/4HANA
On-premise
major adoption effort in customer/partner code

Developer Extensibility
• On-stack developer extensibility of S/4HANA
• ABAP RESTful programming model for the
SAP
development of SAP Fiori apps S/4HANA
Cloud

• High developer productivity with Eclipse-based


ABAP development tools SAP
S/4HANA
• Based on stable extension points and APIs On-premise

PUBLIC 4
Motivation for Key User Extensibility in SAP S/4HANA

De-coupling and Lifecycle Stability


In-App Extensibility Side-by-side Extensibility
on SAP BTP Challenge
• Software is always patched and upgraded based on a fixed
UI UI
schedule and new innovations are introduced easily.

Application App Solution


• Only extensibility that does not block SAP software updates and
continue to work after an update without manual steps is allowed.
Database DB
• Custom extensions are lifecycle-stable, i.e. the software lifecycle of
“De-coupled, Lifecycle-stable Extensions”
extensions is de-coupled from the systems of records (“clean core”).
− Modification free
− Clash free
− Use whitelisted APIs and extension points
− Compliant with zero-downtime principles

PUBLIC 5
Motivation for Key User Extensibility in SAP S/4HANA

Empowering the Key User • Create/change complex business logic


• Rich, modern IDE functionality, incl. debugging,
code checks, quality tools
Challenge • Support of big projects/teams
• Line of Business departments drive the
Developer
implementation of (Cloud / IT) services

Task complexity
Solution
• Extensibility tools are used by in business • Perform simple tasks in an easy way
departments that should easily apply non-disruptive • Easy-to-use and life-cycle stable
• WYSIWYG / instant testing included
extensibility tasks without risk. • Low entry barrier
• In particular for: Key User, Business Expert,
− UI Adaptations Implementation Consultant
− Custom fields and tables
− Custom analytics and forms
− Custom business logic (cloud ABAP Web editor) Feature Richness

PUBLIC 6
Extensibility Spectrum

Functional Scope

Personalization

Layering
Key User Extensibility

Customer & Partner Development

Industry & Globalization Development

PUBLIC 7
SAP S/4HANA Key User Extensibility Scenarios

Fiori Lauchpad
Fiori Launchpad SAP Fiori
I6 Custom UI
is a collection of apps with a simple and easy-
Custom User User Interface
to-use experience for broadly used SAP
Interface (Fiori) (Fiori) software functions that work seamlessly across
I1 UI Adaptation devices – desktop, tablet, and smartphone.
Frontend
Backend: ABAP Server

OData Service OData Service OData


OData (Open Data Protocol)
is an OASIS standard that defines the best
practice for building and consuming RESTful
Custom Business Objects

APIs.
I3
Custom Fields

Analytics / Forms

Application Application
(ABAP | CDS) (ABAP | CDS) CDS (Core Data Services)
I4 Business Logic CDS is a modeling environment which provides
a data definition language (DDL) for defining
semantically rich database tables/views (CDS
I2

entities) in the database. The enhancements


Database Table Database Table
I5

include annotations, associations, and (SQL)


expressions.
SAP Key User Extensibility

PUBLIC 8
Key User Extensibility
Overview

UI Custom Custom
Key User Custom
Tools
Adaptation Business Business
at Runtime Fields
Object Logic

Custom
Custom
Analytical KPIs Forms
CDS View
Queries

PUBLIC 9
Key User Extensibility: UI Flexibility

With the UI Adaptation Mode, you can


• Hide fields in a form, table, or filter, hide groups and areas

• Rename labels

• Add field to UI from field repository

• Move form field or UI group by drag & drop, create new


groups and move fields into

• Combine fields into one line, split combined fields

• Define new filter and variants for tables

• App variants: Instead of saving your changes made in UI


adaptation in your original app, you save them in a new app
(= app variant).

• Embedding Content: Embed content from external


applications or websites to your app, for example, external
videos or maps. The content is then added to an IFrame.

UI Adaptation Mode in SAP Fiori Launchpad


PUBLIC 10
Key User Extensibility: Custom Fields

In the Custom Fields App, you can


• Create and edit custom fields (extend the SAP table, application,
CDS views and OData services)

• Delete an existing custom field

• Manage the usages of a custom field such as other UIs, reports,


forms, service interfaces, processes, search

• Define fields of type

• Text, number, amount, quantity, time, date, timestamp, …

• Value help views based on fixed code list or based on CDS view

• Association to custom business objects or to SAP standard


business objects

Key User Fiori App Custom Fields: Create

PUBLIC 11
Key User Extensibility: Custom Fields
Data Source Extensions
In the Custom Fields App (Data Source Extension tab) you can
• Extend SAP CDS Views and OData-Services with SAP fields that are
available in CDS views in “lower layers” of the virtual data model

• This is also possible for Custom Fields available in CDS views in “lower
layers” of the virtual data model

• Important to know: Fields exposed via Data Source Extensions are always
Read Only fields

• You can overwrite the SAP Fields Label and Tooltip

• If an SAP Field has a value help this value help is also provided

Key User Fiori App Custom Fields – Data Source Extensions

PUBLIC 12
Key User Extensibility: Custom Business Objects

In the Custom Business Objects app you can


• Create your own business objects and the corresponding
database tables

• Add fields to business objects, delete fields and business objects

• Create CDS views, OData services and UI to enter data through a


UI or data load from other customer systems

• Create multiple sub-nodes for one business object

• Define fields of type association to other custom business objects


and to SAP standard business objects

• Implement custom logic on node level, write to custom business


objects from custom logic

• Publish business objects, edit business objects that have already


been published

• Reset business objects to their last published version


Key User Fiori App Custom Business Objects
• Copy or delete an existing custom business object

• Use Change Documents and Data Access Management


PUBLIC 13
Key User Extensibility: Custom Business Logic

In the ABAP Web Editor you can use


• Easy exploration of extension points, key user documentation

• Syntax check, syntax highlighting, code completion

• Draft (sandboxing) / published, testing included

• ABAP Language Version for Key Users

• Robustness / security / data consistency

• For example, the following statements are not allowed:


any DB operation except selects from released views,
parallel processing, dynamic programming, code
generation

• Simplicity: obsolete ABAP statements are removed from


the syntax
Key User Fiori App Custom Logic

PUBLIC 14
Key User Extensibility: Custom Reusable Elements
Custom Code List
Custom Code List
• A code list consists of code values (example: enUS) and code
value descriptions (example English (US))
• Code values descriptions can be translated
• You can reuse a code list in several custom business objects
• You cannot modify or delete code values of code lists that are
transported

Key User Fiori App Custom Reusable Elements

PUBLIC 15
Key User Extensibility: Custom Reusable Elements
Custom Libraries
Custom Libraries
• With Custom Reusable Elements you can modularize and structure
your custom code
• You can create Custom Libraries and organize your methods
• This application is specifically designed for custom code reuse
• Key Features:
• Create a new custom library
• Add a method to your created custom library
• Add details to your method
• Use global variables in custom re-use libraries: create a buffer
across business logic events
• Test your custom code, save and publish your custom code and
method

Key User Fiori App Custom Reusable Elements

PUBLIC 16
Key User Extensibility: Custom Business Logic
XCO Library
Extension Components (XCO Library)
• String/XString: simplifications when working with
strings/xstrings.

• UUID: effectively work with UUIDs, e.g. translate between


different UUID formats

• Regular expressions: match strings against patterns or extract


substrings that match certain criteria.

• Time Library: standard abstractions for working with temporal


values.

• JSON: work with JSON data, e.g. creation of JSON strings


(both from ABAP data structures and from scratch), conversion
of JSON strings to ABAP

PUBLIC 17
Key User Extensibility: Custom CDS Views

Create Custom CDS Views

• You can use the app to create custom CDS views for different purposes:
• Cube or Dimension views to be used in analytical scenarios
• General custom CDS views to be reused for view building in various scenarios
• External APIs define a service that can be consumed externally via OData
• Value Help Views used in Custom Fields and Custom Business Objects
• Data Extraction views to enable full extraction capabilities with Custom CDS Views

• With the app, you can create or modify a custom CDS view by, for instance by:
• adding fields from multiple data sources
• creating your own calculated fields such arithmetical calculations, case statements,
conversions
• refining the properties (such as aggregation behavior, semantics) of the selected
fields
Key User Fiori App Custom CDS Views
• creating and maintaining parameters for the usage within your view
• adding filters in order to refine the result set
• Editing a custom CDS view is an assisted process with scenario specific guidance and
checks.
• After publishing your CDS View, you can preview the results in the built-in data preview
or in the Customer Data Browser
PUBLIC 18
Key User Extensibility: Tracing

Tracing
• Tracing can be used to see which determinations, validations and
actions of which custom business object and nodes are being
processed in which order.
• You can also trace values of the input, output and changing
parameters of validations, determinations, actions and the duration
of their execution
• By creating a new trace you are able to select a name and define
properties:
• Retention date: until when a trace information will be available
• Lifetime: activate time for a trace
• Select user: e.g. communication user in case of an incoming
web service call
• You can start and stop the tracing
Key User Fiori App Custom Logic Tracing
• The result view of your trace will also be listed
• The icon on the trace overview indicates the status of the whole
trace

PUBLIC 19
Key User Extensibility: Analytics Extensibility
Manage KPIs and Reports
KPI design Fiori apps
• Adapt SAP delivered KPIs and reports by copying them and
adjusting to your business needs

• Define drill downs to analyze the KPIs to better understand your


business situation

• Apply filters on the drill down to narrow down to your area of


interest.

• Save the filtered analysis to launch the same analysis at a later


point in time

• Define associations between KPIs and reports so that they are


available during analysis at runtime.

• Navigate to transactional apps to take action based on your


analysis

Key User Fiori App Manage KPIs and Reports

PUBLIC 20
Key User Extensibility: Analytics Extensibility
Custom Analytical Queries (Query Builder)
Create Custom Analytical Queries
• Create a query based on a released SAP analytical data source
(CDS views of type cube) or a custom analytical data source

• Copy a query from a SAP delivered standard analytical query

• Add or remove or customize field defined in the query (defining


new labels for a field, display data as key or text, show or hide
result rows etc.)

• Add or remove filters (pre-configured fixed value filters or user


input values filters)

• Create parameters to read the values from the user

• Create calculated / restricted / converted measures

Key User Fiori App Custom Analytical Queries • Define Hierarchies

• Testing included: Preview the results by executing the report (in


Design Studio)

PUBLIC 21
Key User Extensibility: Analytics Extensibility
View Browser
View Browser
• Search for CDS views and display details

− SAP and custom views

− Filter by view type, release status, etc.

− Free text search

• Create/manage analytical applications

• Display of content

• Show the details of 5500+ released CDS views


• State for release SAP S/4HANA Cloud 2111
Key User Fiori App View Browser

PUBLIC 22
Key User Extensibility: Custom Catalog Extensions

With the Catalog Extensions Fiori app, you can


• Extend SAP Fiori catalogs

• Add custom business object UI to a SAP Fiori catalog

• Add a Smart Business KPIs or Report to a SAP Fiori catalog

• Add a Analytical Query Application to a SAP Fiori catalog

• Add a Custom Tile to a SAP Fiori catalog

• Add a Analytical Cloud Story to a SAP Fiori catalog

• Custom Inbound Service App: Customers can call an inbound


service via oAuth

By extending the Fiori catalog the respective custom Fiori tile is


Key User Fiori App Custom Catalog Extension
assigned to the selected Fiori catalog, and the tile appears in the Fiori
Launchpad.

In the Fiori Launchpad, you can use the “Personalize Home Page”
feature to add custom tile to one or more launchpad groups.
SAP S/4HANA Cloud, public edition only

PUBLIC 23
Key User Extensibility: Custom Tiles

With the Custom Tiles Fiori app, you can


• Create a new Fiori Launchpad tile with a static URL

Use Case: You have created an external application (e.g. on SAP


Business Technology Platform) and want to create a tile with a URL
link to this external application

Key User Fiori App Custom Tile

SAP S/4HANA Cloud, public edition only

PUBLIC 24
Key User Extensibility: Custom Communication Scenario

Custom Communication Scenario


• Configuration for custom inbound services for:

• Custom Business Objects (created with the Custom Business


Objects Fiori app)

• Custom CDS views (created with the Custom CDS Views Fiori
app)

• Configuration for custom outbound services


• Called in custom code

OData exposure
• When creating a Custom Business Object or a Custom CDS
Key User Fiori App Custom Communication Scenario
Views, select the „OData Service“ flag in the respective Fiori app

• Create a custom communication scenario in the Custom


Communication Scenarios Fiori app. You can combine multiple
OData services in one scenario.

SAP S/4HANA Cloud, public edition only • Create a communication arrangement in the Custom
Arrangement Fiori app.
PUBLIC 25
Key User Extensibility: Custom Forms

Adobe Forms Designer: Create a new form template


• As a copy of a SAP standard form
• Based on an existing data source (ODATA service)
• Based on an extended ODATA service using already existing fields
and associations from published CDS views

E-Mail Template Designer Create a new e-mail template


• Based on an existing data source (CDS View)
• Based on an extended SAP data source (CDS View)

Adobe Form Designer and E-Mail Template Designer

PUBLIC 26
Key User Extensibility: Extensibility Cockpit

Extensibility Cockpit
• Search in business contexts for extensible objects (UI OData
services, APIs, CDS views, business scenarios form/email
templates, …) and BAdIs
• Navigation to creation of custom fields and BAdI implementation
from the search result list

• Show the details of


• 2000+ extensible CDS views
• 700+ extensible OData service
• 350+ extensible BAdIs
• (extensible with the key user tools)
• State for release SAP S/4HANA Cloud 2111
Key User Fiori App Extensibility Cockpit

PUBLIC 27
Key User Extensibility: Maintain Translations

With the Maintain Translations Fiori app, you can


• Maintain translations for key user objects, e.g. custom CDS views
and custom analytical queries

Note: Some key user apps provide translation capabilities in the app
itself.

Key User Fiori App Maintain Translations

PUBLIC 28
Key User Extensibility: Extensibility Inventory Application

Extensibility Inventory Application


• You can display an overview of your extensibility items and view
associations or dependencies between various extensibility items
• You can see how importing or exporting extensibility items affect
other extensibility items
• Following information is provided in every extensibility item view:
− Name and type of extensibility item, date, last change, person who
performed it, status of extensibility item (deleted, imported and/or
exported)
− Uses: Other extensibility items that the extensibility item in question uses,
their name and type, further extensibility items that are used by or use
these extensibility items
− Used by: Other extensibility items that the extensibility item in question is
used by, their name and type, further extensibility items that are used by
these extensibility items
− Change history full history of changes made to the extensibility item in
Key User Fiori App Extensibility Inventory Application question (in the cloud versions only)
• You can download item dependencies

PUBLIC 29
Key User Extensibility: Lifecycle Management

Export Software Collection


• Create collections of extensibility items and export them from the
quality system
• Check the consistency of items in a collection
• Merge collections
• Add notes during export
• Lock collections and lock changes of items in collections

Import Collection
• Import collections into a production system

Key User Fiori App Export Software Collection

SAP S/4HANA Cloud, public edition only

PUBLIC 30
Key User Tools in S/4HANA On Premise

Key User Tools are available in S/4HANA Cloud and in on-premise, with some differences

In both versions, the tools provide access to released APIs and extension points only

All objects created by Key User Tools are visible in ABAP Development Tools / ABAP Workbench
• Objects can be analyzed, tested, debugged
• Objects follow the “normal” ABAP authorization concept (S_DEVELOP, …)
• Change is not recommended, behavior of the key user tools after backend changes are not defined

Objects created by Key User Tools are managed with customer transport with “classical” transport tools (correction
and transport system, CTS)

Recommendation: keep the objects managed by key user tools and by ABAP Development Tools separated!

The following key user tools are not available in on-premise. Instead of using these apps, the respective on-premise
tools are used

• Custom Catalog Extensions, Custom Tiles → SAP Fiori Launchpad Designer

• Custom Communication Scenario: Configuration of RFC/HTTP Destinations (SM59)


PUBLIC 31
Extensibility of S/4HANA - Helpful Links
1. White Papers: SAP S/4HANA Extensibility for Customers and Partners
▪ Extend SAP S/4HANA in the cloud and on premise with ABAP based extensions (2023)
▪ Custom Extensions in SAP S/4HANA Implementations (2021)

2. Blog Posts
▪ Key User Extensibility Tools of S/4HANA last update 2021
▪ S/4HANA Extensibility Use Case Overview (2016)
▪ SAP S/4HANA Extensibility: A Learning Journey last update 2023

3. SAP S/4HANA Cloud – Documentation


▪ S/4HANA Cloud: Extend and Integrate Your SAP S/4HANA Cloud -> Extensibility
▪ Fiori Extensibility Documentation: Personalizing and Adapting Apps
▪ Inside the user assistance documents, see the videos with a tour on the available extensibility tools:
– Creating Custom Fields
– Creating Customer Applications

4. SAP S/4HANA (On Premise) – Feature Description


▪ https://help.sap.com/docs/SAP_S4HANA_ON-PREMISE > Product Assistance (English) > SAP S/4HANA Enterprise Technology > ABAP Platform > Developing on
the ABAP Platform > Development Concepts and Tools > Extensibility
▪ Fiori Extensibility Documentation: Personalizing and Adapting Apps
▪ In the Fiori Appl Library (Fiori Apps Library) you can find the information on the extensibility for Fiori apps. Open the App Details and go to Implementation
Information, Extensibility.

PUBLIC 32
Thank you.
Contact information:
ABAP Platform Product Management, SAP
Follow us

www.sap.com/contactsap

© 2021 SAP SE or an SAP affiliate company. All rights reserved.


No part of this publication may be reproduced or transmitted in any form or for any purpose without the express permission of
SAP SE or an SAP affiliate company.
The information contained herein may be changed without prior notice. Some software products marketed by SAP SE and its
distributors contain proprietary software components of other software vendors. National product specifications may vary.
These materials are provided by SAP SE or an SAP affiliate company for informational purposes only, without representation or
warranty of any kind, and SAP or its affiliated companies shall not be liable for errors or omissions with respect to the materials.
The only warranties for SAP or SAP affiliate company products and services are those that are set forth in the express warranty
statements accompanying such products and services, if any. Nothing herein should be construed as constituting an additional
warranty.
In particular, SAP SE or its affiliated companies have no obligation to pursue any course of business outlined in this document or
any related presentation, or to develop or release any functionality mentioned therein. This document, or any related presentation,
and SAP SE’s or its affiliated companies’ strategy and possible future developments, products, and/or platforms, directions, and
functionality are all subject to change and may be changed by SAP SE or its affiliated companies at any time for any reason
without notice. The information in this document is not a commitment, promise, or legal obligation to deliver any material, code, or
functionality. All forward-looking statements are subject to various risks and uncertainties that could cause actual results to differ
materially from expectations. Readers are cautioned not to place undue reliance on these forward-looking statements, and they
should not be relied upon in making purchasing decisions.
SAP and other SAP products and services mentioned herein as well as their respective logos are trademarks or registered
trademarks of SAP SE (or an SAP affiliate company) in Germany and other countries. All other product and service names
mentioned are the trademarks of their respective companies.
See www.sap.com/trademark for additional trademark information and notices.
SAP folgen auf

www.sap.com/germany/contactsap

© 2021 SAP SE oder ein SAP-Konzernunternehmen. Alle Rechte vorbehalten.


Weitergabe und Vervielfältigung dieser Publikation oder von Teilen daraus sind, zu welchem Zweck und in welcher Form auch immer,
ohne die ausdrückliche schriftliche Genehmigung durch SAP SE oder ein SAP-Konzernunternehmen nicht gestattet.
In dieser Publikation enthaltene Informationen können ohne vorherige Ankündigung geändert werden. Die von SAP SE oder deren
Vertriebsfirmen angebotenen Softwareprodukte können Softwarekomponenten auch anderer Softwarehersteller enthalten. Produkte
können länderspezifische Unterschiede aufweisen.
Die vorliegenden Unterlagen werden von der SAP SE oder einem SAP-Konzernunternehmen bereitgestellt und dienen ausschließlich
zu Informationszwecken. Die SAP SE oder ihre Konzernunternehmen übernehmen keinerlei Haftung oder Gewährleistung für Fehler
oder Unvollständigkeiten in dieser Publikation. Die SAP SE oder ein SAP-Konzernunternehmen steht lediglich für Produkte und
Dienstleistungen nach der Maßgabe ein, die in der Vereinbarung über die jeweiligen Produkte und Dienstleistungen ausdrücklich
geregelt ist. Keine der hierin enthaltenen Informationen ist als zusätzliche Garantie zu interpretieren.
Insbesondere sind die SAP SE oder ihre Konzernunternehmen in keiner Weise verpflichtet, in dieser Publikation oder einer
zugehörigen Präsentation dargestellte Geschäftsabläufe zu verfolgen oder hierin wiedergegebene Funktionen zu entwickeln oder zu
veröffentlichen. Diese Publikation oder eine zugehörige Präsentation, die Strategie und etwaige künftige Entwicklungen, Produkte
und/oder Plattformen der SAP SE oder ihrer Konzernunternehmen können von der SAP SE oder ihren Konzernunternehmen jederzeit
und ohne Angabe von Gründen unangekündigt geändert werden. Die in dieser Publikation enthaltenen Informationen stellen keine
Zusage, kein Versprechen und keine rechtliche Verpflichtung zur Lieferung von Material, Code oder Funktionen dar. Sämtliche
vorausschauenden Aussagen unterliegen unterschiedlichen Risiken und Unsicherheiten, durch die die tatsächlichen Ergebnisse von
den Erwartungen abweichen können. Dem Leser wird empfohlen, diesen vorausschauenden Aussagen kein übertriebenes Vertrauen
zu schenken und sich bei Kaufentscheidungen nicht auf sie zu stützen.
SAP und andere in diesem Dokument erwähnte Produkte und Dienstleistungen von SAP sowie die dazugehörigen Logos sind Marken
oder eingetragene Marken der SAP SE (oder von einem SAP-Konzernunternehmen) in Deutschland und verschiedenen anderen
Ländern weltweit. Alle anderen Namen von Produkten und Dienstleistungen sind Marken der jeweiligen Firmen.
Zusätzliche Informationen zur Marke und Vermerke finden Sie auf der Seite www.sap.com/trademark

You might also like