Kontextobjekte
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 diesem Kontext können Sie allgemeinere Funktionen erstellen und Ihre Funktionen weniger anfällig für die spezifische Layoutstruktur 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, in dem das Ereignis aufgetreten ist. Mit diesem Objekt können Sie generische Handler schreiben, die die Ereignisquelle zur Laufzeit abfragen, um herauszufinden, auf welchem Steuerelement das Ereignis aufgetreten ist. Dieses Objekt kann helfen, wenn Sie eine Methode schreiben, die für Ereignisse für mehrere Steuerelemente registriert wird, anstatt für jedes Steuerelement einen separaten Ereignishandler zu registrieren.
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.
Das Element oder Formular war vor dem Formularkontext über das globale Xrm.Page-Objekt verfügbar. Mit der neuesten Version ist das Xrm.Page-Objekt veraltet, und Sie sollten die getFormContext-Methode des übergebenen Ausführungskontextobjekts zum Zurückgeben eines Verweises auf das entsprechende Formular oder ein Element im Formular verwenden. 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‑ und Prozessdatenmanipulationen 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 | Bietet 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 | Stellt Objekte und Methoden zur Interaktion mit den Geschäftsprozessflowdaten in einem Formular bereit. 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 Benutzeroberflächenobjekte, die Objekte und Sammlungen enthalten.
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 | 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 | Eine 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 | Stellt 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 | Eine Sammlung aller Schnellansicht-Steuerelemente in einem Formular. Weitere Informationen finden Sie unter formContext.ui.quickForms. |
Registerkarten | Eine Sammlung aller Registerkarten auf der Seite. Weitere Informationen zu den Elementen in der Sammlung finden Sie unter formContext.ui.tabs. |
Es ist üblich, das Datenobjekt anstelle des Benutzeroberflächenobjekts zu verwenden, wenn Sie einen Tabellenspaltenwert abrufen oder festlegen müssen. Das Datenobjekt hat nur ein Attribut, das den Tabellenspaltenwert darstellt. Mit dem Benutzeroberflächenobjekt können Sie mehrere Steuerelemente für dieselbe Tabellenspalte in einem Formular haben, jedes mit einem Verweis auf das Attribut. 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 möchten, 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.