crm使用rest端点的odata系统查询选项

本文详细介绍了CRM如何通过REST端点利用OData协议进行查询,包括$expand、$filter、$orderby、$select、$skip和$top等查询选项的使用方法,以及相关限制和注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在 OData 协议中定义的查询字符串选项
选项                          说明 
$expand                     指示应在所检索的记录或集合中检索相关记录。
 
$filter                     指定为在集合中返回记录计算结果必须为“true”的表达式或函数。
 
$orderby                    确定使用哪些值对记录集合进行排序。
 
$select                     指定要返回的属性的子集。
 
$skip                       设置在集合中检索记录之前要跳过的记录数。
 
$top                        确定要返回的最大记录数。

 

$expand


指示应在所检索的记录或集合中检索相关记录。

如果要检索相关记录,请查找定义此关系的实体关系的名称。可能必须查看应用程序中的实体关系信息,才能为 Organization Data Service 正确标识关系或概念架构定义语言 (CDSL)。

例如,若要检索与帐户相关的商机记录,请使用 opportunity_customer_accounts 实体关系。查询 /AccountSet?$expand=opportunity_customer_accounts 将返回商机记录和帐户记录。

如果要限制返回的列,则还必须在查询中包括导航属性的名称。例如,查询 /AccountSet?$select=Name,opportunity_customer_accounts&$expand=opportunity_customer_accounts 只返回帐户名称和展开的商机记录。

Microsoft Dynamics CRM 2011 不支持查询多级别关系属性。例如,此查询(用于检索与帐户有关的商机的所属用户信息)将不起作用:/AccountSet?$expand=opportunity_customer_accounts/opportunity_owning_user.

默认情况下,最多可以定义六个要展开的关系。此查询(展开商机和拥有帐户的系统用户)将起作用:/AccountSet?$select=Name,opportunity_customer_accounts,user_accounts&$expand=opportunity_customer_accounts,user_accounts

 

$orderby

确定使用哪些值对记录集合进行排序。默认情况下,顺序为升序。使用 desc 使顺序反向或使用 asc 显式设置默认值。

如果正在使用 next 链接检索其他数据集,则不应更改 $orderby 查询选项值,因为这会导致不可预测的结果

$select

指定要返回的属性的子集以及数据列的组织顺序。默认为返回与 $select=* 对应的所有列。

如果使用 $expand 包括相关数据并使用 $select 限制返回的列,则还必须在查询中包括导航属性的名称。例如,以下查询 /AccountSet?$select=Name,opportunity_customer_accounts&$expand=opportunity_customer_accounts 将只返回帐户名称和展开的商机记录


$skip
如果正在使用 next 链接检索其他数据集,则不应更改 $skip 查询选项值,因为这会导致不可预测的结果

$top
确定要返回的最大记录数。

如果正在使用 next 链接检索其他数据集,则不应更改 $top 查询选项值,因为这会导致不可预测的结果

不支持的系统查询选项

Microsoft Dynamics CRM 2011 不支持使用以下系统查询选项:

$inlinecount

$count

$format

$filter

指定为在集合中返回记录计算结果必须为 true 的表达式或函数。

如果正在使用 next 链接检索其他数据集,则不应更改 $filter 查询选项值,因为这会导致不可预测的结果。

筛选系统查询选项的 OData 规格描述了用于创建要在筛选器中计算的表达式的运算符。Microsoft Dynamics CRM 使用所有逻辑运算符和可用函数的子集。Microsoft Dynamics CRM 不支持使用算术运算符。筛选器可以使用用括号指示的分组条件。时间值的比较必须使用以下格式:datetime’<time value>’,例如 datetime'2010-07-15' 或 datetime'2010-07-15T16:19:54Z'。


下表列出 Microsoft Dynamics CRM 支持的运算符

 

可以使用 $filter 查询选项筛选 EntityReference 属性的值。例如,如果您具有 SystemUser 记录的 ID 值,则可以使用以下筛选器检索分派用户的所有客户记录的列表:

  复制代码
/AccountSet?$filter=OwnerId/Id eq (guid'" + SystemUserId + "')
 

下表列出 Microsoft Dynamics CRM 支持的函数

 

 

$orderby

确定使用哪些值对记录集合进行排序。默认情况下,顺序为升序。使用 desc 使顺序反向或使用 asc 显式设置默认值。

如果正在使用 next 链接检索其他数据集,则不应更改 $orderby 查询选项值,因为这会导致不可预测的结果

$select

指定要返回的属性的子集以及数据列的组织顺序。默认为返回与 $select=* 对应的所有列。

如果使用 $expand 包括相关数据并使用 $select 限制返回的列,则还必须在查询中包括导航属性的名称。例如,以下查询 /AccountSet?$select=Name,opportunity_customer_accounts&$expand=opportunity_customer_accounts 将只返回帐户名称和展开的商机记录


$skip
如果正在使用 next 链接检索其他数据集,则不应更改 $skip 查询选项值,因为这会导致不可预测的结果

$top
确定要返回的最大记录数。

如果正在使用 next 链接检索其他数据集,则不应更改 $top 查询选项值,因为这会导致不可预测的结果

不支持的系统查询选项

Microsoft Dynamics CRM 2011 不支持使用以下系统查询选项:

$inlinecount

$count

$format

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值