この記事のポイント
SAP連携のAPI化を進めるなら、ODataが第一選択肢。RFC・BAPIは既存資産がある場合の補完手段
S/4HANA環境の新規開発はRAP+OData V4が第一候補。Gateway(SEGW)はECC環境の保守用、BTP上の非ABAP開発ならCAPも有力
Joule AIによるRAPサービス自動生成が実用段階に入り、初期構築の工数短縮が期待できる(追加ライセンス・制約あり)
S/4HANA移行を控えたECC環境では、既存BAPIのOData化から始めるのが最もリスクの低い導入パス

Microsoft AIパートナー、LinkX Japan代表。東京工業大学大学院で技術経営修士取得、研究領域:自然言語処理、金融工学。NHK放送技術研究所でAI、ブロックチェーン研究に従事。学会発表、国際ジャーナル投稿、経営情報学会全国研究発表大会にて優秀賞受賞。シンガポールでのIT、Web3事業の創業と経営を経て、LinkX Japan株式会社を創業。
SAP OData(Open Data Protocol)は、SAPシステムのデータをRESTful APIとして外部に公開するための標準プロトコルです。
RFC・BAPIに代わるWeb標準の連携手段として、Fioriアプリ・モバイルアプリ・外部システムとの接続で事実上の第一選択肢になっています。
本記事では、ODataの基本概念からREST APIとの違い、Gateway・RAP・CAPの実装方式比較、RFC/BAPI/IDocとの使い分け、OData V2とV4の差分、そして2026年最新動向(Joule AI支援・VS Code対応)まで、SAP ODataを実務で使いこなすための情報を体系的に解説します。
SAP ODataとは
SAP OData(オーデータ)は、SAPシステム内のデータをRESTful APIとして外部に公開するためのオープンな標準プロトコルです。
OData自体はMicrosoftが中心となって策定したWeb標準規格であり、SAPはこれを採用することで、HTTPベースで誰でも扱いやすいAPIとしてSAPデータを提供できるようにしました。
従来、SAPと外部システムを連携する際には、RFCやBAPI、IDocといったSAP固有の技術が必要でしたが、ODataを使うことで、一般的なWebアプリ開発者でも扱いやすい形式でSAPデータにアクセスできるようになります。

ODataの基本的な仕組み
ODataはMicrosoftが策定し、現在はOASISおよびISOで国際標準化されたオープンプロトコルです。RESTベースの設計に則り、メタデータ公開やクエリ文法など「REST APIのベストプラクティス」をURL規約・クエリ文法として標準化した点が特徴で、純粋なREST APIとの違いは「規約の有無」にあります(詳しくは後述の「ODataとREST APIの違い」で解説します)。
ODataの主な特徴は次のとおりです。
-
RESTful API
HTTP(GET、POST、PUT、DELETEなど)を使ってデータの取得・作成・更新・削除(CRUD)を行います。
-
標準化されたメタデータ
データ構造やエンティティの関係性を、$metadataというエンドポイントで機械可読な形式(EDMXなど)で公開します。
-
クエリオプションの標準化
orderby(ソート)、filter(絞り込み)、 expand(関連エンティティ取得)など、URL上で柔軟なデータ取得が可能です。top(件数制限)、
-
JSONまたはXML形式での応答
クライアント側のニーズに応じて、レスポンス形式を選択できます(最近はJSON形式が主流)。
SAP Gatewayの役割
SAPシステムでODataサービスを提供する際、中心的な役割を果たすのがSAP Gatewayです。
SAP Gatewayは以下の機能を持ち、SAPの内側と外側をつなぐゲートウェイとして機能します。
- SAP内部のデータモデル(テーブル、BAPIなど)をODataサービスとして公開するためのフレームワーク
- リクエストを受け付け、内部のABAPロジックと連携してレスポンスを返す
- 認証・権限チェック・キャッシュ・ロギングなど、API公開に必要な機能を統合的に提供
S/4HANA以降では、SAP Gatewayは標準機能として組み込まれており、ABAP開発者が比較的簡単にODataサービスを構築できる環境が整っています。SAP公式のGateway and OData Services解説でも、GatewayがSAP ODataの中核基盤として位置付けられています。
SAP ODataが重要視される背景
SAP ODataが注目される理由は、大きく次の3つです。
-
SAP Fioriアプリの標準インターフェース
SAP Fiori(SAP標準のモダンUI)は、バックエンドとのやり取りをOData経由で行うことが前提になっています。
-
外部システム・モバイルアプリとの連携容易性
Web標準技術を使うため、SAPに詳しくないフロントエンド開発者やモバイルエンジニアでも統合しやすい形式です。
-
API経済・クラウド時代のアーキテクチャ
SaaSやクラウドサービスとの連携が前提となる現代において、RESTful APIは事実上の標準であり、ODataはその中でも構造化されたデータを扱いやすいプロトコルです。
SAP ODataが使われる主な領域
SAP ODataは、SAPの中のデータを外に出す、外からSAPにデータを入れるという双方向のインターフェースとして、さまざまな場面で活用されています。
ここでは、代表的な利用シーンを解説します。
SAP Fioriアプリケーション
最も典型的な利用シーンが、SAP Fioriアプリとバックエンド(S/4HANAなど)のデータ連携です。
- Fioriアプリ(UI5ベースのWebアプリ)がブラウザ上で動作
- ユーザーの操作に応じて、OData APIをコールし、SAPデータを取得・更新
- レスポンスをJSON形式で受け取り、画面に表示
Fiori elementsや多くの標準SAP FioriアプリはOData前提で設計されているため、これらのアプリを稼働させるにはODataサービスが必須です。一方、SAPUI5のフリースタイル開発ではJSONModelなど他のデータソースも利用可能ですが、実務ではODataが圧倒的に主流です。
外部システムとのリアルタイム連携
次に多いのが、SAPと他システム(CRM、Webサイト、SaaSなど)との連携です。
- ECサイトから在庫データをリアルタイムで照会
- 外部の営業支援ツールからSAPの受注データを登録
- BIツールがSAPの会計データをOData経由で取得し、ダッシュボード表示
従来はRFCやファイル連携で実装していたケースでも、リアルタイム性・開発の容易さの観点からODataが選ばれることが増えています。
モバイルアプリとの連携
SAP Mobile Servicesや独自開発のモバイルアプリでも、ODataは標準的なインターフェースです。
- 倉庫作業員がタブレットで在庫照会・出荷登録
- 営業担当者がスマホからSAP FIの顧客情報・受注状況をチェック
- フィールドサービス担当者が現場で作業実績を登録
モバイルアプリは通信帯域や通信の安定性に制約があるため、軽量で効率的なデータ取得が可能なODataのクエリ機能(
SAP BTP上のカスタムアプリケーション
SAP BTP(Business Technology Platform)上で独自アプリを構築する際にも、ODataが中心的な役割を果たします。

- BTP上のNode.js/Javaアプリから、S/4HANAのODataサービスを呼び出し
- RAP(RESTful ABAP Programming Model)でODataサービスを実装し、BTP側から利用
- SAP Build AppsなどのローコードツールがOData経由でSAPデータにアクセス
S/4HANAのコアには触れず、BTP上で拡張機能を作るというクリーンコアのアーキテクチャでは、ODataがコアとBTPの境界を橋渡しする重要な技術になります。
データ分析・BIツールとの統合
最後に、BIツールや分析基盤からSAPデータを取得する用途でも利用されます。
- Power BIやTableauがODataコネクタ経由でSAPデータを取得
- SAP BWやクラウドデータウェアハウス(Snowflake、BigQueryなど)へのデータ連携
- カスタムダッシュボードアプリがOData経由でリアルタイムデータを表示
ODataは標準化されたプロトコルなので、SAP専用のコネクタを用意しなくても、汎用的なOData対応ツールで接続できるメリットがあります。

このように、SAP ODataはSAPの中だけで完結するのではなく、外部とSAPをつなぐ標準的なインターフェースとして幅広い場面で活用されています。
SAP ODataの主な機能と技術的特徴
SAP ODataは、単なるデータ取得APIではなく、構造化されたデータ操作を標準化されたルールで実行できるプロトコルです。
ここでは、実務でよく使われる機能と技術的な特徴を解説します。
CRUD操作
ODataの基本は、HTTPメソッドを使った標準的なCRUD操作です。以下の表に各操作の対応を整理しました。
| 操作 | HTTPメソッド | 用途例 |
|---|---|---|
| Create | POST | 新規受注伝票の登録、顧客マスタ追加 |
| Read | GET | 在庫一覧取得、売上データ照会 |
| Update | PUT / PATCH | 受注ステータス更新、顧客情報修正 |
| Delete | DELETE | 一時データ削除、テスト伝票削除 |
SAPのODataサービスでは、内部的にBAPIや標準テーブル更新ロジックと連携しており、業務ロジックやバリデーションを通過した形でデータ操作が行われます。
クエリオプションによる柔軟なデータ取得
ODataの強力な機能が、URLパラメータで柔軟にデータ取得条件を指定できる点です。以下の表に代表的なクエリオプションを整理しました。
| クエリオプション | 用途 | 例 |
|---|---|---|
| $filter | 条件による絞り込み | ?$filter=Status eq 'Open' |
| $select | 取得項目の限定 | ?$select=OrderID,CustomerName |
| $orderby | ソート順の指定 | ?$orderby=OrderDate desc |
| $top / $skip | ページング(上位N件 / N件スキップ) | ? |
| $expand | 関連エンティティの同時取得 | ?$expand=Items(受注ヘッダ+明細を同時取得) |
| $count | 件数取得 | ?$count=true |
こうしたクエリオプションを組み合わせることで、クライアント側が必要なデータだけを効率的に取得でき、ネットワーク負荷・処理時間の両面で最適化が可能になります。
メタデータの標準化
ODataサービスは、データ構造を機械可読な形式で公開します。$metadataエンドポイントにアクセスすると、エンティティ(テーブル相当)、プロパティ(項目)、関連(リレーション)がXML形式(EDMX)で返却されます。
メタデータが公開されていることで、以下のようなメリットがあります。
- 開発ツール(UI5、Postmanなど)が自動的にデータ構造を認識
- コード生成・型チェック・自動補完などの支援が可能
- ドキュメントを別途作成しなくても、サービスの仕様が明確
API開発の生産性と保守性を大きく向上させる仕組みです。
バッチリクエスト
複数のOData操作を一度のHTTPリクエストにまとめるバッチリクエストも可能です。
- 複数の受注伝票を一括登録
- 異なるエンティティのデータを一度に取得
- トランザクション的な一貫性を保ちながら更新
バッチリクエストを活用することで、ネットワークのラウンドトリップを削減し、処理効率を向上させることができます。
認証・権限チェック
SAP ODataサービスは、SAP標準の認証・権限チェック機構と統合されています。
- 基本認証、OAuth 2.0、SAML認証など複数の認証方式に対応
- SAP内部の権限オブジェクト(Authorizationチェック)と連携
- 特定のユーザー・ロールに応じたデータのフィルタリング(例:自部門のデータのみ閲覧可能)
外部公開するAPIだからこそ、セキュリティ設計が標準で組み込まれている点は重要なポイントです。
エラーハンドリングとステータスコード
ODataでは、HTTPステータスコードを使った標準的なエラー表現が行われます。以下の表に主なステータスコードの意味をまとめました。
| ステータスコード | 意味 | 例 |
|---|---|---|
| 200 OK | 成功 | データ取得成功 |
| 201 Created | リソース作成成功 | 受注伝票作成完了 |
| 400 Bad Request | リクエスト不正 | 必須項目未入力 |
| 401 Unauthorized | 認証エラー | 認証情報が不正 |
| 404 Not Found | リソースが存在しない | 指定IDのデータが見つからない |
| 500 Internal Server Error | サーバー側エラー | SAP内部処理でエラー発生 |
エラー発生時には、詳細なエラーメッセージ(JSON形式)が返されるため、クライアント側でのエラーハンドリングが容易になります。
このように、SAP ODataは、データ取得から更新、メタデータ公開、セキュリティまで、API公開に必要な機能を標準化された形で提供しています。

SAP ODataサービスの実装方法
SAP ODataサービスを実装する方法は、SAPのバージョンやアーキテクチャによっていくつかのパターンがあります。
ここでは、代表的な実装方式を整理します。

SAP Gatewayによる従来型ODataサービス開発
SAP ECC・S/4HANAオンプレミスでは、SAP Gatewayを使ったODataサービス開発が標準的です。
実装の流れは以下のとおりです。
-
SAP Gateway Service Builder(SEGW)で設計
エンティティ(データモデル)、プロパティ(項目)、アソシエーション(関連)を定義します。
-
Data Provider Class(DPC)の実装
ABAPクラスで、CRUD操作(GET_ENTITYSET、CREATE_ENTITYなど)のメソッドをオーバーライドし、実際のデータ取得・更新ロジックを記述します。
-
サービス登録・公開
/IWFND/MAINT_SERVICEトランザクションでサービスを登録し、外部からアクセス可能にします。
-
Gateway Clientでテスト
SAP GUI上のテストツール(/IWFND/GW_CLIENT)でODataリクエストを実行し、動作確認を行います。
ABAPでロジックを記述するため、SAP内部テーブルやBAPIと密に連携できる一方、実装コード量が多くなりやすい方式です。ECC環境やS/4HANAオンプレミスでの主要な実装方式として使われています。
RESTful ABAP Programming Model(RAP)
S/4HANA世代では、RAP(RESTful ABAP Programming Model)を使った実装が推奨されています。
実装の流れは以下のとおりです。
-
CDSビューでデータモデルを定義
データソースとなるCDS(Core Data Services)ビューを作成し、エンティティ構造を定義します。
-
Behavior Definitionで振る舞いを定義
作成・更新・削除などの操作ルール、バリデーション、決定ロジックを定義します。
-
Service Definitionでサービスを公開
どのCDSビューをODataサービスとして公開するかを宣言的に定義します。
-
Service Bindingで公開設定
ODataのバージョン(V2 / V4)やプロトコルを指定し、サービスを有効化します。
RAPは宣言的な開発スタイルで、コード量を大幅に削減できます。CDSビュー・Behavior Definition・Service Definitionが一貫したモデルとして管理され、SAP Fioriアプリとの親和性が高い方式です。S/4HANAやBTP上のABAP環境で利用可能で、SAP標準が推奨する方式として位置付けられています。
SAP BTP上でのOData公開
SAP BTP(Business Technology Platform)では、ABAP以外の言語でもODataサービスを実装できます。
SAP Cloud Application Programming Model(CAP)は、Node.jsまたはJavaベースのフレームワークです。CDS(Core Data Services)でデータモデルを定義し、サービス定義を記述するだけで自動的にODataエンドポイントが生成されます。S/4HANAやSAP HANA Cloudと連携し、データソースとして利用可能です。
ABAP不要でODataサービスを構築できるため、モダンなWeb開発スタイル(TypeScript、REST、マイクロサービスなど)と親和性が高く、クリーンコアを保ちながらBTP側で拡張サービスを提供する際に有効です。
既存BAPIやRFCモジュールのOData化
既存のBAPIやRFCモジュールを、ODataサービスとして公開する方法もあります。SAPアドオン開発で蓄積した既存資産を活かせる点が大きなメリットです。
- SAP GatewayのRFC/BAPIインポート機能を使用
- 既存の業務ロジック資産を活かしながら、OData形式で外部公開
- 新規開発コストを抑えつつ、API化を進める手段として有効
ただし、BAPIの設計がRESTfulな思想と合わない場合もあるため、単純なラッパーではなく、適切なデータモデル設計が必要です。
実装方式の選択基準
どの方式を選ぶかは、次の観点で判断します。以下の表に各方式の特徴を整理しました。

| 観点 | Gateway(SEGW) | RAP | CAP(BTP) |
|---|---|---|---|
| 対象環境 | ECC、S/4オンプレ | S/4HANA、BTP ABAP | SAP BTP(Node.js等) |
| 開発言語 | ABAP | ABAP(宣言的) | Node.js / Java |
| コード量 | 多い | 少ない | 少ない |
| 柔軟性 | 高い | 中程度 | 高い |
| SAP標準推奨度 | 従来標準 | 現在の推奨方式 | クラウド前提 |
実装方式によって開発スタイルやスキルセットが変わるため、自社のSAP環境やエンジニアのスキルに応じた選択が重要です。
導入判断で詰まりやすいのが「GatewayとRAPのどちらで始めるか」という論点です。判断基準はシンプルで、ECC環境ならGateway、S/4HANA環境なら新規はRAPを第一候補にし、既存サービスの保守はGatewayという棲み分けが現実的です。なお、RAPはOData V2/V4の両方をサポートしているため、移行期にはV2で公開し段階的にV4へ切り替える選択肢もあります。BTP上でSAP以外の技術スタック(Node.js等)で開発したい場合はCAPも有力な選択肢です。
SAP ODataの設計ポイントとベストプラクティス
SAP ODataサービスは、実装するだけでなく、パフォーマンス・セキュリティ・保守性を考慮した設計が重要です。
ここでは、実務で押さえておくべき設計ポイントを解説します。
データモデル設計
ODataサービスの基盤となるのが、エンティティ(データの単位)と関連(リレーション)の設計です。
-
業務的な意味のある単位でエンティティを定義する
例:受注ヘッダ(SalesOrder)と受注明細(SalesOrderItem)を分けて設計し、1対多の関連を定義
-
正規化とパフォーマンスのバランス
過度に正規化すると結合(JOIN)が増えてパフォーマンスが悪化するため、用途に応じた非正規化も検討
-
必要な項目だけを公開する
内部テーブルのすべての項目を公開するのではなく、外部利用に必要な項目に限定することでセキュリティと保守性を向上
エンティティ設計は後からの変更が影響範囲を広げやすいため、初期段階での慎重な設計が求められます。
パフォーマンス最適化
ODataサービスが遅いと、ユーザー体験やシステム全体のパフォーマンスに悪影響を及ぼします。
-
select・filterの活用を前提とした設計
クライアント側が必要なデータだけを取得できるよう、クエリオプションを適切にサポート
-
ページングの実装
大量データを一度に返すのではなく、$top / $skipによるページング機能を提供し、クライアント側で段階的に取得
-
データベースレベルでの最適化
CDSビューやABAPロジック内でのSELECT文を最適化し、不要な全件取得を避ける
-
キャッシュ機構の活用
頻繁にアクセスされるマスタデータなどは、SAP Gateway Cacheやアプリケーション層でのキャッシュを検討
パフォーマンス問題は後から発覚すると対処コストが大きいため、負荷テストを早期に実施することが重要です。
セキュリティ設計
外部公開するAPIだからこそ、セキュリティ設計は不可欠です。
-
認証方式の選択
基本認証(開発・テスト用)、OAuth 2.0(本番推奨)、SAML(SSO環境)など、用途に応じた認証方式を選択
-
SAP権限オブジェクトとの連携
ODataサービス内で、SAP標準の権限チェック(AUTHORITY-CHECK)を実装し、ユーザーごとのアクセス制御を実現
-
データフィルタリング
ユーザーの所属組織・役割に応じて、表示可能なデータを動的にフィルタリング(例:営業担当者は自分の顧客データのみ閲覧可能)
-
HTTPSの強制
本番環境では必ずHTTPS通信を使用し、データの盗聴・改ざんを防止
-
ログ・監査証跡の記録
誰が・いつ・どのデータにアクセスしたかをログとして記録し、不正アクセスの検知・追跡を可能にする
特に、個人情報や機密性の高い業務データを扱う場合は、GDPR・個人情報保護法などの法規制への準拠も確認が必要です。
エラーハンドリングとメッセージ設計
APIとして公開する以上、エラー時のメッセージがわかりやすいことも重要です。
-
HTTPステータスコードを適切に返す
400番台(クライアントエラー)、500番台(サーバーエラー)を正しく使い分ける
-
エラーメッセージに詳細情報を含める
「エラーが発生しました」だけでなく、「必須項目『顧客番号』が未入力です」のように、クライアント側が対処できる情報を返す
-
SAP標準メッセージとの連携
ABAP内部で発生したメッセージ(MESSAGE文)を、ODataのエラーレスポンスとして適切に変換
エラーハンドリングが不十分だと、外部開発者やユーザーが問題解決できず、問い合わせが増えるため、初期段階から設計しておくことが重要です。
バージョニングと後方互換性
ODataサービスは、一度公開すると外部システムが依存するため、後方互換性の維持が求められます。
-
フィールドの削除・変更は慎重に行う
既存フィールドを削除すると、既存クライアントが動作しなくなるため、非推奨(Deprecated)扱いにして段階的に廃止
-
新規フィールド追加は影響が少ない
既存クライアントは新規フィールドを無視するため、追加は比較的安全
-
バージョニング戦略の検討
大きな変更が必要な場合は、/v1/、/v2/のようにURLでバージョンを分け、並行運用期間を設ける
API設計の基本原則として、壊さない変更(Non-breaking change)を優先することが長期運用では重要です。
このように、SAP ODataサービスの設計では、データモデル・パフォーマンス・セキュリティ・エラーハンドリング・後方互換性を総合的に考慮することが求められます。
社内にODataサービスが5本以上存在するのにAPI設計ガイドラインが未整備という状況であれば、命名規則・バージョニングポリシー・認証方式の統一を先に定めることを推奨します。ガイドラインなしにサービスを増やすと、後から統合・保守する際のコストが指数関数的に膨らみます。

SAP ODataと他の連携方式との違い
SAPと外部システムを連携する方法は、OData以外にも複数あります。
ここでは、代表的な連携方式との違いを整理し、使い分けのポイントを解説します。

主要な連携方式の比較
以下の表に、SAP環境で使われる主な連携方式の特徴を整理しました。
| 連携方式 | プロトコル | 用途・特徴 | 外部システムからの扱いやすさ |
|---|---|---|---|
| OData | HTTP(S) / REST | Fioriアプリ、モバイル、外部API連携 | 高い(Web標準) |
| RFC | SAP独自プロトコル | SAP間連携、リアルタイム処理 | 低い(SAP専用コネクタ必要) |
| BAPI | RFC経由 | 標準業務ロジック呼び出し | 低い(SAP知識が必要) |
| IDoc | ファイル/RFC | 大量データの非同期連携(受発注、在庫など) | 中程度(EDI的な使い方) |
| Webサービス(SOAP) | HTTP(S) / SOAP | レガシーシステムとの連携 | 中程度(標準技術だが古い) |
ここで注目すべきは、ODataがWeb標準技術を採用しているため、SAP以外の開発者でも扱いやすい点です。以下、各方式の特徴を整理します。
RFC
SAPシステム間、またはSAPと外部システムをリアルタイムで接続するSAP独自のプロトコルです。外部システムからRFCを呼び出すにはSAP JCoやSAP .NET Connectorなどの専用ライブラリが必要で、リアルタイム性が高い反面、Web標準ではないため外部開発者にとって扱いにくいのがデメリットです。
SAP同士の連携(例:ECC ⇔ S/4HANA)や、SAP専用の中間ウェア(SAP PI/POなど)との統合で利用されます。
BAPI
SAPが標準提供する業務ロジック用のRFC関数モジュールです。受注作成、顧客マスタ登録、在庫照会など、業務的に意味のある操作単位で提供されており、SAP標準のバリデーション・権限チェックが組み込まれています。
現代では、BAPIをOData化して公開するパターンも増えており、直接BAPIを呼ぶケースは減少傾向にあります。
IDoc
SAPと外部システム間でデータを非同期にやり取りするための標準フォーマットです。受注データ、在庫データ、請求データなど、定期的な一括送信に利用され、送信側と受信側が独立して動作するため、一時的な接続断にも対応できます。
ODataがリアルタイムAPI向けなのに対し、IDocはバッチ・非同期連携向けという位置付けです。EDI(電子データ交換)的な用途や夜間バッチでの大量データ連携で利用されます。
Webサービス(SOAP)
SAPはSOAP(Simple Object Access Protocol)によるWebサービス公開にも対応しています。HTTP(S)ベースでXML形式のデータをやり取りし、WSDLによるサービス定義の自動生成が可能です。
ODataが登場する前は外部連携の主要手段でしたが、現代ではRESTful APIであるODataのほうが軽量で扱いやすいため、新規開発ではODataが優先される傾向にあります。
ODataとREST APIの違い
記事タイトルにもある「RESTとの違い」を整理します。ODataとRESTは対立する概念ではなく、ODataはRESTの設計原則を土台にして規約を追加したプロトコルです。以下の表に両者の違いをまとめました。
| 観点 | 純粋なREST API | OData |
|---|---|---|
| 設計方針 | 開発者が自由に設計 | OASIS/ISO標準の規約に準拠 |
| メタデータ | 別途ドキュメントが必要 | $metadataで自動公開 |
| クエリ文法 | 独自実装(各APIでバラバラ) | |
| データ形式 | JSON、XML等を自由選択 | JSON/XML(V4はJSON推奨) |
| ページング | 独自実装 | |
| バッチ処理 | 独自実装 | $batch標準対応 |
| ツール連携 | ツールごとに個別対応 | OData対応ツールで共通利用可能 |
端的に言えば、RESTが「設計の自由度が高い分、APIごとに仕様が異なる」のに対し、ODataは「規約に従う代わりに、クライアントが予測可能な形でデータにアクセスできる」という違いです。SAP環境ではFioriやBTP、Power BI連携などOData前提のエコシステムが整っているため、SAP連携ではODataを第一に選び、SalesforceやAWSなどSAP外部のシステムとの連携では純粋なREST APIが適するケースもあります。
OData V2とV4の違い
SAP環境ではOData V2とV4が混在しています。2026年時点ではV4が新規開発の推奨標準ですが、既存システムにはV2サービスも多く残っています。以下の表に主な違いをまとめました。

| 観点 | OData V2 | OData V4 |
|---|---|---|
| 更新メソッド | MERGE(X-HTTP-METHOD ヘッダ) | PATCH(HTTP標準準拠) |
| データ型 | DateTime、Time、Float | Date、TimeOfDay、Enum等を追加 |
| ネストした展開 | $expandのみ(フラット) | |
| メタデータ形式 | XML(EDMX)のみ | JSON形式もサポート |
| アクション | Function Import | Bound/Unbound Action、Deep Action対応 |
| 差分取得 | 非対応 | Delta Query対応 |
| SAP実装モデル | Gateway(SEGW) | RAP+Service Binding |
既存のV2サービスをすべてV4に移行する必要はありませんが、新規開発ではV4を選択すべきです。SAP自身もV4を新規RAPサービスのデフォルトとして位置付けています。V2からV4への移行は、RAPへのリファクタリングと合わせて段階的に進めるのが現実的です。
S/4HANAへの移行時期が近い企業であれば、ECC上のV2サービスを無理に書き換えるよりも、S/4HANA移行後にRAPベースでV4サービスを新規構築する方がトータルコストを抑えられるケースが多いでしょう。
使い分けの基本的な考え方
各連携方式の使い分けを整理すると、次のようなイメージになります。
| シーン | 推奨方式 | 理由 |
|---|---|---|
| Fioriアプリとの連携 | OData | Fiori標準がOData前提 |
| 外部Webアプリ・モバイルアプリ連携 | OData | Web標準、扱いやすい |
| SAP同士の連携 | RFC / BAPI | 専用プロトコルで高速・確実 |
| 大量データの定期バッチ連携 | IDoc | 非同期、追跡性が高い |
| SAP以外のSaaSとの連携 | REST API(OData非対応の場合) | 相手側のAPI仕様に依存 |
| レガシーシステムとの統合 | SOAP(必要に応じて) | 既存資産との互換性 |
現代のSAP連携では、ODataが第一選択肢となり、既存資産やシステム制約がある場合に他方式を組み合わせる、というのが一般的なアプローチです。
SAP ODataの学習ステップと実装時の注意点
SAP ODataを実務で使いこなすには、プロトコルの理解・ABAP開発スキル・SAP業務知識を組み合わせた学習が必要です。
ここでは、初学者から実務レベルまでの学習ステップと、実装時の注意点を整理します。

SAP ODataの学習ステップ
SAP ODataの学習は、以下の5段階で進めるのが効果的です。
-
ODataプロトコルの基礎理解
まずは、OData自体がどういうプロトコルか(REST、HTTPメソッド、クエリオプションなど)を理解します。SAP以外の汎用的なODataチュートリアルやドキュメントで基礎を学ぶと、SAP固有の部分との区別がつきやすくなります。
-
SAP Gatewayの基本操作
S/4HANAまたはECC環境で、SAP Gateway Service Builder(SEGW)を使った簡単なODataサービス作成を体験します。最初のゴールは、受注ヘッダ一覧を返すGETサービスを自力で作れる状態です。
-
RAPの学習
S/4HANA環境では、RAPが推奨方式です。CDSビュー、Behavior Definition、Service Definitionの基本構造を理解し、簡単なCRUDサービスを実装します。
-
クエリオプション・エラーハンドリングの実装
orderby、$expandなどのクエリオプションに対応し、エラー時の適切なメッセージ返却を実装します。この段階で、実務レベルのサービス品質に近づきます。filter、
-
認証・権限・パフォーマンス最適化
本番環境を想定し、OAuth認証、SAP権限チェック、負荷テスト、パフォーマンスチューニングに取り組みます。ここまで来れば、実務プロジェクトでODataサービスを設計・実装できるレベルになります。
実装時の注意点
ODataサービスの実装でよく見られる失敗パターンと対策を整理します。
-
標準サービスの確認不足
SAPは標準で多数のODataサービス(SAP Fiori用など)を提供しています。新規開発する前に、まず標準サービスで要件を満たせないか確認することが重要です。
-
パフォーマンステストの後回し
開発環境では少量データでテストし、本番投入後に大量データでパフォーマンス問題が発覚するケースが多くあります。早期に本番相当のデータ量で負荷テストを実施し、ボトルネックを特定・解消しておくことが重要です。
-
エラーハンドリングの不備
正常系だけ実装し、異常系の考慮が不足しているのはAPI開発でよくある失敗パターンです。必須項目チェック、権限エラー、データ不整合など、想定されるエラーケースをリストアップし、適切なステータスコードとメッセージを返すよう設計します。
-
セキュリティ設計の甘さ
開発環境では基本認証で動いているから大丈夫と本番投入すると、セキュリティインシデントにつながります。本番環境ではOAuth 2.0やSAML認証を使用し、HTTPS通信を必須とし、権限チェックを徹底することが不可欠です。
-
ドキュメント・メタデータの不備
外部開発者がODataサービスを利用する際、$metadataが正しく公開されていること、利用ガイドが整備されていることが重要です。ドキュメントが不足していると、問い合わせ対応コストが増大します。
実務で役立つツールとリソース
-
SAP Business Accelerator Hub(旧SAP API Business Hub)
SAPが公開しているAPI・ODataサービスのカタログです。標準サービスの仕様確認や、サンプルリクエストのテストが可能です。
-
Postman / SAP Gateway Client
ODataサービスの動作確認には、PostmanやSAP標準のGateway Client(/IWFND/GW_CLIENT)が便利です。リクエスト・レスポンスを確認しながら開発を進められます。
-
SAP公式ドキュメント・チュートリアル
SAP Help Portal、SAP Learning Hub、openSAPなどで、OData・RAP関連のチュートリアルが提供されています。公式リソースを活用することで、最新のベストプラクティスを学べます。
ODataはSAP領域と一般的なWeb開発の橋渡しとなる技術です。ABAPだけでなくWeb技術全般(REST、JSON、HTTP)のスキルと組み合わせることで、Fiori開発・BTP拡張・外部システム統合のいずれにも対応できるようになります。
まずはSAP Business Accelerator Hubで自社が使っている業務領域の標準ODataサービスを確認し、Postmanで実際にリクエストを投げてみるところから始めるのがおすすめです。標準サービスの動作を理解してからカスタム開発に進むことで、不要な車輪の再発明を防げます。
SAP ODataの2026年最新動向
SAP ODataを取り巻く環境は、2025年後半から2026年にかけて大きく進化しています。RAPとOData V4の統合深化、AI支援による開発効率化が主なトレンドです。

OData V4のSAP標準化
OData V4は、S/4HANA 2020以降およびABAP Cloudにおいて、新規RAP開発のデフォルトかつ推奨標準として位置付けられています。従来のOData V2と比べ、パフォーマンスの向上、より柔軟なクエリ機能、階層データ構造(@Hierarchy OData vocabulary)のサポートなどが追加されています。
新規のODataサービス開発では、特別な理由がない限りOData V4を選択することがSAPの推奨方針です。既存のOData V2サービスについても、RAPへの移行と合わせてV4への段階的な移行が推奨されています。
RAPの進化とOData V4の深い統合
RAPは2026年時点で、SAP拡張開発の第一選択肢として位置付けられています。CDSエンティティによるデータ定義、Behavior Definitionによるトランザクション定義、Service Definition / BindingによるODataサービス公開が一貫したモデルとして統合されています。
ドラフト管理やディープアクション(複数エンティティにまたがる操作)のOData V4サポートなど、実務での使い勝手が継続的に向上しています。
JouleによるODataサービス開発のAI支援
SAP Business AIのエコシステムの一部として、JouleのABAP開発者向け機能がODataサービス開発を大きく効率化しています。

2026年時点で提供されている主な機能と、今後のロードマップは以下のとおりです。
-
OData UIサービスの自動生成
Joule Chatにエンティティやフィールドの要件を伝えるだけで、CDSビュー・Behavior Definition・Service Binding等のRAP構成一式が自動生成されます。ただし、wizard生成時点ではManaged実装タイプかつ単一ビジネスオブジェクトに限定されており、unmanaged BO、actions、determinations、validations、associationsは非対応です(生成後に手動で拡張可能)。
-
バリデーション・決定ロジックの予測生成
RAPのビジネスロジック部分もJouleが提案し、開発者はレビューと微調整に集中できます。なお、Joule for Developersの利用にはSAP公式の追加ライセンス有効化が必要です。
-
【ロードマップ】Agentic AIへの進化
SAPの2026年ロードマップでは、ABAP Platform AIが個別のAIスキルからエージェント型AIへ進化する方針が示されています(2026年Q2以降を予定)。ABAP MCP Serverとの連携により、開発ツールとJouleの統合がさらに深まる見込みです。
これまでRAPベースのODataサービス構築には、CDSビューの定義からService Bindingの作成まで一定の手作業が必要でしたが、Jouleの支援により初期構築の工数を大幅に短縮できる段階に入っています。ただし対象は上記の制約範囲内であり、複雑なビジネスオブジェクトでは引き続き手動の設計・実装が必要です。
VS CodeでのODataサービス開発
ABAP Development Tools for VS Code(2026年Q2にGA予定)の初期リリースでは、RAP UIサービスの開発に焦点が当てられています。CDSビュー、Behavior Definition、Service Definition等、RAPサービス構築に必要なオブジェクト一式の作成・編集・デバッグがVS Code上で完結します。
これにより、ODataサービスの開発環境がEclipse ADTからVS Codeへ拡張され、UI5やCAP開発と同じエディタ上での統一的な開発体験が実現します。Joule AIによるコード補完もVS Code上で利用できるため、RAP+OData V4の開発効率はさらに向上する見込みです。
SAP ODataの利用に必要なライセンスと費用
SAP ODataを利用するにあたって「OData自体の利用料」は発生しません。ODataはOASIS/ISOで標準化されたオープンプロトコルであり、プロトコル自体にライセンス費用はありません。ただし、ODataサービスを構築・実行するためのSAP環境にはライセンスが必要です。

SAP環境別のコスト構造
ODataサービスを構築・運用する環境によって、関連するライセンスと費用は異なります。以下の表に環境別のコスト構造を整理しました。
| 環境 | ODataサービスの構築方法 | ライセンス費用の考え方 |
|---|---|---|
| S/4HANAオンプレミス | SAP Gateway(SEGW)/ RAP | S/4HANAライセンスに含まれる。ただしOData経由の外部システムアクセスはDigital Accessライセンスの対象となる場合がある |
| S/4HANA Cloud | RAP | S/4HANA Cloudサブスクリプションに含まれる |
| SAP BTP | CAP(Node.js / Java) | BTPのサブスクリプション費用が別途必要。利用するサービス(HANA Cloud、Workzone等)に応じた従量課金 |
| RISE with SAP | RAP / Gateway | RISE契約にS/4HANA Cloud+BTP基本枠が含まれる |
実務上のポイントとして、ODataサービスの「構築」自体にはS/4HANAライセンスの範囲で対応可能です。ただし、外部システムやBotがOData経由でSAPデータにアクセスする場合はDigital Accessライセンスの対象となる可能性があるため、契約形態に応じた確認が必要です。BTP上でCAPを使ったカスタム開発を行う場合は、BTPのサブスクリプション費用が別途発生します。
RISE with SAP契約ではBTPの基本クレジットが付属しますが、利用可能なサービスや上限は契約条件(サプリメント)によって異なります。大規模なAPI基盤を構築する場合は、SAP API Management(BTPの有料アドオン)の導入も選択肢に入ります。費用の詳細はSAPまたは認定パートナーへの確認を推奨します。
SAPのAPI戦略にAIエージェントを組み込むなら
ODataでSAPデータを外部に公開できる環境が整ったら、次の課題は「そのデータを使って誰が業務を動かすか」です。データ取得から報告・申請・承認までを人が介在せず自動実行する仕組みが、API活用の次のステージになります。
AI Agent Hubは、ODataやFabric OneLakeを通じてSAPデータに接続し、AIエージェントが業務プロセスを自動実行するエンタープライズAI基盤です。
- SAPデータを起点にAIが業務を完結
ODataで公開された受注・在庫・会計データをAIエージェントが取得し、経費精算・請求書処理・承認フローまでを一気通貫で自動実行します。SAP Concurとの直接連携にも対応しています。
- Fabric OneLakeでSAPデータを仮想統合
SAPだけでなくSalesforceやDynamics 365のデータもZero ETLで仮想統合。物理コピーなしでAIエージェントが横断アクセスし、複数システムにまたがる業務を1つのフローで処理します。
- 使い慣れたMicrosoft環境をそのまま活用
Teams・Excel・Outlookなど既存ツールの延長でAIエージェントが動作。新しいツールの学習コストはゼロです。
- データは100%自社テナント内に保持
AIの学習対象から完全除外。Azure Managed Applicationsとして自社テナント内で動作が完了する設計です。
AI総合研究所は、Microsoft MVP / Solution Partner認定パートナーとして、SAP環境のAPI活用からAIエージェント導入まで一貫して支援しています。資料では、AI Agent Hubのアーキテクチャと導入ステップを詳しくご確認いただけます。
SAPデータをAIエージェントで業務に直結
API公開から業務自動化へ
ODataで整えたSAPデータ基盤を活かし、経費精算・請求書処理・承認フローをAIエージェントが自動実行。自社Azureテナント内で完結するエンタープライズAI基盤です。
まとめ
SAP ODataは、SAPシステムのデータを外部と柔軟につなぐための標準技術であり、現代のSAPアーキテクチャにおいて不可欠な基盤です。
本記事で解説した内容を踏まえ、SAP ODataの導入・活用で押さえるべきポイントは以下の3点です。
-
新規開発はRAP+OData V4を第一候補に
S/4HANA環境での新規ODataサービスはRAPで構築し、OData V4を優先検討するのがSAPの推奨方針です。BTP上で非ABAPの技術スタックを使う場合はCAPも有力な選択肢です。ECC環境では既存BAPIのOData化から始めるのが最もリスクの低い導入パスです。
-
RFC・BAPIとの棲み分けを理解する
ODataが第一選択肢ですが、SAP間のリアルタイム連携にはRFC/BAPI、大量バッチ連携にはIDocが依然として有効です。適材適所の使い分けが、安定した運用につながります。
-
API設計ガイドラインを先に整備する
ODataサービスの数が増える前に、命名規則・バージョニング・認証方式を統一しておくことで、保守コストの膨張を防げます。
RISE with SAPによるクラウド移行や2027年問題への対応を進めるIT部門にとって、SAP ODataを自社のAPI戦略の中核に据えることは、S/4HANA時代のシステム統合を成功させる鍵になります。






