Kontextobjekte

Abgeschlossen

Informieren Sie sich über die verfügbaren Kontextobjekte und deren Verwendung beim Erstellen von Ereignishandlern und die Nutzung der Clientskripting-API. Der Zweck der Kontextobjekte ist, Ihnen Informationen über den Kontext bereitzustellen, in dem Ihr Code ausgeführt wird. Durch diesen Kontext müssen Sie die Informationen in Ihrer Logik nicht hartcodieren. Mit Kontext können Sie allgemeinere Funktionen erstellen und Ihre Funktionen weniger anfällig für das spezifische Layout der Benutzeroberflächen-Komponenten sein, mit denen Sie arbeiten.

Ausführungskontext

Wenn Sie einen Ereignishandler registrieren, können Sie den Ausführungskontext als ersten Parameter übergeben. Wenn Sie den Ereignishandler mithilfe von Formulareigenschaften registrieren, ist dies eine Option, die Sie aktivieren können. Die Bild zeigt das Registrieren eines OnLoad-Handlers und das Aktivieren des Ausführungskontexts.

In der Regel ist es empfehlenswert, diese Option immer auszuwählen, wenn Sie einen Ereignishandler mithilfe von Formulareigenschaften registrieren. Diese Option wird automatisch ausgewählt, wenn Sie einen Ereignishandler mithilfe von Code registrieren.

Ihre Funktionsdefinition, die den Ausführungskontext als ersten Parameter verwendet, würde folgendermaßen aussehen:

Der Ausführungskontext wird am häufigsten dazu verwendet, die Formular‑ und Rasterkontexte abzurufen. Eine weitere hilfreiche Methode in diesem Kontext ist getEventSource. Die Ereignisquelle gibt einen Verweis zu dem Objekt zurück, das das Ereignis ausgelöst hat. Mit diesem Objekt können Sie generische Handler schreiben, die die Ereignisquelle zur Laufzeit abfragen, um herauszufinden, welches Steuerelement das Ereignis ausgelöst hat. Dieses Objekt kann helfen, wenn Sie eine einzelne Methode schreiben möchten, die für Ereignisse auf mehreren Steuerelementen registriert werden kann, anstatt für jedes Steuerelement einen separaten Ereignishandler zu erstellen. Wenn Sie zum Beispiel ein OnChange-Ereignis für mehrere Felder haben, können Sie getEventSource verwenden, um zu ermitteln, welches Feld das Ereignis ausgelöst hat, und es entsprechend verwenden.

Formularkontext

Der Client-API-Formularkontext (formContext) stellt einen Verweis auf das Formular oder ein Element im Formular bereit, beispielsweise ein Schnellansichtssteuerelement oder eine Zeile in einem bearbeitbaren Raster, für die der aktuelle Code ausgeführt wird. Sie können das formContext-Objekt mit der Funktion getFormContext aus dem Ausführungskontext abrufen.

Zuvor wurde auf das Element oder Formular über das globale Xrm.Page-Objekt zugegriffen. In der neuesten Version ist das Xrm.Page-Objekt jedoch abgekündigt. Stattdessen sollten Sie die getFormContext-Methode aus dem Ausführungskontextobjekt verwenden, um einen Verweis auf das entsprechende Formular oder Element im Formular zu erhalten. Also anstatt Code wie den folgenden zu schreiben.

var firstName = Xrm.Page.getAttribute("firstname").getValue();

Sie würden stattdessen mit formContext den folgenden Code schreiben.

var formContext = executionContext.getFormContext();

var firstName = formContext.getAttribute("firstname").getValue();

Weitere Informationen erhalten Sie über Veraltete Xrm.Page.

Das folgende Diagramm enthält eine allgemeine Übersicht über die Eigenschaften und Methoden, die im Formularkontext verfügbar sind:

Datenobjekt

Das Datenobjekt (formContext.data) soll für alle Tabellen zur Bearbeitung innerhalb des Formulars verwendet werden.

Diese Tabelle ist eine Zusammenfassung aller Datenobjekte, die Objekte und Sammlungen enthalten:

Name Beschreibung
Attribute Sammlung von Nicht-Entitätsdaten im Formular. Elemente in dieser Auflistung sind vom selben Datentyp wie die Attributauflistung in der Entität, es ist jedoch wichtig zu beachten, dass sie keine Attribute der Formulartabelle sind.
Entität Methoden zum Abrufen von Informationen, die für den auf der Seite angezeigten Zeile spezifisch sind, die Speichermethode und eine Auflistung aller im Formular enthaltenen Attribute. Attributdaten sind auf Attribute beschränkt, die durch Felder im Formular dargestellt werden, im Gegensatz zu allen Feldern, die in der Entitätskonfiguration verfügbar sind. Weitere Informationen finden Sie unter formContext.data.entity.
Prozess Objekte und Methoden zur Interaktion mit den Geschäftsprozessflowdaten in einem Formular. Weitere Informationen finden Sie unter formContext.data.process.

Benutzeroberflächenobjekt

Das Benutzeroberflächenobjekt (formContext.ui) bietet Methoden zum Abrufen von Informationen über die Benutzeroberfläche sowie Sammlungen für mehrere Unterkomponenten des Formulars oder Rasters.

Diese Tabelle ist eine Zusammenfassung aller Objekte und Sammlungen des Benutzeroberflächenobjekts.

Name Beschreibung
Steuerelemente Auflistung aller Steuerelemente auf der Seite. Weitere Informationen zu den Auflistungen, Steuerelementen und Steuerobjekten in der Auflistung finden Sie unter Sammlungen.
FormSelector Methoden zum Abrufen von Informationen zu Formularen Verwenden Sie die formSelector.getCurrentItem-Methode, um Informationen zum derzeit verwendeten Formular abzurufen. Verwenden Sie die formSelector.items-Sammlung, um Informationen zu allen Formularen zurückzugeben, die dem Benutzer zur Verfügung stehen.
Navigation Sammlung aller Navigationselemente auf der Seite. Weitere Informationen zu den Elementen in der Sammlung finden Sie unter formContext.ui.navigations-Element. Die Navigation ist für Microsoft Dynamics 365 für Tablets nicht verfügbar. Für die Automatisierung der gesamten Anwendungsnavigation wird in der Regel der Namespace „Xrm.Navigation“ verwendet.
Prozess Objekte und Methoden zur Interaktion mit der Geschäftsprozessflowsteuerung in einem Formular bereit, z. B. zum Festlegen der Sichtbarkeit. Weitere Informationen finden Sie unter formContext.ui.process.
QuickForms Sammlung aller Schnellansicht-Steuerelemente in einem Formular. Weitere Informationen finden Sie unter formContext.ui.quickForms.
Registerkarten Sammlung aller Registerkarten auf der Seite. Weitere Informationen zu den Elementen in der Sammlung finden Sie unter formContex.ui.tabs.

Es ist üblich, das Datenobjekt anstelle des Benutzeroberflächenobjekts zu verwenden, wenn Sie einen Tabellenspaltenwert abrufen oder festlegen. Das Datenobjekt hat nur ein Attribut, das den Tabellenspaltenwert darstellt. Im Vergleich dazu verfügt das UI-Objekt über mehrere Steuerelemente für dieselbe Tabellenspalte im Formular, die jeweils einen Verweis auf das Attribut enthalten. Es ist also einfacher, wenn Sie mit dem Datenobjekt arbeiten möchten, um das Attribut den Wert und das Benutzeroberflächenobjekt zu bearbeiten, wenn Sie mit den Steuerelementen arbeiten, die dieses Attribut im Formular darstellen.

Durch das Verwenden der Kontextobjekte in Ihren Skripts werden diese widerstandsfähiger gegenüber Änderungen im Formular und in der Client-API.