微软动态CRM专家罗勇 ,回复333或者20190508可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!

先举个N:N关系的例子。这里以根据团队的名称查找其所有团队成员的主要邮箱为例。用Web API ODATA语法执行fetchxml比较容易想到,如下:

https://luoyongdemo.api.crm.dynamics.com/api/data/v9.1/systemusers?fetchXml=<fetch mapping='logical' no-lock='true'><entity name='systemuser'><attribute name='internalemailaddress' /><link-entity name='teammembership' from='systemuserid' to='systemuserid' visible='false' intersect='true'><link-entity name='team' from='teamid' to='teamid' alias='ab'><filter type='and'><condition attribute='name' operator='eq' value='B2C Supervisor Team' /></filter></link-entity></link-entity></entity></fetch>

也可以使用如下的查询来解决,你可能会问下面查询语法中的 teammembership_association 从哪儿来,就是该实体的N:N关系的 Schema Name。
https://luoyongdemo.api.crm.dynamics.com/api/data/v9.1/teams?$select=name&$expand=teammembership_association($select=internalemailaddress)&$filter=name eq 'B2C Supervisor Team'

还可以使用两次查询来解决,如下,当然这个方法比较笨。

https://luoyongdemo.api.crm.dynamics.com/api/data/v9.1/teams?$filter=name eq 'B2C Supervisor Team'

https://luoyongdemo.api.crm.dynamics.com/api/data/v9.1/teams(
e4336d83-f45f-e911-a830-000d3a375590)/teammembership_association?$select=internalemailaddress

如果换成根据队列(Queue)的名称来查看队列成员呢,分别如下:

https://luoyongdemo.api.crm.dynamics.com/api/data/v9.1/systemusers?fetchXml=<fetch mapping='logical' nolock='true'><entity name='systemuser'><attribute name='internalemailaddress' /><link-entity name='queuemembership' from='systemuserid' to='systemuserid' visible='false' intersect='true'><link-entity name='queue' from='queueid' to='queueid' alias='ac'><filter type='and'><condition attribute='name' operator='eq' value='DS Approver IDG' /></filter></link-entity></link-entity></entity></fetch>

https://luoyongdemo.api.crm.dynamics.com/api/data/v9.1/queues?$select=name&$expand=queuemembership_association($select=internalemailaddress)&$filter=name eq 'DS Approver IDG'

如果是1:N关系,可以参考如下语法,注意父实体一定要指定至少一个列,否则会把父实体的所有字段查出来,很浪费性能。$expand后面的名称也是1:N关系的架构名称。

https://luoyongdemo.api.crm.dynamics.com/api/data/v9.1/new_returnreqs?$select=new_name&$expand=new_new_returnreq_new_returnreqapprovalhist_ReturnRequest($select=new_name)&$filter=contains(new_name,'RETURN-2019')

如果已知父记录的ID,则还有如下语法可以使用:
当仅仅需要返回子记录的ID的话,有简单语法如下:

https://luoyongdemo.api.crm.dynamics.com/api/data/v9.1/new_returnreqs(709c2ad3-7d71-e911-a82b-000d3a365662)/new_new_returnreq_new_returnreqapprovalhist_ReturnRequest/$ref

当仅仅需要返回子记录数量的话,有如下简单语法:

https://luoyongdemo.api.crm.dynamics.com/api/data/v9.1/new_returnreqs(709c2ad3-7d71-e911-a82b-000d3a365662)/new_new_returnreq_new_returnreqapprovalhist_ReturnRequest/$count

在查询记录的时候可以顺路查出其某个查找字段对应查找记录的字段信息吗?答案是可以。如下实例,这里使用查找字段的架构名称:

https://luoyongdemo.api.crm.dynamics.com/api/data/v9.1/new_returnreqapprovalhists?$select=new_name&$expand=new_ReturnRequest($select=new_name,new_ordernumber)&$filter=contains(new_name,'2019')

但是对于标准的CreatedBy字段却要使用逻辑名称,奇怪:

https://luoyongdemo.api.crm.dynamics.com/api/data/v9.1/new_returnreqapprovalhists?$select=new_name&$expand=createdby($select=fullname)&$filter=contains(new_name,'2019')

Dynamics 365 We API ODATA语法根据父记录查询子记录,根据子记录查询父记录(附上根据团队,队列名称查成员)的更多相关文章

  1. Dynamics 365 Web Api之基于single-valued navigation property的filter查询

    本篇要讲的是dynamics 新版本中web api的一个改进功能,虽然改进的很有限,但至少是改进了. 举个例子,我们现在知道联系人的名字vic,我们想找出客户记录中主要联系人名字为vic的所有客户, ...

  2. 通过C#代码调用Dynamics 365 Web API执行批量操作

    我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面 ...

  3. Dynamics 365 Online-60000 API Limits

    最近,Dynamics 365官方文档有最新的发布,就是从2018.3.19开始,会对API请求的数目有个限制:在连续的5分钟里,一个连接用户,针对一个CRM Organization,API请求数不 ...

  4. Dynamics 365工作流报错:您无法登陆系统。原因可能是您的用户记录或您所属的业务部门在Microsoft Dynamics 365中已被禁用。

    本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复265或者20170926可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong.me ...

  5. Dynamics 365检查工作流、SDK插件步骤是否选中运行成功后自动删除系统作业记录

    本人微信公众号:微软动态CRM专家罗勇 ,回复298或者20190120可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!我的网站是 www.luoyong.me . 系统 ...

  6. 使用Dynamics 365 CE Web API查询数据加点料及选项集字段常用查询

    微软动态CRM专家罗勇 ,回复336或者20190516可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me. 紧接上文:配置Postman通过OAuth 2 implicit ...

  7. Dynamics 365本地部署版本配置OAuth 2 Password Grant以调用Web API

    微软动态CRM专家罗勇 ,回复330或者20190504可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me! 根据官方建议,不要再使用Dynamics 365 Custome ...

  8. 升级本地部署的CRM到Dynamics 365及部分新特性介绍。

    关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复241或者20161226可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong. ...

  9. Dynamics 365 Online-Virtual Entities

    转载来源https://blogs.technet.microsoft.com/lystavlen/2017/09/08/virtual-entities/,使用当前Dynamics 365环境,亲测 ...

随机推荐

  1. C#_.NetFramework_Web项目_EXCEL数据导入

    [推荐阅读我的最新的Core版文章,是最全的介绍:C#_.NetCore_Web项目_EXCEL数据导出] 需要引用NPOI的Nuget包:NPOI-v2.4.1 B-1:EXCEL数据导入--C#获 ...

  2. ef实现一次查询多个聚合函数的字段

    想用ef来写一个统计字段的语句,如下所示 select sum(price) as price_total, sum(amount) as amount_total from table1 发现似乎实 ...

  3. python文件夹遍历,文件操作,获取文件修改创建时间

    在Python中,文件操作主要来自os模块,主要方法如下: os.listdir(dirname):列出dirname下的目录和文件os.getcwd():获得当前工作目录os.curdir:返回当前 ...

  4. JavaScript中的循环和闭包

    看一段比较经典的错误代码: // 希望获取页面上的所有div,在点击的时输出对应的编号 var oDom = document.querySelectorAll("div"); / ...

  5. 【Gradle】Groovy基础

    Groovy基础 Groovy是基于JVM虚拟机的一种动态语言.每个Gradle的build脚本文件都是一个Groovy脚本文件. 字符串 在Groovy中,分号不是必需的.在Groovy中,单引号和 ...

  6. Flutter 基础控件

    内容: Button Image.Icon Switch.Checkbox TextField Form 1.Button RaisedButton 漂浮按钮 FlatButton 扁平按钮 Outl ...

  7. python监控cpu 硬盘 内存

    import psutil import time import yagmail def sendmail(subject,contents): yag = yagmail.SMTP(user='15 ...

  8. python列表转换为字符串

    对于非纯字符串组成的列表,需要使用map(str, 列表)转换,纯字符串组成的列表则不需要转换 list1 = [1, 2, 3, 4, 5]c = ','.join(map(str,list1))p ...

  9. AcWing 28. 在O(1)时间删除链表结点

    地址 https://www.acwing.com/problem/content/description/85/ 题目描述给定单向链表的一个节点指针,定义一个函数在O(1)时间删除该结点. 假设链表 ...

  10. flask之web网关、三件套、配置、路由(参数、转化器及自定义转化器)、cbv、模板语言、session

    目录 1.wsgiref.py 2.werzeug.py 3.三件套 4.配置文件 5.路由本质 6.cbv.py 7.路由转化器 8.自定义转化器 9.模板语言 10.session原理 11.te ...