released-abap-classes
Skill72 starsChanged 4 months agoMITView on GitHub
Find released ABAP classes (clean core Level A) for ABAP Cloud Development. Use when user asks about ABAP classes for specific functionality like email, UUID generation, time/date handling, JSON/XML processing, RAP, string processing, random numbers, regex, Base64, HTTP calls, unit testing, PDF rendering, parallel processing, application logs, released API alternatives, Level A replacements, or any other ABAP Cloud class lookup.
2 other projects use a version of this, 2 of them edited.
Adopted by
Most recently taken up by
- dovoanhtruong/abap-agent-claudecode-workspaceedited, first seen Oct 12, 2026
- williamcorrea23/sap-router-skilledited, first seen Jul 13, 2026
Other versions2 projects use a version of this.
Word for word · 0
None found.
Edited · 2
- dovoanhtruong/abap-agent-claudecode-workspace★ 383% same
- williamcorrea23/sap-router-skill★ 198% same
Wrote their own version · 0
None found.
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository16 other files it gives its agents.
- abap-cloud-migrationSkill
- abap-cloudSkill
- abapgitSkill
- abapSkill
- abap-sql-amdpSkill
- abap-unit-testingSkill
- atc-cloudificationSkill
- authorization-iamSkill
- badi-enhancementSkill
- btp-abap-environmentSkill
- btp-diagram-generatorSkill
- cds-view-entitiesSkill
- odataSkill
- rap-business-eventsSkill
- rapSkill
- sap-fiori-url-generatorSkill
The file
We split this skill into the rules it gives an agent
4 rules. About 0 are common, 3 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈3
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 205
abap-cloud: Use for clean core level definitions and the wrapper pattern when no released class exists
- Distinctive: line 206
abap-cloud-migration: Use for replacing non-released APIs during level remediation
- Distinctive: line 207
atc-cloudification: Use for checking object classification and release state via ATC
- Very specific: line 208
rap: Use for RAP-specific released classes (CL_ABAP_BEHAVIOR_HANDLER, CL_ABAP_BEHAVIOR_SAVER)
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Released ABAP Classes
Reference for released ABAP classes available in ABAP for Cloud Development (SAP BTP ABAP Environment and SAP Cloud ERP Private).
All classes listed here are released APIs governed by a stability contract — using them keeps an extension at clean core Level A. If a class you need is not released, see the
abap-cloudskill for the wrapper pattern and level classification.
Quick Reference by Category
| Category | Key Classes |
| Console Output | IF_OO_ADT_CLASSRUN, CL_DEMO_CLASSRUN, CL_XCO_CP_ADT_SIMPLE_CLASSRUN |
| UUID | CL_SYSTEM_UUID, XCO_CP, XCO_CP_UUID |
| Time & Date | CL_ABAP_CONTEXT_INFO, XCO_CP_TIME, CL_ABAP_TSTMP, CL_ABAP_UTCLONG, CL_ABAP_DATFM, CL_ABAP_TIMEFM |
| Calendar | CL_FHC_CALENDAR_RUNTIME, CL_SCAL_UTILS |
| String Processing | CL_ABAP_CHAR_UTILITIES, CL_ABAP_STRING_UTILITIES, XCO_CP |
| Numbers/Math | CL_ABAP_MATH, CL_ABAP_DECFLOAT, CL_ABAP_BIGINT, CL_ABAP_RATIONAL |
| Random Numbers | CL_ABAP_RANDOM_* (INT, INT8, FLOAT, PACKED, DECFLOAT16/34), CL_ABAP_PROB_DISTRIBUTION |
| Regular Expressions | CL_ABAP_REGEX, CL_ABAP_MATCHER |
| Codepage/Binary | CL_ABAP_CONV_CODEPAGE, CL_ABAP_GZIP*, CL_WEB_HTTP_UTILITY |
| JSON/XML | XCO_CP_JSON, /UI2/CL_JSON, CL_SXML_*, CL_IXML_* |
CL_BCS_MAIL_MESSAGE | |
| HTTP Calls | CL_WEB_HTTP_CLIENT_MANAGER, CL_HTTP_DESTINATION_PROVIDER |
| RAP | CL_ABAP_BEHV_AUX, CL_ABAP_BEHAVIOR_HANDLER, CL_ABAP_BEHAVIOR_SAVER |
| RTTS | CL_ABAP_TYPEDESCR and hierarchy |
| Dynamic Programming | CL_ABAP_DYN_PRG, CL_ABAP_CORRESPONDING |
| User Info | CL_ABAP_CONTEXT_INFO, XCO_CP=>sy->user() |
| Unit Testing | CL_ABAP_UNIT_ASSERT, CL_OSQL_TEST_ENVIRONMENT, CL_CDS_TEST_ENVIRONMENT |
| Parallel Processing | CL_ABAP_PARALLEL |
| Application Log | CL_BALI_LOG |
| Background Jobs | CL_BGMC_PROCESS_FACTORY |
| Locking | CL_ABAP_LOCK_OBJECT_FACTORY |
| XLSX | XCO_CP_XLSX |
| Zip Files | CL_ABAP_ZIP |
| PDF Rendering | CL_FP_ADS_UTIL |
Common Use Cases
Get Current Date/Time in UTC
"Using CL_ABAP_CONTEXT_INFO
DATA(sys_date) = cl_abap_context_info=>get_system_date( ). "e.g. 20240101
DATA(sys_time) = cl_abap_context_info=>get_system_time( ). "e.g. 152450
"Using XCO (various formats)
DATA(date_utc) = xco_cp=>sy->date( xco_cp_time=>time_zone->utc )->as( xco_cp_time=>format->abap )->value.
DATA(time_utc) = xco_cp=>sy->time( xco_cp_time=>time_zone->utc )->as( xco_cp_time=>format->iso_8601_extended )->value.
DATA(moment_utc) = xco_cp=>sy->moment( xco_cp_time=>time_zone->utc )->as( xco_cp_time=>format->iso_8601_extended )->value.Send Email
TRY.
DATA(mail) = cl_bcs_mail_message=>create_instance( ).
mail->set_sender( 'sender@example.com' ).
mail->add_recipient( 'recipient@example.com' ).
mail->set_subject( 'Subject' ).
mail->set_main( cl_bcs_mail_textpart=>create_instance(
iv_content = '<h1>Hello</h1><p>Message body.</p>'
iv_content_type = 'text/html' ) ).
mail->send( IMPORTING et_status = DATA(status) ).
CATCH cx_bcs_mail INTO DATA(error).
ENDTRY.Generate UUID
"CL_SYSTEM_UUID
DATA(uuid_x16) = cl_system_uuid=>create_uuid_x16_static( ).
DATA(uuid_c36) = cl_system_uuid=>create_uuid_c36_static( ).
"XCO
DATA(uuid) = xco_cp=>uuid( )->value.
DATA(uuid_c36_xco) = xco_cp=>uuid( )->as( xco_cp_uuid=>format->c36 )->value.JSON Processing
"ABAP -> JSON
DATA(json) = xco_cp_json=>data->from_abap( some_structure )->to_string( ).
"JSON -> ABAP
xco_cp_json=>data->from_string( json_string )->write_to( REF #( target_structure ) ).
"Using /UI2/CL_JSON
DATA(json2) = /ui2/cl_json=>serialize( data = some_data ).
/ui2/cl_json=>deserialize( EXPORTING json = json2 CHANGING data = target ).HTTP Client Call
TRY.
DATA(dest) = cl_http_destination_provider=>create_by_url( 'https://api.example.com' ).
DATA(client) = cl_web_http_client_manager=>create_by_http_destination( dest ).
DATA(request) = client->get_http_request( ).
DATA(response) = client->execute( if_web_http_client=>get ).
DATA(status) = response->get_status( ).
DATA(body) = response->get_text( ).
CATCH cx_web_http_client_error cx_http_dest_provider_error INTO DATA(error).
ENDTRY.Get Current User
"Using CL_ABAP_CONTEXT_INFO
DATA(user_alias) = cl_abap_context_info=>get_user_alias( ).
DATA(user_name) = cl_abap_context_info=>get_user_formatted_name( ).
"Using XCO
DATA(user) = xco_cp=>sy->user( )->name.Verifying Release State (Level A)
"Check if an object is released for ABAP Cloud
SELECT SINGLE *
FROM i_apistateofrepositoryobject
WHERE ObjectType = 'CLAS'
AND ObjectName = 'CL_NUMBERRANGE_RUNTIME'
AND ReleaseState = 'RELEASED'
INTO @DATA(ls_state).Other discovery options:
| Method | Use |
| ADT Released Object Search | Search with api: prefix (e.g., api:cl_*) |
| Project Explorer | Released Objects → Source Code Library folder |
| Released Objects Fiori app | F5865 — search by classic name, view successor information |
| SAP Business Accelerator Hub | https://api.sap.com/ — released remote and local APIs |
| Cloudification Repository | https://sap.github.io/abap-atc-cr-cv-s4hc/ — level classification |
If no released class exists
| Situation | Clean core level | Action |
| A nominated classic API exists | B | Use it in classic ABAP; wrap for ABAP Cloud |
| Only an internal SAP object exists | C | Wrap it, create one ATC exemption, monitor changelog |
The object is classified noAPI | D | Do not use — find a released or classic alternative |
Detailed Reference
For comprehensive code examples and all available classes, read:
- references/Released_ABAP_Classes.md
Reference File Structure
The reference file is organized into these sections (use grep patterns to search):
| Section | Search Pattern |
| Console Output | Running a Class and Displaying Output |
| UUID | Creating and Transforming UUIDs |
| SY Components | XCO Representations of SY Components |
| RAP | ## RAP |
| Transactional Consistency | Transactional Consistency |
| Numbers/Calculations | Numbers and Calculations |
| String Processing | String Processing |
| Codepages/Binary | Handling Codepages and Binary |
| Regular Expressions | Regular Expressions |
| Time and Date | Time and Date |
| Calendar | Calendar-Related Information |
| RTTS | Runtime Type Services |
| Assignments | ## Assignments |
| Structure Components | Non-Initial Structure Components |
| Table Comparison | Comparing Content of Compatible |
| Dynamic Programming | Dynamic Programming |
| Current User | Getting the Current User Name |
| XML/JSON | XML/JSON |
| Repository Objects | ABAP Repository Object Information |
| Generating Objects | Generating ABAP Repository Objects |
| Call Stack | Call Stack |
Sending Emails | |
| Tenant Info | Tenant Information |
| Exceptions | Exception Classes |
| Parallel Processing | Parallel Processing |
| Application Log | Application Log |
| Background Jobs | Running Code in the Background |
| Locking | ## Locking |
| HTTP Calls | Calling Services |
| XLSX | Reading and Writing XLSX Content |
| Zip Files | Zip Files |
| Unit Testing | ABAP Unit |
| Units of Measurement | Units of Measurement |
| ATC | Programmatic ABAP Test Cockpit |
| Number Ranges | Handling Number Ranges |
| Releasing APIs | Releasing APIs |
| Application Jobs | Application Jobs |
| Generative AI | Generative AI |
| Transport Requests | Programmatically Creating and Releasing Transport |
| HTML/XML Cleanup | Repairing and Cleaning up HTML |
| IDE Actions | Creating and Using IDE Actions |
| PDF Rendering | Output Management |
| CSV Export | Writing Internal Table Content to CSV |
| Garbage Collection | Triggering Garbage Collection |
Related Skills
- abap-cloud: Use for clean core level definitions and the wrapper pattern when no released class exists
- abap-cloud-migration: Use for replacing non-released APIs during level remediation
- atc-cloudification: Use for checking object classification and release state via ATC
- rap: Use for RAP-specific released classes (
CL_ABAP_BEHAVIOR_HANDLER,CL_ABAP_BEHAVIOR_SAVER)
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

