博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Dynamics CRM2016 Web API之Expand related entities & $ref & $count
阅读量:4933 次
发布时间:2019-06-11

本文共 2167 字,大约阅读时间需要 7 分钟。

      本篇介绍两个关于1:N关系中通过主实体取关联子实体的api,这两个api会经常被用到而且比原来的odata方式更加方便,之前如果我们要取主实体下所有的关联实体的记录都是通过的方式。

    直接上代码,注意url最后的写法

var req = new XMLHttpRequest()    req.open("get",Xrm.Page.context.getClientUrl() + "/api/data/v8.0/accounts("+Xrm.Page.data.entity.getId().replace('{', '').replace('}', '')+")?$expand=contact_customer_accounts" , false);    req.setRequestHeader("Accept", "application/json");    req.setRequestHeader("Content-Type", "application/json; charset=utf-8");    req.setRequestHeader("OData-MaxVersion", "4.0");    req.setRequestHeader("OData-Version", "4.0");    req.onreadystatechange = function () {        if (this.readyState == 4) {            if (this.status == 200) {                var data=JSON.parse(this.responseText).value;            }            else {                var data=JSON.parse(this.responseText).error.message;            }        }    };    req.send();

通过下面的截图就能看到,取出了客户下面的联系人记录,默认取出了记录中的所有属性字段,要取特定字段加上select即可?$expand=contact_customer_accounts($select=name)

而下面的截图中没加?$expand=contact_customer_accounts则只取了account实体记录而没有contact

      也可以通过如下代码取到客户下所有的关联联系人,返回的是包含联系人guid的url。

其中核心的url:/accounts("+Xrm.Page.data.entity.getId().replace('{', '').replace('}', '')+")/contact_customer_accounts/$ref,这里主要用到了$ref,还有一个$count 可以计算出客户下关联的联系人的总数。

var req = new XMLHttpRequest()    req.open("get",Xrm.Page.context.getClientUrl() + "/api/data/v8.0/accounts("+Xrm.Page.data.entity.getId().replace('{', '').replace('}', '')+")/contact_customer_accounts/$ref" , false);    req.setRequestHeader("Accept", "application/json");    req.setRequestHeader("Content-Type", "application/json; charset=utf-8");    req.setRequestHeader("OData-MaxVersion", "4.0");    req.setRequestHeader("OData-Version", "4.0");    req.onreadystatechange = function () {        if (this.readyState == 4) {            if (this.status == 200) {                var data=JSON.parse(this.responseText).value;            }            else {                var data=JSON.parse(this.responseText).error.message;            }        }    };    req.send();

    上文中反复出现的连接客户和联系人的关系contact_customer_accounts是怎么来的,这可不是客户中的属性字段哦,具体看下面截图,是客户和联系人1:N关系的架构名称。

转载于:https://www.cnblogs.com/cl1024cl/p/6205822.html

你可能感兴趣的文章
微博爬虫 python
查看>>
中石油 【递归】普通递归关系
查看>>
vue报错Error in render: "TypeError: Cannot read property '0' of undefined"
查看>>
silverlight 隐藏ChildWindow 右上角的关闭按钮
查看>>
likely() 和 unlikely()
查看>>
03一些View总结
查看>>
MapReduce--平均分,最高,低分以及及格率的计算
查看>>
mac下管理论文的工具
查看>>
POJ3122Pie(二分)
查看>>
WF+WCF+WPF第二天--模拟超市收银
查看>>
爬取贴吧好看的桌面图片 -《狗嗨默示录》-
查看>>
[转]这13个开源GIS软件,你了解几个?
查看>>
Shell批量启动、关闭tomcat
查看>>
C++成员函数的重载、覆盖与隐藏【转载】
查看>>
网站开发技能图谱
查看>>
4.27随笔
查看>>
CSS实例:图片导航块
查看>>
poj1860 Currency Exchange(spfa判断正环)
查看>>
SQL CHECK 约束&Case when 的使用方法
查看>>
[整理]HTTPS和SSL证书
查看>>