在 MS Dynamics CRM 2011 中(这对我来说是新的,几周前我还没有使用过它),我试图从表单的 onsave 事件中更新自定义实体字段值。这是保存在附加到表单的 WebResource 中的脚本和那里的 onsave 事件(_orgDataPath 是从页面上下文中检索的,并且适用于例如同一表单上的 Retrieve 请求,因此它似乎不是问题的根源) :
function updateRecord(id, type) {
var object = { new_CurrentIndex: 12345 };
var req = new XMLHttpRequest();
req.open("POST", encodeURI(this._orgDataPath() + type + "Set(guid'" + id + "')"), false);
req.setRequestHeader("Accept", "application/json");
req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
req.setRequestHeader("X-HTTP-Method", "MERGE");
var jsonEntity = window.JSON.stringify(object);
req.send(jsonEntity);
}
当我在表单的 onsave 事件中运行它时,自定义实体的 new_CurrentIndex 值不会更新。
所以我的问题是:1)上面的代码对于使用javascript的同步REST更新是否正确?2) 如果上述基本 REST 更新的代码是正确的,是否有 CRM 配置设置会阻止更新成功?