released-abap-classes について
ABAP for Cloud Development の開発者向けに、リリース済み ABAP クラスをタスク別にまとめたリファレンスです。一般的な処理例と API のリリース状態の確認方法も掲載しています。
主な機能
- 01タスク別のリリース済みクラス
- 02一般的な ABAP 処理の例
- 03API リリース状態の確認ガイド
- 04Clean core レベルと代替策の説明
活用シーン
- 01日付、JSON、HTTP、メールの API を探す
- 02リポジトリーオブジェクトのリリース状態を確認する
- 03リリース済みクラスがない場合の対応を選ぶ
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ likweitan/ abap-skills --skill released-abap-classesインストール後、Claude Code で/released-abap-classesを入力して読み込まれたか確認します。
同梱ファイルreferences/Released_ABAP_Classes.md
詳細
リリース済み ABAP クラス
ABAP for Cloud Development(SAP BTP ABAP Environment および SAP Cloud ERP Private)で利用できるリリース済み ABAP クラスのリファレンスです。
ここに記載されているすべてのクラスは、安定性契約に基づいて管理されるリリース済み APIです。これらを使用すると、拡張機能をクリーンコアのレベル Aに維持できます。必要なクラスがリリースされていない場合は、ラッパーパターンとレベル分類について
abap-cloudスキルを参照してください。
カテゴリ別クイックリファレンス
| カテゴリ | 主要なクラス |
|---|---|
| コンソール出力 | IF_OO_ADT_CLASSRUN、CL_DEMO_CLASSRUN、CL_XCO_CP_ADT_SIMPLE_CLASSRUN |
| UUID | CL_SYSTEM_UUID、XCO_CP、XCO_CP_UUID |
| 時刻と日付 | CL_ABAP_CONTEXT_INFO、XCO_CP_TIME、CL_ABAP_TSTMP、CL_ABAP_UTCLONG、CL_ABAP_DATFM、CL_ABAP_TIMEFM |
| カレンダー | CL_FHC_CALENDAR_RUNTIME、CL_SCAL_UTILS |
| 文字列処理 | CL_ABAP_CHAR_UTILITIES、CL_ABAP_STRING_UTILITIES、XCO_CP |
| 数値/数学 | CL_ABAP_MATH、CL_ABAP_DECFLOAT、CL_ABAP_BIGINT、CL_ABAP_RATIONAL |
| 乱数 | CL_ABAP_RANDOM_*(INT、INT8、FLOAT、PACKED、DECFLOAT16/34)、CL_ABAP_PROB_DISTRIBUTION |
| 正規表現 | CL_ABAP_REGEX、CL_ABAP_MATCHER |
| コードページ/バイナリ | 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 呼び出し | 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 とその階層 |
| 動的プログラミング | CL_ABAP_DYN_PRG、CL_ABAP_CORRESPONDING |
| ユーザー情報 | CL_ABAP_CONTEXT_INFO、XCO_CP=>sy->user() |
| 単体テスト | CL_ABAP_UNIT_ASSERT、CL_OSQL_TEST_ENVIRONMENT、CL_CDS_TEST_ENVIRONMENT |
| 並列処理 | CL_ABAP_PARALLEL |
| アプリケーションログ | CL_BALI_LOG |
| バックグラウンドジョブ | CL_BGMC_PROCESS_FACTORY |
| ロック | CL_ABAP_LOCK_OBJECT_FACTORY |
| XLSX | XCO_CP_XLSX |
| Zip ファイル | CL_ABAP_ZIP |
| PDF レンダリング | CL_FP_ADS_UTIL |
よくあるユースケース
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.
メールを送信する
TRY.
DATA(mail) = cl_bcs_mail_message=>create_instance( ).
mail->set_sender( '[email protected]' ).
mail->add_recipient( '[email protected]' ).
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.
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 を処理する
"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 クライアントを呼び出す
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.
現在のユーザーを取得する
"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.
リリース状態の確認(レベル 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).
その他の検索方法:
| 方法 | 用途 |
|---|---|
| ADT リリース済みオブジェクト検索 | api: 接頭辞を付けて検索します(例:api:cl_*) |
| プロジェクトエクスプローラー | リリース済みオブジェクト → ソースコードライブラリフォルダー |
| リリース済みオブジェクト Fiori アプリ | F5865 — 従来の名前で検索し、後継情報を表示します |
| SAP Business Accelerator Hub | https://api.sap.com/ — リリース済みのリモート API とローカル API |
| Cloudification Repository | https://sap.github.io/abap-atc-cr-cv-s4hc/ — レベル分類 |
リリース済みクラスが存在しない場合
| 状況 | クリーンコアレベル | 対応 |
|---|---|---|
| 指定された従来の APIが存在する | B | 従来の ABAP で使用し、ABAP Cloud 用にラップします |
| SAP の内部オブジェクトのみが存在する | C | ラップして ATC 免除を 1 件作成し、変更ログを監視します |
オブジェクトが noAPI に分類されている | D | 使用せず、リリース済みまたは従来の代替手段を探します |
詳細リファレンス
包括的なコード例と利用可能なすべてのクラスについては、こちらをお読みください。
リファレンスファイルの構成
リファレンスファイルは以下のセクションで構成されています(検索には grep パターンを使用してください)。
| セクション | 検索パターン |
|---|---|
| コンソール出力 | Running a Class and Displaying Output |
| UUID | Creating and Transforming UUIDs |
| SY コンポーネント | XCO Representations of SY Components |
| RAP | ## RAP |
| トランザクションの一貫性 | Transactional Consistency |
| 数値/計算 | Numbers and Calculations |
| 文字列処理 | String Processing |
| コードページ/バイナリ | Handling Codepages and Binary |
| 正規表現 | Regular Expressions |
| 時刻と日付 | Time and Date |
| カレンダー | Calendar-Related Information |
| RTTS | Runtime Type Services |
| 代入 | ## Assignments |
| 構造のコンポーネント | Non-Initial Structure Components |
| テーブル比較 | Comparing Content of Compatible |
| 動的プログラミング | Dynamic Programming |
| 現在のユーザー | Getting the Current User Name |
| XML/JSON | XML/JSON |
| リポジトリーオブジェクト | ABAP Repository Object Information |
| オブジェクトの生成 | Generating ABAP Repository Objects |
| コールスタック | Call Stack |
| メール | Sending Emails |
| テナント情報 | Tenant Information |
| 例外 | Exception Classes |
| 並列処理 | Parallel Processing |
| アプリケーションログ | Application Log |
| バックグラウンドジョブ | Running Code in the Background |
| ロック | ## Locking |
| HTTP 呼び出し | Calling Services |
| XLSX | Reading and Writing XLSX Content |
| ZIP ファイル | Zip Files |
| 単体テスト | ABAP Unit |
| 測定単位 | Units of Measurement |
| ATC | Programmatic ABAP Test Cockpit |
| 数値範囲 | Handling Number Ranges |
| API のリリース | Releasing APIs |
| アプリケーションジョブ | Application Jobs |
| 生成 AI | Generative AI |
| 移送依頼 | Programmatically Creating and Releasing Transport |
| HTML/XML のクリーンアップ | Repairing and Cleaning up HTML |
| IDE アクション | Creating and Using IDE Actions |
| PDF レンダリング | Output Management |
| CSV エクスポート | Writing Internal Table Content to CSV |
| ガベージコレクション | Triggering Garbage Collection |
関連スキル
- abap-cloud:クリーンコアレベルの定義、およびリリース済みクラスが存在しない場合のラッパーパターンに使用します
- abap-cloud-migration:レベルの修正時に、リリースされていない API を置き換えるために使用します
- atc-cloudification:ATC を通じてオブジェクトの分類とリリース状態を確認するために使用します
- rap:RAP 固有のリリース済みクラス(
CL_ABAP_BEHAVIOR_HANDLER、CL_ABAP_BEHAVIOR_SAVER)に使用します
コメント
Markdown 対応