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

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

      本篇介绍两个关于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关系的架构名称。

你可能感兴趣的文章
Delphi 线程安全单例
查看>>
C#文件读写初步
查看>>
C# WinForm只允许运行一个窗体实例
查看>>
有用的nth-child
查看>>
Google+这么来的
查看>>
WCF 第十三章 可编程站点 系列文章
查看>>
JavaScript实现 页面滚动图片加载
查看>>
HDU_1004 Let the Balloon Rise
查看>>
QML学习文档_通宵测试完的
查看>>
程序输入后的执行顺序
查看>>
C#遍历枚举
查看>>
产品经理就是综合生物,互联网营销
查看>>
Log4net数据表
查看>>
MyEclipse默认标签TODO,XXX,FIXME和自定义标签的使用
查看>>
UltraEdit抢占IE查看源文件,还原为系统自带记事本
查看>>
静电引发的悲剧
查看>>
NSXMLParser详解
查看>>
TabHost中在Tab组内打开新的Intent
查看>>
装reviewboard 碰到pycrypto的问题
查看>>
Android应用开发之(你必须知道的“文件上传时显示进度的
查看>>