2016-09-06 4 views
1

스크립트를 사용하여 하나의 엔티티를 다른 엔티티의 정보로 채 웁니다. 그것은 위대한 작품, 나는 모든 정적 필드에 전혀 문제가 전혀 할 수 있습니다.Dynamics CRM 2016 - 룩업 필드 값 검색

그러나 필드 중 하나가 조회 필드이면 작동하지 않습니다.

누군가 올바른 방향으로 나를 가리켜 주시겠습니까?

아래 예제에서 new_rehabconsultant 필드는 연락처 양식의 조회 필드입니다. new_UnitNumber는 텍스트 필드의 정적 단일 행입니다. new_UnitNumber가 new_rehabconsultant 조회 필드는 현재 삼각형 내부의 큐브에 맞게 노력하고

function Contact_OnChange() { 
var contact = Xrm.Page.getAttribute("regardingobjectid").getValue(); 

if (contact == null) { 
    return; 
} 

var serverUrl = Xrm.Page.context.getClientUrl(); 
var oDataSelect = serverUrl + "/XRMServices/2011/OrganizationData.svc/ContactSet?$select=new_UnitNumber,new_rehabconsultant&$filter=ContactId eq guid'" + contact[0].id + "'"; 

var retrieveReq = new XMLHttpRequest(); 
retrieveReq.open("GET", oDataSelect, false); 
retrieveReq.setRequestHeader("Accept", "application/json"); 
retrieveReq.setRequestHeader("Content-Type", "application/json;charset=utf-8"); 
retrieveReq.onreadystatechange = function() { 
    GetContactData(this); 
}; 
retrieveReq.send(); 
} 

function GetContactData(retrieveReq) { 
if (retrieveReq.readyState == 4) { 
    if (retrieveReq.status == 200) { 
     var retrieved = JSON.parse(retrieveReq.responseText).d; 
       Xrm.Page.getAttribute("new_unitnumber").setValue(retrieved.results[0].new_UnitNumber); 
    Xrm.Page.getAttribute("new_rehabconsultant").setValue(retrieved.results[0].new_rehabconsultant); 
    } 
} 
} 

답변

1

이 아닌, 잘 채우기, 그것은 하나로, OData (엔티티 참조) 및 양식 (사이에 다른되는 데이터 모델의 문제입니다 조회).

있습니다 (약간 읽기 쉽도록 다시 작성)이 작업을 수행해야합니다

function GetContactData(retrieveReq) { 
    if (retrieveReq.readyState == 4) { 
     if (retrieveReq.status == 200) { 
      var retrieved = JSON.parse(retrieveReq.responseText).d; 
      Xrm.Page.getAttribute("new_unitnumber").setValue(retrieved.results[0].new_UnitNumber); 
      var record = retrieved.results[0].new_rehabconsultant; 
      // mind the square brackets, lookup values are *arrays* 
      var value = [{ id: record.Id, name: record.Name, entityType: record.LogicalName }]; 

      Xrm.Page.getAttribute("new_rehabconsultant").setValue(value); 
     } 
    } 
} 

이는 복사 - 붙여 넣기로 의미하지만, 영업 이익은 무엇이 잘못되었는지에 대한의 PoC 역할되지 않도록 조심하십시오.

+0

알렉스, 답장을 보내 주셔서 감사합니다. 그 성공을 위의 코드로 통합 해봤습니다. 제발 어떻게 보이게 보여줘 줄래? – Matt

+0

수정 된 통합 OP 코드 – Alex

관련 문제