Freigeben über


Beispiel bedingter Web-API-Operationen (C#)

Dieses .NET 6.0-Beispiel veranschaulicht, wie allgemeine Datenvorgänge mit der Dataverse-Web-API ausgeführt werden.

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

Anmerkung

Dieses Beispiel implementiert die Dataverse-Vorgänge sowie die Konsolenausgabe, die unter Web-API-Bedingte Vorgänge-Beispiel aufgeführt sind, und nutzt bekannte C#-Konstrukte, die in Web-API-Beispiele (C#) aufgeführt sind.

Anforderungen

Diese Anforderungen müssen zum Erstellen und Ausführen dieses Beispiels 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/ConditionalOperations/.

  3. De Datei ConditionalOperations.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/ConditionalOperations/Program.cs

Veranschaulichung

Dieses Beispiel umfasst vier Regionen:

Abschnitt 0: Beispielaufzeichnungen erstellen

Vorgänge:

  • Einen Einzeldatensatz erstellen.
  • Ruft den Datensatz ab und speichert den ETag-Wert als initialAcctETagVal.

Abschnitt 1: Bedingungs-GET

Vorgänge:

  1. Versucht, die Datensatzeinstellung abzurufen, indem der If-None-Match-Header mit dem initialAcctETagVal-Wert festgelegt wird.

    Anfrage schlägt wie erwartet mit 304 NotModified fehl.

  2. Aktualisieren Sie den telephone1-Spaltenwert des -Datensatzes.

  3. Versuchen Sie, die Datensatzeinstellung erneut abzurufen, indem der If-None-Match-Header mit dem initialAcctETagVal-Wert festgelegt wird.

    Die Anforderung ist erfolgreich, da der anfängliche ETag-Wert nicht mehr übereinstimmt.

  4. Speichern Sie den neuen ETag-Wert als updatedAcctETagVal.

Abschnitt 2: Optimistische Parallelität beim Löschen und Aktualisieren

Vorgänge:

  1. Versuchen Sie, die ursprüngliche Kontoeinstellung zu löschen, indem der If-Match-Header mit dem initialAcctETagVal-Wert festgelegt wird.

    Anfrage schlägt wie erwartet mit 412 PreconditionFailed fehl.

  2. Versuchen Sie, die ursprüngliche Kontoeinstellung zu aktualisieren, indem der If-Match-Header mit dem initialAcctETagVal-Wert festgelegt wird.

    Anfrage schlägt wie erwartet mit 412 PreconditionFailed fehl.

  3. Versuchen Sie, die ursprüngliche Kontoeinstellung zu aktualisieren, indem der If-Match-Header mit dem updatedAcctETagVal-Wert festgelegt wird.

    Die Anforderung ist erfolgreich, da der ETag-Wert mit dem aktuellen Wert für den Datensatz übereinstimmt.

Abschnitt 3: Beispielaufzeichnungen löschen

Vorgänge: Ein Verweis auf jeden in diesem Beispiel erstellten Datensatz wurde einer Liste hinzugefügt, während sie erstellt wurde. Dieser Abschnitt sendet eine $batch-Aufforderung zum Löschen des Datensatzes.

Bereinigung

Standardmäßig löscht dieses Beispiel alle darin erstellten Datensätze. Wenn Sie die erstellten Datensätze nach Abschluss des Beispiels anzeigen möchten, ändern Sie die deleteCreatedRecords-Variable auf false und Sie werden aufgefordert, zu entscheiden, ob Sie die Datensätze löschen möchten.

Siehe auch

Bedingte Vorgänge mithilfe der Web-API ausführen
Verwenden der Dataverse-Web-API
WebAPIService-Klassenbibliothek (C#)
Web API Beispiele
Beispiel grundlegender Web-API-Operationen (C#)
Web API-Abfragedatenbeispiel (C#)
Web-API-Funktionen- und Aktionen-Beispiel (C#)
Beispiel für Web-API-Tabellenschemavorgänge (C#)
Web-API WebApiService-Beispiel für parallele Operationen (C#)
Beispiel für parallele Web-API-Vorgänge mit TPL Dataflow-Komponenten (C#)