我们正在修复、重新设计旧的 JS Web 资源,以适应最新的 D365 v9 sdk 更改以及客户端脚本 API 改进和弃用。
使用重写 Web api 方法时Xrm.WebApi
,我们最终得到了这个拦截器。
场景设定中null
查找,并尝试了以下代码:
var data = {
"[email protected]": 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();
有人遇到过这个并处理过吗?我错过了什么吗?
我认为将该列设置为 null 就足够了,请确保删除了“@odata.bind”
变量数据 = {
“abc_相关实体”:空
};
这对我有用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)