Freigeben über


Codekomponenten

Codekomponenten gehören zum Typ „Lösungskomponente“. Das bedeutet, dass sie in einer Lösungsdatei enthalten sein und in verschiedene Umgebungen importiert werden können. Erfahren Sie, wie Sie Erweiterungen mithilfe von Lösungen packen und verteilen.

Codekomponenten.

Sie können Codekomponenten in eine Lösung einbeziehen und dann die Lösung in eine Microsoft Dataverse-Umgebung importieren. Nachdem die Lösung mit Codekomponenten importiert wurde, können Systemadministratoren und Systemanpasser Spalten, Unterraster, Ansichten und Dashboard-Unterraster konfigurieren, um sie anstelle von Standardkomponenten zu verwenden. Sie können diese Codekomponenten sowohl zu modellgesteuerten als auch zu Canvas-Apps hinzufügen.

Codekomponenten bestehen aus drei Elemente:

Hinweis

Die Definition und Implementierung von Codekomponenten unter Verwendung des Power Apps component framework ist für modellgetriebene und Canvas-Anwendungen gleich. Der einzige Unterschied zwischen beiden ist der Konfigurationsteil.

Manifest

Manifest ist die ControlManifest.Input.xml-Metadatendatei, in der eine Komponente definiert wird. Es ist ein XML-Dokument, das Folgendes beschreibt:

  • Der Name der Komponente.
  • Die Art der Daten, die konfiguriert werden können, entweder eine field oder eine dataset.
  • Alle Eigenschaften, die in der Anwendung konfiguriert werden können, wenn die Komponente hinzugefügt wird.
  • Eine Liste der Ressourcenfelder, die die Komponente benötigt.

Wenn eine Benutzer eine Codekomponente konfiguriert wird, filtern die Daten in der Manifestdatei die verfügbaren Komponenten, damit nur für den Kontext gültige Komponenten für die Konfiguration verfügbar sind. Die in der Manifestdatei für eine Komponente definierten Eigenschaften werden als Konfigurationsspalten wiedergegeben, sodass der Benutzer, der die Komponente konfiguriert, die Werte angeben kann. Diese Eigenschaftswerte stehen der Komponente dann zur Laufzeit zur Verfügung. Weitere Informationen: Manifestschemaverweis

Komponentenimplementierung

Codekomponenten werden mit TypeScript implementiert. Jede Codekomponente muss ein Objekt enthalten, das die in der Codekomponentenschnittstelle beschriebenen Methoden implementiert. Die Power Platform CLI generiert automatisch eine index.ts-Datei, die Stub-Implementierungen für diese Methoden enthält. Diese Datei wird mithilfe des Befehls pac pcf init mit Stub-Hauptmethoden automatisch generiert.

Das Objekt implementiert die folgenden Methoden:

Diese Methode steuert den Lebenszyklus der Codekomponente.

Laden der Seite

Wenn die Seite geladen wird, benötigt die Anwendung ein Objekt, um zu funktionieren. Unter Verwendung der Daten aus der Manifestdatei erhält der Code das Objekt durch Aufruf:

var obj =  new <"namespace on manifest">.<"constructor on manifest">();

Wenn die Werte für Namensraum und Konstruktor aus dem Manifest SampleNameSpace bzw. LinearInputComponent sind, wäre der Code zur Instanziierung des Objekts dieser:

var controlObj = new SampleNameSpace.LinearInputComponent();

Wenn die Seite fertig ist, wird die Komponente initialisiert, indem die Methode init mit einem Satz von Parametern aufgerufen wird.

controlObj.init(context,notifyOutputChanged,state,container);
Parameter Beschreibung
Kontext Enthält alle Informationen darüber, wie die Komponente konfiguriert ist und alle Parameter, die innerhalb der Komponente verwendet werden können, zusammen mit den Power Apps component framework APIs. Zum Beispiel kann context.parameters.<"property name from manifest"> verwendet werden, um auf die Eingabeeigenschaft zuzugreifen.
notifyOutputChanged Warnt das Framework, wenn die Codekomponente neue Ausgaben hat, die asynchron abgerufen werden können.
state Enthält Komponentendaten aus dem vorherigen Seitenladen in der aktuellen Sitzung, wenn die Komponente diese explizit früher mit der Methode setControlState gespeichert hat.
Container Ein HTML-Div-Element, an das Entwickler und App-Ersteller die HTML-Elemente für die UI anhängen können, die die Komponente definiert.

Benutzer ändert Daten

Wenn ein Benutzer mit Ihren Komponenten interagiert, um Daten zu ändern, muss Ihre Komponente die als Parameter notifyOutputChanged in der Methode init übergebene Methode aufrufen. Wenn Sie diese Methode verwenden, reagiert die Plattform dann mit dem Aufruf der Methode getOutputs. Die getOutputs-Methode gibt Werte zurück, die die Änderungen, die vom Benutzer vorgenommen wurden, enthalten. Für eine field-Komponente ist das in der Regel der neue Wert für die Komponente.

App ändert Daten

Wenn die Plattform die Daten ändert, ruft sie die Methode updateView der Komponente auf und übergibt das neue Kontextobjekt als Parameter. Diese Methode sollte implementiert werden, um die in der Komponente angezeigten Werte zu aktualisieren.

Seite wird geschlossen

Wenn ein Benutzer von der Seite fort navigiert, verliert die Codekomponente den Umfang und der gesamte Speicher auf der Seite für die Objekte wird gelöscht. Einige Methoden, die auf dem Browser-Implementierungsmechanismus basieren, können jedoch bestehen bleiben und Speicher verbrauchen. In der Regel sind dies Ereignishandler. Wenn der Benutzer diese Informationen speichern möchte, sollte er die Methode setControlState implementieren, so dass die Informationen beim nächsten Mal innerhalb derselben Sitzung ausgegeben werden.

Entwickler können die Vernichten-Methode implementieren, die aufgerufen wird, wenn die Seite schließt, um einen beliebigen Bereinigungscode wie Ereignishandler zu entfernen.

Resources

Der Ressourcenknoten in der Manifestdatei bezieht sich auf die Ressourcen, die die Komponente benötigt, um ihre Visualisierung zu implementieren. Jede Codekomponente muss eine Ressourcendatei haben, um ihre Visualisierung zu erstellen. Die von den Tools generierte index.ts Datei ist eine code Ressource. Es muss mindestens eine Coderessource vorhanden sein.

Sie können zusätzliche Ressourcendateien im Manifest definieren, sodass sie Folgendes enthalten:

  • CSS Dateien
  • Bild-Webressourcen
  • Resx-Webressourcen für die Lokalisierung

Weitere Informationen: Ressourcenelement

Erstellen und Entwickeln einer Code-Komponente

Hinweis

Können Sie uns Ihre Präferenzen für die Dokumentationssprache mitteilen? Nehmen Sie an einer kurzen Umfrage teil. (Beachten Sie, dass diese Umfrage auf Englisch ist.)

Die Umfrage dauert etwa sieben Minuten. Es werden keine personenbezogenen Daten erhoben. (Datenschutzbestimmungen).