首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Xrm.Page.data.entity.save和OData误差

Xrm.Page.data.entity.save和OData误差
EN

Stack Overflow用户
提问于 2014-08-28 13:25:50
回答 1查看 449关注 0票数 0

当我尝试设置一个查找值时,它首先保存,然后设置查找并刷新表单。因此,它移除查找字段。我该怎么解决呢?

主要功能

代码语言:javascript
复制
Xrm.Page.getAttribute("new_personsendsapproval").setSubmitMode("always");
setInfo("new_personsendsapproval");
Xrm.Page.getAttribute("statuscode").setSubmitMode("always");
Xrm.Page.getAttribute("statuscode").setValue(100000000);
Xrm.Page.data.entity.save();

setInfo()函数

代码语言:javascript
复制
function setInfo(fieldname) {
    var context;
    var serverUrl;
    var UserID;
    var ODataPath;
    context = Xrm.Page.context;
    serverUrl = context.getServerUrl();
    UserID = context.getUserId();
    ODataPath = serverUrl + "/XRMServices/2011/OrganizationData.svc";
    var retrieveUserReq = new XMLHttpRequest();
    retrieveUserReq.open("GET", ODataPath + "/SystemUserSet(guid'" + UserID + "')", true);
    retrieveUserReq.setRequestHeader("Accept", "application/json");
    retrieveUserReq.setRequestHeader("Content-Type", "application/json; charset=utf-8");
    retrieveUserReq.onreadystatechange = function () {
        retrieveUserReqCallBack(this, fieldname);
    };
    retrieveUserReq.send();

}

回调函数

代码语言:javascript
复制
function retrieveUserReqCallBack(retrieveUserReq, fieldname) {
    if (retrieveUserReq.readyState == 4 /* complete */) {

        if (retrieveUserReq.status == 200) {
            var retrievedUser = this.parent.JSON.parse(retrieveUserReq.responseText).d;
            if (retrievedUser.FullName != null)
            debugger;
                var setUservalue = new Array();
            setUservalue[0] = new Object();
            setUservalue[0].id = Xrm.Page.context.getUserId();
            setUservalue[0].entityType = 'systemuser';
            setUservalue[0].name = retrievedUser.FullName;
            Xrm.Page.getAttribute(fieldname).setSubmitMode("always");
            Xrm.Page.getAttribute(fieldname).setValue(setUservalue);
        }

        else {

        }
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-28 20:39:24

您需要使调用同步。

代码语言:javascript
复制
 retrieveUserReq.open("GET", ODataPath + "/SystemUserSet(guid'" + UserID + "')", false );
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25549954

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档