Я работаю над некоторыми настройками CRM 2011 Online, и мне нужно получить сущность с помощью javascript.
Нужная мне сущность будет основана на значении идентификатора другого поля (сущности «Контакт») - этот идентификатор контакта я могу получить нормально.
Я хочу создать настраиваемую сущность. На основе идентификатора контакта может быть несколько совпадений, поэтому я просто хочу получить первое в списке (порядок не важен)
Пока что я рассмотрел несколько способов сделать это ...
OData - Мне не удалось найти достаточно примеров того, какие выражения запросов я могу создать, также я не знаю, можно ли / как заставить эту работу работать для настраиваемых сущностей
FetchXML - я могу создать хороший запрос FetchXML, используя встроенный в "расширенном поиске" тоже и были бы счастливы вызвать это из javascript, если кто-нибудь может помочь? Я нашел один многообещающий ответ здесь , но я не мог видеть, как устанавливаются возвращаемые данные «результатов» (функция Service.Fetch)
Запрос SOAP - Первое, что я попробовал, - это похожий метод, который я мог сделали в CRM 4, но это, похоже, не работает. Хотя запрос выполняется, мои данные результатов кажутся пустыми. Это все, для чего у меня есть код, поэтому, если кто-то может обнаружить проблему с приведенным ниже кодом, это было бы здорово.
РЕДАКТИРОВАТЬ : я обнаружил некоторые избыточные данные запроса (я удалил открывающие теги ссылки, но оставил закрывающие теги) - после удаления этого я теперь получаю данные результата XML ... однако предложение where, похоже, не применяется (просто получите список всех сущностей)
var xml = "" +
"" +
GenerateAuthenticationHeader() +
"" +
"" +
"" +
"new_vehicle " +
"" +
"" +
"new_vehicleid " +
"new_primarydriver " +
"statuscode " +
"new_registration " +
" " +
" " +
"false " +
"" +
"" +
"new_primarydriver " +
"Equal " +
"" +
"" +
customerID +
" " +
" " +
" " +
" ";
var xmlHttpRequest = new ActiveXObject("Msxml2.XMLHTTP");
xmlHttpRequest.Open("POST", "/mscrmservices/2007/CrmService.asmx", false);
xmlHttpRequest.setRequestHeader("SOAPAction", "http://schemas.microsoft.com/crm/2007/WebServices/RetrieveMultiple");
xmlHttpRequest.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
xmlHttpRequest.setRequestHeader("Content-Length", xml.length);
xmlHttpRequest.send(xml);
var result = xmlHttpRequest.responseXML.xml;
var doc = new ActiveXObject("MSXML2.DOMDocument");
doc.async = false;
doc.loadXML(result);
var id = doc.selectSingleNode("//new_vehicleid");
var registration = doc.selectSingleNode("//new_registration");
if(id == null)
return null;
var vehicle = new Array();
value[0] = new Object();
value[0].id = id;
value[0].name = registration;
value[0].entityType = "new_vehicle";
return vehicle;
Извините за большой пост с кодом, но, надеюсь, кто-нибудь, кто лучше разбирается в этом, может помочь