Technology Blogs by SAP
Learn how to extend and personalize SAP applications. Follow the SAP technology blog for insights into SAP BTP, ABAP, SAP Analytics Cloud, SAP HANA, and more.
cancel
Showing results for 
Search instead for 
Did you mean: 
bjoern_panter
Product and Topic Expert
Product and Topic Expert

The following blog post relates to implementation of clean core extensions on top of SAP S/4HANA Cloud Private Edition. We introduce a set of classic APIs that can be leveraged in the Cloud API enablement layer to build custom applications and extensions while keeping the core clean.

In 2022 SAP announced the availability of the new  ABAP Cloud development model in SAP S/4HANA Cloud Private Edition and SAP S/4HANA. More information about that can be found in the blog post
How to use Embedded Steampunk in SAP S/4HANA Cloud, private edition and in on-premise. The part of the announcement is the new  ABAP extensibility guide. In this guide, the 3-tier model was introduced to set up ABAP Cloud in SAP S/4HANA Cloud Private Edition and SAP S/4HANA as the default extensibility model while keeping full flexibility in these environments. The 3-tier model offers customers and partners the environment to build clean core extensions.  

In this blog, we will focus on Classic APIs for tier 2 developments – where to find and how to use them to develop clean core extensions.  

What is a Classic API and Cloud API enablement and when should you use it?  

SAP recommends that new custom developments/extensions are done by default in tier 1 layer. It follows a pure ABAP Cloud extensibility model that allows the usage of released public SAP APIs only (ABAP Cloud APIs). Custom objects are created in language version ABAP for Cloud Development. ABAP Cloud rules are enforced by syntax and runtime checks.   

The question is - what happens when such a public SAP API is missing?  

The answer is customer implementation with tier 2 – Cloud API enablement. 

You can mitigate the missing ABAP Cloud APIs via tier 2 Cloud API enablement by building custom wrappers around the listed Classic APIs using classic ABAP as language version. Then release the wrapper for ABAP Cloud development to be used for your own tier 1 developments. ABAP Test Cockpit (ATC) should be used to establish governance for tier 2 development by enforcing the syntax of ABAP Cloud and controlling usage of non-released APIs via ATC exemptions.

bjoern_panter_1-1709018117206.png

Refer to blog for details -   
ABAP Cloud – How to mitigate missing released SAP APIs in SAP S/4HANA Cloud, private edition and SAP...

Where is the list of the available Classic APIs in SAP S/4HANA Cloud Private Edition? 

The list of available S/4HANA Cloud Private Edition Classic APIs can be downloaded from GitHub - SAP/abap-atc-cr-cv-s4hc

Classic APIs for tier 2 consumption are offered across different application areas in SAP S/4HANA, such as Financial Accounting, Master Data Governance, Policy Management (FS-PM), SCM Basis, Advanced Planning and Optimization (APO), HCM – Payroll and Personnel Management, Bill of Materials, Plant Maintenance, Industry Solutions such as IS-Utilities. 

The list of objects is release independent. Reason is that the classic APIs are well-known from old OP releases and are all already delivered in 2022)

The JSON file “objectClassifications.json” has only the recommended Classic APIs and the substituted objects. The state values are:  

  • classicAPI: Objects nominated by SAP as classic API to be consumed in a self-released custom wrapper. 
  • noClassicAPI: Link to another Classic API with improved scope 

The JSON file is designed to be reused in other applications like ATC (ABAP Test Cockpit) and stands for the positive amount of Classic APIs.
To use the content in  ATC, please implement note 3449860 - ATC Checks 'Usage of Released APIs' and 'Usage of Released APIs (Cloudification Repository)' Support of Classic APIs

The csv file “objectClassifications.csv” contains additional content for offline purposes. It might be helpful in cases of implementation project discussions to evaluate extensibility options in specific business areas or if the can be used in ABAP Cloud context.

The list has the following classifications: 

  • TI2: Objects nominated by SAP as classic API to be consumed in an own custom wrapper. 
  • SUB: no classic API but link to another Classic API with improved scope. 
  • NA: Not intended to be a classic API either due to modern successor (public SAP API) or technical limitations.  

How to use the file  

For now, you can download the content and import the file into excel to display the table content. 

In general, you can filter the Classic API list by application components to focus on your desired business application areas. The main use case is to find the objects with the classification TI2. These objects can be wrapped for example in a custom class method in classic ABAP and released for ABAP Cloud development. 

Objects with the classification SUB have a link to the improved classic API successor object. The ABAP development tools for Eclipse offers on top the possibility to display modern replacements for legacy APIs. For objects with the classification NA – not applicable – there are several reasons why it is not possible to consume them in Cloud API enablement, including: 

  • The object is not compatible with the ABAP RAP (RESTful Application Programming) development model, because there is an explicit commit work or violating the guidelines. 
  • The object only covers a specific, SAP internal use case. 
  • The object is not compatible with newer SAP S/4HANA functions and features. 

In the future more tools for consuming this Classic API information are planned to improve the developer experience in the development process. 


Access to Released and Classic API Viewer:

If you want to browse through all existing APIs:

released APIs for ABAP Cloud to be consumed in tier1 layer: Cloudification Repository Viewer (sap.github.io) 

classic APIs to be consumed in tier2 API enablement: Cloudification Repository Viewer (sap.github.io)

How to create custom wrappers using Classic APIs  

Details how to consume the Classic APIs can found at:

Cloud API Enablement blog and guidelines blog

and Cloud API Enablement Guidelines PDF 

Refer to this blog for details on ATC setup How the ABAP Test Cockpit supports you to adopt ABAP Cloud 

Example: tutorial on how wrap a non-released object and release it for tier 1 consumption Implement a Wrapper for the "Create Purchase Requisition" (BAPI_PR_CREATE) function module | SAP Tut... 

If more APIs are needed, please send your requests via SAP Customer Influence Channel - SAP S/4HANA Cloud Private Edition for Extensibility and Integration (APIs) 

1 Comment