Freigeben über


Verwendung von JavaScript mit Microsoft Dynamics 365

 

Veröffentlicht: Januar 2017

Gilt für: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online

Microsoft Dynamics 365 (online und lokal) bieten viele Möglichkeiten zur Verwendung von JavaScript. Sämtliches in Microsoft Dynamics 365 verwendetes JavaScript wird durch Erstellen von JavaScript-Webressourcen hinzugefügt. Dieses Thema enthält Informationen für Entwickler, die JavaScript verwenden. Ebenfalls enthält es Links zu relevanten Themen in Microsoft Dynamics 365 SDK und zu anderen Quellen.

In diesem Thema

Bereiche, in denen JavaScript in Microsoft Dynamics 365 verwendet werden kann

Verwendung von jQuery

Schreiben von JavaScript für mehrere Browser

Bewährte Methoden zur JavaScript-Programmierung

JavaScript-Debugging in Microsoft Dynamics 365

Bereiche, in denen JavaScript in Microsoft Dynamics 365 verwendet werden kann

Sie können JavaScript verwenden, um Aktionen in Formularskripten, Befehle der Befehlsleiste (Menüband) und Webressourcen auszuführen.

Formularskripts

Die häufigste Verwendung von JavaScript in Microsoft Dynamics 365 ist das Hinzufügen von Funktionen als Ereignishandler für Entitätsformularereignisse. Weitere Informationen finden Sie unter Schreiben von Code für Microsoft Dynamics 365-Formulare.

Befehle auf der Befehlsleiste (Menüband)

Wenn Sie die Microsoft Dynamics 365-Befehlsleiste anpassen, können Sie Befehle für Steuerelemente konfigurieren, die Sie hinzufügen. Diese Befehle enthalten Regeln, die steuern, ob das Steuerelement aktiviert ist und welche Aktion bei Verwendung des Steuerelements ausgeführt wird. Weitere Informationen finden Sie unter Anpassen von Befehlen und des Menübands.

Webressourcen

Microsoft Dynamics 365 stellt eine Entität bereit, die im Besitz einer Organisation ist und eine Binärdarstellung einer Datei speichert, auf die mit einer URL zugegriffen werden kann. Diese Datei wird als Webressource bezeichnet. Es gibt mehrere Arten von Webressourcen. Eine Webressource, die eine JavaScript-Bibliothek darstellt, wird als JavaScript-Webressource bezeichnet. Sie können eine Webseiten-Webressource (HTML) verwenden, um eine Benutzeroberfläche mit eingebundenen JavaScript-Bibliotheken bereitzustellen, genau wie Sie Dateien auf einem Webserver einbinden würden. Da diese Dateien Microsoft Dynamics 365 angehören, sind Benutzer, die auf sie zugreifen, bereits authentifiziert. Sie können daher Microsoft Dynamics 365-Webdienste verwenden, ohne Code schreiben zu müssen, um den Benutzer zu authentifizieren. Weitere Informationen finden Sie unter Webressourcen für Microsoft Dynamics 365 und Verwenden von Dynamics 365-Daten mithilfe von Webressourcen.

Verwendung von jQuery

  • Verwendung von jQuery mit HTML-Webressourcen
    Wir empfehlen, dass Sie jQuery gemeinsam mit HTML-Webressourcen zur Bereitstellung von Benutzeroberflächen verwenden, da Sie dadurch über eine ausgezeichnete browserübergreifende Bibliothek verfügen.

    Mit HTML-Webressourcen steuern Sie die vorhandenen Bibliotheken, und das DOM kann uneingeschränkt manipuliert werden. Sie können jQuery auch in Ihren HTML-Webressourcen verwenden.

  • Verwenden Sie jQuery nicht mit Formularskripten oder Menübandbefehlen.
    Es empfiehlt sich nicht, jQuery in Formularskripten und Menübandbefehlen zu verwenden.

    Der Hauptvorteil von jQuery liegt darin, dass es eine einfache browserübergreifende Manipulation des DOMs ermöglicht. Dies wird ausdrücklich nicht in Formularskripts und Menübandbefehlen unterstützt. Schränken Sie Ihre Skripts dahingehend ein, dass sie die in Formularskripten und Menübandbefehlen verfügbaren Bibliotheken Xrm.Page und Xrm.Utility verwenden. Wenn Sie sich entscheiden, die verbleibenden Funktionen von jQuery zu verwenden, die zusammen mit Microsoft Dynamics 365 hilfreich sind, und die Möglichkeit zur Verwendung von $.ajax einschließen möchten, sollten Sie Folgendes berücksichtigen:

    • Wenn Sie eine optimale Leistung erzielen möchten, laden Sie jQuery nicht auf einer Seite, wenn Sie es nicht benötigen.

    • Die Verwendung von $.ajax zur Durchführung von Anforderungen für die Microsoft Dynamics 365-Webdienste wird unterstützt. Es gibt jedoch Alternativen. Als Alternative zu $.ajax kann das XMLHttpRequest-Objekt des Browsers direkt verwendet werden. Die $.ajax-Methode von jQuery ist lediglich ein Wrapper für dieses Objekt. Wenn Sie das systemeigene XMLHttpRequest-Objekt direkt verwenden, müssen Sie jQuery nicht laden.

    • Bei jeder Version von jQuery, die auf einer Seite geladen wird, kann es sich um eine andere Version handeln. Verschiedene Versionen von jQuery verhalten sich unterschiedlich. Es können daher Probleme auftreten, wenn mehrere Versionen von jQuery auf derselben Seite geladen werden. Es gibt eine Technik, dies zu verringern, sie hängt aber vom Bearbeiten der jQuery-Bibliothek und sonstigen Bibliotheken ab, die von jQuery abhängen.Weitere Informationen:jQuery und jQuery-Benutzeroberfläche und Dynamics CRM 2011 und 2013, jQuery.noConflict()

      Hinweis

      Nach Microsoft Dynamics CRM Online 2015-Update 1 werden Formularskripts in einem anderen Bereich ausgeführt als die jQuery-Instanz, die von der Anwendung verwendet wird. Das bedeutet, dass die Instanz von jQuery möglicherweise nicht verfügbar ist, wenn Ihr Code versucht, jQuery.noConflict zu verwenden. Wenn Sie jQuery verwenden müssen, müssen Sie zuerst feststellen, ob eine Instanz von jQuery vorhanden ist, bevor Sie versuchen, jQuery.noConflict zu verwenden.

Schreiben von JavaScript für mehrere Browser

Da Sie nicht wissen, welcher Browser verwendet wird, sollten Sie sicherstellen, dass die verwendeten Skripts mit allen unterstützten Browsern ordnungsgemäß funktionieren. Zahlreiche wichtige Unterschiede zwischen Internet Explorer und anderen Browsern beziehen sich auf die HTML- und XML-DOM-Manipulation. Da die HTML-DOM-Manipulation nicht unterstützt wird, wenn die Skriptlogik nur unterstützte Aktionen ausführt und das Xrm.Page-API verwendet, können die zur Unterstützung anderer Browser erforderlichen Änderungen geringfügig sein. Verwenden Sie das Prüftool für benutzerdefinierten Code, um Code zu ermitteln, der nur für Internet Explorer funktioniert.

Eine browserübergreifende Bibliothek wie jQuery ist eine gute Lösung zur Entwicklung von Webressourcen. Sie sollte jedoch nicht für Formularskripts oder Menübandbefehle erforderlich sein.Weitere Informationen:Verwendung von jQuery

Unterstützung anderer Webbrowser

Da Microsoft Dynamics 365 (online und lokal)W3C-Standards unterstützt, kann über jeden modernen Browser und über eine beliebige Plattform, die diese Standards unterstützt, auf die Anwendung zugegriffen werden.Microsoft Dynamics 365 wird jedoch nur für einen bestimmten Satz Browsern und Plattformen getestet. Eine Liste der unterstützten Plattformen und Browser finden Sie unter TechNet: Unterstützte Webbrowser.

Wenn Sie einen nicht unterstützten Browser oder eine nicht unterstützte Browserversion verwenden, und Sie als URL nur den Servernamen oder den Servernamen und die Organisation eingeben, werden Sie zur Seite Microsoft Dynamics 365 für Telefone weitergeleitet. Die Dynamics 365 für Smartphones-Seiten sollten auf den meisten Browsern ordnungsgemäß funktionieren, wie auf Browsern von Mobilgeräten mit eingeschränktem Funktionsumfang.

Bewährte Methoden zur JavaScript-Programmierung

In den folgenden Abschnitten werden bewährte Methoden beschrieben, wenn Sie JavaScript mit Microsoft Dynamics 365 verwenden.

Verwenden Sie keine nicht unterstützten Methoden.

Im Internet finden Sie zahlreiche Beispiele oder Vorschläge, in denen nicht unterstützte Methoden beschrieben werden. Dazu können auch die Nutzung von nicht dokumentierten internen Funktionen für die Seitensteuerung gehören. Diese Methoden funktionieren möglicherweise, da sie jedoch nicht unterstützt werden, können Sie nicht erwarten, dass sie in zukünftigen Versionen von Microsoft Dynamics 365 funktionieren.

Verwenden Sie das Prüftool für benutzerdefinierten Code, um Code zu ermitteln, der nicht unterstützte Methoden enthält.

Verwenden Sie eine browserübergreifende JavaScript-Bibliothek für Benutzeroberflächen von HTML-Webressourcen.

Eine browserübergreifende JavaScript-Bibliothek, wie jQuery, bietet viele Vorteile, wenn Sie HTML-Webressourcen entwickeln, die mehrere Browser unterstützen.JavaScript-Bibliotheken, wie jQuery, stellen eine einheitliche Entwicklungsumgebung für alle Browser zur Verfügung, die in Microsoft Dynamics 365 unterstützt werden. Diese Features sind geeignet, wenn Sie HTML-Webressourcen verwenden, um Benutzeroberflächen bereitzustellen.JavaScript-Bibliotheken, wie jQuery, bieten umfassende Methoden zur Interaktion mit dem Document Object Model (DOM).

Verwenden Sie jQuery nicht für Formularskripts oder Befehle.

Die Verwendung von jQuery für jegliche Seiten innerhalb der Anwendung wird von uns nicht empfohlen bzw. unterstützt. Dazu gehören auch Formularskripts und Menübandbefehle.Weitere Informationen:Verwendung von jQuery.

Ermitteln Sie die Einschränkungen für Bibliotheken im Content Delivery Network (CDN).

JavaScript-Bibliotheken im Content Delivery Network (CDN) bieten öffentlichen Websites zahlreiche Vorteile. Da diese Bibliotheken im Internet gehostet werden, müssen Sie keine Webressourcen erstellen, in denen die Inhalte der Bibliotheken enthalten sind. Für Microsoft Dynamics 365 sollten Sie folgende Punkte beachten, bevor Sie eine CDN-JavaScript-Bibliothek verwenden.

  • Benutzer des Microsoft Dynamics 365 für Microsoft Office Outlook mit Offlinezugriff-Clients haben die Möglichkeit, ohne Internetverbindung im Offlinemodus zu arbeiten. Wenn Sie wegen der JavaScript-Bibliotheken von einer Internetverbindung abhängig sind, schlägt Ihr Code fehl.

  • Einige Organisationen schränken den Internetzugriff für Mitarbeiter ein. Sofern das Netzwerk nicht so konfiguriert ist, dass der Zugriff auf die Websites der CDN-Bibliotheken gestattet wird, schlägt Ihr Code möglicherweise in diesen Organisationen fehl.

Die Alternative zur Verwendung von CDN-Bibliotheken ist die Erstellung einer Skript-Webressource (JavaScript) mit den Inhalten der Bibliothek. Da Webressourcen Entitäten sind, die sich im Besitz der Organisation befinden, werden sie synchronisiert, wenn ein Microsoft Dynamics 365 für Outlook mit Offlinezugriff-Benutzer in den Offlinemodus wechselt. Da diese Webressourcen jetzt Teil der Anwendung geworden sind, werden sie nicht blockiert, wenn eine Organisation den Zugriff auf das Internet beschränkt.

Verwenden Sie die Funktionserkennung beim Schreiben von Funktionen für mehrere Browser.

Auch wenn Sie eine browserübergreifende Bibliothek wie jQuery verwenden, müssen Sie die Unterschiede zwischen den Browsern ausdrücklich berücksichtigen. Sie können im Allgemeinen ermitteln, welcher Browser verwendet wird, indem Sie die navigator.useragent-Eigenschaft abfragen. Dies wird als Browsererkennung bezeichnet. Die Browsererkennung ist in den meisten Fällen keine gute Strategie, da sie die Funktionen der neueren Browserversionen nicht berücksichtigt. Einige Browser haben die Fähigkeit, die navigation.useragent-Eigenschaft zu ändern, sodass es scheint, als wären sie ein anderer Browser.

Das Verfahren der Funktionserkennung ist zu empfehlen. Durch Ermitteln der verfügbaren Funktionen können Sie Codepfade für die Browser erstellen, die Sie unterstützen, ohne genau zu wissen, welcher Browser verwendet wird. Weitere Informationen zur Funktionserkennung finden Sie unter Erkennen von Funktionen anstelle von Browsern.

Greifen Sie nicht auf das DOM zu.

JavaScript-Entwickler sind gewöhnt, mit dem Dokumentobjektmodell (DOM) im Code zu interagieren. Sie können die window.getElementById-Methode oder die jQuery-Bibliothek verwenden. Sie können diese Techniken in Ihren HTML-Webressourcen verwenden. Eine Unterstützung des Zugriffs auf Elemente in Microsoft Dynamics 365-Anwendungsseiten oder Entitätsformularen ist jedoch nicht vorhanden. Stattdessen wird der Zugriff auf Entitätsformularelemente über das Xrm.Page-Objektmodell verfügbar gemacht. Das Microsoft Dynamics 365-Entwicklerteam behält sich das Recht vor, die Zusammensetzung der Seiten zu ändern, einschließlich der ID-Werte für Elemente. Daher schützt die Verwendung des Xrm.Page-Objektmodells Ihren Code vor Änderungen der Implementierungsmethode der Seiten. Weitere Informationen finden Sie unter Verwenden des Xrm.Page-Objektmodells.

Definieren Sie eindeutige Namen für Ihre JavaScript-Funktionen.

Wenn Sie der einzige Entwickler einer HTML-Seite sind, können Sie die Namen der verwendeten JavaScript-Funktionen problemlos verwalten. In Microsoft Dynamics 365 fügen möglicherweise andere Lösungen JavaScript -Funktionen zur Seite hinzu, in der Ihre Funktion verwendet wird.

Wenn zwei JavaScript-Funktionen auf einer Seite den gleichen Namen haben, überschreibt die Funktion, die zuerst definiert wurde, die zweite. Aus diesem Grund müssen Sie sicherstellen, dass Sie eindeutige Namen für die JavaScript-Funktionen definieren. Weitere Informationen finden Sie unter Erstellen von Skriptbibliotheken.

Verwenden Sie asynchrone Datenzugriffsmethoden.

Wenn Sie mithilfe der Microsoft Dynamics 365-Webdienste auf Daten zugreifen, sollten Sie immer ein XMLHttpRequest-Objekt verwenden, das zur asynchronen Ausführung konfiguriert wurde. Der Grund dafür ist, dass der Browser einen einzigen Thread verwendet. Wenn dieser Thread zur synchronen Ausführung eines zeitaufwendigen Prozesses verwendet wird, reagiert der Browser nicht mehr.

Hinweis

Synchrone XMLHttpRequests sind auf dem Hauptthread im Browser veraltet aufgrund der negativen Auswirkungen auf die Benutzerfreundlichkeit. Einige Browser haben jetzt eine Warnung zur Verfügung, falls dieses erkannt wird. Wenn Browser die Spezifikationen zukünftig implementieren, wird eine InvalidAccessError-Ausnahme ausgegeben.Weitere Informationen:http://www.w3.org/TR/XMLHttpRequest/#synchronous-flag und https://xhr.spec.whatwg.org/#the-open()-method

JavaScript-Debugging in Microsoft Dynamics 365

Jeder Browser bietet eine Art von Debuggingerweiterung.Internet Explorer bietet Entwicklertools, die Sie verwenden können, um Skripts in Microsoft Dynamics 365 zu debuggen. Die Internet Explorer-Entwicklertools können durch Drücken von F12 geöffnet werden, wenn eine Seite mit Internet Explorer aufrufen. Weitere Informationen finden Sie unter Verwenden von F12-Entwicklertools.

Drücken Sie in Google Chrome auf F12, um die Entwicklertools zu öffnen.Firebug ist eine beliebte Browsererweiterung zur Webentwicklung, die Mozilla Firefox verwendet. In Apple Safari müssen Sie zuerst unter Einstellungen > Erweitert die Option Menü "Entwickler" in der Menüleiste anzeigen auswählen. Dann können Sie aus dem Menü Entwickler die Option Web Inspector anzeigen auswählen.

Sie können auch Microsoft Visual Studio verwenden: Weitere Informationen finden Sie unter So debuggen Sie JScript in Microsoft Dynamics CRM 2011.

Wenn Sie JavaScript-Bibliotheken in Microsoft Dynamics 365verwenden, werden die Bibliotheken mit der Webseite geladen. Es kann manchmal schwierig sein, eine bestimmte Bibliothek in der Debugumgebung zu isolieren. Wenn Sie Debugtools in Microsoft Edge verwenden, erweitern Sie die verfügbaren Skripts auf der Registerkarte Debugger, klicken auf das Ordnersymbol oben links, und suchen Sie das Skript mit dem Namen, der dem Namen Ihrer JavaScript-Webressource entspricht, wie die unten gezeigte new_myCustomJavaScript.js-Webressource. Sie können auch nach Ihrer JavaScript-Bibliothek suchen, indem Sie den Namen im Suchfeld eingeben.

JavaScript-Debugging

Debugtools unterschiedlicher Browser haben ähnliche Funktionen. Nachdem Sie die Bibliothek gefunden haben, können Sie einen Haltepunkt festlegen und das Ereignis neu erstellen, das die Ausführung Ihres Codes auslösen sollte.

Im neuen interaktiven Servicehubclient (eingeführt in Dynamics 365), fügt Dynamics 365 dynamisch die Inhalte der JavaScript-Bibliothek ein, anstatt sie mit der Seite zu laden. Dadurch können Sie keine Haltepunkte in Ihrem Code festlegen. Bei jedem Neuladen der Seite wird der Code aus einer der dynamischen Bibliotheken eingefügt. Dies verhindert, das der Haltepunkt auftritt. In diesem Fall müssen Sie andere Techniken zum Debuggen des Codes anwenden.Weitere Informationen:Blog: Debugging JavaScript code in CRM using browser developer tools

Schreiben von Nachrichten an die Konsole

Die Verwendung der window.alert-Methode zum Debuggen von JavaScript ist immer noch eine gängige Methode, um Fehler im Anwendungscode zu beheben. Da inzwischen alle modernen Browser einen einfachen Zugriff auf Debugtools bieten, ist dies nicht sinnvoll, insbesondere, wenn andere Personen die Anwendung, die Sie debuggen, verwenden könnten.

Sie sollten stattdessen Ihre Nachrichten an die Konsole schreiben. Im Folgenden finden Sie eine kleine Funktion, die Sie Ihren Bibliotheken hinzufügen können, sodass Sie Nachrichten senden können, die Sie bei geöffneter Konsole anzeigen möchten.

function writeToConsole(message)
{
 if (typeof console != 'undefined') {
  console.log(message);
 }
}

Wenn Sie vergessen, Code zu entfernen, der diese Funktion verwendet, sehen Benutzer der Anwendung im Gegensatz zur alert-Methode Ihre Nachrichten nicht.

Siehe auch

Erweitern von Microsoft Dynamics 365 auf dem Client
Verwenden von Dynamics 365-Daten mithilfe von Webressourcen
Microsoft Dynamics 365 auf dem Server erweitern
Schreiben von Code für Microsoft Dynamics 365-Formulare
Anpassen von Befehlen und des Menübands
Webressourcen für Microsoft Dynamics 365
Erste Schritte mit der Microsoft Dynamics 365-Web-API (clientseitiges JavaScript)
Verwenden des Xrm.Page-Objektmodells
Blog: Debuggen von JavaScript-Code in CRM mit Browser-Entwickler-Tools

Microsoft Dynamics 365

© 2017 Microsoft. Alle Rechte vorbehalten. Copyright