JinJin48
JinJin48
SAP Consultant | BTP · S/4HANA · US Global Rollout
· 19 min read

カバー: SAP Business Application Studio — アーキテクチャと利用方法

TL;DR
  • SAP Business Application Studio (BAS) は、管理されたブラウザベースの Code-OSS IDE であり、ユーザーごとの「開発スペース」上で動作します。これは、SAP が自社の Kubernetes クラスター上にプロビジョニングする隔離されたコンテナであり、コードのターゲットとなる BTP ランタイムからは切り離されています。
  • BAS はローカル IDE のセットアップを代替するものであり、ローカル IDE そのものを置き換えるものではありません。その利点は、事前構成されたツール(CAP、Fiori、MTA、ABAP、HANA)と 100% の VS Code API 互換性にあります。制約としては、開発スペースあたり 6 GB の制限、アイドル時に停止するライフサイクル、および実際の無料枠の制限があります。
  • チームが SAP ウィザード、BTP 宛先、最小限のセットアップを必要とする場合は BAS を選択し、ワークフローがオフライン作業、カスタムツールチェーン、または BTP コードと並行した非 SAP リポジトリを必要とする場合は、ローカルの VS Code(または Remote BAS)を選択してください。

本記事の位置づけ

IDタイトル
BTP-B01アプリケーション開発の概要と機能マップ
BTP-B02Business Application Studio:アーキテクチャと使用方法(本記事)
BTP-B03CAPとBuild Code:アーキテクチャと使用方法
BTP-B04ABAP環境:アーキテクチャと使用方法
BTP-B05Build Apps:アーキテクチャと使用方法
BTP-B06Build Process Automation:アーキテクチャと使用方法
BTP-B07Build Work Zone:アーキテクチャと使用方法
BTP-B08ユースケースと判断パターン

参考資料

リソースURL
SAP Business Application Studioの開発スペースhelp.sap.com →
開発スペースのタイプhelp.sap.com →
アプリケーションプラン(サービスプラン)help.sap.com →
認可とロールの管理help.sap.com →
VS CodeからSAP Business Application Studioにアクセスhelp.sap.com →

1) Business Application Studio のランドスケープ

5種類のSAP Business Application Studio開発スペースの比較と主な利用者

BASは「単一のIDE」ではありません。これは管理されたCode-OSSエディタであり、複数の開発スペースタイプの1つとして具現化され、それぞれに異なるツールチェーンがプリロードされています。開発スペースを互換性のあるものとして扱うことは、要件段階で最もよくある間違いです。

開発スペースの種類含まれるもの主なユーザー
Full-Stack Cloud ApplicationCDSツール、Javaツール、MTAツール、Fioriツール — CAP + Fioriプロジェクト向けに事前構成済みフルスタックプロ開発者
SAP FioriFioriエレメント + フリースタイル、UIアダプテーション、SAPUI5ツール、Launchpad、MTAFiori / UI5開発者
SAP HANA Native ApplicationHANA Cloudツール(HDI、計算ビュー、ランタイムツール)データベース / データエンジニア
Basic汎用Code-OSS環境、SAPシナリオはプリロードなしカスタムツールを組み込むプロ開発者
SAP Mobile ApplicationSAP Mobile Development Kit(MDK)、ビルド/プレビューツールモバイル開発者

これらは代替ではありません。Basic開発スペースでは、Fioriツールを手動でインストールしない限り、Fioriフリースタイルアプリをスキャフォールディングできません。Full-Stack Cloud Application開発スペースは、Fioriのリデザインのみが必要なプロジェクトよりも重いベースを提供します。開発スペースのタイプは作成時に選択され、その場で変更することはできません。復旧するには、新しい開発スペースを作成し、Git経由でソースを移動する必要があります。

2) S/4HANA への接続方法

スタック図:SAP管理Kubernetes上のBAS開発スペースがBTPランタイムにフィードし、それがS/4HANAに接続する

BAS自体がS/4HANAのビジネスロジックを実行することは決してありません。BASはエディター画面であり、コードを実行するランタイムは別の場所に存在します。接続ポイントが重要なのは、選択する開発スペースのタイプと設定するBTP宛先の両方を形作るからです。

                ┌─────────────────────────────────────────────────┐
                │  SAP Business Application Studio                │
                │  (browser UI ↔ SAP-managed Kubernetes cluster)  │
                │                                                 │
                │  ┌────────────────────────────────────────────┐ │
                │  │  Dev space (private container, ≤ 6 GB)     │ │
                │  │  Code-OSS + scenario tooling + Git client  │ │
                │  └────────────────────────────────────────────┘ │
                └──────────────────┬──────────────────────────────┘
                                   │  build → mta archive / app
                                   ▼
   ┌─────────────────┬──────────────────┬──────────────────┐
   │ BTP Cloud       │ BTP Kyma         │ BTP ABAP         │
   │ Foundry         │ runtime          │ Environment      │
   └────────┬────────┴────────┬─────────┴────────┬─────────┘
            │                 │                  │
            ▼                 ▼                  ▼
   ┌─────────────────────────────────────────────────────────┐
   │  S/4HANA Cloud (public or private edition)              │
   │  Released APIs / OData / Events                         │
   └────────────────────────┬────────────────────────────────┘
                            │ via SAP Cloud Connector
                            ▼
   ┌─────────────────────────────────────────────────────────┐
   │  S/4HANA on-premise                                     │
   └─────────────────────────────────────────────────────────┘

重要ポイント: BASはランタイムから切り離されています。同じ開発スペースでCloud Foundry、Kyma、ABAP環境、HANA Cloud、モバイルサービスをターゲットにできますが、BTPの宛先、ロールコレクション、Cloud Connectorトンネルは開発スペースではなくサブアカウントレベルに存在します。「構築できる」ことと「宛先が設定されている」ことを混同することが、初日のロールアウト失敗の大半の根本原因です。

3) 成熟度マップ

成熟度マトリックス:本番対応、前提条件付き対応、非推奨とマークされたBAS機能

機能成熟度備考
Code-OSS プラットフォーム IDE✅ 本番利用可能Eclipse Theia からの移行完了。VS Code API との完全互換性があり、任意の VS Code 拡張機能をインストール可能。
フルスタッククラウドアプリケーション開発スペース✅ 本番利用可能CAP + Fiori プロジェクトのデフォルト。CDS、Java、MTA ツールがプリインストール済み。
SAP Fiori 開発スペース✅ 本番利用可能Fiori エレメンツ、フリースタイル、UI アダプテーション、SAPUI5 ツールがプリインストール済み。
SAP HANA ネイティブアプリケーション開発スペース✅ 本番利用可能HDI、計算ビューエディター、HANA Cloud ランタイムツール。
ABAP 環境統合✅ 本番利用可能ABAP 開発ツールが開発スペースシナリオ/拡張機能として利用可能。BTP ABAP 環境と連携。
ローカル VS Code からのリモートアクセス✅ 本番利用可能SAP 公式公開の VS Code 拡張機能。エディターはローカル、開発スペースは SAP 側に保持。
無料サービスプラン⚠️ 制限付きで本番利用可能ユーザーあたり最大 2 開発スペース、同時実行は 1 つのみ。CPEA/PAYG のみ対応(サブスクリプションモデル非対応)。
開発スペースあたり 6 GB ストレージ⚠️ ハード制限リクエストによる増量不可。大規模モノレポや ML データセットには非対応。
BAS における Joule for Developers⚠️ コアシナリオで GAコード提案と CAP スキャフォールディングが GA。エージェントフローは 2026 年まで拡張中。
BAS からの ABAP オンプレミス開発❌ 標準パスではないEclipse の ADT が SAP の主要なオンプレミス ABAP IDE。BAS はクラウド ABAP に特化。

4) 要件チェックリスト

各領域には、BASがプロジェクトに参入する前にクリアすべき質問があります。要件段階で未回答の行がある場合、そのプロジェクトは設計段階に入る準備ができていません。

サブスクリプションとエンタイトルメント

BASサブスクリプションとロールコレクション設定のチェックリスト

チェックリスト項目重要である理由
BASサブスクリプションに選択したサブアカウントが、ターゲットサービスをホストしているサブアカウントと同じであることBASはサブアカウントレベルの宛先を使用するため、サブアカウント間の設定には追加のCloud Connectorと信頼設定が必要となります。
選択したアプリケーションプラン(standard-edition と free)をサブスクリプション前に文書化しておくことfreeプランはCPEA/PAYGに固定され、開発スペース2つ/実行中1つに制限されており、後からプランを切り替えると混乱が生じます。
各開発者に Business_Application_Studio_Developer ロールコレクションが割り当てられていることこのロールがないと、開発者はBAS初回オープン時にアクセス拒否ページに遭遇し、開発スペースを作成できません。
少なくとも1人のユーザーが Business_Application_Studio_Administrator ロールを保持していること管理者は他のユーザーの開発スペースを一覧表示・停止でき、ストレージの暴走から復旧できます。管理者がいない場合、サポートチケットが唯一の復旧手段となります。
トライアルアカウントの使用を本番作業から隔離することトライアルサブスクリプションは90日で期限切れとなります。トライアル開発スペースで実際のプロジェクトコードを実行すると、作業が失われるリスクがあります。

開発スペースの選択

開発スペースタイプとその拡張機能を選択するための判断基準

チェックリスト項目なぜ重要なのか
開発スペースのタイプが主要なシナリオ(CAP、Fiori、HANA Native、Mobile、Basic)と一致していること「柔軟性を保つ」ために「Basic」を選択すると、すべての開発者が個別にシナリオツールをインストールする必要が生じます。事前設定こそがBASを使用する主な理由です。
追加のSAP拡張機能(MTA、ABAP、Joule Studio、HANAツール)が事前に合意されていること作成時に組み込まれた拡張機能は安定しています。後からマーケットプレイス経由で追加することも可能ですが、すべてのSAPツールがそこに表示されるわけではありません。
開発者ごとの開発スペース数がプラン上限に対して予算化されていること無料プランではユーザーあたり最大2つの開発スペースに制限されています。複数プロジェクトを担当するコンサルタントは数週間でこの上限に達します。
ソース管理がGit上にあり、開発スペースのファイルシステム上にないこと開発スペースはエディターであり、リポジトリではありません。ストレージは6 GBに制限され、ライフサイクルは「アイドル時に停止」です。Git外のファイルは、開発スペースが削除されると失われます。
長時間実行されるビルドアーティファクトとnode_modulesが6 GBの制限内に収まっていること複数のnode_modulesツリーを持つCAPモノレポは6 GBを使い果たす可能性があります。定期的なクリーンアップまたはリポジトリ分割を計画してください。

ローカルIDEの共存

純ブラウザBAS、ローカルVS Code、VS CodeへのリモートBASの3列比較

チェックリスト項目重要性の理由
BAS、ローカルVS Code、Eclipse ADTのどのシナリオで実行するかを決定するツールの併用は問題ないが、開発者がスプリント中にSlackで議論し続けることのないよう、決定を明確にする必要がある。
Remote SAP Business Application Studio(VS Code拡張機能)を使用する場合、トレードオフを文書化するローカルVS Codeのキーバインドと拡張機能、SAP側のコンピューティングとツールを活用可能。ただし、どちらかが予告なく再構築されると動作しなくなるリスクがある。
オフラインやファイアウォール環境の開発者向けに、BAS以外のパス(CAP + Fioriツールを使用したローカルVS Code)を用意するBASは安定したブラウザアクセスを必要とするため、エアギャップ環境や出張シナリオでは、文書化されたフォールバック手段が必要。
オンプレミスABAP開発にはEclipse ADTを使用し、BASは使用しないBASはオンプレミスABAPのEclipse代替にはならない。そのシナリオでチームにBASを強制するのは誤った対応である。

セキュリティとガバナンス

チェックリスト項目重要性
Cloud ConnectorトンネルとBTP宛先は、BASを開発者に開放する前にセキュリティ部門によるレビューを受けるBASが宛先経由でS/4HANAを呼び出せるようになると、IDEは特権境界となります。そのように扱ってください。
シークレットは開発スペースのファイルに保存しない開発スペースは分離されていますが、ソースファイル内のシークレットはGitを通じて漏洩します。BTPの資格情報ストアまたは環境変数を使用してください。
非アクティブ/停止ポリシーを開発者に周知する開発スペースはアイドル状態になると自動停止し、未コミットのインメモリ状態は失われます。デフォルトの動作は正しいですが、新しいユーザーを驚かせることがあります。
BASを実行する各サブアカウントに監査責任者を指名する管理者ロールとサブアカウントレベルの監査ログを組み合わせることで全体像が把握できます。責任者がいないと、「誰がどの開発スペースを起動したか」が不明のままになります。

5) 意思決定基準

最初に問うべき3つの質問

プロジェクトでBASを採用する前に問うべき3つの質問

Q1. BASを導入することで解消される、測定可能な非効率性とは何ですか?

もし答えが「開発者がCAPをローカルでセットアップするのに2日かかる」や「Fiori開発者ごとにツールチェーンが微妙に異なる」なら、BASが適切な介入策です — 事前設定こそBASの強みです。もし答えが「クラウドはモダンだからクラウドIDEが欲しい」なら、立ち止まってください。ユーザーごとのサブスクリプション費用に加え、デバイススペースあたり6GBの制約によるコストが、ソフト面でのメリットを上回ります。

Q2. コードの真実の情報源(Source of Truth)はどこにありますか?

答えはGitでなければならず、BASからアクセス可能であること(通常はBTP側のGit、または外部プロバイダー(GitHub / GitLab / Azure DevOps))。答えが「開発スペース内」の場合は、設計を却下すること。開発スペースはポリシーにより一時的なものであり、開発スペースをリポジトリとして扱うプロジェクトは作業を失うことになる。

Q3. BAS サブスクリプションとロール割り当ての所有者は誰ですか?

BASのサブスクリプション、ロールコレクション、および開発スペースのガバナンスには、指名された所有者(通常はBTPプラットフォームチームまたはSAPアーキテクト)が必要です。これがないと、「今日BASを開けない」という未所有のチケットが発生し、フリープランの制限によってサイレント障害が発生し、誰も数日間診断できなくなります。

プロジェクトコンテキストによる機能選択

プロジェクトのコンテキスト推奨される開発スペース / パス
CAP + Fiori フルスタック、単一チームFull-Stack Cloud Application 開発スペース
Fiori のみのプロジェクト(既存のODataサービスのUI)SAP Fiori 開発スペース
HANA Cloud 計算ビュー、HDI開発SAP HANA Native Application 開発スペース
BTP ABAP環境(“Steampunk”)開発ABAP Environment 拡張機能を有効にしたBAS開発スペース
SAP Mobile Development Kit プロジェクトSAP Mobile Application 開発スペース
BTPコードと併用するカスタムツールチェーンや非SAPコードローカルVS Code(オプションでRemote BAS拡張機能を使用)
エアギャップ環境または厳格なオフライン環境ローカルVS Code;BASは対象外として文書化
明確な課題がまだ特定されていない停止。Q1に戻る。

ライセンスとコスト

BAS スタンダードエディション、フリープラン、トライアルの比較 — ライセンスモデルと制限

プランライセンスモデル確認すべき重要事項
standard-editionBTP上のサブスクリプションモデル(サブアカウントレベルのエンタイトルメント)同時開発者数は何人か、またコストはユーザー単位のラインアイテムとして計上されるのか、それともBTPEAに吸収されるのか。
free(アプリケーション)CPEAまたは従量課金制でのみ利用可能2つの開発スペースと1つの実行制限が、チームの実際の運用と互換性があるか。
トライアルBTPトライアルアカウントでデフォルトでサブスクライブ(90日間有効)誰かがトライアル開発スペースを本番環境として使用していないか。該当する場合は、有効期限前にエスカレーションすること。

無料プランは、BTPサブスクリプションモデルでは無料ではありません。サブスクリプション契約を結んでいるお客様が「無料のBASオプション」を期待しても、商用モデルを変更しない限り、そのようなオプションは見つかりません。

6) よくある障害

BAS導入時によくある6つの要件段階の失敗

障害 1: 選択肢を広げるために「ベーシック」を選ぶ

チームは柔軟性を求めてBasicを選択し、最初のスプリントでCDS、Fiori、MTA拡張機能を手動でインストールすることになります。BASに費用を支払う理由はプリコンフィギュレーションにあります。シナリオがCAPまたはFioriの場合は、作成時にそのタイプを選択してください。真にマルチシナリオである場合は、複数のタイプ指定済み開発スペースを作成してください。

障害 2: 開発スペースのファイルシステムをリポジトリとして扱う

開発スペースは、6 GBのボリュームを備えたエディタであり、「アイドル時に停止」するライフサイクルを持ちます。Git外のファイルは、開発スペースが削除またはリセットされると消えるため、すべてのプロジェクトは初日からGitにコミットし、開発スペースの内容はそのGitから再現可能なものとして扱う必要があります。

障害 3: 無料プランに登録した後、制限に静かに達する

無料プランでは、1ユーザーあたり最大2つの開発スペース(うち1つはRUNNING状態)に制限されます。複数プロジェクトを担当するコンサルタントは、日常的に3つ以上の開発スペースを必要としますが、制限を超えた場合のエラーは「起動できません」と静かに表示されるだけです。サブスクリプション後に例外として対応するのではなく、事前に適切なティアを計画してください。

失敗 4:「構築できる」ことと「宛先が設定されている」ことを混同する

BAS を使用すると、S/4HANA を呼び出す CAP サービスをスキャフォールディングできますが、BTP 宛先、Cloud Connector トンネル、または OAuth クライアントは構成されません。初日のロールアウト障害は通常、BAS 自体ではなく、ここで発生します。チームに BAS を開放する前に、宛先の設定とセキュリティレビューを事前に実施してください。

障害5:ローカルのVS Codeが既に動作している環境でのBASの強制導入

ローカル環境のVS Code、CDS Language Support、mbtで良好に成果を上げているチームに対し、「BASを使用せよ」という命令を満たすためにBASを強制することは、相殺するメリットのない生産性の低下です。Remote BAS拡張機能は、妥当な妥協案と言えます。

障害 6: Developer ロールコレクションの割り当て忘れ

サブスクライブされたBASで、Business_Application_Studio_Developerロールコレクションが割り当てられていないため、どの開発者も使用できないというのは、よくある初日のインシデントです。ロールの割り当てはサブスクリプションとは別のステップであり、両方ともオンボーディングのランブックに含める必要があります。

FAQ

Q: オンプレミスのSAP顧客は引き続きBASを使用できますか?

はい — BTP上でランタイムが動作するシナリオ(CAP、Fiori、HANA Cloud、BTP ABAP Environment)や、SAP Cloud Connectorを経由してターゲットに到達するシナリオであれば可能です。BASで記述されたコードのターゲットは、S/4HANAがどこで動作しているかとは無関係です。オンプレミスのABAP自体は引き続きEclipse ADTで扱います。

Q: ライセンスはどのように機能しますか?BASは独立した請求対象ですか、それともBTPクレジットの一部ですか?

商用モデルによって異なります。BTPEAまたは従量課金制(Pay-As-You-Go)の場合、BASはアプリケーションプランを通じてクレジットプールから消費されます。サブスクリプションモデルの場合、BASは独自のラインアイテムを持つサブスクライブ済みアプリケーションとなります。無料プランはサブスクリプションモデル外でのみ利用可能です。

Q: プロジェクトからBASをスコープ外とするのはどのような場合ですか?

Q1(測定可能な非効率性)が数値を伴わずに「クラウドIDEが欲しい」と返答した場合は、スコープから除外する。チームがローカルのVS Codeで良好に成果を上げており、BASを支持する唯一の根拠が「他の全員が使っているから」である場合は、スコープから除外する。ワークフローが本質的にオフラインである場合は、スコープから除外する。

Q: BAS要件を適切に文書化するにはどうすればよいですか?

プロジェクト憲章では、開発者コホートごとに1行で記述します。
コホートXは、プランZ上の開発スペースタイプYを使用し、ロールRを持ち、リポジトリGでソース管理され、N個の同時開発スペースに対応するサイズです。
6つのフィールドを1行にまとめます。空のフィールドはギャップとなります。

Q: Joule for Developers はどのように位置づけられますか?

Joule のコード提案と CAP スキャフォールディングは、BAS のコアシナリオにおいて GA となっています。Joule は、既に健全なプラクティスを加速するためのツールとして扱ってください。CI/CD、テスト、ソース管理の欠如を補うものではありません。導入は開発者ごとのオプトインとなります。

概要

ハブ&スポークの概要:BASを中心に、シナリオ、ランタイム、意思決定基準を接続

SAP Business Application Studio は、SAPが運用するKubernetes環境上でユーザー単位の開発スペースとして提供されるマネージド型のCode-OSS IDEです。コードのターゲットとなるBTPランタイムからは分離されており、シナリオタイプの開発スペース(Full-Stack Cloud、Fiori、HANA Native、Mobile、Basic)とオプションのSAP拡張機能を通じて利用できます。

2026年には、BASはSAPが開発するすべてのクラウドシナリオにおいて本番環境に対応します。適用ルールは明確です:開発スペースあたり6 GB、サブスクリプションモデル外でのみ無料プラン、開発者がIDEを開く前に割り当てる必要があるロール。

コンサルタントの役割は、「すべてにBAS」や「すべてにVS Code」を拒否することです。チームがSAPウィザード、BTP宛先、短いセットアップパスを必要とする場合はBASを選択し、ワークフローにオフライン操作、カスタムツールチェーン、またはBTPコードと並行する非SAPコードが必要な場合は、ローカルのVS Code(またはリモートBAS)を選択します。B03~B07では、BASが連携するランタイムについて詳しく掘り下げ、B08ではクロスファミリーの判断パターンに収束します。

次に読むべきもの

L1. 全体像L2-B. アプリケーション開発
BTP-001: SAP BTPとはBTP-B01: アプリケーション開発の概要と機能マップ
BTP-002: SAP BTPアーキテクチャBTP-B02: Business Application Studio: アーキテクチャと使用方法(本記事)
BTP-003: SAP BTP機能マップBTP-B03: CAPとBuild Code: アーキテクチャと使用方法
BTP-004: SAP BTPデプロイメントモデルBTP-B04: ABAP環境: アーキテクチャと使用方法
BTP-005: SAP BTPライセンスモデルBTP-B05: Build Apps: アーキテクチャと使用方法
BTP-006: クリーンコア戦略BTP-B06: Build Process Automation: アーキテクチャと使用方法
BTP-B07: Build Work Zone: アーキテクチャと使用方法
BTP-B08: ユースケースと意思決定パターン