OData エンドポイントを使用した Microsoft Dynamics CRM 2015 データをクエリ

 

公開日: 2016年11月

対象: Dynamics CRM 2015

OData エンドポイントでデータを見つけて取得するには、URI を操作します。 すべての操作は、サービス ルート URI から始める必要があります。Microsoft Dynamics CRM 2015 および Microsoft Dynamics CRM Online 2015 更新プログラム では、サービス ルート URI は次の例のようになります。

[Your Organization Root URL]/XRMServices/2011/OrganizationData.svc

注意

組織のルート URL には、組織名を含める必要があります。 サービス ルートへの参照は、getClientUrl 関数をコンテキスト オブジェクト内で使用することで実行します。 Web リソースがフォーム内でホストされる場合は、Xrm.Page.context を参照して getClientUrl を呼び出すことができます。 それ以外の場合は、ClientGlobalContext.js.aspx ページへの参照を含めることで、GetGlobalContext 関数 を使用してコンテキスト オブジェクトを取得できるようにする必要があります。

サービス ルート URI から、リソース パスを使用して特定のリソースを識別し、システム クエリ オプションを使用してクエリをさらに絞り込みます。

このトピックの内容

Microsoft Dynamics CRM エンティティ データへのアクセス

返されるレコード数の制限

エンティティ プロパティ

Microsoft Dynamics CRM の複合型

  • エンティティ参照

  • OptionSetValue

  • 金額

  • BooleanManagedProperty

関連エンティティ

Microsoft Dynamics CRM エンティティ データへのアクセス

各 Microsoft Dynamics 365 エンティティは、概念スキーマ定義言語 (CSDL) で、<EntitySet> 要素を使用するコレクションとして表現されます。 各コレクションの名前は、[エンティティ スキーマ名] + Set という命名規則に従います。 この名前が、エンティティ レコードのコレクションにアクセスするために URL で使用されます。 使用可能なすべてのコレクションの一覧が、サービス ルート URI を表示したときに表示されます。 クエリを作成するには、リソース パスに条件を追加します。

たとえば、次に示すパスを使用して、ATOM Account エンティティ レコード ("エンティティ" と呼びます) をブラウザーに表示できます。

[Your Organization Root URL]/XRMServices/2011/OrganizationData.svc/AccountSet

取引先企業レコードの一覧を表示すると、各取引先企業を次の例に示す URL 構文を使用して個別に参照する方法を確認できます。

[Your Organization Root URL]/XRMServices/2011/OrganizationData.svc/AccountSet(guid'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx')

注意

Internet Explorer でデータを表示するには、まず、Internet Explorer で RSS フィードのフォーマットが有効になっていないことを確認する必要があります。[インターネット オプション] タブの [内容][フィードと Web スライス] グループで [設定] を選択します。 次に、[フィードの読み取りビューを有効にする] オプションをクリックしてオフにします。Internet Explorer を閉じて再度開きます。

返されるレコード数の制限

レコードを取得すると、クエリの上位 50 のレコードだけが返ります。 50 を上回るレコードがある場合、結果セットの最後に XML の <link rel="next" href="<url to next set of records>" > ノードまたは JSON**__next** プロパティが追加されます。 そのノードまたはプロパティの URL 値を使用して、レコードの次のセットを取得できます。 この URL には、ページ境界についての情報を示す $skiptoken パラメーターが含まれます。

その他のレコードを取得するには、このノードまたはプロパティの存在を検出するメソッドを作成し、提供される URL を使用してレコードの次のセットを取得する必要があります。 詳細は以下を参照してください。サンプル: OData エンドポイントと JavaScript を使用した複数のレコードの取得

エンティティ プロパティ

各概念スキーマ定義言語 (CSDL) <EntitySet> は、エンティティのプロパティと関連付けを記述する <EntityType> 要素を参照します。<EntityType> 要素の中では、<Property> 要素が Microsoft Dynamics 365 エンティティの属性に対応します。 各プロパティには、旧式の エンティティ データ モデル (EDM) データの種類のいずれか、または Microsoft Dynamics 365 のために特別に定義された <ComplexType> に対応するデータの種類が割り当てられます。 以下の表にデータの種類を一覧表示します。

OData 型

Microsoft Dynamics 365 データ型

Edm.Boolean

Boolean

Edm.DateTime

DateTime

Edm.Decimal

Decimal

Edm.Double

Double

Edm.Guid

UniqueIdentifier

Edm.Int32

Integer

Edm.Int64

BigInt

Edm.String

String
EntityName

Microsoft.Crm.Sdk.Data.Services.エンティティ参照

EntityReference
CustomerOwner

Microsoft.Crm.Sdk.Data.Services。OptionSetValue

OptionSetValue
State
Status

Microsoft.Crm.Sdk.Data.Services。金額

Money

Microsoft.Crm.Sdk.Data.Services。BooleanManagedProperty

BooleanManagedProperty

Microsoft Dynamics CRM の複合型

Microsoft Dynamics 365 で使用される一部のデータ型では、単純な EDM データ型は使用できません。

注意

Microsoft Dynamics 365 複合型に null 値を設定するには、複合型の各プロパティを null に設定します。 詳細については、「複合型を Null に設定」を参照してください。

エンティティ参照

Microsoft.Crm.Sdk.Data.Services.EntityReference 型は検索を表します。EntityReference に相当します。以下の表にプロパティを一覧表示します。

名前

種類

説明

Id

GUID

検索で関連付けられたレコードの一意の ID。

LogicalName

String

エンティティの名前。

Name

String

検索で関連付けられたレコードの主属性の値。

ATOM XML EntityReference の例を次に示します。

<d:PrimaryContactId m:type="Microsoft.Crm.Sdk.Data.Services.EntityReference">
   <d:Id m:type="Edm.Guid">76713858-5e81-df11-afdb-00155dba380a</d:Id>
   <d:LogicalName>contact</d:LogicalName> 
   <d:Name>Cat Francis (sample)</d:Name> 
</d:PrimaryContactId>

JSON EntityReference の例を次に示します。

"PrimaryContactId" :{
    "__metadata": {"type": "Microsoft.Crm.Sdk.Data.Services.EntityReference" },
    "Id": "78713858-5e81-df11-afdb-00155dba380a",
    "LogicalName": "contact",
    "Name": "Cathan Cook (sample)"}

OptionSetValue

Microsoft.Crm.Sdk.Data.Services.OptionSetValue 型は候補リスト属性を表します。OptionSetValueに相当します。 以下の表にプロパティを一覧表示します。

名前

種類

説明

Value

Number

OptionSet 属性の選択された値。

ATOMXMLOptionSetValue の例を次に示します。

<d:PreferredContactMethodCode m:type="Microsoft.Crm.Sdk.Data.Services.OptionSetValue">
   <d:Value m:type="Edm.Int32">1</d:Value>
</d:PreferredContactMethodCode>

JSON OptionSetValue の例を次に示します。

"PreferredContactMethodCode" :{
    "__metadata": {"type": "Microsoft.Crm.Sdk.Data.Services.OptionSetValue" },
    "Value": 1}

金額

Microsoft.Crm.Sdk.Data.Services.Money 型は Money 属性を表します。Money に相当します。以下の表にプロパティを一覧表示します。

名前

種類

説明

Value

Number

金額。

ATOMXMLMoney の例を次に示します。

<d:CreditLimit m:type="Microsoft.Crm.Sdk.Data.Services.Money">
  <d:Value m:type="Edm.Decimal">500.0000</d:Value> 
</d:CreditLimit>

JSON Money の例を次に示します。

"CreditLimit" :{
    "__metadata": {"type": "Microsoft.Crm.Sdk.Data.Services.Money" },
    "Value": 500.0000}

BooleanManagedProperty

組織が所有するエンティティの一部には、ソリューションに含むことができるレコードがあります (WebResource など)。 管理プロパティの例として、IsCustomizableIsHiddenCanBeDeleted があります。 これは、BooleanManagedProperty に対応します。これらの Boolean プロパティは、マネージド ソリューション コンポーネントの動作を制御します。 詳細については、「マネージド プロパティの使用」を参照してください。 以下の表は、BooleanManagedProperty を一覧表示します。

名前

種類

説明

Value

Boolean

管理プロパティが有効かどうかを示します。

CanBeChanged

Boolean

管理プロパティの値を変更できるかどうかを示します。

ManagedPropertyLogicalName

String

管理プロパティの名前を指定します。

このプロパティは読み取り専用です。

ATOMXMLBooleanManagedProperty の例を次に示します。

<d:IsCustomizable m:type="Microsoft.Crm.Sdk.Data.Services.BooleanManagedProperty">
  <d:Value m:type="Edm.Boolean">true</d:Value>
   <d:CanBeChanged m:type="Edm.Boolean">true</d:CanBeChanged>
   <d:ManagedPropertyLogicalName>iscustomizableanddeletable</d:ManagedPropertyLogicalName>   
</d:IsCustomizable>

JSON BooleanManagedProperty の例を次に示します。

"IsCustomizable" :{
    "__metadata": { "type": "Microsoft.Crm.Sdk.Data.Services.BooleanManagedProperty" },
    "CanBeChanged": true,
    "ManagedPropertyLogicalName": "iscustomizableanddeletable",
    "Value": true}

関連エンティティ

概念スキーマ定義言語 (CSDL) <NavigationProperty> 要素には、エンティティのすべての 1:N および N:N の関連付けが含まれます。 関連付けが自己参照の関連付けを表す場合は、この関連付けには 2 つの <NavigationProperty> 要素が存在します。 関連付けの名前では、接頭辞の ReferencedReferencing を使用して、特定のレコードの関連付けにおける役割が区別されます。 詳細については、「エンティティ関係の種類」を参照してください。

<NavigationProperty> は、関連するレコードを取得するクエリを作成するときに使用します。 次の例では、特定の取引先が顧客である営業案件の一覧を取得するために、特定の取引先のコンテキストの中で opportunity_customer_accounts エンティティの関連付けを使用しています。

/AccountSet(guid'[GUID value]')/opportunity_customer_accounts

関連するレコードへの URL アドレスだけが必要な場合は、次の例に示すように、$links クエリ オプションを使用できます。

/AccountSet(guid'[GUID value]')/$links/opportunity_customer_accounts

関連するレコードのデータに対する URL だけが返ります。 ブラウザーに表示される結果は、次の例のようになります。

<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<links xmlns="https://schemas.microsoft.com/ado/2007/08/dataservices">
   <uri>[Your Organization Root URL]/xrmservices/2011/OrganizationData.svc/OpportunitySet(guid'a6713858-5e81-df11-afdb-00155dba380a')</uri>
   <uri>[Your Organization Root URL]/xrmservices/2011/OrganizationData.svc/OpportunitySet(guid'1224342F-D024-4B47-A3F5-FB22D236E655')</uri>
   <uri>[Your Organization Root URL]/xrmservices/2011/OrganizationData.svc/OpportunitySet(guid'7AF675A8-4FBE-42E7-8279-C32605D2B49B')</uri>
   <uri>[Your Organization Root URL]/xrmservices/2011/OrganizationData.svc/OpportunitySet(guid'2DD9BA88-2A37-4F53-8946-68ABBDC73FC1')</uri>
</links>

レコードの取得時に関連するレコードのデータも含める場合は、$expand システム クエリ オプションを使用します。

関連項目

Web リソースで OData エンドポイントを使用する
OData エンドポイントを使用する OData システム クエリ オプション
OData エンドポイントを使用して基本的なデータ操作を実行する
OData エンドポイントを使用して追加データ操作を実行する
Ajax および JScript Web リソースで OData エンドポイントを使用する
サンプル: OData エンドポイントと JavaScript および jQuery を使用した作成、取得、更新、および削除
サンプル: OData エンドポイントと JavaScript を使用した作成、取得、更新、および削除
サンプル: OData エンドポイント jQuery Contact Editor
オープン データ プロトコル (OData)
技術記事: Using Option Set Options with the REST Endpoint - JScript (REST エンドポイントでのオプション セットのオプションの使用 - JScript)

© 2017 Microsoft. All rights reserved. 著作権