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
Klonen Sie das PowerApps-Beispiele-Repository oder laden Sie es herunter.
Suchen Sie den Ordner /dataverse/webapi/C#-NETx/RetrieveMetadataChanges/.
De Datei
RetrieveMetadataChanges.sln
mit Visual Studio 2022 öffnenBearbeiten 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.Die Datei
appsettings.json
speichernDrü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
- Erstellen Sie eine Instanz von RetrieveMetadataChanges mit dem
Query
-Parametersatz für die Abfrage. - Senden Sie die Anfrage und erhalten Sie ein RetrieveMetadataChangesResponse-Element.
- Speichern Sie den
RetrieveMetadataChangesResponse.EntityMetadata
-Wert zwischen. - Speichern Sie den
RetrieveMetadataChangesResponse.ServerVersionStamp
-Wert zur Verwendung in der nächsten Anfrage. - 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
- Erstellen Sie eine neue Instanz von RetrieveMetadataChanges mit dem
Query
-Parametersatz für die ursprüngliche Abfrage. - Legen Sie
RetrieveMetadataChangesRequest.ClientVersionStamp
mit dem zuvor von der ersten Anfrage zurückgegebenen Wert fest. - Senden Sie die Anfrage und erhalten Sie ein RetrieveMetadataChangesResponse-Element.
- Stellen Sie sicher, dass nur eine neue Spaltendefinition zurückgegeben wurde, um die erstellte Auswahlspalte darzustellen.
- Speichern Sie den
RetrieveMetadataChangesResponse.ServerVersionStamp
-Wert zur Verwendung in der nächsten Anfrage. - Fügen Sie diese Auswahlspaltendaten dem Cache hinzu.
Auswahlspalte löschen
Löschen Sie die zuvor erstellte Auswahlspalte.
Gelöschte Spalte löschen
- Erstellen Sie eine neue Instanz von RetrieveMetadataChanges mit dem
Query
-Parametersatz für die ursprüngliche Abfrage. - Legen Sie
RetrieveMetadataChangesRequest.ClientVersionStamp
mit dem zuvor von der zweiten Anfrage zurückgegebenen Wert fest. - Legen Sie die
RetrieveMetadataChangesRequest.DeletedMetadataFilters
aufDeletedMetadataFilters.Attribute
fest, da wir nach gelöschten Spaltendefinitionen suchen. - Senden Sie die Anfrage und erhalten Sie ein RetrieveMetadataChangesResponse-Element.
- Suchen Sie die ID der gelöschten Auswahlspalte in
RetrieveMetadataChangesResponse.DeletedMetadata
. Verwenden Sie dazuDeletedMetadataFilters.Attribute
als Indexwert für die Sammlung. - Entfernen Sie die Spaltendefinition aus dem Cache.
- 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).