Web リソースで OData エンドポイントを使用する

 

公開日: 2016年11月

対象: Dynamics CRM 2015

Web リソースのある OData エンドポイントでは、Microsoft Dynamics CRM 2015 および Microsoft Dynamics CRM Online 2015 更新プログラム データを操作するための代替インターフェイスが用意されています。 OData エンドポイントを使用すると、URI (Uniform Resource Identifier) ベースのサービスで HTTP 要求を実行できます。

このトピックの内容

OData とは何ですか。

Microsoft Dynamics CRM における OData の実装

コードを生成する サードパーティ ツール

OData とは何ですか。

OData エンドポイントはオープン データ プロトコルを使用します。 このプロトコルは "RESTful" 設計パターンを実装します。 REST は Representational State Transfer の略です。REST はソフトウェア アーキテクチャのスタイルの 1 つで、あらゆるリソースをそれぞれ一意の URI で識別しようとするものです。Microsoft Dynamics 365 では、エンティティ コレクションまたはレコードをリソース単位とすることができます。

REST の動作はインターネットのしくみに従います。 リソースの操作は、HTTP 動詞 (GETPOSTMERGE、および DELETE など) を使用して行います。 各種のライブラリを利用して HTTP 要求と応答を処理できます。REST には、どのプログラミング言語でも使える標準インターフェイスが用意されています。REST は同期処理と非同期処理のどちらにも対応しています。 非同期処理を実行する機能を使用すると、REST は Microsoft Dynamics CRM 2015 および Microsoft Dynamics CRM Online 2015 更新プログラム で使用する Web リソースおよびスクリプトに適合します。

Microsoft Dynamics CRM における OData の実装

Microsoft Dynamics CRM 2015 および Microsoft Dynamics CRM Online 2015 更新プログラム は、Windows Communication Foundation (WCF) の Data Services フレームワークに基づいて、REST ベースのデータ サービスである Open Data Protocol (OData) エンドポイントを提供します。 このエンドポイントは Organization Data Service と呼ばれます。Microsoft Dynamics 365 では、以下がサービス ルート URI です。

[Your Organization Root URL]/xrmservices/2011/organizationdata.svc

OData はデータの送信と受信に ATOM か JavaScript Object Notation (JSON) を使います。ATOM は一般に RSS フィードで使われている XML ベースの形式です。JSON は JavaScript オブジェクトのシリアル化に対応したテキスト形式です。

Microsoft Dynamics 365 で使われているエンティティと対応する一貫した URIs セットを提供するために、EDM (Entity Data Model) というモデルによって、データが「エンティティの種類」とそれらの間の対応関係から成るレコードの形式でまとめられています。

OData の EDM (Entity Data Model)

Microsoft Dynamics 365 EDM は、OData Service Metadata というドキュメントに記述されており、以下で入手できます。

[Your Organization Root URL]/xrmservices/2011/organizationdata.svc/$metadata

この XML ドキュメントでは、概念スキーマ定義言語 (CSDL) を使用して、利用可能なデータが記述されています。JavaScript でマネージド コードを使うときは、このドキュメントをダウンロードし、それに基づいて型指定されたクラスを生成します。

制限

OData エンドポイントは、SOAP エンドポイントの代わりに使えますが、現在のところいくつかの制限があります。

  • エンティティ レコードで実行できるアクションは作成、取得、更新、削除のみです。

    • Execute メソッドが必要なメッセージは実行できない。

    • アクションの関連付けと関連付けの解除にはナビゲーション プロパティを使います。

  • OData プロトコルは完全実装されていない。 一部のシステム クエリ オプションを利用できない。
    詳細については、「OData エンドポイントを使用する OData システム クエリ オプション」を参照してください。

  • コードの作成時に存在しなかったカスタム エンティティ、属性、関連付けに対するマネージド コードの遅延バインドは使えない。
    マネージド コードを使ってプログラミングするときは、通常、WCF Data Services の Client Data Service クラスを使用します。 これらのクラスは事前バインドに対応しているので、設計時に、厳密に型指定されたクラスが得られます。 利用できるエンティティはクラスの生成時にシステムで定義されていたものに限られます。 つまり、WCF Data Services の Client Data Service クラスの生成時にクラスに含まれていなかったカスタム エンティティ、属性、関連付けは、遅延バインドで操作できません。

コードを生成する サードパーティ ツール

Microsoft Dynamics 365 で作業する開発者のコミュニティでは、レガシー エンドポイントのコードを生成 OData エンドポイントがどのように機能し、使用できるコードを生成する方法を示すいくつかのツールが作成されています。 次のツールでは、OData エンドポイントを使用して Dynamics 365 データを操作するコードを生成する機能を提供します。

  • CRM REST ビルダー
    このツールを使用して、さまざまな JavaScript ライブラリを使用してデータを取得して操作を実行する要求を作成します。

    このツールの作成には、Microsoft Dynamics 365 MVP Jason Lattimer 氏 からご協力いただきました。ありがとうございました。

  • OData クエリ デザイナー
    Dynamics XRM Tools プロジェクトに含まれている OData クエリ デザイナーを使用すると、OData エンドポイントを使用してデータを取得するためのクエリを作成できます。

    このツールとその他のツールの作成には、Microsoft Dynamics 365 MVP Rhett Clinton 氏 からご協力いただきました。ありがとうございました。

関連項目

Web リソースでの Web サービス データの使用 (OData および最近のアプリの SOAP エンドポイント)
Web リソースで最近のアプリケーションのための最近のアプリの SOAP エンドポイントを使用する
Microsoft Dynamics CRM 2015 の Web リソース
Microsoft Dynamics CRM 2015 の 開発者リソース ページを使用してエンドポイントをダウンロードする
OData エンドポイントを使用した Microsoft Dynamics CRM 2015 データをクエリ
OData エンドポイントを使用して基本的なデータ操作を実行する
Ajax および JScript Web リソースで OData エンドポイントを使用する
OData エンドポイントを使用して追加データ操作を実行する
サンプル: OData エンドポイントと JavaScript および jQuery を使用した作成、取得、更新、および削除
サンプル: OData エンドポイントと JavaScript を使用した作成、取得、更新、および削除
サンプル: OData エンドポイント jQuery Contact Editor
オープン データ プロトコルの概要
OData SDK
技術記事: Using Option Set Options with the REST Endpoint - JScript (REST エンドポイントでのオプション セットのオプションの使用 - JScript)

© 2017 Microsoft. All rights reserved. 著作権