JavaScript - Object Type Code ermitteln
Verfasst: 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.
Der Artikel ist unter diesem Link in meinem Blog erschienen.
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.