Anzeige des Tooltips in edit.aspx-Datei aktivieren

16. August 2011 12:30

Hallo zusammen,

zurzeit habe ich die Anzeige des Tooltips mit folgendem Code-Snippet im OnLoad()-Ereignis verschiedener Entitätsformulare aktiviert:

Code:
SetTooltips = function()
{
    var request = "" +
    "<?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\">" +
    "        <RetrieveAsIfPublished>true</RetrieveAsIfPublished>" +
    "        <EntityItems>IncludeAttributes</EntityItems>" +
    "        <LogicalName>" + crmForm.ObjectTypeName + "</LogicalName>" +
    "      </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", request.length);
    xmlHttpRequest.send(request);

    var result = xmlHttpRequest.responseXML;


    for(var i = 0; i < crmForm.all.length; i++)
    if(crmForm.all[i].title != null && crmForm.all[i].title != 'undefined')
    {
        var fieldName = crmForm.all[i].id;

        var desc = result.selectSingleNode("//EntityMetadata/Attributes/Attribute[LogicalName='" + fieldName + "']/Description/UserLocLabel/Label");
        try
        {
            if(desc != null)
            {
                crmForm.all[fieldName + '_c'].title = desc.nodeTypedValue;
                crmForm.all[fieldName + '_d'].title = desc.nodeTypedValue;
            }
        }
        catch(e) {}
    }
}

SetTooltips();

Quelle des Codes

Nun würde ich diesen Code (und damit die Aktivierung der Anzeige) gerne in die jeweilige Datei "edit.aspx" der drei Entitäten Kontakt, Firma und Verkaufschance übertragen.
Kopiere ich den Code 1:1, erhalte ich grundsätzlich einen Fehler auf der Seite (hier am Beispiel der Rechnung):

Code:
Inhalt der Microsoft Dynamics CRM-Fehlerberichterstattung

<CrmScriptErrorReport>
  <ReportVersion>1.0</ReportVersion>
  <ScriptErrorDetails>
   <Message>&#34;crmForm&#34; ist undefiniert</Message>
   <Line>274</Line>
   <URL>/ORGNAME&#47;sfa&#47;invoice&#47;edit.aspx</URL>
   <PageURL>/ORGNAME&#47;sfa&#47;invoice&#47;edit.aspx</PageURL>
   <Function></Function>
   <CallStack>
   </CallStack>
  </ScriptErrorDetails>


Wie muss der o.g. Code angepasst werden? Muss der Code an einer ganz bestimmten Stelle in der aspx-Datei eingefügt werden (z.B. hinter function window.onload)? Ist es überhaupt sinnvoll, den Code in die aspx-Datei zu verschieben?

Gruß
Frank