Build Apps: アーキテクチャと使用方法

- SAP Build Appsは、SAP Buildファミリーに属するノーコード/ローコードアプリケーションビルダーです。ビジュアルUIキャンバス、数式エディタ、フローファンクションロジックに加え、ガバナンスが効いたサーバーサイドロジック向けのVisual Cloud Functionsを備えています。
- オンラインCRUD、フィールドデータ入力、サイドバイサイド拡張UIには本番利用可能ですが、オフライン同期、組み込みFiori拡張、複雑なクライアントサイドパフォーマンス処理は、プロコード(MDK、UI5、Build Code)の領域です。
- コンサルタントにとって最も有用な考え方の転換は、「Build Appsでこれはできるか?」と問うのをやめ、「Build Appsとプロコードの境界線はどこか、それぞれの担当は誰か?」と問うことです。
本記事の位置づけ
| ID | カテゴリ | コンポーネント | スコープ |
|---|---|---|---|
| BTP-B01 | アプリケーション開発 | 概要 | 機能マップ |
| BTP-B02 | アプリケーション開発 | Business Application Studio | アーキテクチャと利用方法 |
| BTP-B03 | アプリケーション開発 | CAP と Build Code | アーキテクチャと利用方法 |
| BTP-B04 | アプリケーション開発 | ABAP 環境 | アーキテクチャと利用方法 |
| BTP-B05 | アプリケーション開発 | Build Apps | アーキテクチャと利用方法(本記事) |
| BTP-B06 | アプリケーション開発 | Build Process Automation | アーキテクチャと利用方法 |
| BTP-B07 | アプリケーション開発 | Build Work Zone | アーキテクチャと利用方法 |
| BTP-B08 | アプリケーション開発 | 意思決定パターン | ユースケースと意思決定パターン |
参考資料
| リソース | URL |
|---|---|
| SAP Build Apps とは | help.sap.com → |
| ベストプラクティス:SAP Build Apps への戦略的アプローチ | help.sap.com → |
| SAP Build Apps — ビジュアルクラウドファンクション | help.sap.com → |
| SAP Build プロダクトファミリー | sap.com → |
| SAP Build Apps — 機能 | sap.com → |
1) ローコードアプリビルダーの状況

Build Apps は単独で存在するわけではありません。重複しながらも異なるツール群からなるポートフォリオの一部です。コンサルタントがこれらを代替品として扱うと失敗します。そうではないのです。
| ツール | 機能 | 主な利用者 | |
|---|---|---|---|
| SAP Build Apps | Web/モバイルUI向けのビジュアルノーコード/ローコードアプリビルダー | シチズンデベロッパー + ビジネステクノロジスト | |
| SAP Build Code | サービス主体のバックエンド向けAI支援プロコードIDE(CAP/Java/JS) | プロコードデベロッパー | |
| SAP Mobile Development Kit (MDK) | オフライン同期対応のメタデータ駆動型ネイティブiOS/Android | モバイルデベロッパー | |
| SAP Fiori Elements | OData/CAP上のメタデータ駆動型Fiori UI — 社内SAP UX | S/4、BTP環境のUI5デベロッパー | |
| SAP Business Application Studio | クラウドIDE — CAP/UI5/Build Code作業のホスト | プロコードデベロッパー |
これらは代替品ではありません。
2) S/4HANA への接続方法

Build Apps は S/4HANA と直接通信しません。BTP を介して通信します。
+----------------------+ +------------------------+
| Build Apps client | HTTPS | BTP Destination |
| (PWA / iOS / And.) +-------->+ Service / Connectivity|
+----------+-----------+ +------------+-----------+
| |
| flow functions | OData / REST
| formula bindings | (with auth)
v v
+----------------------+ +------------------------+
| Visual Cloud | | S/4HANA Cloud / |
| Functions (BTP K8s) |<------->| S/4HANA Private / |
| (entities + funcs) | | SuccessFactors / etc. |
+----------------------+ +------------------------+VCFは、そうでなければクライアント側に漏れてしまうサーバーサイドロジック(変換、ルール評価、スケジュールタスク、広範なODataサービスに対する絞り込まれた読み取り専用エンドポイント)を配置する場所です。認証と資格情報管理はアプリ内ではなくBTP上に残ります。
重要ポイント: S/4との接続はBTPの宛先に存在し、Build Apps内にはありません。アプリを統合レイヤーとして扱うと、出荷するすべてのBuild Appでその統合を再構築することになります。
3) 成熟度マップ

| 機能 | 成熟度 | 備考 | |
|---|---|---|---|
| ビジュアルUIビルダー(Web PWA) | ✅ 本番利用可能 | 成熟しており、顧客向けポータルで使用実績あり | |
| ビジュアルUIビルダー(モバイル iOS/Android) | ✅ 本番利用可能 | ビルドサービスによりインストール可能なアプリを生成、開発サイクル用のプレビューアプリあり | |
| フォーミュラエディタ + フロー関数 | ✅ 本番利用可能 | コア / By-Me / インストール済みライブラリに対応。制限はロジックキャンバスの可読性であり、エンジン自体にはない | |
| ビジュアルクラウドファンクション(ローコードバックエンド) | ⚠️ 前提条件ありで利用可能 | ガバナンスが必要(エンティティの所有者、スキーマ変更のレビュー担当者を明確化) | |
| Build AppsにおけるJoule for Developers | 🔶 アーリーアダプター | 2026年第1四半期に拡張予定。AI提案はドラフトとして扱い、権威あるものと見なさないこと | |
| オフラインOData同期 | ❌ 非推奨 | ネイティブ非対応。代わりにMDKまたはBTP SDKを使用すること | |
| Fiori起動画面内の埋め込み拡張 | ❌ 非推奨 | Fiori Elements / UI5 / Build Codeを使用すること |
4) 要件チェックリスト

これは、要件ドキュメントで通常見落とされる部分です。各テーブルは1つの機能領域をカバーし、行は実装手順ではなく要件段階の項目です。
UIとフロントエンドの要件
| チェックリスト項目 | なぜ重要なのか |
|---|---|
| すべてのページと、各ページを閲覧するロールを棚卸しする | ページコレクションの構造と、ページごとのロジックキャンバスの範囲を決定するため |
| ブランディングの制約(色、ロゴ、アクセシビリティレベル)を把握する | Build Appsのテーマ設定には制限があり、マーケットプレイスコンポーネントからの逸脱は工数増加につながるため |
| 必要なカスタムUI動作(ジェスチャー、アニメーション、チャート)をリストアップする | これらは「Build Appsでは実現できない」という想定外の事態として最もよく発生するため |
| ペルソナごとにPWAとネイティブインストールのどちらを採用するか決定する | PWAはほとんどのオフィスユーザーをカバーするが、フィールド/スキャナーワークフローでは通常ネイティブビルドが必要となるため |
| パフォーマンス目標(初回描画時間、リストサイズ、検索レイテンシ)を定義する | 目標が初回描画約2秒よりも厳しい場合、早期にプロコードの検討を提起する必要があるため |
データ統合の要件
| チェックリスト項目 | 重要性 |
|---|---|
| アプリが読み取り/書き込みを行うすべてのバックエンドシステムをリストアップする | システムごとに1つのBTP宛先が必要であり、宛先ごとに一連の所有権に関する質問が発生する |
| 各エンドポイントのOData v2、v4、RESTのいずれかを確認する | Build Appsのコネクタはそれぞれ異なり、同じアプリ内でv2とv4を混在させることは可能だが、ガバナンスは異なる |
| 一括操作や大量の結果セットを特定する | ビジュアルデータバインディングは大量ページ向けに最適化されておらず、ページネーションが必須である |
| 結合/集計の実行場所を決定する | ソース側またはVCFでのサーバーサイド処理を推奨。クライアントサイドでの結合はスケーラビリティに欠ける |
| エンドポイントごとの認証モードを確認する | OAuth2 / SAML / APIキー — Build AppsではなくBTP宛先で管理する |
ロジックと計算要件
| チェックリスト項目 | なぜ重要なのか |
|---|---|
| すべてのビジネスルールとその機密性をカタログ化する | 機密性の高いルールはVCFに属し、クライアントから見えるフローファンクションには属さない |
| ルール変更の頻度を定義する | 非開発者による頻繁な変更こそ、Build Appsの得意分野である |
| 複数ステップにわたるトランザクションロジックを特定する | システム間でアトミックな書き込みが必要な場合、オーケストレーションをバックエンド(CAP / Build Code)にプッシュする |
| スケジュール実行が必要なロジックを記録する | Build Appsクライアントはスケジュール実行ができないため、VCFまたはBuild Process Automationを使用する |
| フローキャンバスの可読性予算を設定する | 実用的な経験則として、1ページあたり約30ノードが限界。それを超える場合はリファクタリングするか、プロコードに移行する |
モバイル配送要件
| チェックリスト項目 | 重要性 |
|---|---|
| オフライン動作の期待値を確認する | ネイティブオフライン同期はBuild Appsの領域外 — フォールバックとしてMDK / BTP SDKをフラグ付け |
| 必要なデバイス機能(カメラ、GPS、スキャナー、プッシュ通知)をリスト化する | マーケットプレイスのフロー機能で一般的なものはカバー可能。特殊な周辺機器はプロコードが必要 |
| アプリストアの配信経路を確認する | エンタープライズ配信(MDM)と公開ストアでビルドサービスの設定が変わる |
| デバイスフリートの制約を把握する | iOS/Androidの最低バージョン、ロックダウンされたデバイス、MDMポリシー |
| ネットワークの前提条件を定義する | 常時オンライン、断続的、オフラインのいずれか — この1行の回答でツール選択全体が変わる |
ガバナンス、ライセンス、および運用要件

| チェックリスト項目 | 重要性 |
|---|---|
| 新しいアプリバージョンを公開できるユーザーを特定する | カスタム開発者ガバナンスは、本番稼働後に最も失敗しやすい項目です |
| ライセンス階層(サブスクリプション vs BTPEA vs PayGo)を確認する | 使用量に応じたコストのスケーリング方法を決定します |
| Visual Cloud Functionsのスキーマの所有者を決定する | VCFエンティティはデータベースと同様に扱い、スキーマレビューは必須です |
| 監視とアラートを定義する | Build AppsはBTPレベルの可観測性を代替しません。ログはBTP Application Loggingにルーティングします |
| アプリ成果物のバージョン管理を計画する | Build Appsの組み込みバージョン管理は便利ですが、監査対応の履歴管理にはGitへのエクスポートが推奨パターンです |
5) 意思決定基準
最初に問うべき3つの質問

Q1. Build Apps によって除去可能な、数値で示せる非効率性はありますか?
「今日、この作業は1ケースあたりN分かかり、1日あたりMケースある」と表現できないのであれば、それはまだBuild Appsの要件ではありません。それは「願望」です。構築の話から離れ、ディスカバリーに戻ってください。Build Appsのスピード面での優位性は、圧縮すべき具体的なものがある場合にのみ発揮されます。
Q2. データはどこに保存され、誰が読み取りや書き込みを許可されているのか?
Build Apps は BTP の宛先を通じて S/4、SuccessFactors、サードパーティ API、または VCF に接続します。UI のスコープを定義する前に、データの保存場所、認証パス、および各側でスキーマを変更できるユーザーのルールを書き留めてください。多くの「Build Apps プロジェクト」は、アプリが依存する OData サービスの所有者が決まっていないために、3 週目で停滞します。
Q3. 内部スポンサーは誰で、ランタイム費用は誰が負担しますか?
Build Apps は、BTPEA/PayGo では従量課金、サブスクリプションでは定額制です。スポンサーは、ライセンスコストとランタイムコスト(Visual Cloud Functions、モバイルビルド時間、Joule プロモーション期間終了後の AI 使用量)の両方を理解する必要があります。スポンサーが「月間のランタイム予算はいくらですか?」と答えられない場合、プロジェクトはまだ規模が確定していません。
プロジェクトコンテキストの選択

| プロジェクトコンテキスト | 推奨される開始機能 |
|---|---|
| 既存のODataサービスに対する内部CRUD | Build Apps単独、Web PWA |
| 現場/モバイルでのデータ取得、写真アップロード、バーコードスキャン | Build Apps + ネイティブビルド、オンライン専用 |
| カスタムロジックを伴うS/4のサイドバイサイド拡張 | Build Apps + Visual Cloud Functions |
| S/4 / Sales Cloud V2 起動画面への組み込み拡張 | 切り替え先 Fiori Elements または Build Code (UI5) |
| オフラインファーストのモバイル現場作業アプリ | 切り替え先 SAP Mobile Development Kit (MDK) |
| 大量のトランザクションロジック、高同時実行性 | 切り替え先 CAP + UI5 (プロコード) |
| AI駆動のカスタムUXまたはエージェント統合 | Build Apps + Joule Studioエージェント (アーリーアダプター) |
| 明確な課題がまだ特定されていない | 中止。Q1に戻る。 |
ライセンスとコスト

| 機能 | ライセンスモデル | 確認すべき重要事項 | |
|---|---|---|---|
| SAP Build(統合版) | サブスクリプション、BTPEA、またはPayGo | 顧客のSAP契約に既存のモデルはどれか?新しいSKUを追加する前に既存モデルを再利用する | |
| Visual Cloud Functions | SAP Buildの下で消費、ランタイムは従量課金 | アプリごとの月間リクエスト量はどの程度見込まれるか? | |
| Build Apps モバイルビルドサービス | 含まれる | リリース頻度はどの程度か?ビルド時間は無制限ではない | |
| Joule for Developers(Build Apps内) | 2026年第3四半期まで無料(プロモーション) | 2026年第4四半期の価格想定を文書化する — 無期限の無料利用を約束しない | |
| BTP Destination Service / Connectivity | 標準BTP | 既にBTP顧客の対象範囲内 — 想定外の項目になるべきではない |
6) よくある障害

障害1:「ノーコードだから誰でも構築できる」
これは、技術的な問題よりも多くのBuild Appsプロジェクトを頓挫させます。シチズンデベロッパーは確かに実際の価値を提供できますが、アプリが本番データ(宛先、認証、ガバナンス)に触れた瞬間に、プロフェッショナル側の対応が必要になります。最初のインシデントが発生してからではなく、初日からフュージョンチームを計画してください。
障害 2: アプリを統合レイヤーとして扱う
よくあるアンチパターンとして、Build Appを複数のバックエンドに直接接続し、フロー関数でデータを結合することがあります。これは最初は高速ですが、3か月後にはメンテナンスが困難になります。統合処理はBTPの宛先とVisual Cloud Functionsに押し出し、アプリはプレゼンテーション層として扱ってください。
障害 3: オフライン会話の欠落
ステークホルダーは「モバイル対応」と言い、オフラインを前提とします。Build AppsはオフラインのOData同期をサポートしていません。要件定義の段階でオフラインに関する議論が行われないと、UAT(ユーザー受入テスト)で問題が顕在化し、再構築はBuild AppsではなくMDKで行うことになります。初日からオフラインの質問をし、その回答を文書化してください。
障害 4: Visual Cloud Functions スキーマに対するガバナンスの欠如
VCFエンティティはデータベースのように動作します。シチズンデベロッパーは気軽にフィールドを追加したりプロパティをリネームしたりしますが、下流のコンシューマーは静かに壊れていきます。最初のリグレッションが発生した後ではなく、プロジェクトキックオフ時にスキーマ変更プロセスを定義してください。
失敗 5: ライセンスに関する会話の範囲を過小評価すること
2025年のパッケージングによりBuild Appsはより安価でシンプルになりましたが、ランタイムのライン項目(VCF実行、モバイルビルド、プロモーション期間後のJoule)は依然として顧客を驚かせています。要件ドキュメント内の各従量課金アイテムをリストアップし、それぞれに仮のコストを設定してください。
障害6: 設計のギャップをJouleが埋めると仮定すること
Joule for Developersは、ボイラープレート、数式の説明、スターターコンポーネントに役立ちます。情報アーキテクトやUXレビュアーの代わりにはなりません。AIの提案はドラフトとして扱い、人間がページコレクション、データモデル、ナビゲーションをレビューしてください。
障害 7: Fiori に埋め込むための Build Apps の選択
Build Apps のスタンドアロン利用は優れています。しかし、Build Apps を Fiori ランチパッドに埋め込んで UI5 のように使うと、一貫して使い勝手が悪くなります。テーマがずれたり、ナビゲーションモデルが競合したり、アクセシビリティの認証が難しくなったりします。埋め込み型の拡張には、Fiori Elements または UI5 / Build Code をデフォルトとして使用してください。
FAQ
Q: SAP Build Apps はオンプレミスの S/4HANA でも動作しますか、それとも S/4HANA Cloud のみですか?
両方です。オンプレミスシステムへの接続は、BTP Destination ServiceとCloud Connectorを介して行われます。Build Appの観点からは呼び出しは同一ですが、顧客の観点からは前提条件が異なります — Cloud Connectorのデプロイ、オンプレミスODataサービスの有効化、およびネットワークルールです。
Q: SAP Build Apps のライセンスは2026年にどのように提供されますか?
2025年、SAPはBuildファミリーを統合し、統一されたSAP Buildライセンスとしました。お客様はサブスクリプション、BTPEAクラウドクレジット、またはPayGoを通じてこれを利用できます。Build Apps、Build Code、Build Process Automation、Build Work Zoneは統一された権利を共有し、ランタイム使用量(Visual Cloud Functions、モバイルビルド時間、プロモーション期間を超えたJoule)は従量課金されます。
Q: プロジェクトはいつBuild Appsの対象範囲を縮小し、プロコードに切り替えるべきですか?
具体的なシグナル:オフライン同期が必要、パフォーマンス予算が約2秒のファーストペイントより厳しい、アプリをFiori内に埋め込む必要がある、カスタムUI動作がマーケットプレイスを超える、ロジックキャンバスが1ページあたり約30ノードを超える、または監査/ソース管理の要件に完全なGitワークフローが必要。これらのうち1つでも該当すれば検討が必要となり、2つ以上該当すれば通常は判断が確定する。
Q: プロジェクトを超えて活用できるように、Build Appsの要件をどのように文書化すればよいですか?
各ページについて:ペルソナ、データソース(宛先名を含む)、ルール(ルール所有者を含む)、障害モード、および受入基準。各Visual Cloud Functionについて:入力スキーマ、出力スキーマ、副作用、およびルール所有者。要件ドキュメントは、別のチームが仕様からアプリをゼロから再構築できるようにする必要があります。このテストにより、ほとんどの「暗黙知」の失敗が明らかになります。
Q: Build Apps は内部ユーザー向けの Fiori を置き換えることができますか?
場合によっては — スタンドアロンで範囲が限定されたアプリ向けです。S/4 ローンチパッド内の組み込み拡張機能や、非常に大規模なリスト/編集操作には適していません。正直な答えは、「新しい限定アプリには Build Apps を、S/4 組み込み UX のロングテールには Fiori Elements / UI5 を」です。
Q: Build Apps にオフラインサポートは追加されますか?
SAPは、Build AppsにおけるオフラインOData同期について、公にコミットしていません。今後も提供されないものとして計画してください。オフライン対応が必須要件である場合、現時点ではMDKがサポートされているパスです。
Q: Joule for Developers は、Build Apps の日常業務において具体的にどのように役立つのでしょうか?
Q1/2026では、コード/数式の生成、既存のフロー機能の説明、およびスターターテンプレートの提案をカバーします。これは、フュージョンチームのプロフェッショナル側にとって生産性向上レイヤーとして最も有用です。シチズンデベロッパーも恩恵を受けますが、安全性のレビューには依然として人間が必要です。
概要

SAP Build Appsは、BTP接続システムと連携するオンラインアプリには成熟しており、オフラインモバイルや組み込みFiori拡張には弱く、AI駆動型UXはアーリーアダプター段階です。これをフュージョンチームのフロントエンドとして扱い、他の本番システムと同様にガバナンスを適用してください。サーバーサイドロジックにはVisual Cloud Functionsを活用してください。「このアプリはどの数値を動かすのか?」という問いに答えられないプロジェクトからは撤退してください。Build Appsのスピードが発揮されるのは、圧縮すべき具体的なものがある場合のみです。ローコードとプロコードの境界線は技術的な議論ではなく、要件定義時に行うスコープ決定です。
次に読むべきもの
| ID | タイトル |
|---|---|
| BTP-B01: アプリケーション開発の概要と機能マップ | 本記事が該当するマップ |
| BTP-B02: Business Application Studio:アーキテクチャと使用方法 | CAP / UI5 / Build Code作業向けIDEホスト |
| BTP-B03: CAPとBuild Code:アーキテクチャと使用方法 | Build Appsと最も頻繁に組み合わせられるプロコードバックエンド |
| BTP-B04: ABAP環境:アーキテクチャと使用方法 | 拡張対象がJava/NodeではなくABAPの場合 |
| BTP-B05: Build Apps:アーキテクチャと使用方法 | (本記事) |
| BTP-B06: Build Process Automation:アーキテクチャと使用方法 | Build Appsと連携するワークフロー+RPA |
| BTP-B07: Build Work Zone:アーキテクチャと使用方法 | Build Appsの画面をエンドユーザー向けに集約する場所 |
| BTP-B08: ユースケースと意思決定パターン | BTP上のアプリケーション開発に関する分野横断的な意思決定ガイド |