Sto lavorando su alcune personalizzazioni CRM 2011 online e ho bisogno di ottenere un'entità utilizzando javascript.CRM 2011: Ottenere entità con Javascript
L'entità Ho bisogno sarà basato sul valore ID di un altro campo (un ente di contatto) - questo ID Contatto posso ottenere bene.
L'entità che desidero è un'entità personalizzata. Ci possono essere più corrispondenze in base all'ID di contatto quindi voglio solo per ottenere il primo della lista (ordine non è importante)
Finora ho guardato in un paio di modi per fare questo ...
OData - non riuscivo a trovare abbastanza esempi su questo su ciò che domanda espressioni posso creare, anche io non so se/come fare questo lavoro per entità personalizzate
FetchXML - posso creare un bella query FetchXML utilizzando anche la "ricerca avanzata" integrata e sarebbe felice di chiamarla da javascript se qualcuno può aiutarti? Ho trovato una risposta promettente here ma non sono riuscito a vedere come venivano restituiti i dati "risultati"
Richiesta SOAP: la prima cosa che ho provato è un metodo simile a quello che avrei potuto fare in CRM 4 ma questo non sembra funzionare. Sebbene la richiesta venga eseguita, i dati dei miei risultati sembrano essere vuoti. Questo è tutto ciò che ho codice per cui se qualcuno può individuare un problema con il codice qui sotto sarebbe fantastico.
EDIT: ho individuato alcuni dati di query ridondanti (avevo rimosso l'apertura tag link, ma lasciato i tag di chiusura) - dal momento che la rimozione di questo io ora ottenere dati di risultato XML ... tuttavia, la clausola in cui non lo fa sembra applicarsi (solo ottenere l'elenco di tutte le entità)
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;
Mi dispiace per il grande codice postale, ma si spera che qualcuno che ha una migliore comprensione può aiutare
Dynamics CRM ?, non comprarlo se avete bisogno di personalizzazioni: D requisito semplice, complicato implementazione ... – Legends