Startseite > CRM 4.0, JavaScript, WebService > Object Type Code ermitteln

Object Type Code ermitteln

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.

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"));

Schlagwörter: , ,
  1. Du hast noch keine Kommentare.
  1. No trackbacks yet.

Hinterlasse einen Kommentar