SAP S/4HANA Cloud でのライフサイクルが安定した拡張の構築
拡張性は、顧客およびパートナが標準ビジネスソフトウェアをビジネス要件に適応させるための多くのトピックをカバーしています。これには、ビジネスコンフィグレーション、データモデル拡張、データ公開、ユーザインタフェース (UI) またはフォームとレポートのレイアウト変更、および新規 UI または独自のアプリケーションの登録を超えるソフトウェア動作の変更が含まれます。

SAP S/4HANA Cloud のアーキテクチャにより、組込機能を使用して行われた拡張がコアビジネスソフトウェアレイヤから分離されます。つまり、SAP は、定義されたカスタマ固有の拡張に影響を与えることなく、アップグレードをすべてのカスタマシステムにプッシュアウトすることができます。アプリ内機能を使用してコア SAP S/4HANA Cloud システムで実行できない拡張は、分離するか、別のソフトウェアプラットフォームに分割して、コアのライフサイクルが安定するようにします。SAP Business Technology Platform (BTP) は、アプリケーションと統合を構築およびホスティングするための幅広い機能を備えているため、これらの分離された拡張を可能にします。
拡張性テクノロジー
SAP S/4HANA Cloud Private Edition の拡張性は、アプリ内拡張性と並列拡張性という 2 つの主要カテゴリに分けることができます。

アプリ内拡張性: フロントエンドまたはバックエンドのコアアプリケーション (SAP S/4HANA) 内でカスタマイゼーションが行われます。これは、さらに以下の 2 つのタイプに分けられます。
- キーユーザ拡張性は、コーディングの経験なしにアプリ、レポート、電子メール、およびフォームテンプレートに小規模な変更を行うことを容易にするために設計された SAP Fiori アプリを介して、開発システムのカスタマイジングテナントで実行されます。
- 開発者拡張性により、開発者はアップグレードが安定した、クラウド対応のプログラミングモデルでカスタム ABAP コードおよびパートナ拡張を登録することができます。リリースされた SAP オブジェクトのみをカスタマイズできます。これにより、将来のリリースアップグレードで拡張が安定します。
注記
ABAP 開発者が任意の SAP オブジェクトを変更できるクラシック拡張性は、開発システムの開発テナントで引き続き使用することができます。ただし、Eclipse 環境での開発時には、("標準 ABAP" ではなく) "クラウド開発向け ABAP" での開発を選択するオプションがあります。これにより、開発者のコードが、コードの安定性を確保するために設計されたルールに従っていることを確認する構文チェックが可能になります。そうでない場合は、代替方法が推奨されます。追加情報については、開発者拡張性に関するレッスンで説明します。
並列拡張性: カスタマイゼーションが別のプラットフォームで行われ、ターゲットアプリケーション (SAP S/4HANA Cloud) と統合されます。並列拡張性により、将来のリリースアップグレードによって拡張のライフサイクルの安定性が確保されます。これは、開発するカスタマイゼーションが基本的に別のプラットフォームに存在し、統合を介してターゲットアプリケーションと単に通信するだけであるためです。SAP の開発プラットフォームは SAP Business Technology Platform であり、ローコード/ノーコード開発ソリューションとコードベース開発ソリューションの両方があります。これには、以下の 2 つの主要ソリューションが含まれています。
- GROW with SAP イネーブルメントパッケージを通じて顧客がアクセスできる SAP Build はローコード/ノーコードであり、Build Apps、Build Process Automation、および Build Work Zone が含まれています。
- SAP Business Application Studio。開発者は Java、Javascript、Python などの共通言語を使用して、Cloud Application Programming (CAP) モデルを使用して SAP ビジネスアプリケーションを構築および実行することができます。ソフトウェア開発者キット (SDK) は、さまざまなユースケース (例:Java SDK、iOSモバイルSDK、アンドロイドモバイルSDK)により、開発者は最新機能で可能な限り迅速に開発ランドスケープを立ち上げ、実行できるようになる。SAP Business Application Studio には追加ライセンスが必要です。
- 並列拡張性をサポートするその他のサービスは、SAP Discovery Center に記載されています。
拡張性デシジョンツリー
必要な拡張のタイプに基づいて、以下のデシジョンツリーを使用して適切なテクノロジーを選択します。

カスタム開発のための 3 階層の拡張モデル
システム変換では、従来の ABAP を使用して構築された拡張を現在の clean core 標準に合わせて更新することが重要です。これらの従来の ABAP 拡張は、階層 3 拡張と呼ばれます。SAP S/4HANA ABAP Cloud 環境に適用される構文ルール (開発者拡張性) に従っていないため、顧客のシステムが不安定になり、将来のアップグレードが困難になる可能性があります。SAP Readiness Check では、システム変換が可能になる前に削除または更新する必要がある問題のあるカスタムコードが特定されても、変換後にカスタムコードを最新化するために行う必要がある改善があります。目標は、顧客のシステムをできるだけ安定させ、将来のアップグレードを円滑に実行することです。

顧客のシステムでは、階層 1 の拡張のみを目標としています。階層 1 は、SAP Fiori アプリ (キーユーザ拡張性) または ABAP クラウド開発環境 (開発者拡張性) のいずれかを使用してアプリ内拡張を行い、クラウド対応でアップグレードが安定したアプリケーションと拡張を構築することを意味します。ここでは、SAP S/4HANA Cloud Public Edition と同じモデルが使用されます。第 1 層に組み込まれた拡張により、顧客のシステムが安定し、アップグレードが容易になり、変換された SAP S/4HANA システムと新規導入のためのクリーンシステムのどちらであっても、常に新しい拡張のデフォルトモデルである必要があります。
Tier 3 拡張に代わる正確な階層 1 拡張が常に存在するとは限らないため、ギャップを埋めるための階層 2 拡張があります。Tier 2 拡張により、開発者はリリースされない可能性があるため、Tier 1 拡張でカスタマイズできない SAP オブジェクトのカスタムラッパオブジェクトを構築することができます。階層 1 のリリース済オブジェクトに対して SAP API が利用可能になったら、開発者は開発されたカスタムラッパ (Tier 2) を新たに使用可能な階層 1 拡張に置き換える必要があります。階層 1 または階層 2 の拡張を使用すると、カスタマのコアシステムが "クリーン" に保たれ、将来的により簡単にアップグレードすることができます。
注記
- clean core が拡張性に適用される方法の詳細については、SAP ブログ: SAP S/4HANA Extensibility Options for Clean Core Journey を参照してください。
- 詳細については、導入プロジェクトで作業する開発者と拡張性ガイドを共有してください。
- 顧客の Tier 3 拡張を Tier 1 および Tier 2 に更新する方法については、SAP ブログ: The new ABAP Cloud API enablement guide を参照してください。
SAP Extensibility Explorer
SAP Extensibility Explorer の Web サイトは、さまざまな拡張性シナリオを実装しようとするときに、サンプルシナリオとユースケース、および学習リソースの場所を見つけるための優れたリソースです。

SAP Business Accelerator Hub
拡張を作成したら、それを SAP S/4HANA Cloud Private Edition ターゲットシステムに統合する必要があります。SAP Business Accelerator Hub には、事前にパッケージ化された統合、API、イベント、コネクタ、CDS ビュー、ワークフローシナリオ、SAP Build テンプレートなどのライブラリがあります。

専用の SAP S/4HANA Cloud Private Edition タイルを選択すると、開発者拡張性をサポートする ABAP Cloud ランドスケープで使用される拡張など、ソリューションに関連するコンテンツのみが表示されます。開発者が必要なコンテンツを見つけることができない場合は、画面右側のフィードバックタブを使用して依頼を送信し、関連する Customer Influence キャンペーンを選択してコンテンツ依頼について説明します。