OData 2 ソース¶
OData は、Microsoft が作成した、データにアクセスするためのプロトコルです。また、Microsoft が作成したデータにアクセスするためのプロトコルです。CRUD 操作を行い、JDBC や ODBC に似ていますが、データベースに限定されません。
OData ではデータの表現に JSON (オプションで Atom) を使用し、リクエストは REST モデルに従います。このため OData は、公開データとそのモデルを記述する方法を追加で提供する RESTful API の実装とみなされます。
OData プロトコルの主なバージョンは 2 と 4 です。このデータソースは、OData バージョン 2 のソースにクエリを実行するためのものです。
OData v2 データソースの作成¶
OData v2 サービスからデータを利用するには、OData v4 データソースを作成します。つまり、 [File] メニュー > [New] > [Data source] をクリックし、[OData v2.0 (Custom)] を選択します。

下にスクロールして [Service Endpoint] を展開し、フォームに入力します。
Service Endpoint (必須): OData サービスの URL です。前の画像に示すように
HTTP Client
オプションを選択すると、4 つのセクション [Configuration]、[Proxy]、[Authentication]、[Filters] に分類されたすべてのエンドポイントパラメータを構成できます。Configuration
HTTP Method: OData v2 ソースの場合
GET
にします。Base URL: OData v2 エンドポイントの URL です。
Filters: 通常、ここでは何も設定する必要はありません。
このパネルの他の設定は、JSON や XML データソースの他の HTTP パス と同様に構成されます (構成方法は、「 HTTP パス 」のページに記載されています)。
Service Format (必須): ラッパーが OData サービスにアクセスする際に使用する形式。[JSON] または [XML-Atom] のいずれかにします (OData v4 では [JSON] がデフォルトであり、推奨されます)。
Service Version (オプション): 指定する場合、ラッパーは強制的に OData サービスの互換性を V1 または V2 バージョンのいずれかにしようとします。
[Save] をクリックします。
OData v2 基本ビューの作成¶
ここで、この OData サービスのエンドポイントのデータにクエリを実行するための基本ビューを作成する必要があります。作成するには、OData データソースのウィザードで [CREATE BASE VIEW] をクリックして、以下の値を入力します。
Entity Collection (必須): OData サービスで定義されるいずれかのコレクションの名前。注: OData サービスでエンティティコレクションに対してテキスト名 (タイトル) を定義する場合 (「サービスドキュメント」を参照)、その
href
値ではなく、ここに表示されるhref
値 (URL で使用されるフラグメント) になります。Custom Query Options (オプション): データを取得するために OData サービスに送信される URL に追加されるパラメータ。カスタムクエリオプションは、
customOption = customValue
形式のクエリオプションです。複数のクエリオプションを指定するには、各オプションを&
で区切ります。OData v4 標準では、カスタムクエリオプションを$
や@
で 開始することはできません 。例: http://host/service/Products?debug-mode=trueExpand Related Entities (オプション): 選択した場合、他のエンティティへの参照が配列またはレジスターとしてメインエンティティに直接表示されます。
Enable Pagination (オプション): 選択した場合、結果の改ページに使用できる 2 つのフィールドが基本ビューに追加されます。フィールド名は fetch_size と offset_size です。
例¶
パブリック OData v2 エンドポイントに対してサンプル基本ビューを作成できます。https://services.odata.org/V2/(S(vpkxbq1whuprcdoeauyoletp))/OData/OData.svc/
基本ビューのパラメータを設定したら、[Create Base View] をクリックします。これで、以下のようなクエリを実行できます。
SELECT * FROM bv_odata2_products WHERE id = 6;
INSERT INTO bv_odata2_products
(id, name, description, releasedate, rating, price)
VALUES
(9, 'HDTV', '32 inch 720p television', NOW(), 2, 600);
UPDATE bv_odata2_products SET price = 800 WHERE id = 9;
DELETE FROM bv_odata2_products WHERE ID = 9;
既知の制限事項¶
このカスタムデータソースは、OData バージョン 1.0 または 2.0 で動作します。
「expand」関連エンティティで取得した指定エレメントはフィルタリングできません。実行エンジンは、クエリの ROW 構文を使用して、これらのアイテムを後からフィルタリングする必要があります。
複合フィールドの挿入と更新はサポートされません。
配列の挿入はサポートされません。
ラッパーは、キーのないテーブルを含むデータベースにアクセスできません。この場合、例外 'Root types must have keys’ がスローされます。
XML Atom の使用がサポートされていないフィードカスタマイズアノテーション。このシナリオでは JSON 形式が推奨されます。
トラブルシューティング¶
症状¶
エラーメッセージ:
Received exception with message 'com.ctc.wstx.exc.WstxEOFException: Unexpected EOF; was expecting a close tag for element <feed> at [row,col {unknown-source}]: [<row>,<col>]'
解決策¶
アクセスしようとしている OData サービスの実装に問題があります。ラッパーは、モデルの制約を検証しないプロパティを投影しようとしています。エラーメッセージに示された行にあるエントリのプロパティの値を、メタデータを考慮して確認する必要があります。
参照¶
OData の公式ドキュメント: http://www.odata.org/docs/
Microsoft が提供する OData ドキュメント:
JSON 形式 Odata の作成と利用: http://msdn.microsoft.com/es-es/magazine/jj190799.aspx
Open Data Protocol によるリッチインターネットアプリの構築: http://msdn.microsoft.com/es-es/magazine/ff714561.aspx
OData の操作: https://www.odata.org/documentation/odata-version-2-0/operations/
OData の例が掲載されている Web サイト:
公式 Web サイトの読み取り専用サービスの例:
公式 Web サイトの読み書きサービスの例:
http://services.odata.org/V2/(S(gsrk2wcskjydxw2iixw3kvdr))/OData/OData.svc
http://services.odata.org/V2/(S(gsrk2wcskjydxw2iixw3kvdr))/OData/OData.svc/Categories
http://services.odata.org/V2/(S(gsrk2wcskjydxw2iixw3kvdr))/OData/OData.svc/Products
http://services.odata.org/V2/(S(gsrk2wcskjydxw2iixw3kvdr))/OData/OData.svc/Suppliers