Estoy trabajando en algunas personalizaciones de CRM 2011 Online y necesito obtener una entidad que use javascript.CRM 2011: obtención de entidad con Javascript
La entidad que necesito se basará en el valor de identificación de otro campo (una entidad de contacto); esta ID de contacto me puede quedar bien.
La entidad que deseo es una entidad personalizada. Puede haber varias coincidencias basadas en la Identificación de contacto así que sólo quiero conseguir el primero de la lista (orden no es importante)
Hasta ahora he mirado en un par de maneras de hacer esto ...
OData - no podía encontrar suficientes ejemplos de este en cuanto a lo expresiones de consulta que puede crear, también no sé si/cómo hacer este trabajo para entidades personalizadas
FetchXML - puedo crear una una buena consulta FetchXML usando el "hallazgo avanzado" incorporado y estaré encantado de llamar esto desde javascript si alguien puede ayudar? Encontré una respuesta prometedora here pero no pude ver cómo se estaban estableciendo los datos de retorno de "resultados" (función Service.Fetch)
Solicitud SOAP - Lo primero que probé es un método similar al que podría haber hecho en CRM 4 pero esto no parece funcionar. Aunque la solicitud se ejecuta, los datos de mi resultado parecen estar vacíos. Esto es todo lo que tengo código para que si alguien puede detectar un problema con el código a continuación, sería genial.
EDITAR: He visto algunos datos de consulta redundante (que había eliminado enlace apertura etiquetas pero dejó etiquetas de cierre) - ya retirar esta Ahora recibe los datos del resultado XML ... sin embargo, la cláusula en que no lo hace parece aplicarse (acaba de obtener la lista de todas las entidades)
var xml = "<?xml version='1.0' encoding='utf-8'?>" +
"<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">" +
GenerateAuthenticationHeader() +
"<soap:Body>" +
"<RetrieveMultiple xmlns=\"http://schemas.microsoft.com/crm/2007/WebServices\">" +
"<query xmlns:q1=\"http://schemas.microsoft.com/crm/2006/Query\" xsi:type=\"q1:QueryExpression\">" +
"<q1:EntityName>new_vehicle</q1:EntityName>" +
"<q1:ColumnSet xsi:type='q1:ColumnSet'>" +
"<q1:Attributes>" +
"<q1:Attribute>new_vehicleid</q1:Attribute>" +
"<q1:Attribute>new_primarydriver</q1:Attribute>" +
"<q1:Attribute>statuscode</q1:Attribute>" +
"<q1:Attribute>new_registration</q1:Attribute>" +
"</q1:Attributes>" +
"</q1:ColumnSet>" +
"<q1:Distinct>false</q1:Distinct>" +
"<q1:Conditions>" +
"<q1:Condition>" +
"<q1:AttributeName>new_primarydriver</q1:AttributeName>" +
"<q1:Operator>Equal</q1:Operator>" +
"<q1:Values>" +
"<q1:Value xmlns:q2='http://microsoft.com/wsdl/types/' xsi:type='q2:guid'>" +
customerID +
"</q1:Value></q1:Values></q1:Condition>" +
"</q1:Conditions>" +
"</query></RetrieveMultiple>" +
"</soap:Body></soap:Envelope>";
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;
lo siento por los grandes post código, pero es de esperar que alguien que tiene una mejor comprensión puede ayudar
Dynamics CRM ?, no lo compre si necesita personalizaciones: D requisito simple, complicado aplicación ... – Legends