ich habe in CRM 4.0 im Javascript eine FetchXML Funktion sehr häufig verwendet, die nun leider im neun CRM nicht mehr funktioniert. Kann mir da jemand helfen, was da im neuen CRM geändert werden muss? Hab schon gegoogelt aber irgendwie nicht wirklich was gefunden. Die Funktion ist damals auch nicht von mir geschrieben gewesen. Habe die meine ich in irgendeinem Blog gefunden weiß aber leider nicht mehr wo. Prinzipiell funktioniert FetchXML aber doch auch noch im neuen CRM was ist an dieser Funktion falsch?
- Code: Alles auswählen
function GetAttributeValueFromID(sEntityName, sGUID, sAttributeName)
{
var sXml = "";
var oXmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
// set up the SOAP message
sXml += "<?xml version=\"1.0\" encoding=\"utf-8\" ?>";
sXml += "<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\"";
sXml += " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"";
sXml += " xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">";
sXml += GenerateAuthenticationHeader()
sXml += " <soap:Body>";
sXml += " <entityName xmlns=\"http://schemas.microsoft.com/crm/2006/WebServices\">" + sEntityName + "</entityName>";
sXml += " <id xmlns=\"http://schemas.microsoft.com/crm/2006/WebServices\">" + sGUID + "</id>";
sXml += " <columnSet xmlns=\"http://schemas.microsoft.com/crm/2006/WebServices\"";
sXml += " xmlns:q=\"http://schemas.microsoft.com/crm/2006/Query\"";
sXml += " xsi:type=\"q:ColumnSet\"><q:Attributes><q:Attribute>" + sAttributeName + "</q:Attribute></q:Attributes></columnSet>";
sXml += " </soap:Body>";
sXml += " </soap:Envelope>";
// send the message to the CRM Web service
oXmlHttp.Open("POST", "/MsCrmServices/2006/CrmService.asmx", false);
oXmlHttp.setRequestHeader("SOAPAction","http://schemas.microsoft.com/crm/2006/WebServices/Retrieve");
oXmlHttp.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
oXmlHttp.setRequestHeader("Content-Length", sXml.length);
oXmlHttp.send(sXml);
// retrieve response and find attribute value
var result = oXmlHttp.responseXML.selectSingleNode("//q1:" + sAttributeName);
if (result == null)
return "";
else
return result.text;
}
Oder gibt es im CRM 2011 einen einfacheren Weg über Javascript an die Felder einer im Lookup verknüpften Entität zu kommen? Würde mir auch schon reichen.
Danke und viele Grüße
Nicole