2014-08-28 4 views
0

Пока я пытаюсь установить значение поиска, сначала сохраните «Сохранить», затем установите поиск и обновите форму. Таким образом, он удаляет поле поиска. Как я могу это решить?Xrm.Page.data.entity.save и ошибка OData

Основная функция

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 Функция()

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(); 

} 

Callback Функция

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 { 

     } 
    } 
} 

ответ

1

Вам нужно сделать вызов синхронным например

retrieveUserReq.open("GET", ODataPath + "/SystemUserSet(guid'" + UserID + "')", false); 
Смежные вопросы