Enterprise Resource Planning Blogs by SAP
Get insights and updates about cloud ERP and RISE with SAP, SAP S/4HANA and SAP S/4HANA Cloud, and more enterprise management capabilities with SAP blog posts.
cancel
Showing results for 
Search instead for 
Did you mean: 
ThomasSchneider
Product and Topic Expert
Product and Topic Expert
12,247

In this document, I will explain how to find APIs, events, and extension points, which you need to build extensions for SAP S/4HANA.

 

Terms and Overview

Let me start with a classification:

  • APIs are objects that you call from your extensions to read data from the core application (in our case SAP S/4HANA) or to write data to the core application.
  • Events are objects that are raised by the core application at a well-defined point in time, for example when a sales order is created. Your extension is triggered by a framework that manages the events and can react to the event asynchronously.
  • Extension points allow you to create extensions that are synchronously executed or mixed-in when the core application is executed.

APIs, events and extension points can be classified as remote or local APIs.

  • Remote APIs and events are called or consumed from outside the stack of the core application. They are used by side-by-side extensions and typically executed via the internet protocol (HTTP).
  • Local APIs, events and extension points are used on the same stack, they are used by on-stack extensions.

A second classification arises from the question how an API is used in the so-called 3-tier-model (clean core model).

The following table shows a complete list of APIs, events and extension points that are available in SAP S/4HANA:

 

API

Tier 1 API?

API used for

Used in tool

Remote APIs

OData API services

Yes

New UI

SAP Build Apps

 

 

 

New Process

SAP Build Process Automation

 

 

 

New app (SAP BTP, Java or Javascript)          

SAP Build Code, SAP Cloud SDK

 

 

 

New app (SAP BTP ABAP)

SAP BTP ABAP Environment - ADT

 

SOAP services

Yes

New app (SAP BTP, Java, Javascript)          

SAP Build Code, SAP Cloud SDK

 

 

 

New app (SAP BTP ABAP)

SAP BTP ABAP Environment – ADT

 

BAPIs

No

New app (SAP BTP, Java, Javascript)          

SAP Build Code, SAP Cloud SDK

 

 

 

New app (SAP BTP ABAP)

SAP BTP ABAP Environment - ADT

Remote Events

Events

Yes

New Process

SAP Build Process Automation

 

 

 

New app (SAP BTP, Java, Javascript)          

SAP Build Code, SAP Cloud SDK

 

 

 

New app (SAP BTP ABAP)

SAP BTP ABAP Environment - ADT

Local APIs

CDS entities and views

Yes

New app or logic extension (ABAP on-stack developer extensibility)

              

ABAP Development Tools (ADT)

 

 

 

New app or logic extension (ABAP on-stack key user extensibility)

Key user apps: Custom Business Objects, Custom Logic, Custom CDS Views, Custom Analytical Queries

 

RAP Business Object Interfaces

Yes

New app or logic extension (ABAP on-stack developer extensibility)

              

ABAP Development Tools (ADT)

 

 

 

New app or logic extension (ABAP on-stack key user extensibility)

Key user apps: Custom Business Objects, Custom Logic

 

ABAP classes

Yes

New app or logic extension (ABAP on-stack developer extensibility)

              

ABAP Development Tools (ADT)

 

 

 

New app or logic extension (ABAP on-stack key user extensibility)

Key user apps: Custom Business Objects, Custom Logic

 

Other released objects

Yes

New app or logic extension (ABAP on-stack developer extensibility)

              

ABAP Development Tools (ADT)

 

 

 

New app or logic extension (ABAP on-stack key user extensibility)

Key user apps: Custom Business Objects, Custom Logic

Local Events

Events  

Yes

New app or logic extension (ABAP on-stack developer extensibility)

ABAP Development Tools (ADT)

Extension Points

Fiori UIs released for UI adaptation

Yes

UI Adaptation (key user extensibility)      

FLP Adaptation Mode

 

 

 

UI Adaptation Project (developer extensibility)

SAP Business Application Studio

 

Objects released for field extensibility

Yes

New custom field (key user extensibility)

Key user app Custom Fields

 

 

 

 

New custom field (developer extensibility)

ABAP Development Tools (ADT)

 

Business Add-Ins (BAdIs)

Yes

Logic extension (key user extensibility)      

Key user app Custom Logic

 

 

 

Logic extension (developer extensibility)

ABAP Development Tools (ADT)

 

RAP Business Objects released for logic extensibility

 

Logic extension (key user extensibility)      

Key user app Custom Logic

 

 

 

Logic extension (developer extensibility)

ABAP Development Tools (ADT)

 

User exits

No

Logic extension (developer extensibility)

ABAP Development Tools (ADT)

Notes:

  • Tier 1 APIs are always released, this means they have a release contract. On the other hand, there are APIs with the same technology (e.g. OData services, CDS views) that are not released, so they are not considered as Tier 1 APIs.
  • The list of non-Tier 1 APIs and extension points is by far not complete, because they are not in focus of this blog post. The listed APIs and extension points should be seen as examples.
  • SAP releases only OData API services. Please note that the OData UI services that belong to SAP Fiori UIs are not released. In private cloud edition and on-premise, you can build your own custom UI on a SAP OData UI services. But you must consider that these services are not released by SAP.

                             

Information Sources for APIs, Events and Extension Points

APIs, events, and extension points are listed and documented in different places. I want to introduce these places in this section and finally provide an overview on which API is listed where.

SAP Business Accelerator Hub

The SAP Business Accelerator Hub (SAP Business Accelerator Hub) SAP Business Accelerator Hub is the central place where all released APIs, events, and extension points are listed (with some exceptions, see table below). The hub provides access to documentation, the API´s metadata, and a mock-up of the service, which you can use to try the service. It also provides the option to create code snippets for calling the service in your favorite programming language. Select the respective SAP S/4HANA edition (public cloud, private cloud) and search for API. 

Picture1.png

ABAP Development Tools Repository Browser and API State Tab

The Repository Browser is a view in the ABAP Development Tools ABAP Development . You can use it to display, access, and edit development objects. In the Repository Browser, you can define your own object tree New ->  ABAP Repository Tree). In the tree configuration, you can define a tree that contains the field API State, and below Object Type Group and Object Type.

Picture2.png

Your tree will look like this:

Picture3.png

Note: there is a predefined repository tree called Released Objects, which shows all object with the filter USE_IN_CLOUD_DEVELOPMENT by default. You can either change the configuration of this tree or create a new one for your own purpose.

When opening an object, you can view the release contracts of the object in the Properties tab, under API State.

Picture4.png

Fiori apps Extensibility Cockpit, View Explorer, Released ABAP Artifacts

There are a couple of Fiori apps which provide information on APIs and extension points:

  • Extensibility Cockpit
  • View Browser
  • Released ABAP Artifacts

They have been developed for showing local APIs and extension points for key users,

The Extensibility Cockpit app (in Fiori catalog SAP_CA_BC_EXT_COCKPIT_PC) shows the extensibility options of SAP applications, grouped by scope items or business contexts. Business Contexts are SAP entities that can be extended by custom fields and/or custom logic. Typically, business contexts represent “business document tables” or “business object nodes”, Examples for extensible business contexts are Billing Document, Billing Document Item, Billing Due List Item.

You can explore all business contexts that are enabled for field or logic extensibility and the related data sources, services, BAdIs, etc.

The following screenshot shows the Extensibility Cockpit Fiori app:

Picture5.png

Extensibility Cockpit: Overview of all extensibility options of the business context Sales Document

The View Browser (in the Fiori catalog SAP_CA_BC_ANA_AQD_PC in SAP S/4HANA Cloud) shows all CDS views. You can open the details screen of a CDS view and inspect the view properties. In the Fiori app Custom CDS Views and Custom Analytical Queries, you can also search for CDS views.

CDS entities and views are used for different purposes, for example in transactional and analytical scenarios. In the View Explorer, you can filter and search for different types of views. You can even search for views by annotations. This feature comes handy when you search for views with specific properties.

Picture6.png

View Browser: Details of the I_SalesOrderItem Cube

The Released ABAP Artifacts shows released ABAP classes, interfaces and structures for key users.

Fiori Apps Library

You can also start your investigation by Fiori app. in the Fiori Apps Library. Here, you can find the information on the extensibility for Fiori apps. Open the App Details for a Fiori app, and go to section Implementation Information, Extensibility.

Picture7.png

Fiori Apps Library: Extensibility Information on Fiori app Monitor Condition Contracts - External Commissions

Cloudification Repository

The Cloudification Repository on the Github (https://github.com/SAP/abap-atc-cr-cv-s4hc/tree/main/src ) provided by SAP offers you json files and csv files with lists of local APIs for SAP S/4HANA, public cloud edition and private cloud edition. For example, download the file objectReleaseInfo_<YYMM>.csv (<YYMM> is year and month information) and open it in Excel or a similar program.

The cloudification repository files do not only contain released objects, but they also contain successor information for well-known ABAP objects, which are not released. For example, you can search for the table LFA1 (supplier master table), which is not released. You will find the released successor for this table, CDS view I_Supplier. A second example: the BAPI BAPI_REQUIREMENTS_GETDETAIL is listed as not released with successor I_PLNDINDEPRQMTTP.

The files in the Cloudification Repository also contain lists of recommended classic APIs (for example BAPIs) which can be used to mitigate missing Tier 1 APIs in private cloud edition and on premise. For details read the blog of my colleague: How to find SAP APIs for SAP S/4HANA 3-tier extens... - SAP Community

SAP Help Portal

SAP Help Portal (SAP Help Portal) is the central place for documentation, Learning Journeys, and more. APIs, events, and extension points are documented here. The tools provide links from that I described before the detail page of the API or extension point to the Product Assistance document. Alternatively, you can open the Product Assistance document of the respective SAP S/4HANA edition (public cloud, private cloud, on-premise) and search in the document by the technical name of the API or its description.  

 

The following table shows which APIs, events or extension points are listed where.

 

 

 

API

Tier 1 API?

SAP Business Accelerator Hub

ADT Repository Browser: Released Objects Tree

Other Information Sources

Remote APIs

OData API services

Yes

Tab: APIs -> ODATA V2 or ODATA V4

not available

-

 

SOAP services

Yes

Tab: APIs à SOAP

not available

-

 

BAPIs

No

Not listed              

not available

BAPI Explorer (transaction code BAPI)

Remote Events

Events

Yes

Tab: Events -> Event Objects

Filter: USE_AS_REMOTE_API -> Business Services -> Event Bindings

 

Local APIs

CDS entities and views

Yes

Tab: CDS Views -> CDS View

Filter: USE_IN_CLOUD_DEVELOPMENT or USE_IN_KEY_USER_APPS -> Core Data Services -> Data Definitions

Cloudification Repository,

Fiori app View Browser

 

RAP Business Object Interfaces

Yes

Tab: Developer Extensibility -> Business Object Interface

Filter: USE_IN_CLOUD_DEVELOPMENT or USE_IN_KEY_USER_APPS -> Core Data Services -> Behavior Definitions

Cloudification Repository

 

ABAP classes and interfaces

Yes

Not listed

Filter: USE_IN_CLOUD_DEVELOPMENT or USE_IN_KEY_USER_APPS -> Source Code Library à Classes / Interfaces

Cloudification Repository,

Fiori app Released ABAP Artifacts

 

Other released objects

Yes

Not listed

Filter: USE_IN_CLOUD_DEVELOPMENT or USE_IN_KEY_USER_APPS -> various object types

Cloudification Repository

 

BAPIs

No

Not listed              

not available

Cloudification Repository,

BAPI Explorer (transaction code BAPI)

Local Events

Events  

Yes

See Remote Events

See Remote Events

 

Extension Points

Fiori UIs released for UI adaptation

Yes

Not listed

Filter: EXTEND_IN_CLOUD_DEVELOPMENT -> BSP Library -> BSP Applications

Fiori Apps Library à Implementation à Extensibility

 

 

Objects for field extensibility

Yes

Extensibility information is listed as part of the API information

Filter: EXTEND_IN_CLOUD_DEVELOPMENT or EXTEND_IN_KEY_USER_APPS -> Core Data Services -> Data Definitions, and Dictionary à Structures

Fiori Apps Library, Implementation -> Extensibility

Fiori app Extensibility Cockpit

 

Business Add-Ins (BAdIs)

Yes

Tab: Developer Extensibility à Business Add-Ins

Filter: USE_IN_CLOUD_DEVELOPMENT or USE_IN_KEY_USER_APPS -> Enhancements à Enhancement Spots

Fiori Apps Library,

Fiori app Extensibility Cockpit

 

RAP Business Objects released for logic extensibility

Yes

Extensibility information is listed as part of the BO Interface information

Filter: EXTEND_IN_CLOUD_DEVELOPMENT or EXTEND_IN_KEY_USER_APPS -> Core Data Services à Behavior Definitions

 

 

User exits

No

Not listed              

Not listed

 

 

API Requests

If you are missing an API or extension point, you can request it via the following channels:

Please:

 

Summary

APIs, events and extension points can be classified as:

  • Remote versus local
  • Tier 1 versus classic

The most important information sources for APIs, events and extension points are:

These tools support you in different phases of your development to find and explore the appropriate APIs, events, and extension points for your solution.

 

 

 

 

 

 

4 Comments