2013-01-25 1 views
0

제 양식에 자바 스크립트 코드가 있습니다. 레코드를 처음 만들 때 현재 사용자가 2 개의 조회 필드를 자동으로 채 웁니다. 이 대부분의 시간을 잘 작동하지만 내가 처음/세션 당 하루에 그것을 사용하는 것으로 나타났습니다) 채우기를 원하는 첫 번째 필드가 채워지 그러나 필드가 여전히 비어있는 것처럼 보입니다. 코드가 작동하지 않습니다.조회를 채우기위한 코드가 처음으로 완전히 작동하지 않습니다.

필드가 채워지고 있고이 필드의 디스플레이가 작동하지 않는 것으로 확인되었지만 그 이유가 무엇인지, 특히 이것이 하나의 필드 인 이유는 알 수 없습니다. 일어나고있는.

아래 코드를 게시 할 때 설정하려고하는 필드 이름의 배열을 전달합니다. 아무도 왜 이것이 작동하지 않는지 알 수 있습니까?

감사

function RetrieveUserInfo(fieldsToSet) { 

//Retrieve user information 
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() { 
    SetUserValues(this, fieldsToSet); 
}; 

retrieveUserReq.send(); 

}

function SetUserValues(retrieveUserReq, fieldsToSet) { 

if (retrieveUserReq.readyState == 4 
/* complete */ 
) { 
    if (retrieveUserReq.status == 200) { 
     var retrievedUser = this.parent.JSON.parse(retrieveUserReq.responseText).d; 
     if (retrievedUser.FullName != null) 

     //Get details of current user 
     var setUservalue = new Array(); 
     setUservalue[0] = new Object(); 
     setUservalue[0].id = Xrm.Page.context.getUserId(); 
     setUservalue[0].entityType = 'systemuser'; 
     setUservalue[0].name = retrievedUser.FullName; 

     //get form type 
     var formType = Xrm.Page.ui.getFormType(); 

     if (formType != undefined) { //Create 
      if (formType == 1) { 

       //for each field specified, set it to the current user 
       for (var i = 0; i < fieldsToSet.length; i++) { 
        Xrm.Page.getAttribute(fieldsToSet[i]).setValue(setUservalue); 
       } 
      } 
     } 
    } 
    else { 

    } 
} 

}

+0

은 js 로딩 우선 순위 문제 같습니다. – salexch

+0

어떻게이 문제를 해결할 수 있습니까? – jimminybob

+0

시도해보십시오 document.onload? – salexch

답변

0

이 긴 샷,하지만 필드가 작동하지 않는 -이 비활성화 된 필드로 발생하지 않습니다 ? 그것은 읽기 전용 필드가 있다면 당신은 onsave 이벤트에

Xrm.Page.getAttribute(“fieldname”).setSubmitMode(“always”); 

를 추가 할 수도 있습니다.

+0

내가 원한다면 필드를 다른 사용자에게 수동으로 설정할 수 있기 때문에이 필드가 확실히 활성화되었다. – jimminybob

관련 문제