Dynamics 365中使用Web API将查找字段的值设置为空值的方法。

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

Dynamics CRM 2016开始推出推荐使用Web API,我也有系列博客文章做了介绍,主要文章如下:

不过如何通过Web API来将查找字段的值设置为空值?我们知道在表单编程和使用组织服务的时候是将字段值设置为NULL就可以,Web API也可以这样吗?答案是不可以。

方法可以参考微软的文档:Associate and disassociate entities using the Web API ,我这里不多说,直接用例子来演示。

我想设置【罗勇测试】实体架构名称为【ly_Lookup】(类型为查找字段)的值为空,可以看到设置前这个字段有值:

 

我使用如下代码来设置查找字段的值为空,有两个值得注意的地方:一是HTTP的方法为DELETE,二是字段的名称使用架构名称:

var clientURL = Xrm.Page.context.getClientUrl();
var req = new XMLHttpRequest()
req.open("DELETE", encodeURI(clientURL + "/api/data/v8.2/ly_tests(B907DE1B-CF99-E611-8161-000D3A80C8B8)/ly_Lookup/$ref"), true);
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 /* complete */) {
            req.onreadystatechange = null;
            if (this.status == 204) {
                alert("记录删除成功!");
            }
            else if (this.status == 404) {
                alert("要删除的记录不存在!")
            }
            else {
                var error = JSON.parse(this.response).error;
                alert("删除罗勇测试实体记录的查找字段值失败." + error.message);
            }
        }
    };
req.send();

执行后就可以看到查找字段的值为空了。

猜你喜欢

转载自www.cnblogs.com/luoyong0201/p/Dynamics_365_Web_API_Set_Lookup_Null.html