使用 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 复杂类型

  • EntityReference

  • 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 源格式。 在“Internet 选项”的“内容”选项卡中, 选择“源和网页快讯”组中的“设置”。 然后,单击清除“打开源阅读视图”选项。 关闭并重新打开 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

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

EntityReference

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 关系。 如果关系代表自引用关系,则针对此关系会存在两个 <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 系统查询选项。

另请参阅

将 OData 终结点用于 Web 资源
使用 OData 终结点的 OData 系统查询选项
使用 OData 终结点执行基本数据操作
使用 OData 终结点执行额外的数据操作
与 Ajax 和 JScript Web 资源一起使用 OData 终结点
示例:将 OData 终结点与 JavaScript 和 jQuery 结合使用来执行创建、检索、更新和删除操作
示例:将 OData 终结点与 JavaScript 一起使用来执行创建、检索、更新和删除操作
示例:OData 终结点 jQuery 联系人编辑器
开放数据协议 (OData)
技术文章:将选项集选项与 REST 端点结合使用 - JScript

© 2017 Microsoft。 保留所有权利。 版权