
In this document, I will explain how to find APIs, events, and extension points, which you need to build extensions for SAP S/4HANA.
Let me start with a classification:
APIs, events and extension points can be classified as remote or local APIs.
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:
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.
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.
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.
Your tree will look like this:
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.
There are a couple of Fiori apps which provide information on APIs and extension points:
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:
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.
View Browser: Details of the I_SalesOrderItem Cube
The Released ABAP Artifacts shows released ABAP classes, interfaces and structures for key users.
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.
Fiori Apps Library: Extensibility Information on Fiori app Monitor Condition Contracts - External Commissions
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) 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? | 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 |
|
If you are missing an API or extension point, you can request it via the following channels:
Please:
APIs, events and extension points can be classified as:
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.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
5 | |
4 | |
4 | |
3 | |
3 | |
3 | |
3 | |
2 | |
2 | |
2 |