Dynamics CRM2016 Web API之Expand related entities & $ref & $count
2016-03-30 20:57
344 查看
本篇介绍两个关于1:N关系中通过主实体取关联子实体的api,这两个api会经常被用到而且比原来的odata方式更加方便,之前如果我们要取主实体下所有的关联实体的记录都是通过Retrieve
Multiple的方式。
直接上代码,注意url最后的写法
通过下面的截图就能看到,取出了客户下面的联系人记录,默认取出了记录中的所有属性字段,要取特定字段加上select即可?$expand=contact_customer_accounts($select=name)
![](http://img.blog.csdn.net/20160330202756443?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
而下面的截图中没加?$expand=contact_customer_accounts则只取了account实体记录而没有contact
![](http://img.blog.csdn.net/20160330202849802?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
也可以通过如下代码取到客户下所有的关联联系人,返回的是包含联系人guid的url。
其中核心的url:/accounts("+Xrm.Page.data.entity.getId().replace('{', '').replace('}', '')+")/contact_customer_accounts/$ref,这里主要用到了$ref,还有一个$count 可以计算出客户下关联的联系人的总数。
![](http://img.blog.csdn.net/20160330203310257?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
上文中反复出现的连接客户和联系人的关系contact_customer_accounts是怎么来的,这可不是客户中的属性字段哦,具体看下面截图,是客户和联系人1:N关系的架构名称。
Multiple的方式。
直接上代码,注意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关系的架构名称。
相关文章推荐
- Dynamics CRM2016 Web API之Expand related entities & $ref & $count
- Dynamics CRM2016 Web API之Expand related entities & $ref & $count
- 最大堆与最小堆的实现
- 【LeetCode】9. Palindrome Number回文数判断
- Delphi-JAVA互加解密AES算法
- delphi RTTI 反射技术
- delphi 自我删除和线程池(1000行代码,需要仔细研究)
- 【JAVA】FOR UPDATE 和 FOR UPDATE NOWAIT 区别 (转)
- 人必须弄清楚自己究竟想做什么
- 123123
- DES加密---随机获取密匙加密
- 第四周项目三②-猜数字游戏
- 归并排序
- Android ViewPager使用记录
- Push
- 我理解的--java门面模式
- 【Java.JMS】一个简单的JMS实例
- Android EditText取消焦点并关闭输入法【从新浪云搬运】
- Spring学习——(四)Spring中的AOP配置
- iOS开发之plist文件的获取