Guide · ABAP development
ABAP Cloud Released API Check: Find Successors and Wrappers
How to check if an ABAP object is released for ABAP Cloud, read its successor, and wrap it when no released API exists. S/4HANA 2025.


To check whether an ABAP object is safe for ABAP Cloud code, open it in ABAP Development Tools (ADT), go to Properties, and read the API State tab. If it is released, use it. If it is deprecated, the tab usually names the successor to move to. If nothing released covers the business need, build a classic ABAP wrapper, release it for ABAP Cloud, and keep the wrapper inside the release contract.
This matters more in S/4HANA 2025 than it did in ECC. Most of the process below is about proving the answer for each object and recording it, so the decision survives the next upgrade.
What changed from ECC
If you are not using "ABAP Cloud" ("classic ABAP"), you may call any class and any function module, and SAP did not define very clearly what is released and what is not. That was the ECC habit: a BAPI or function module that worked was treated as permanent, and nobody asked whether SAP intended it for reuse.
The model has changed. SAP's ABAP Platform 2025 note records that the three-tier extensibility model was replaced by ABAP Cloud (level A) and classic ABAP (levels B, C and D). ABAP Cloud is SAP's recommended development model for all new custom extensions in SAP S/4HANA private cloud and on-premise systems. The clean core levels are covered in our SAP Clean Core guide. This article is about the day-to-day check.
Step 1: Check one object in ADT
For a single object, the answer is still in ADT. Open the object in ADT, go to Properties, API State, and look. For a function module or class, the successor object is specified on that same tab when SAP has named one. The same applies to most other object types, including BAdI definitions, where the enhancement spot lists the BAdI definitions it contains.
Read the contract, not just the word "released." Released in C1 contracts indicates the object is stable enough for key-user extensions (custom fields and custom logic apps) and for developer extensibility (custom solutions written only in the ABAP for Cloud Development language scope). The release state is managed separately for each usage, so an object can be released for one use and not another. C0 is the extensibility contract and C1 the use contract. The free Academy course on the ABAP Cloud development model and released APIs walks through the contracts with examples.
Step 2: Find released objects at scale
When you need the whole picture for a package or a custom code inventory, use repository trees. In ADT you right-click an ABAP project, choose New ABAP Repository Tree, and select Released Objects as the filter criteria. The deprecated filter is one option away.
You can also search by keyword filter. EXTEND_IN_CLOUD_DEVELOPMENT (Contract: C0, Visibility: Use in Cloud Development) displays development objects released for extensibility in cloud development. USE_IN_CLOUD_DEVELOPMENT (Contract: C1) displays objects released for use in cloud development across software component boundaries.
For a published list outside your system, SAP maintains the Cloudification Repository on GitHub. Each release has its own file, and each object is marked as released, deprecated or not to be released. The files also carry successor information for well-known objects that are not released. SAP Community has a worked example: the supplier master table LFA1 is not released, and the released successor is the CDS view I_Supplier. SAP S/4HANA APIs and Where to Find Them gives that example.
Be careful with the list. It tells you what is released. It does not tell you whether the object you need is on it. A practitioner who counted the released objects in a 2023 lab noted that a deprecated object often has no successor. In the current Private Edition file, one count showed 526 objects deprecated and 118 of them name a successor. That is one community count, not an SAP figure, so verify your own file. The same author noted that in release 2402, most of the 199 objects that changed state were from Sourcing, and only 12 of the 199 got a successor. A deprecation is a warning, not a replacement.
Step 3: Put the check in ATC
A manual check does not scale and does not leave evidence. Put the check in an ATC check variant and run it on every transport that touches custom code. Our ATC clean core results guide covers how to turn the findings into regression scope. The variant basics are in the free Academy course on ATC check variants and quality gates.
Here is the configuration detail that trips teams up. The Usage of APIs check replaces the Usage of Released APIs check in current clean core guidance. To activate the cloud-readiness path, activate the ATC check "Clean Core" then "Usage of APIs (Cloudification Repository)" in your check variant. In the Clean Core category, the classicAPIDataSource parameter must be populated in the attributes of the Usage of APIs check. An empty parameter does not fail loudly, so check it after every variant change.
Two prerequisites matter for S/4HANA 2023 systems. On SAP S/4HANA 2023 the starting point is SAP Note 3565942, and on both releases that note alone isn't sufficient. Systems below 2023 cannot run these checks on premise, so central ATC on SAP BTP becomes the route to clean core analysis. Clean core checks are not available for ECC systems and S/4HANA systems below version 2023.
Step 4: When no released API exists
This is where most teams stall. The answer SAP gives for Private Edition and on-premise is the ABAP Cloud API enablement path. If a released API from SAP is missing, custom wrappers for non-released SAP objects can be built and released for ABAP Cloud. The official guidelines are in the ABAP Cloud API Enablement Guidelines.
In practice, the wrapper is classic ABAP that calls the non-released object, and it is released so that ABAP Cloud code can call it. You build custom wrappers around the listed classic APIs using classic ABAP as the language version, then release the wrapper for ABAP Cloud. The SAP tutorial on wrapping a BAPI shows the first failure you will see: when you try to activate the class that calls the unreleased wrapper, you get an error message. The fix is to release the wrapper interface and the factory class. Now you need to release the wrapper interface and wrapper factory class for consumption in ABAP Cloud Development.
Placement matters too. Classic wrappers belong in a package on HOME or in an existing software component with the Standard ABAP language version, not in the ABAP Cloud package. The August 2025 ABAP Extensibility Guide update sets out that split. Run the "API Release: Consistency of Released Objects" ATC check on the wrapper interface before you release it.
For Public Edition, the route is different. Missing public APIs are handled with custom APIs as an interim step, and the permanent path is the SAP Customer Influence Programme. One option is a custom CDS view published with the External API setting enabled. The other is a RAP-based custom API that you release for ABAP Cloud and activate through communication arrangements in the target tenant. The partner guide on handling missing public APIs covers both options.
- Is the object Released for C1 (use in cloud development)?Yes → use it in ABAP Cloud code · No → go to the next question
- Does the API State show Deprecated with a successor?Yes → switch to the successor and retest the call path · No → go to the next question
- Is a released CDS view or RAP business object covering the same business?Yes → use the released object · No → go to the next question
- Are you on Private Edition or on-premise?Yes → build a classic ABAP wrapper, release it for ABAP Cloud, and log it · No (Public Edition) → request the API through SAP's Customer Influence Programme and use a custom API as the interim step
Step 5: Record the evidence for sign-off
An upgrade fails in the places nobody wrote down. Before a release goes to the test cycle, the development lead should be able to show a short evidence pack. A checklist you can use:
- A list of every SAP object called from ABAP Cloud code in the package, with its release state, contract and the check date.
- For each deprecated object, the successor name, or a note that no successor exists.
- The ATC check variant name, the classicAPIDataSource setting, and the Cloudification Repository file or release version used.
- For each wrapper, the release status, the package, and the ATC result for the wrapper interface.
- The regression scope that covers every successor swap. Our guide on S/4HANA upgrade cadence and regression explains how to keep that scope current after go-live.
- The custom code remediation log. The SAP Custom Code (ATC) Remediation and Retest Tracker is a usable starting point.
Frequently asked questions
Can I use a function module in ABAP Cloud if it is not on the released list?
No. In an ABAP Cloud development, access to SAP repository objects is limited to objects released for that use. If the function module is not released, either use its released successor or build a classic ABAP wrapper and release the wrapper for ABAP Cloud.
What does a deprecated object with a successor mean for my code?
It means SAP intends to retire the object and names a replacement. Move your call to the successor, retest the affected business process, and record the change. The deprecated object still works until SAP removes it, but it is no longer the supported path.
Why does ATC pass when my code still calls a non-released object?
The most likely reason is that the check variant is missing the clean core checks, or the classicAPIDataSource parameter is empty. Confirm the variant includes the Usage of APIs check under Clean Core and that the Cloudification Repository source is set. Then rerun the check and compare results.
Is a custom wrapper a clean core Level A object?
Not automatically. The ABAP Cloud FAQ says some wrapper objects released for ABAP Cloud would count as clean core Level A. Classic wrappers that stay in Standard ABAP packages sit at a different level, so check the level in your own ATC results before you report it.
Sources
- Finding Released APIs and Deprecated Objects, SAP Help Portal, ABAP Development Tools user guide
- ABAP Cloud APIs tripled on paper since 2022, SAP Community blog, community author
- I counted the released APIs in my S/4HANA 2023 lab, SAP Community blog, community author
- S/4 HANA Cloudification Guide for Developer: Navigating to Released APIs from Classic Objects, SAP Community, member blog
- SAP S/4HANA APIs and Where to Find Them, SAP Community, SAP blog
- ABAP Platform in SAP S/4HANA Cloud Private Edition and SAP S/4HANA 2025, SAP Community, SAP blog, 8 October 2025 release
- ABAP test cockpit (ATC) recommendations for governance of clean core ABAP development, SAP Community, SAP blog
- ABAP Extensibility Guide – Clean Core for SAP S/4HANA Cloud, August 2025 update, SAP Community, SAP blog
- Configuring the ABAP Test Cockpit and Transport Gate in SAP S/4HANA, SAP PRESS blog
- ABAP Cloud API Enablement Guidelines for SAP S/4HANA Cloud Private Edition and SAP S/4HANA, SAP
- How to mitigate missing publicly released SAP APIs, SAP Community, SAP blog
- Classic APIs for ABAP Cloud Developments in SAP Cloud ERP Private, SAP Community, SAP blog
- Implement a Wrapper for the "Create Purchase Requisition" (BAPI_PR_CREATE) function module, SAP Developers tutorial
- ABAP Cloud FAQ, SAP Community
- SAP S/4HANA Cloud Public Edition: Handling Missing Public APIs as a Partner, SAP Community, SAP blog
- Cloudification Repository for SAP ABAP Test Cockpit, SAP on GitHub
Free S/4HANA testing templates
Master test strategy, migration test plan, cutover runbook, go/no-go checklist and more.
The RISE Testing Playbook
One practical move a week for testing your ECC to S/4HANA transformation.
How this guide is made: researched with AI-assisted search across SAP documentation and practitioner sources, with every fact linked to its source. Found an error or have field experience to add? Tell us.