mcpField
A
atc-cloudification

atc-cloudification

github.com/likweitanテスト・品質7284 回インストール2 週間前に更新
リポジトリ

atc-cloudification について

atc-cloudificationは、SAP Cloudification Repositoryを参照するABAP Test Cockpitチェックを設定し、検出結果をクリーンコアレベルに対応付けるスキルです。ABAPチームによるカスタムコード評価、移送チェックの管理、SAP Cloud ERP向けの是正計画を支援します。

主な機能

  1. 01リポジトリ参照型ATCチェックの設定
  2. 02検出結果をクリーンコアレベルA~Dに対応付け
  3. 03グローバルバリアントと移送ゲートの設定
  4. 04免除とレガシーベースラインの確認
  5. 05オブジェクト変更履歴によるアップグレードリスクの把握

活用シーン

  1. 01クリーンコアレベルに基づくカスタムコード評価
  2. 02優先度1・2の検出がある移送のブロック
  3. 03内部または非推奨APIの是正計画
  4. 04アップグレード前のSAPオブジェクト変更確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/likweitan/abap-skills --skill atc-cloudification

インストール後、Claude Code で/atc-cloudificationを入力して読み込まれたか確認します。

同梱ファイルreferences/quick-reference.md

詳細

ATC クリーンコアとクラウド化リポジトリのチェック

ABAP Test Cockpit(ATC)のクリーンコアチェックを SAP Cloudification Repository に対して設定し、検出結果をクリーンコアレベル(A、B、C、D)に対応付けて、ガバナンスと修正計画に活用します。

クリーンコアレベルの概念は、従来の3層拡張性モデルに代わるものです。ATC はレベルを測定可能にするガバナンスツールです。優先度1 → レベルD、優先度2 → レベルC、優先度3 → レベルB、検出結果なし → レベルA。

概要

SAP Cloudification Repository には、SAP オブジェクトのリリース状態とクリーンコア分類が含まれています。その JSON ファイルは ATC チェックコンテンツとして機能し、顧客やパートナーが、すべての ECC および S/4HANA リリースにわたってカスタムコードを分析できるようにします。

クイックリファレンス

references/quick-reference.md で以下を確認してください。

  • 対象製品およびバージョンごとの JSON ファイルの URL
  • ATC チェックバリアントの設定手順
  • 利用可能な JSON ファイルとその用途
  • 設定に必要な SAP Notes

対象製品ごとの設定

SAP Cloud ERP
  1. ATC チェックバリアントで、「Cloud Readiness」 → Usage of Released APIs (Cloudification Repository) を有効にします。
  2. チェック属性に URL を入力します。
    https://raw.githubusercontent.com/SAP/abap-atc-cr-cv-s4hc/main/src/objectReleaseInfoLatest.json
    
SAP Cloud ERP Private
  1. ATC チェックバリアントで、「Clean Core」 → Usage of Released APIs (Cloudification Repository) を有効にします。
  2. チェック属性に、対象バージョンの URL を入力します。
    • 最新バージョン:https://raw.githubusercontent.com/SAP/abap-atc-cr-cv-s4hc/main/src/objectReleaseInfo_PCELatest.json
    • 特定のリリース:PCELatest をバージョンに置き換えます。例:リリース2025 FPS00の場合は PCE2025_0
新しいクリーンコアチェック(Note 3565942)

新しい ATC チェック 「Usage of APIs」 および 「Allowed Enhancement Technologies」 には、次を使用します。

https://raw.githubusercontent.com/SAP/abap-atc-cr-cv-s4hc/main/src/objectClassifications_SAP.json

クリーンコアレベルとオブジェクト分類

拡張機能は、利用する SAP オブジェクトに基づいてクリーンコアのレベル(A~D)に分類されます。拡張機能のレベルは、利用するオブジェクトのうち最も低いレベルになります。

クリーンコアレベルの概念は、従来の3層拡張性モデルに代わるものです。

クリーンコアレベルSAP オブジェクトの修飾子意味ATC の検出結果
レベルA[Released] リモート API、ローカル API、拡張ポイント正式な安定性契約によって管理されます。すべての新規開発が目指す状態です。検出結果なし
レベルB[Classic] SAP API、SAP 拡張ポイントSAP が指定するクラシック API とフレームワークです。安定性契約はありませんが、アップグレード時の安定性が実証されています。優先度3(情報)
レベルC[Internal] SAP オブジェクト他に分類されていないすべてのオブジェクトのデフォルトです。リリースされておらず、文書化もサポートもされていません。優先度2(警告)
レベルD[Not recommended] SAP オブジェクト、拡張ポイント、またはテクノロジー顧客利用には明確に適さないものです。リスクと技術的負債が最も高いレベルです。優先度1(エラー)

クリーンコアの状態:レベルA = クリーンコア · レベルBおよびC = 条件付きクリーンコア · レベルD = クリーンコアではない。

主なルール
  • レベル A(リリース済み):すべての新規開発で使用します。SAP Business Accelerator Hub、Cloudification Repository、または ADT で検索できます。
  • レベル B(クラシック API):リリース済み API が存在しない場合、クラシック ABAP 開発で使用できます。クラシック API をラップしたものはレベル B であり、ABAP Cloud で利用できるようリリースできます。安定しているクラシックコードの書き換えを強制しないでください。
  • レベル C(内部):最小限に抑えます。残りの使用箇所をラップし、ATC 免除を 1 つ作成します。今後予定されている互換性のない変更を検出するには、SAP オブジェクトの変更履歴を使用してください。
  • レベル D(非推奨):直ちに排除します。noAPI オブジェクト、変更、暗黙的/明示的な拡張、テーブルへの直接書き込み、FORM ルーチン呼び出し、重大な ABAP ステートメントが含まれます。
  • 非推奨:引き続きレベル A/B ですが、後継 API を採用してください。
JSON ファイルと状態
  • objectReleaseInfo*.json — SAP オブジェクトのリリース状態:released、deprecated、notToBeReleased、notReleased
  • objectClassifications_SAP.json — クリーンコア分類:classicAPI(レベル B)、noAPI(レベル D)、internalAPI(リリース済みの後継が利用可能なレベル C)
  • ラベル:remote-enabled(RFC 対応)、transactional-consistent(RAP ベースのアプリケーション内で使用可能)

分類されるオブジェクトタイプ:FUNC(汎用モジュール)、CLAS(クラス)、INTF(インターフェース)、STOB(CDS ビュー)、BDEF(BO インターフェース)。

DDIC オブジェクト(データエレメント、構造体、テーブルタイプ)は分類されず、データ型として使用されてもチェックされません。チェックされるのは、SAP テーブルへの SQL アクセスのみです。

ATC クリーンコアチェック

開発中および移送リリース時に使用する単一のグローバルチェックバリアントを設定します。ATC の移送設定で、優先度 1 および 2 の検出結果がリリースをブロックするように設定します。

チェックカテゴリ技術名称目的
API の使用状況クリーンコアSYCM_USAGE_OF_APISリリース済み/クラシック API の分類、SAP テーブルおよびビューへの SQL、SAP FORM ルーチンの呼び出し
許可された拡張テクノロジークリーンコアSYCM_ALLOWED_ENH_TECHNOLOGY許可されていないテクノロジーを使用する ENHO 拡張を報告します。推奨されるのは BAdI のみです。
顧客による変更の検索クリーンコアCI_SEARCH_CUST_MODIFICATIONS変更されたオブジェクトを検出します(オブジェクトごとに 1 件の検出結果)。ABAP Cloud のオブジェクトタイプのサポートもチェックします
重大なステートメントクリーンコアCI_CRITICAL_STATEMENTSセキュリティまたはプログラムの安定性に関わるステートメント(カーネル呼び出し、EXEC SQL など)
コード脆弱性アナライザー追加で推奨SLIN_SECセキュリティ脆弱性

API の使用状況または許可された拡張テクノロジーがない場合は、SAP Note 3565942を実装してください。

チェックバリアントのテンプレート
  • ABAP_CLEAN_CORE_DEVELOPMENT — 初期設定用に SAP が提供する事前定義済みバリアント
  • ABAP_CLOUD_DEVELOPMENT_DEFAULT — 上記のチェックを追加するためのテンプレート
  • ABAP_CLOUD_READINESS — オブジェクトの言語バージョンを切り替える前に ABAP Cloud ルールへの準拠を確認
中央 ATC システム

ランドスケープ全体を対象とする中央 ATC システムを設定します。

  • SAP BTP 上のパブリッククラウドソリューション — SAP が推奨するオプション
  • またはプライベートクラウド/オンプレミスのランドスケープにインストールします
ATC の検出結果とレベルの対応
ATC 優先度レベル検出結果推奨される対応
優先度 1(エラー)Dオブジェクトが変更されています変更を削除し、代わりに BAdI を使用します
拡張テクノロジーは許可されていません拡張実装を削除し、BAdI を使用します
暗黙的または明示的な拡張(ソースコードプラグイン)拡張実装を削除し、BAdI を使用します
SAP データベーステーブルへの直接の 書き込み アクセスリリース済み API またはクラシック API を使用します
SAP プログラム内のフォームルーチンの呼び出しリリース済み API またはクラシック API を使用します
noAPI に分類された SAP オブジェクトの使用リリース済み API またはクラシック API を使用し、後継情報を確認します
重大な ABAP ステートメントの使用リリース済み API またはクラシック API を使用します
優先度 2(警告)CSAP データベーステーブル/ビューへの直接の 読み取り アクセスリリース済み CDS ビューまたはクラシック API を使用します
クラシック API(内部)に分類されておらず、リリースもされていない SAP オブジェクトの使用リリース済み API またはクラシック API を使用します
優先度 3(情報)B非推奨 API の使用代わりに後継 API を使用します
クラシック API の使用— 許容されるため、対応は不要です
対象となる重大なステートメント

CI_CRITICAL_STATEMENTS は、カーネル関数呼び出し・システムコール・エディター呼び出し・EXEC SQL・データベースヒント・レポートおよび Dynpro の生成・レポートの読み取り/挿入・Dynpro の読み取り/挿入・nametab のインポート/エクスポートを報告します。

免除戦略

  • 免除の対象は 優先度 1(エラー) と 優先度 2(警告) の検出結果に絞ります
  • クラシック API の使用など、優先度 3(情報)の検出結果は 免除しないでください
  • クリーンコアに関する検出結果には、細粒度の検出結果単位 の免除を使用します。これが最善のガバナンスです
  • 変更しないレガシーコードの多数の検出結果を非表示にする場合に限り、ATC ベースライン を使用します
  • 推奨される方法:SAP オブジェクトをラップし、そのラッパーを利用します。N 件の検出結果が 1 件にまとまるため、免除は 1 つで済みます
  • ATC 免除ブラウザー を使用して導入状況を監視します

SAP オブジェクトの変更履歴(レベル C の緩和策)

内部 SAP オブジェクトは、アップグレード、フィーチャーパックのインポート、さらには SAP Note のインポート時にも変更されることがあります。変更履歴には、今後のリリースで互換性のない変更が加えられるオブジェクトが事前に一覧表示されます。

互換性のない変更には、オブジェクトの削除、関数モジュールのパラメーターの名称変更または削除、互換性のないパラメーター型の変更、SAP クラスのメソッドの名称変更または削除、CDS ビューからのフィールドの削除が含まれます。

対象オブジェクトタイプ:FUNC、CLAS、INTF、STOB、BDEF。

セットアップ:

  1. SAP Software Download Center(SAP Support Portal)から Simplification Database ファイルをダウンロードします
  2. トランザクション SYCM でインポートします
  3. 開発中、または他の簡素化項目チェックと同様にアップグレード前に、変更履歴の ATC チェックを実行します

変更履歴にあるオブジェクトが、自動的にレベル D に格下げされるわけではありません。変更の重大度によっては、引き続き使用できる場合があります。検出結果を活用し、リリース済み API またはクラシック API へのリファクタリングを進めてください。

ワークフロー

  1. 対象製品を決定します:SAP Cloud ERP または SAP Cloud ERP Private
  2. クイックリファレンスを使って適切な JSON ファイルを特定します
  3. 前提条件を確認します:SAP Note 3565942(クリーンコアチェック)を実装し、SAP Note 3578329(クラシックテクノロジーの分類)を確認します
  4. 一元管理型の ATC システムをセットアップします(SAP BTP を推奨)
  5. クリーンコアチェックと JSON URL を指定して、グローバルチェックバリアントを 1 つ設定します
  6. トランスポート設定を構成し、優先度 1 および 2 の検出結果がトランスポートリリースをブロックするようにします
  7. SYCM で SAP オブジェクトの変更履歴をインポートし、レベル C のリスク評価に使用します
  8. カスタムコードに対して ATC チェックを実行します
  9. 検出結果をレベルに割り当て(P1→D、P2→C、P3→B)、現在の全体レベルを判断します
  10. 修正計画を立てます:レベル D を排除し、レベル C を最小限に抑え、レベル B を監視し、レベル A を目指します
  11. ラッパーに対するきめ細かな免除を設定し、残存する使用を管理します

出力形式

ATC のクリーンコアに関するトピックを扱う際は、次の形式で回答してください。

## ATC Clean Core Guidance

### Configuration

- Target product: [SAP Cloud ERP / SAP Cloud ERP Private]
- JSON file: [URL]
- Check variant: [name and included checks]

### Finding Classification

| ATC finding | Priority | Clean core level | Action |
|-------------|----------|------------------|--------|
| ... | ... | ... | ... |

### Remediation Plan

[Ordered: Level D first, then C, then B]

### Exemption Recommendations

[Which findings justify an exemption and why]

Cloudification API Viewer

オンラインビューアーを使うと、オブジェクトの分類をインタラクティブに参照できます。

state でフィルターします。

  • classicAPI → レベル B の候補
  • internalAPI → リリース済みの後継が利用可能なレベル C
  • noAPI → レベル D。置き換えが必要です

参考資料

  • Clean Core Extensibility Whitepaper — クリーンコアのレベル概念
  • Extend SAP S/4HANA in the cloud and on premise with ABAP based extensions(バージョン 2.3、2025 年 8 月)
  • Cloudification Repository:https://github.com/SAP/abap-atc-cr-cv-s4hc
  • SAP Note 3565942 — SYCM_USAGE_OF_APIS と SYCM_ALLOWED_ENH_TECHNOLOGY を提供します
  • SAP Note 3578329 — クラシックテクノロジー、再利用サービス、フレームワークの分類

関連スキル

  • abap-cloud:クリーンコアのレベル定義、開発モデル、ラッパーの分類に使用します
  • abap-cloud-migration:ATC チェック実行後の、レベルに基づく修正ガイダンスに使用します
  • released-abap-classes:ATC が特定した、レベル A のリリース済み API による置き換え候補を見つけるために使用します
  • badi-enhancement:レベル D の修正や拡張を BAdI に置き換えるために使用します

コメント