JavaScript - Object Type Code ermitteln

23. Dezember 2009 16:50

Es kommt im CRM immer wieder vor, das der ObjectTypeCode der Entität mit übergeben werden muss. Da das CRM System diesen ObjectTypeCode beim anlegen einer Entität immer neu vergibt, kann beim übertragen der Anpassungen von einem System auf das andere nicht sichergestellt werden, das dieser Nummer die gleiche ist, so das anschließend eine Nacharbeitung der betroffenen JavaScripte erfolgen muss.

Mit folgender Funktion kann dieser Wert dynamisch ermittelt werden.

Code:
function GetObjectTypeCodeForEntity(Entity)
{
   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>" +
   "    <Execute xmlns=\"http://schemas.microsoft.com/crm/2007/WebServices\">" +
   "      <Request xsi:type=\"RetrieveEntityRequest\">" +
   "        <MetadataId>00000000-0000-0000-0000-000000000000</MetadataId>" +
   "        <EntityItems>EntityOnly</EntityItems>" +
   "        <LogicalName>" + Entity + "</LogicalName>" +
   "        <RetrieveAsIfPublished>true</RetrieveAsIfPublished>" +
   "      </Request>" +
   "    </Execute>" +
   "  </soap:Body>" +
   "</soap:Envelope>" +
   "";
    
   var xmlHttpRequest = new ActiveXObject("Msxml2.XMLHTTP");
   xmlHttpRequest.Open("POST", "/mscrmservices/2007/MetaDataService.asmx", false);
   xmlHttpRequest.setRequestHeader("SOAPAction","http://schemas.microsoft.com/crm/2007/WebServices/Execute");
   xmlHttpRequest.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
   xmlHttpRequest.setRequestHeader("Content-Length", xml.length);
   xmlHttpRequest.send(xml);
   var resultXml = xmlHttpRequest.responseXML.selectSingleNode("//ObjectTypeCode");
   return resultXml.text;
}
 
alert("ObjectTypeCode: " + GetObjectTypeCodeForEntity("new_entity"));


Der Artikel ist unter diesem Link in meinem Blog erschienen.

Re: JavaScript - Object Type Code ermitteln

8. Januar 2011 08:38

Exakt das, was ich brauchte - Danke!!!