Freigeben über


Abfrageschemadefinitionen und Erkennen von Änderungen

Dieses Beispiel zeigt, wie Sie Änderungen in Tabellendefinitionen mit der Methode RetrieveMetadataChangeRequest abrufen und erkennen. Sie können das Muster unter PowerApps-Samples/dataverse/orgsvc/C#-NETCore/Schema/RetrieveMetadataChanges/ ansehen

Eine Erläuterung der Funktionalität finden Sie in diesen Themen:

Wie man dieses Beispiel ausführt

Die Anleitung finden Sie hier: Anweisungen für Schemabeispiele

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 hat 6 Abschnitte:

Abfrage definieren

Definieren Sie eine Abfrage mit EntityQueryExpression. Dadurch werden alle Auswahllisten-Auswahlspalten aus der Kontakttabelle zurückgegeben.

Cache initialisieren

  1. Erstellen Sie eine Instanz von RetrieveMetadataChangesRequest mit dem Query-Parametersatz für die Abfrage.
  2. Senden Sie eine Anfrage mit IOrganizationService.Execute.
  3. Cachen Sie den RetrieveMetadataChangesResponse.EntityMetadata-Wert.
  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 den Attributen der Kontakttabelle erstellen.

Hinzugefügte Spalte erkennen

  1. Erstellen Sie eine neue Instanz von RetrieveMetadataChangesRequest 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 eine Anfrage mit IOrganizationService.Execute.
  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 RetrieveMetadataChangesRequest 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 RetrieveMetadataChangesRequest.DeletedMetadataFilters auf DeletedMetadataFilters.Attribute fest, weil wir nur nach gelöschten Spaltendefinitionen suchen.
  4. Senden Sie eine Anfrage mit IOrganizationService.Execute.
  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.

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