ABAP環境:アーキテクチャと利用

- SAP BTP ABAP環境(“Steampunk”)は、BTP上で動作するクラウドネイティブなABAPランタイムです。S/4HANA Cloud内部のEmbedded Steampunkとカーネルを共有しますが、独立したサイドバイサイドサービスとして動作します。
- 2018年から本番環境で利用可能で安定していますが、サポートされるのはABAP Cloud(制限付き、ホワイトリスト登録済みAPI)のみです。未リリースのSAPオブジェクト、GUI、または低レベルDBにアクセスするカスタムコードはコンパイルできません。
- 実際のコンサルタントの問いは「ABAP Cloudに移行できるか」ではなく、「この拡張機能はBTP上でサイドバイサイドに実行すべきか、Embedded Steampunk内でオンスタックに実行すべきか、それともS/4 on-premで従来通り維持すべきか」です。開発者の慣れではなく、ユースケースに基づいてランタイムを選択してください。
本記事の位置づけ
| ID | カテゴリ | コンポーネント | スコープ |
|---|---|---|---|
| BTP-B01 | 概要 | アプリケーション開発 | 概要と機能マップ |
| BTP-B02 | プロコードIDE | Business Application Studio | アーキテクチャと使用方法 |
| BTP-B03 | プロコードフレームワーク | CAPとBuild Code | アーキテクチャと使用方法 |
| BTP-B04 | ABAPランタイム | ABAP Environment | アーキテクチャと使用方法(本記事) |
| BTP-B05 | ローコード | Build Apps | アーキテクチャと使用方法 |
| BTP-B06 | プロセス自動化 | Build Process Automation | アーキテクチャと使用方法 |
| BTP-B07 | フロントエンドシェル | Build Work Zone | アーキテクチャと使用方法 |
| BTP-B08 | 意思決定 | ユースケース | 意思決定パターン |
参考資料
| リソース | URL |
|---|---|
| SAP Help Portal — ABAP環境(BTP) | help.sap.com → |
| SAP製品ページ — ABAP環境 | sap.com → |
| SAP Help Portal — RAPビジネスオブジェクトコントラクト | help.sap.com → |
| SAP Help Portal — ABAP言語バージョンとAPI | help.sap.com → |
| SAPニュース — SAP S/4HANA Cloudを正しい方法で拡張する(2025年8月) | sap.com → |
1) ABAP環境のランドスケープ

ABAP が 2026 年に動作する場所は 3 つあり、それらは互換性がありません。
| ドメイン | 機能 | 主なユーザー | |
|---|---|---|---|
| SAP BTP ABAP環境(Steampunk) | BTP上のスタンドアロンクラウドネイティブABAPランタイム。S/4HANAとサイドバイサイドで動作 | 独立した拡張機能、パートナーアプリ、公開APIを構築するABAPチーム | |
| 組み込みSteampunk(S/4HANA Cloud、パブリック/プライベート) | S/4HANA Cloud内のオンスタックで動作するABAP Cloud | S/4データ、トランザクション、RAPオブジェクトへの直接アクセスが必要なABAP開発者 | |
| クラシックABAP(S/4プライベート/オンプレミス) | GUI、Dynpro、修正を含むフル機能のレガシーABAP | 長期にわたる拡張機能、規制/監査対象コード、移行中のブリッジ |
3つはすべて同じABAPプラットフォームのコードラインと同一のABAPカーネルに基づいています。違いは、使用が許可される言語バージョン、API、およびUIテクノロジーにあります。これらは互換性のある代替品ではありません。
2) S/4HANA への接続方法

+--------------------------+
| SAP S/4HANA (any flavor) |
| ┌────────────────────┐ |
| │ Released APIs (C0) │◀─┼──── consumed by ABAP Cloud
| └────────────────────┘ |
| ┌────────────────────┐ |
| │ Embedded Steampunk │ | ← on-stack, only Public/Private
| │ (ABAP Cloud only) │ |
| └────────────────────┘ |
+─────────────▲────────────+
│ Communication
│ Arrangements
│ (OAuth / mTLS)
│
+─────────────┴────────────+
| SAP BTP ABAP Environment | ← side-by-side
| (subaccount / CF runtime)|
| - own DB (HANA) |
| - own ABAP runtime |
+───────────────────────────+BTP ABAP環境は独立したシステムです。S/4HANAのテーブルにはアクセスできず、リリース済みでC0安定版のAPIを対象とするコミュニケーション設定を通じてS/4を利用します。Embedded SteampunkはS/4HANA Cloud内部に存在し、ローカルのSADL/CDSアクセスを使用しますが、リリース済みAPIという同じルールに従います。
重要ポイント: ランタイムは、開発者の好みではなく、データの所有者と拡張機能の結合度によって選択する。
3) 成熟度マップ

| 領域 | 成熟度 | 備考 | |
|---|---|---|---|
| SAP BTP ABAP環境 | ✅ 本番利用可能 | 2018年よりGA。四半期ごとにリリース。ACUベースのサイジング。2026年3月以降、最小0.5 ACU(8 GB)。 | |
| S/4HANA Cloud Publicにおける組み込みSteampunk | ✅ 本番利用可能 | 2208以降、必須の開発モデル。クラシックABAPは不可。 | |
| S/4HANA Cloud Private / on-premにおけるABAP Cloud | ⚠️ 前提条件ありで利用可能 | リリース2022以降が必要。クラシックABAPと共存 — ガバナンスの規律が必要。そうでなければチームは静かにクラシックに戻る。 | |
| クラシックABAP(Private / on-prem) | ✅ 本番利用可能 | 引き続き完全サポート。ただし、クラシックで新たに記述された行はすべて、将来の移行作業を増やす。 | |
| 低ボリュームのサイドバイサイドアプリ向けSAP BTP ABAP環境 | 🔶 コスト面でアーリーアダプター向け | 持続的なワークロードが約1 ACU未満の場合、CAP/Javaによるサイドバイサイドの方がABAPより低コストになる可能性がある。 |
4) 要件チェックリスト
テナントおよび契約の前提条件

| チェックリスト項目 | 重要性 |
|---|---|
abap(プラン standard)の利用可能なエンタイトルメントがあるBTPグローバルアカウント | これがないとサービスがサービスマーケットプレイスに表示されず、調達サイクルが容易ではありません |
abap_compute_unit と hana_compute_unit に割り当てられた割り当て量(16 GB単位、0.5 ACU利用可能) | ACUはランタイムコストを左右し、サイジングが小さすぎると一部の操作でスケールアウトではなく再作成が必要になります |
| ターゲットサブアカウントでCloud Foundry環境が有効化されていること | ABAP環境はKymaではなくCF上にプロビジョニングされます |
| BTPコックピットとADTに必要な権限を持つS-User | 初回オンボーディングは、ここで想定以上に頻繁に停滞します |
| データ保存ポリシーに沿ったリージョンの選択 | プロビジョニング後にリージョンを変更することはできず、移行が必要になります |
開発と言語の制約

| チェックリスト項目 | 重要性の理由 |
|---|---|
| すべてのカスタムコードでABAP言語バージョン「ABAP for Cloud Development」を使用している | カーネルが非クラウド構文を拒否するため、「後で移植する」という約束はしないこと |
| ビジネスコードでリリース済みSAPオブジェクト(C0契約)のみを参照している | 非リリースオブジェクトは実行時ではなく、アクティベーション時に構文エラーを引き起こす |
| 対象範囲にSAP GUI / Dynpro / クラシカルレポートが含まれていない | UIはSAP Fiori ElementsまたはフリースタイルSAPUI5である必要があるため、サイジング前にUX範囲を確認すること |
| RAPが唯一サポートされるトランザクショナルプログラミングモデルである | 従来のBOPF / クラシカルなトランザクションパターンは移植不可のため、再設計が必要 |
ファイルアクセスは承認済みクラウドAPIを使用している(OPEN DATASETは不可) | バッチインターフェースの移行中によく発生する想定外の課題である |
統合と接続性
| チェックリスト項目 | 重要である理由 |
|---|---|
| 各外部エンドポイント向けに設計された通信設定 | これがないと、RFCおよびHTTP宛先を配線できない |
| S/4側でOAuthまたは証明書ベースの認証が利用可能 | 基本認証はサンドボックスでのみ許容される。本番環境では適切なトラストが必要 |
| 使用する公開APIセットに対応したS/4HANAリリース ≥ 2022 | 古いS/4リリースでは、消費するC0 APIが公開されない |
| BTPからS/4へのネットワーク到達性(オンプレミス向けCloud Connector) | Cloud ConnectorはBasisチームが適切にサイジング・運用する必要があり、想定だけで済ませてはならない |
運用、ライフサイクル、およびライセンス
| チェックリスト項目 | 重要性 |
|---|---|
| ABAP Cloud向けATC(ABAPテストカクピット)バリアントの設定 | ATCによる強制がなければ、チームは未リリースのオブジェクトに後退する |
| gCTS / abapGitを介した転送ルートの定義とトレーニング | ここでは従来のSAPトランスポート環境は使用されない |
| 3ヶ月目と12ヶ月目の時点でのサイジングレビュー | ACUコストはメモリベースの従量課金であり、過小・過大サイジングはいずれも悪影響を及ぼす |
| SAPアカウントチームとのライセンス条件の確認 | トライアル権限は期限付きであり、本番環境では商用契約が必要 |
| DR(ディザスタリカバリ)とバックアップの期待値の文書化 | BTPサービスはインフラDRを処理するが、データエクスポートとテナントコピーは顧客の責任である |
5) 意思決定基準
最初に問うべき3つの質問

Q1. この拡張機能によって解消される測定可能な非効率性は何か、また、その非効率性をビジネスとして明確に認識しているか?
プロジェクトが課題を定量化できない場合(「ポータルが欲しい」「モダナイズしたい」など)、正しい判断は、ユースケースが明確になるまでBTP ABAP環境の導入を延期することです。ABAP Cloudはリファクタリングツールではなく、ACU単位でコストが発生するランタイムです。測定可能な目標がなければ、更新時にROIを正当化することはできません。
Q2. この拡張機能が処理するデータは法的にどこに存在し、そのライフサイクルを所有するのは誰ですか?
拡張機能が主にS/4のマスタ/トランザクションデータを読み書きする場合、組み込み型Steampunkは通常、レイテンシ、トランザクション整合性、運用のシンプルさにおいて優れています。データがサードパーティシステムまたはBTPアプリケーション自体に所有されている場合は、サイドバイサイド型BTP ABAPの方が適しています。この質問に対する誤った回答は、本ガイド全体で最も高くつくミスとなります。
Q3. ACU消費とABAP Cloudスキルを持つチームの両方に対して予算権限を持つ内部スポンサーはいますか?
ACU コストは運用コストであり、ABAP Cloud スキルは不足しています。両方に責任を持つ指名されたスポンサーがいなければ、プロジェクトは技術的には成功しても、商業的には停滞します。
プロジェクトコンテキストによるドメイン選択

| プロジェクトのコンテキスト | 推奨される開始ドメイン/機能 | |
|---|---|---|
| 顧客が所有するグリーンフィールドの公開APIまたはポータル | SAP BTP ABAP環境(サイドバイサイド) | |
| S/4のマスタデータおよびトランザクションデータに対する大量の読み取り/書き込み | S/4HANA Cloudにおける組み込み型Steampunk | |
| S/4HANA Cloud Public向けの新しい拡張 | 組み込み型Steampunk(唯一の選択肢) | |
| S/4 Private / on-prem向けの新しい拡張(分離可能) | スタック上のABAP Cloud(分離が重要な場合はBTP ABAPをフォールバックとして使用) | |
| 短期間維持が必要な既存のクラシックABAP | クラシックを維持。ビッグバン的な書き換えではなく、ラッパー層を計画 | |
| 低ボリュームのサイドバイサイドワークロード、レイテンシ許容、ポリグロットチーム | Cloud Foundry / Kyma上のCAP(BTP-B03)(BTP ABAPではない)— より低コスト | |
| 明確な課題がまだ特定されていない | 停止。Q1に戻る。 |
ライセンスとコスト

| 領域 | ライセンスモデル | 確認すべき重要事項 | |
|---|---|---|---|
| SAP BTP ABAP Environment | BTPエンタイトルメントのサブスクリプション + ACUおよびHCU(HANA)の消費 | 定常状態のACU数はいくらか。また、非本番環境では0.5 ACUの最小値で十分か。 | |
| Embedded Steampunk(S/4 Cloud Public) | S/4HANA Cloud Publicライセンスに含まれる。ABAPランタイムの追加料金は不要。 | 契約上、開発者ごとのADTシート制限はあるか。 | |
| S/4 Cloud Private / オンプレミスにおけるABAP Cloud | 既存のS/4ライセンスでカバー。追加のランタイム料金は不要。 | 保守契約により、2022年以降のリリースパスが保証されているか。 | |
| クラシックABAP | 既存のS/4ライセンス | 移行しない場合のコスト(すなわち、繰り返し発生するアップグレード作業)はいくらか。 |
6) よくある障害

障害 1: ABAP Cloud を構文移行として扱うこと
Teamsは「移植」のための予算を組んでいるが、ビルド時に参照の30~60%が未リリースオブジェクト、GUI、または低レベルDBへのものであることが判明する。この作業は移植ではなく再設計である。スプリント4ではなく、要件段階でそれに応じて見積もること。
障害 2: チームがABAPを好むという理由でBTP ABAP環境を選択する
Side-by-sideは、ワークロードが本当にS/4の外部に属する場合に適切な選択肢です。リクエストのたびにS/4のデータを読み書きするワークロードであれば、組み込み型Steampunkの方が高速で低コスト、かつ構成要素も少なくなります。ランタイムは開発者ではなく、データに従うべきです。
障害 3: プライベート / オンプレミスでのATC適用のスキップ
Private Cloudおよびオンプレミス環境では、ABAP CloudとクラシックABAPが共存します。クラウドフラグ付きパッケージで非クラウド構造をブロックするATCバリアントがない場合、チームは静かにクラシックABAPを記述して完了とします。クリーンコアの負債は静かに蓄積され、次のアップグレード時に顕在化します。
障害4:バッチピーク時のACUサイジングの過小評価
ACUは持続的なメモリ使用量に合わせてサイジングされますが、月末や年末のバッチ処理で急増する可能性があります。3か月時点で実際のテレメトリデータを用いたサイジングレビューを計画してください。アーキテクトの推測で数値を決め、その後見直さないということは避けてください。
障害 5: トランスポートとライフサイクルの無視
ここでのモデルは従来のSAPトランスポートではありません。STMSの習慣を維持しようとするチームは行き詰まります。gCTS / abapGitには、最初のデプロイ前にCI計画、ブランチポリシー、および訓練されたオペレーターが必要です。
障害 6: 「組み込み型 Steampunk」が独立した製品ではないことを忘れる
調達部門が「Embedded Steampunk」をSKUとしてSAPに見積もり依頼することがあります。これはS/4HANA Cloud内の開発モデルであり、ラインアイテムではありません。議論の枠組みとしては「既存のS/4ライセンス上でABAP Cloudを使用する」とし、そのまま進めてください。
失敗 7: オンプレミスGUIとの同等性を約束すること
ステークホルダーが「まだABAPがある」と聞いて、SAP GUI画面がそのまま使えると誤解することがあります。しかし、それはできません — UIはFioriでなければなりません。この期待値はデモではなく、要件定義書で明確に設定してください。
FAQ
Q: SAP GUIトランザクションはそのまま維持し、それ以外をABAP Cloudに移行することは可能ですか?
同じコールスタック上にはありません。ABAP Cloud は SAP GUI / Dynpro 画面を呼び出すことはできません。GUI トランザクションは Private / on-prem 上の Classic ABAP に残し、ABAP Cloud で新しいフローを構築することは可能ですが、これら2つを1つのトランザクションユニット内で混在させることはできません。両者間の通信は、リリースされた API を経由する必要があります。
Q: BTP ABAP Environment と Embedded Steampunk では、ライセンスはどのように異なりますか?
BTP ABAP Environmentは独立したBTPサブスクリプションであり、ACU(ABAPランタイムメモリ16GB単位、最小0.5 ACU)とHANAコンピュートに基づいて課金されます。Embedded Steampunkは既存のS/4HANA Cloudライセンス内で動作するため、別途ランタイム料金は発生しませんが、S/4契約におけるテナントごとの開発者/シート制約の対象となります。
Q: プロジェクトからABAP Cloudをスコープ外とするのはどのような場合ですか?
ユースケースがローコードパス(Build Apps、BTP-B05)やポリグロットなCAP/Build Codeサービス(BTP-B03)で十分に実現でき、かつABAPに留まるドメイン上の理由がない場合。ABAP Cloudが最も正当化されるのは、ABAPスキルが深く、ワークロードがトランザクション型であり、クリーンコア拡張が明確な目標である場合です。それ以外の場合は、対応するスキルやコンプライアンス上のメリットがないまま、ランタイムコストが発生するだけです。
Q: ABAP Cloud は S/4HANA オンプレミスにも適用されますか?
はい、ただし開発の選択肢として、かつリリース2022以降に限ります。クラシックABAPは引き続きサポートされます。戦略的な課題は、クラシックABAPでの新規開発が許可されるかどうかであり、運用上の課題は、その決定を強制するようにATCが設定されているかどうかです。
Q: ABAP環境の要件を適切に文書化するにはどうすればよいですか?
3つの成果物:(1) 測定可能な目標を伴うユースケース記述(上記Q1)、(2) サイドバイサイド方式とオンスタック方式のどちらを選択するかを正当化するデータ所有権記述(上記Q2)、(3) 公開済みオブジェクトの利用状況と必要な通信設定を明記したAPIおよび統合リスト。これら3つがなければ、アーキテクトは作業の規模や価格を信頼性をもって見積もることはできません。
Q: 必要なリリース済みAPIが存在しない場合はどうすればよいですか?
これはよくあることで、通常は実際のブロッカーとなります。選択肢:SAP Influenceリクエストを提出する、別のリリース済みAPIパスを使用してラッパーを設計する、またはこの拡張機能が当面はClassicのままであることを受け入れる。ロードマップの文書化されたコミットメントなしに「まもなくリリースされる」と想定しないでください。
Q: JouleはABAP環境での作業にどのように組み込まれますか?
SAPはJouleをABAP Cloud向けの開発者アシスタントとして位置づけています。コード生成、ビジネスオブジェクトのスキャフォールディング、ドキュメント作成などが可能です。生産性向上には役立ちますが、アーキテクチャ上の判断を変えるものではありません。Jouleは、誤った場所に配置された拡張機能を正しい場所に移動させることはできません。
概要

SAP BTP ABAP環境は、成熟したサポート対象のクラウドネイティブABAPランタイムです。しかし、その成功はコーディングスキルではなく、要件段階での意思決定に依存します。ランタイムの選択(サイドバイサイドのBTP ABAP vs. オンスタックのEmbedded Steampunk vs. レガシークラシック)は、開発者の好みではなく、データの所有権と結合度に従うべきです。ABAP Cloudの制約は現実的かつ既知のものです。リリース済みAPIのみ、RAPのみ、Fioriのみ、低レベルDBは不可。移植ではなく、再設計を計画してください。最初のスプリント前に、サイジング、ATC適用、トランスポートツール、ライセンスポジションを確認すれば、プロジェクトの残りは通常、自動的に進みます。
次に読むべきもの
| ID | カテゴリ | コンポーネント | スコープ |
|---|---|---|---|
| BTP-B01: アプリケーション開発の概要と機能マップ | 概要 | アプリケーション開発 | 概要と機能マップ |
| BTP-B02: Business Application Studio: アーキテクチャと使用方法 | プロコードIDE | Business Application Studio | アーキテクチャと使用方法 |
| BTP-B03: CAPとBuild Code: アーキテクチャと使用方法 | プロコードフレームワーク | CAPとBuild Code | アーキテクチャと使用方法 |
| BTP-B04 | ABAPランタイム | ABAP環境 | アーキテクチャと使用方法(本記事) |
| BTP-B05: Build Apps: アーキテクチャと使用方法 | ローコード | Build Apps | アーキテクチャと使用方法 |
| BTP-B06: Build Process Automation: アーキテクチャと使用方法 | プロセス自動化 | Build Process Automation | アーキテクチャと使用方法 |
| BTP-B07: Build Work Zone: アーキテクチャと使用方法 | フロントエンドシェル | Build Work Zone | アーキテクチャと使用方法 |
| BTP-B08: ユースケースと判断パターン | 判断 | ユースケース | 判断パターン |