【发布时间】:2018-08-26 01:23:02
【问题描述】:
我们正在修复、重新设计旧的 JS Web 资源,以针对最新的 D365 v9 sdk 更改 w.r.t 客户端脚本 API 改进和弃用。
当使用 Xrm.WebApi 重写 web api 方法时,我们最终得到了这个拦截器。
场景设置null进行查找,并尝试了以下代码:
var data = {
"abc_relatedentity@odata.bind": null
};
Xrm.WebApi.updateRecord("abc_entity", abc_entityid, data).then(successCallback, errorCallback);
这是抛出错误:
“'odata.bind' 实例或属性注释具有空值。在 OData 中,'odata.bind' 实例或属性注释必须具有非空字符串值。”
这个想法是淘汰下面多余的 XHR 请求代码。但这是我们现在唯一的解决方法(参考MSDN)。
var req = new XMLHttpRequest();
req.open("DELETE", Xrm.Utility.getGlobalContext().getClientUrl() + "/api/data/v9.0/accounts(recordGUID)/account_parent_account/$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) {
req.onreadystatechange = null;
if (this.status === 204 || this.status === 1223) {
//Success - No Return Data - Do Something
}
}
};
req.send();
有人遇到过并处理过吗?我错过了什么吗?
【问题讨论】:
标签: dynamics-crm microsoft-dynamics dynamics-crm-online dynamics-crm-webapi dynamics-crm-365-v9