Freigeben über


Beispiel für Web-API-Tabellenschemavorgänge (C#)

In diesem .NET 6.0-Beispiel wird veranschaulicht, wie Vorgänge zum Erstellen und Ändern von Tabellen-, Spalten- und Beziehungsdefinitionen mithilfe 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 Beispiele für Web-API-Tabellenschemavorgänge aufgeführt sind, und nutzt bekannte C#-Konstrukte, die in Web-API-Beispiele (C#) aufgeführt sind.

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 Repository Power Apps-Samples, oder laden Sie es herunter.

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

  3. Öffnen der Datei MetadataOperations.sln mit Visual Studio 2022

  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. Informationen dazu finden Sie unter Entwicklerressourcen anzeigen.
    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/MetadataOperations/Program.cs

Veranschaulichung

Dieses Beispiel hat 11 Regionen:

Abschnitt 0: Publisher und Lösung erstellen

Vorgänge: Erstellen Sie einen Lösungsdatensatz und einen zugehörigen Herausgeber-Datensatz.

Anmerkung

Alle in diesem Beispiel erstellten Lösungskomponenten werden der Lösung zugeordnet, damit sie exportiert werden können. Für Vorgänge ohne benannte Meldung wird diese Zuordnung mithilfe des MSCRM.SolutionUniqueName-Anforderungsheaders erstellt, der den eindeutigen Lösungsnamen als Wert festlegt. Alle Namen von Lösungskomponenten werden mit dem Anpassungspräfix des Publishers vorangestellt.

Abschnitt 1: Tabelle erstellen, abrufen und aktualisieren

Vorgänge:

  1. Erstellen Sie eine neue benutzereigene sample_BankAccount-Tabelle durch Senden einer POST-Anfrage an /EntityDefinitions.
  2. Rufen Sie die erstellte Tabelle ab, indem Sie eine GET-Anfrage an /EntityDefinitions(LogicalName='sample_bankaccount') senden.
  3. Aktualisieren Sie die Tabelle, indem Sie eine PUT-Anfrage an /EntityDefinitions(LogicalName='sample_bankaccount') senden.

Abschnitt 2: Spalten erstellen, abrufen und aktualisieren

Vorgänge:

  1. Erstellen Sie eine neue boolesche sample_boolean-Spalte für die sample_BankAccount-Tabelle, indem Sie eine POST-Anfrage an /EntityDefinitions(LogicalName='sample_bankaccount')/Attributes senden.
  2. Rufen Sie die boolesche sample_boolean-Spalte ab, indem Sie eine GET-Anfrage an /EntityDefinitions(LogicalName='sample_bankaccount')/Attributes(LogicalName='sample_boolean') senden.
  3. Aktualisieren Sie die boolesche sample_boolean-Spalte, indem Sie eine PUT-Anfrage an /EntityDefinitions(LogicalName='sample_bankaccount')/Attributes(LogicalName='sample_boolean') senden.
  4. Aktualisieren Sie die Optionsbeschriftungen für die boolesche sample_boolean-Spalte mithilfe der Aktion UpdateOptionValue.
  5. Erstellen Sie eine neue sample_datetime-DateTime-Spalte für die sample_BankAccount-Tabelle und rufen Sie die Spalte ab.
  6. Erstellen Sie eine neue sample_decimal-Dezimalspalte für die sample_BankAccount-Tabelle und rufen Sie die Spalte ab.
  7. Erstellen Sie eine neue sample_integer-Integer-Spalte für die sample_BankAccount-Tabelle und rufen Sie die Spalte ab.
  8. Erstellen Sie eine neue sample_memo-Memo-Spalte für die sample_BankAccount-Tabelle und rufen Sie die Spalte ab.
  9. Erstellen Sie eine neue sample_money-Geld-Spalte für die sample_BankAccount-Tabelle und rufen Sie die Spalte ab.
  10. Erstellen Sie eine neue sample_choice-Auswahlspalte für die sample_BankAccount-Tabelle und rufen Sie die Spalte ab.
  11. Fügen Sie der sample_choice-Spalte mit der Aktion InsertOptionValue eine neue Option hinzu.
  12. Ändern Sie die Reihenfolge der Optionen der sample_choice-Spalte mit der Aktion OrderOption.
  13. Löschen Sie eine der Optionen der sample_choice-Spalte mit der Aktion DeleteOptionValue.
  14. Erstellen und rufen Sie eine neue sample_multiselectchoice-Mehrfachauswahlspalte für die Tabelle sample_BankAccount ab.
  15. Erstellen Sie eine neue Statusoption für die sample_BankAccount-Tabelle mithilfe der Aktion InsertStatusValue.

Abschnitt 3: Erstellen und Verwenden von globalem Optionssatz

Vorgänge:

  1. Erstellen Sie eine neue globale Auswahl mit dem Namen sample_colors durch Senden einer POST-Anfrage an /GlobalOptionSetDefinitions.
  2. Rufen Sie die globale sample_colors-Auswahl ab, indem Sie eine GET-Anfrage an /GlobalOptionSetDefinitions(<id value>) senden.
  3. Erstellen Sie eine neue sample_colors-Auswahlspalte für die sample_BankAccount-Tabelle mit globalen sample_colors-Option, indem Sie eine POST-Anfrage an /EntityDefinitions(LogicalName='sample_bankaccount')/Attributes senden und der globalen Option zuordnen.

Abschnitt 4: Aufbau einer Kundenbeziehung

Vorgänge:

  1. Erstellen Sie eine neue sample_customerid-Kundenspalte für die sample_BankAccount-Tabelle mithilfe der Aktion CreateCustomerRelationships.
  2. Rufen Sie die sample_customerid-Kundenspalte ab, indem Sie eine GET-Anfrage an /EntityDefinitions(LogicalName='sample_bankaccount')/Attributes(LogicalName='sample_customerid') senden.
  3. Rufen Sie die für die Kundenspalte erstellten Beziehungen ab, indem Sie GET Anfragen an /RelationshipDefinitions(<id>)/Microsoft.Dynamics.CRM.OneToManyRelationshipMetadata senden.

Abschnitt 5: Erstellen und Abrufen einer Eins-zu-viele-Beziehung

Vorgänge:

  1. Überprüfen Sie, ob die sample_BankAccount-Tabelle dazu berechtigt ist, dass in einer 1:N-Beziehung auf sie verwiesen wird. Verwenden Sie dazu die Funktion CanBeReferenced.
  2. Überprüfen Sie, ob die contact-Tabelle dazu berechtigt ist, in einer 1:N-Beziehung auf andere Tabellen zu verwiesen, mithilfe der Funktion CanBeReferencing.
  3. Identifizieren Sie, welche anderen Tabellen in einer 1:N-Beziehung auf die sample_BankAccount-Tabelle verweisen können, indem Sie die Funktion GetValidReferencingEntities Function verwenden.
  4. Erstellen Sie eine 1:N-Beziehung zwischen sample_BankAccount und contact-Tabellen durch Senden einer POST-Anfrage an /RelationshipDefinitions.
  5. Rufen Sie die 1:N-Beziehung ab, indem Sie eine Anforderung mit GET an /RelationshipDefinitions(<id>)/Microsoft.Dynamics.CRM.OneToManyRelationshipMetadata senden.

Abschnitt 6: Erstellen und Wiederherstellen einer n:1-Beziehung

Vorgänge:

  1. Erstellen Sie eine N:1-Beziehung zwischen sample_BankAccount und account-Tabellen durch Senden einer POST-Anfrage an /RelationshipDefinitions.
  2. Rufen Sie die N:1-Beziehung ab, indem Sie eine GET-Anforderung an /RelationshipDefinitions(<id>)/Microsoft.Dynamics.CRM.OneToManyRelationshipMetadata senden.

Abschnitt 7: Erstellen und Abrufen einer viele-zu-viele Beziehung

Vorgänge:

  1. Verifizieren Sie, ob die Tabellen sample_BankAccount und contact mithilfe der Funktion CanManyToMany Function zur Teilnahme an einer N:N-Beziehung berechtigt sind.
  2. Überprüfen Sie mit der Funktion sample_BankAccount, ob die Tabellen contact und berechtigt sind, an einer N:N-Beziehung teilzunehmen.
  3. Erstellen Sie eine N:N-Beziehung zwischen sample_BankAccount und contact-Tabellen durch Senden einer POST-Anfrage an /RelationshipDefinitions.
  4. Rufen Sie die N:N-Beziehung ab, indem Sie GET Anforderung an /RelationshipDefinitions(<id>)/Microsoft.Dynamics.CRM.ManyToManyRelationshipMetadata senden.

Abschnitt 8: Exportieren einer verwalteter Lösung

Vorgänge: Exportieren Sie die im Abschnitt 0: Herausgeber und Lösung erstellen erstellte Lösung, welche die in diesem Beispiel erstellten Elemente enthält, mit der Aktion ExportSolution.

Abschnitt 9: Beispielaufzeichnungen löschen

Vorgänge: Ein Verweis auf jeden in diesem Beispiel erstellten Datensatz wurde einer Liste hinzugefügt, während sie erstellt wurde. In diesem Beispiel werden alle Datensätze mit einem $batch-Vorgang gelöscht.

Abschnitt 10: Verwaltete Lösung importieren und löschen

Vorgänge:

  1. Importieren Sie die in Abschnitt 8 exportierte Lösung mit der Aktion ImportSolution.
  2. Fragen Sie die Lösungstabelle ab, um das solutionid-Element der importierten Lösung zu erhalten.
  3. Löschen Sie die importierte Lösung mit solutionid.

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 zu false, und Sie werden aufgefordert zu entscheiden, ob Sie die Datensätze löschen möchten.

Siehe auch

Verwenden der Dataverse-Web-API
WebAPIService-Klassenbibliothek (C#)
Verwenden der Web-API mit Tabellendefinitionen
Web-API-Beispiele
Beispiel grundlegender Web-API-Operationen (C#)
Beispiel fürWeb API-Abfragedaten (C#)
Beispiel bedingter Web-API-Vorgänge (C#)
Beispiel für Internet-API-Funktionen- und Aktionen (C#)
Web-API WebApiService-Beispiel für parallele Operationen (C#)
Beispiel für parallele Web-API-Vorgänge mit TPL Dataflow-Komponenten (C#)