CRM 2011의 연락처 엔터티에는 많은 기본 제공 필드가 있으며 일부 사용자 지정 필드도 추가했습니다.
Javascript를 사용하여 모든 필드 이름을 목록으로 가져오고 싶습니다. 이메일 템플릿을 생성하려는 경우 CRM을 통해 대화 상자의 모든 필드에서 선택할 수 있습니다. 해당 대화 상자에 나타나는 필드 이름과 값을 가져오고 싶습니다.
다음 코드를 사용하여 연락처의 모든 속성을 가져 왔지만이 목록에는 연락처 필드뿐만 아니라 모든 개체 속성이 포함됩니다.
ODataPath = GetServerUrl() + "/XRMServices/2011/OrganizationData.svc";
var retrieveRecordsReq = new XMLHttpRequest();
var result = "";
retrieveRecordsReq.open('GET', ODataPath + "/AccountSet(guid'" + guid + "')", false);
retrieveRecordsReq.setRequestHeader("Accept", "application/json");
retrieveRecordsReq.setRequestHeader("Content-Type", "application/json; charset=utf-8");
retrieveRecordsReq.send();
var entity = JSON.parse(retrieveRecordsReq.responseText).d;
entity
IE 개발자 도구를 사용 하여 개체를 검사하면 연락처의 모든 속성이 다른 이름으로 표시됩니다. 예를 들어 CRM 연락처에는 필드 mobilephone
가 있지만 IE에는 필드 가 entity.MobilePhone
있습니다. 또한 IE는 사용자 정의 필드를 표시하지 않습니다.
모든 속성 목록을 얻기위한 솔루션이 정확합니다. Guido가 말했듯이 스키마 이름입니다.
코드를 테스트하고 모든 속성에 대한 목록을 만들기 위해 코드 줄을 추가합니다.
ODataPath = GetServerUrl() + "/XRMServices/2011/OrganizationData.svc";
var retrieveRecordsReq = new XMLHttpRequest();
var url = "";
if (entityname == 'account')
url = "/AccountSet(guid'" + guid + "')";
else if (entityname == 'contact')
url = "/ContactSet(guid'" + guid + "')";
else if (entityname == 'lead')
url = "/LeadSet(guid'" + guid + "')";
else if (entityname == 'systemuser')
url = "/SystemUserSet(guid'" + guid + "')";
retrieveRecordsReq.open('GET', ODataPath + url, false);
retrieveRecordsReq.setRequestHeader("Accept", "application/json");
retrieveRecordsReq.setRequestHeader("Content-Type", "application/json; charset=utf-8");
retrieveRecordsReq.send();
var entity = JSON.parse(retrieveRecordsReq.responseText).d;
var AllContactFields = new Array();
for(var x in entity)
{
if (typeof entity[x] == 'object') {
if (entity[x] == null)
AllContactFields.push(x);
}
else {
AllContactFields.push(x);
}
}
AllContactFields
배열 결과리스트이다.
행운을 빕니다
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다