$npx -y skills add likweitan/abap-skills --skill released-abap-classesFind released ABAP classes 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 rende
| 1 | # Released ABAP Classes |
| 2 | |
| 3 | Reference for released ABAP classes available in ABAP for Cloud Development (SAP BTP ABAP Environment). |
| 4 | |
| 5 | ## Quick Reference by Category |
| 6 | |
| 7 | | Category | Key Classes | |
| 8 | |----------|-------------| |
| 9 | | **Console Output** | `IF_OO_ADT_CLASSRUN`, `CL_DEMO_CLASSRUN`, `CL_XCO_CP_ADT_SIMPLE_CLASSRUN` | |
| 10 | | **UUID** | `CL_SYSTEM_UUID`, `XCO_CP`, `XCO_CP_UUID` | |
| 11 | | **Time & Date** | `CL_ABAP_CONTEXT_INFO`, `XCO_CP_TIME`, `CL_ABAP_TSTMP`, `CL_ABAP_UTCLONG`, `CL_ABAP_DATFM`, `CL_ABAP_TIMEFM` | |
| 12 | | **Calendar** | `CL_FHC_CALENDAR_RUNTIME`, `CL_SCAL_UTILS` | |
| 13 | | **String Processing** | `CL_ABAP_CHAR_UTILITIES`, `CL_ABAP_STRING_UTILITIES`, `XCO_CP` | |
| 14 | | **Numbers/Math** | `CL_ABAP_MATH`, `CL_ABAP_DECFLOAT`, `CL_ABAP_BIGINT`, `CL_ABAP_RATIONAL` | |
| 15 | | **Random Numbers** | `CL_ABAP_RANDOM_*` (INT, INT8, FLOAT, PACKED, DECFLOAT16/34), `CL_ABAP_PROB_DISTRIBUTION` | |
| 16 | | **Regular Expressions** | `CL_ABAP_REGEX`, `CL_ABAP_MATCHER` | |
| 17 | | **Codepage/Binary** | `CL_ABAP_CONV_CODEPAGE`, `CL_ABAP_GZIP*`, `CL_WEB_HTTP_UTILITY` | |
| 18 | | **JSON/XML** | `XCO_CP_JSON`, `/UI2/CL_JSON`, `CL_SXML_*`, `CL_IXML_*` | |
| 19 | | **Email** | `CL_BCS_MAIL_MESSAGE` | |
| 20 | | **HTTP Calls** | `CL_WEB_HTTP_CLIENT_MANAGER`, `CL_HTTP_DESTINATION_PROVIDER` | |
| 21 | | **RAP** | `CL_ABAP_BEHV_AUX`, `CL_ABAP_BEHAVIOR_HANDLER`, `CL_ABAP_BEHAVIOR_SAVER` | |
| 22 | | **RTTS** | `CL_ABAP_TYPEDESCR` and hierarchy | |
| 23 | | **Dynamic Programming** | `CL_ABAP_DYN_PRG`, `CL_ABAP_CORRESPONDING` | |
| 24 | | **User Info** | `CL_ABAP_CONTEXT_INFO`, `XCO_CP=>sy->user()` | |
| 25 | | **Unit Testing** | `CL_ABAP_UNIT_ASSERT`, `CL_OSQL_TEST_ENVIRONMENT`, `CL_CDS_TEST_ENVIRONMENT` | |
| 26 | | **Parallel Processing** | `CL_ABAP_PARALLEL` | |
| 27 | | **Application Log** | `CL_BALI_LOG` | |
| 28 | | **Background Jobs** | `CL_BGMC_PROCESS_FACTORY` | |
| 29 | | **Locking** | `CL_ABAP_LOCK_OBJECT_FACTORY` | |
| 30 | | **XLSX** | `XCO_CP_XLSX` | |
| 31 | | **Zip Files** | `CL_ABAP_ZIP` | |
| 32 | | **PDF Rendering** | `CL_FP_ADS_UTIL` | |
| 33 | |
| 34 | ## Common Use Cases |
| 35 | |
| 36 | ### Get Current Date/Time in UTC |
| 37 | ```abap |
| 38 | "Using CL_ABAP_CONTEXT_INFO |
| 39 | DATA(sys_date) = cl_abap_context_info=>get_system_date( ). "e.g. 20240101 |
| 40 | DATA(sys_time) = cl_abap_context_info=>get_system_time( ). "e.g. 152450 |
| 41 | |
| 42 | "Using XCO (various formats) |
| 43 | DATA(date_utc) = xco_cp=>sy->date( xco_cp_time=>time_zone->utc )->as( xco_cp_time=>format->abap )->value. |
| 44 | DATA(time_utc) = xco_cp=>sy->time( xco_cp_time=>time_zone->utc )->as( xco_cp_time=>format->iso_8601_extended )->value. |
| 45 | DATA(moment_utc) = xco_cp=>sy->moment( xco_cp_time=>time_zone->utc )->as( xco_cp_time=>format->iso_8601_extended )->value. |
| 46 | ``` |
| 47 | |
| 48 | ### Send Email |
| 49 | ```abap |
| 50 | TRY. |
| 51 | DATA(mail) = cl_bcs_mail_message=>create_instance( ). |
| 52 | mail->set_sender( 'sender@example.com' ). |
| 53 | mail->add_recipient( 'recipient@example.com' ). |
| 54 | mail->set_subject( 'Subject' ). |
| 55 | mail->set_main( cl_bcs_mail_textpart=>create_instance( |
| 56 | iv_content = '<h1>Hello</h1><p>Message body.</p>' |
| 57 | iv_content_type = 'text/html' ) ). |
| 58 | mail->send( IMPORTING et_status = DATA(status) ). |
| 59 | CATCH cx_bcs_mail INTO DATA(error). |
| 60 | ENDTRY. |
| 61 | ``` |
| 62 | |
| 63 | ### Generate UUID |
| 64 | ```abap |
| 65 | "CL_SYSTEM_UUID |
| 66 | DATA(uuid_x16) = cl_system_uuid=>create_uuid_x16_static( ). |
| 67 | DATA(uuid_c36) = cl_system_uuid=>create_uuid_c36_static( ). |
| 68 | |
| 69 | "XCO |
| 70 | DATA(uuid) = xco_cp=>uuid( )->value. |
| 71 | DATA(uuid_c36_xco) = xco_cp=>uuid( )->as( xco_cp_uuid=>format->c36 )->value. |
| 72 | ``` |
| 73 | |
| 74 | ### JSON Processing |
| 75 | ```abap |
| 76 | "ABAP -> JSON |
| 77 | DATA(json) = xco_cp_json=>data->from_abap( some_structure )->to_string( ). |
| 78 | |
| 79 | "JSON -> ABAP |
| 80 | xco_cp_json=>data->from_string( json_string )->write_to( REF #( target_structure ) ). |
| 81 | |
| 82 | "Using /UI2/CL_JSON |
| 83 | DATA(json2) = /ui2/cl_json=>serialize( data = some_data ). |
| 84 | /ui2/cl_json=>deserialize( EXPORTING json = json2 CHANGING data = target ). |
| 85 | ``` |
| 86 | |
| 87 | ### HTTP Client Call |
| 88 | ```abap |
| 89 | TRY. |
| 90 | DATA(dest) = cl_http_destination_provider=>create_by_url( 'https://api.example.com' ). |
| 91 | DATA(client) = cl_web_http_client_manager=>create_by_http_destination( dest ). |
| 92 | DATA(request) = client->get_http_request( ). |
| 93 | DATA(response) = client->execute( if_web_http_client=>get ). |
| 94 | DATA(status) = response->get_status( ). |
| 95 | DATA(body) = response->get_text( ). |
| 96 | CATCH cx_web_http_client_error cx_http_dest_provider_error INTO DATA(error). |
| 97 | ENDTRY. |
| 98 | ``` |
| 99 | |
| 100 | ### Get Current User |
| 101 | ```abap |
| 102 | "Using CL_ABAP_CONTEXT_INFO |
| 103 | DATA(user_alias) = cl_abap_context_info=>get_user_alias( ). |
| 104 | DATA(user_name) = cl_abap_context_info=>get_user_formatted_name( ). |
| 105 | |
| 106 | "Using XCO |
| 107 | DATA(user) = xco_cp=>sy->user( )->name. |
| 108 | ``` |
| 109 | |
| 110 | ## Detailed Reference |
| 111 | |
| 112 | For comprehensive code examples and all available classes, read: |
| 113 | - [references/Released_ABAP_Classes.md](references/Released_ABAP_Classes.md) |
| 114 | |
| 115 | ### Reference File Stru |