Teilen über


Beispiel für das Abfragen von Schemadefinitionen der Web-API und das Erkennen von Änderungen (C#)

Dieses Beispiel zeigt, wie Sie Änderungen in Tabellendefinitionen mit der RetrieveMetadataChanges-Aktion abrufen und erkennen.

Sie können das Muster unter PowerApps-Samples/dataverse/webapi/C#-NETCore/Schema/RetrieveMetadataChanges/ ansehen

Erläuterungen zur Funktionalität finden Sie in diesen Artikeln:

In diesem Beispiel wird der allgemeine Helfercode in der WebAPIService-Klassenbibliothek (C#) verwendet.

Anforderungen

Zum Erstellen und Ausführen dieses Beispiels müssen die folgenden Anforderungen erfüllt sein:

  • Microsoft Visual Studio 2022.
  • Zugriff auf Dataverse mit Rechten, um Datenvorgänge auszuführen.

Wie man dieses Beispiel ausführt

  1. Klonen Sie das PowerApps-Beispiele-Repository oder laden Sie es herunter.

  2. Suchen Sie den Ordner /dataverse/webapi/C#-NETx/RetrieveMetadataChanges/.

  3. De Datei RetrieveMetadataChanges.sln mit Visual Studio 2022 öffnen

  4. Bearbeiten Sie die appsettings.json-Datei, um die folgenden Eigenschaftswerte festzulegen:

    Eigenschaften Anweisungen
    Url Die Url für Ihre Umgebung. Ersetzen Sie den https://yourorg.api.crm.dynamics.com-Wert des Platzhalters durch den Wert für Ihre Umgebung. Gehen Sie zu Entwicklerressourcen anzeigen, um die URL für Ihre Umgebung zu finden.
    UserPrincipalName Ersetzen Sie den you@yourorg.onmicrosoft.com-Wert des Platzhalters durch den UPN-Wert, den Sie für den Zugriff auf die Umgebung verwenden.
    Password Ersetzen Sie den yourPassword-Wert des Platzhalters durch das von Ihnen verwendete Kennwort.
  5. Die Datei appsettings.json speichern

  6. Drücken Sie F5, um das Beispiel auszuführen.

Code

Der Code für dieses Beispiel ist hier: PowerApps-Beispiele/dataverse/webapi/C#-NETx/RetrieveMetadataChanges/Program.cs

Veranschaulichung

Dieses Beispiel zeigt, wie Schemadefinitionen für einen bestimmten Satz von Spaltendefinitionen abgerufen und (im Arbeitsspeicher) gespeichert werden, um einen Cache darzustellen.

Dann wird eine neue Spalte erstellt , die Daten werden nur für diese neue Spalte abgerufen, die dem Cache hinzufügt werden.

Dann wird die Spalte gelöscht, Daten werden über gelöschte Elemente abgerufen und dazu verwendet, um die gelöschte Spaltendefinition aus dem Cache zu entfernen.

Dieses Beispiel besteht aus sechs Abschnitten:

Abfrage definieren

Definieren Sie eine Abfrage mit EntityQueryExpression, welche alle Auswahllistenspalten aus der Kontakttabelle zurückgibt.

Cache initialisieren

  1. Erstellen Sie eine Instanz von RetrieveMetadataChanges mit dem Query-Parametersatz für die Abfrage.
  2. Senden Sie die Anfrage und erhalten Sie ein RetrieveMetadataChangesResponse-Element.
  3. Speichern Sie den RetrieveMetadataChangesResponse.EntityMetadata-Wert zwischen.
  4. Speichern Sie den RetrieveMetadataChangesResponse.ServerVersionStamp-Wert zur Verwendung in der nächsten Anfrage.
  5. Schreiben Sie eine Liste aller aktuellen Spalten im Cache.

Neue Auswahlspalte hinzufügen

Erstellen Sie eine neue Auswahlspalte, indem Sie eine neue PicklistAttributeMetadata-Instanz in der Kontakttabelle erstellen.

Hinzugefügte Spalte erkennen

  1. Erstellen Sie eine neue Instanz von RetrieveMetadataChanges mit dem Query-Parametersatz für die ursprüngliche Abfrage.
  2. Legen Sie RetrieveMetadataChangesRequest.ClientVersionStamp mit dem zuvor von der ersten Anfrage zurückgegebenen Wert fest.
  3. Senden Sie die Anfrage und erhalten Sie ein RetrieveMetadataChangesResponse-Element.
  4. Stellen Sie sicher, dass nur eine neue Spaltendefinition zurückgegeben wurde, um die erstellte Auswahlspalte darzustellen.
  5. Speichern Sie den RetrieveMetadataChangesResponse.ServerVersionStamp-Wert zur Verwendung in der nächsten Anfrage.
  6. Fügen Sie diese Auswahlspaltendaten dem Cache hinzu.

Auswahlspalte löschen

Löschen Sie die zuvor erstellte Auswahlspalte.

Gelöschte Spalte löschen

  1. Erstellen Sie eine neue Instanz von RetrieveMetadataChanges mit dem Query-Parametersatz für die ursprüngliche Abfrage.
  2. Legen Sie RetrieveMetadataChangesRequest.ClientVersionStamp mit dem zuvor von der zweiten Anfrage zurückgegebenen Wert fest.
  3. Legen Sie die RetrieveMetadataChangesRequest.DeletedMetadataFilters auf DeletedMetadataFilters.Attribute fest, da wir nach gelöschten Spaltendefinitionen suchen.
  4. Senden Sie die Anfrage und erhalten Sie ein RetrieveMetadataChangesResponse-Element.
  5. Suchen Sie die ID der gelöschten Auswahlspalte in RetrieveMetadataChangesResponse.DeletedMetadata. Verwenden Sie dazu DeletedMetadataFilters.Attribute als Indexwert für die Sammlung.
  6. Entfernen Sie die Spaltendefinition aus dem Cache.
  7. Schreiben Sie eine Liste aller aktuellen Spalten im Cache.

Bereinigung

Es ist keine Bereinigung erforderlich, da alle von diesem Beispiel erstellten Daten gelöscht wurden.

Siehe auch

Abfrageschemadefinitionen
Cache-Schemadaten
Dataverse-Web-API verwenden
WebAPIService-Klassenbibliothek (C#)
Beispiel für Web-API-Tabellenschemavorgänge (C#)

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).