Dynamics 365 We API ODATA语法根据父记录查询子记录,根据子记录查询父记录(附上根据团队,队列名称查成员)

Stella981
• 阅读 686

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

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

https://luoyongdemo.api.crm.dynamics.com/api/data/v9.1/systemusers?fetchXml=

也可以使用如下的查询来解决,你可能会问下面查询语法中的 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\=

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')

点赞
收藏
评论区
推荐文章
胖大海 胖大海
2年前
MySQL 通用查询日志与慢查询日志
MySQL中的日志包括:错误日志、二进制日志、通用查询日志、慢查询日志等等。这里主要介绍下比较常用的两个功能:通用查询日志和慢查询日志。1)通用查询日志:记录建立的客户端连接和执行的语句。2)慢查询日志:记录所有执行时间超过long
Easter79 Easter79
3年前
springboot项目接入sap与部署到docker遇到的问题实录
前言本文例子来源于某个业务团队,本文主要记录在协助他们部署接入sap遇到的问题,且只记录解决问题的答案,不说明原理。问题实录1、问题一:IllegalJCoarchive"sapjco1.0.jar".Itisnotallowedtorenameorrepackagetheoriginalar
Wesley13 Wesley13
3年前
java面试之n+1问题
在一对多或者多对多的时候。如果通过一的一方取获得多的一方的数据。除了第一次查询表的数据以外。每获得一条多的一方的数据就查询一次。如:通过学生表的记录查询成绩表的记录。一个学生就查询一次,50个学生就查询50次。如果需要查询50个学生的成绩,需要查询数据库的次数为第一次查询学生的记录50次查询成绩的记录。这个情况我们成为N1.//需求:
Wesley13 Wesley13
3年前
oracle的start with connect by prior如何使用
oracle的startwithconnectbyprior是根据条件递归查询"树",分为四种使用情况: 第一种:startwith子节点ID'...'connectbyprior子节点ID父节点IDselectfrommdm_organizationostartwitho.org_code'
Wesley13 Wesley13
3年前
Java笔试面试总结—try、catch、finally语句中有return 的各类情况
前言之前在刷笔试题和面试的时候经常会遇到或者被问到trycatchfinally语法块的执行顺序等问题,今天就抽空整理了一下这个知识点,然后记录下来。正文本篇文章主要是通过举例的方式来阐述各种情况,我这里根据trycatchfinally语法块分为两种大情况讨论:trycatch语法块和trycat
Stella981 Stella981
3年前
Dynamics 365利用HTML页面创建实体记录并同步上传附件
我是微软Dynamcis365&PowerPlatform方面的工程师罗勇,也是2015年7月到2018年6月连续三年DynamicsCRM/BusinessSolutions方面的微软最有价值专家(MicrosoftMVP),欢迎关注我的微信公众号MSFTDynamics365erLuoYong,回复342或者20190605可方便获取本
Wesley13 Wesley13
3年前
mysql——GROUP BY和HAVING
GROUPBY语法可以根据给定数据列的每个成员对查询结果进行分组统计,最终得到一个分组汇总表。select子句中的列名必须为分组列或列函数,列函数对于groupby子句定义的每个组返回一个结果。某个员工信息表结构和数据如下:  id  name  dept  salary  edlevel     hiredate   1  张
Stella981 Stella981
3年前
Dynamics 365中配置和使用文件夹级别的跟踪(folder
本人微信和易信公众号:微软动态CRM专家罗勇,回复274或者20180630可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,followme!我的网站是www.luoyong.me。Dynamics365与Office365可以方便紧密的集成,在与Exchange集成的时候提供了文件夹级别的跟踪功能,如何配置有啥用?我们今天就来讲
小万哥 小万哥
1年前
SQL 的 AND、OR 和 NOT 运算符:条件筛选的高级用法
AND运算符SQL的AND运算符用于根据多个条件筛选记录,确保所有条件都为TRUE才返回记录。下面是AND运算符的基本语法:sqlSELECTcolumn1,column2,...FROMtablenameWHEREcondition1ANDconditi