mcpField
R
released-abap-classes

released-abap-classes

github.com/likweitan開発7289 回インストール2 週間前に更新
リポジトリ

released-abap-classes について

ABAP for Cloud Development の開発者向けに、リリース済み ABAP クラスをタスク別にまとめたリファレンスです。一般的な処理例と API のリリース状態の確認方法も掲載しています。

主な機能

  1. 01タスク別のリリース済みクラス
  2. 02一般的な ABAP 処理の例
  3. 03API リリース状態の確認ガイド
  4. 04Clean core レベルと代替策の説明

活用シーン

  1. 01日付、JSON、HTTP、メールの API を探す
  2. 02リポジトリーオブジェクトのリリース状態を確認する
  3. 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
UUIDCL_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/XMLXCO_CP_JSON、/UI2/CL_JSON、CL_SXML_*、CL_IXML_*
メールCL_BCS_MAIL_MESSAGE
HTTP 呼び出しCL_WEB_HTTP_CLIENT_MANAGER、CL_HTTP_DESTINATION_PROVIDER
RAPCL_ABAP_BEHV_AUX、CL_ABAP_BEHAVIOR_HANDLER、CL_ABAP_BEHAVIOR_SAVER
RTTSCL_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
XLSXXCO_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 Hubhttps://api.sap.com/ — リリース済みのリモート API とローカル API
Cloudification Repositoryhttps://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
UUIDCreating 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
RTTSRuntime Type Services
代入## Assignments
構造のコンポーネントNon-Initial Structure Components
テーブル比較Comparing Content of Compatible
動的プログラミングDynamic Programming
現在のユーザーGetting the Current User Name
XML/JSONXML/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
XLSXReading and Writing XLSX Content
ZIP ファイルZip Files
単体テストABAP Unit
測定単位Units of Measurement
ATCProgrammatic ABAP Test Cockpit
数値範囲Handling Number Ranges
API のリリースReleasing APIs
アプリケーションジョブApplication Jobs
生成 AIGenerative 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)に使用します

コメント