Freigeben über


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

Dieses PowerShell-Beispiel veranschaulicht, wie Sie mithilfe der Dataverse Web-API Vorgänge ausführen, mit denen Tabellen-, Spalten- und Beziehungsdefinitionen erstellt und geändert werden.

Dieses Beispiel implementiert die Dataverse-Vorgänge und die Konsolenausgabe, die im Beispiel für Web-API-Tabellenschemavorgänge beschrieben sind, und verwendet die Funktionen des Dataverse Web-API-PowerShell-Hilfsprogramms, um die Authentifizierung zu verwalten und wiederverwendbare Funktionen für die Durchführung gängiger Vorgänge bereitzustellen. Auf diese Skripte wird mit Dot-Sourcing mit den folgenden Zeilen verwiesen:

. $PSScriptRoot\..\Core.ps1
. $PSScriptRoot\..\TableOperations.ps1
. $PSScriptRoot\..\CommonFunctions.ps1
. $PSScriptRoot\..\MetadataOperations.ps1

Anmerkung

Dieses Beispiel sollte mit Windows, Linux und macOS funktionieren, wurde jedoch nur auf Windows getestet.

Anforderungen

Bevor Sie dieses Beispiel ausführen, sollten Sie die folgenden Artikel lesen, in denen die von diesen Beispielen verwendeten Konzepte und Muster erläutert werden:

Für diese Artikel gelten die gleichen Voraussetzungen.

Installieren Sie Folgendes oder überprüfen Sie, ob es vorhanden ist

Überprüfen der Installation

  1. Öffnen Sie Visual Studio Code.

  2. Wählen Sie im Menü Terminal die Option New Terminal (Neues Terminal) aus.

  3. Wählen Sie im navigationsbereich Visual Studio Code das Symbol für die PowerShell-Erweiterung aus.

  4. Kopieren Sie das folgende Skript, und fügen Sie es in das terminalfenster Visual Studio Code ein:

    Write-Host 'PowerShell Version:'$PSVersionTable.PSVersion.ToString()
    Write-Host 'PowerShell Az version:'(Get-InstalledModule Az).Version
    
  5. Drücken Sie die EINGABETASTE. Die Ausgabe sollte wie folgt aussehen:

    PowerShell Version: 7.4.0
    PowerShell Az version: 11.1.0
    

Wenn Sie solche Ergebnisse nicht sehen, installieren oder aktualisieren Sie die erforderlichen Systemanforderungen.

Darüber hinaus brauchen Sie

  • Ein gültiges Benutzerkonto für eine Dataverse-Umgebung
  • Die URL zur Dataverse-Umgebung, mit der Sie eine Verbindung herstellen möchten. Unter Entwicklerressourcen anzeigen erfahren Sie, wie Sie ihn finden. Sie sieht ungefähr so aus: https://yourorg.crm.dynamics.com/, wobei yourorg.crm anders ist.
  • Grundlegende Kenntnisse über die PowerShell-Skriptsprache

Wie man dieses Beispiel ausführt

  1. Klonen Sie das Repository Power Apps-Samples, oder laden Sie es herunter.

  2. Öffnen sie die Datei /dataverse/webapi/PS/MetadataOperations/MetadataOperationsSample.ps1 mit Visual Studio Code

  3. Bearbeiten Sie diese Zeile, damit sie die URL der Umgebung verwendet, mit der Sie eine Verbindung herstellen können:

    Connect 'https://yourorg.crm.dynamics.com/' # change this

  4. (Optional) Legen Sie die $deleteCreatedRecords-Variable auf $false fest, wenn Sie die in diesem Beispiel erstellten Datensätze nicht löschen möchten.

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

  6. Wenn Sie das Beispiel zum ersten Mal ausführen, wird ein Browserfenster geöffnet. Geben Sie im Browserfenster die Anmeldeinformationen ein bzw. wählen Sie diejenigen aus, die Sie zur Authentifizierung verwenden möchten.

Um eine Verbindung als anderer Benutzer herzustellen, führen Sie den Disconnect-AzAccount-Befehl aus, und versuchen Sie es erneut.

Code

Der Code für dieses Beispiel befindet sich unter: PowerApps-Samples/dataverse/webapi/PS/MetadataOperations/MetadataOperationsSample.ps1

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. Versuchen Sie, eine boolesche sample_boolean-Spalte abzurufen, indem Sie eine GET-Anforderung an /EntityDefinitions(LogicalName='sample_bankaccount')/Attributes(LogicalName='sample_boolean') senden.
  2. Wenn die Spalte noch nicht vorhanden ist, erstellen Sie eine neue boolesche sample_boolean-Spalte für die sample_BankAccount Tabelle, indem Sie eine POST-Anforderung an /EntityDefinitions(LogicalName='sample_bankaccount')/Attributes 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. Versuchen Sie, eine sample_datetime Datetime-Spalte für die sample_BankAccount-Tabelle abzurufen. Erstellen Sie sie, falls sie nicht vorhanden ist.
  6. Versuchen Sie, eine sample_decimal-Dezimal-Spalte für die sample_BankAccount-Tabelle abzurufen. Erstellen Sie sie, falls sie nicht vorhanden ist.
  7. Versuchen Sie, eine sample_integer-Integer-Spalte für die sample_BankAccount-Tabelle abzurufen. Erstellen Sie sie, falls sie nicht vorhanden ist.
  8. Versuchen Sie, eine sample_memo-Memo-Spalte für die sample_BankAccount-Tabelle abzurufen. Erstellen Sie sie, falls sie nicht vorhanden ist.
  9. Versuchen Sie, eine sample_money-Geld-Spalte für die sample_BankAccount-Tabelle abzurufen. Erstellen Sie sie, falls sie nicht vorhanden ist.
  10. Versuchen Sie, eine sample_choice-Auswahl-Spalte für die sample_BankAccount-Tabelle abzurufen. Erstellen Sie sie, falls sie nicht vorhanden ist.
  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. Versuchen Sie, eine sample_multiselectchoice-Mehrfachauswahl-Spalte für die sample_BankAccount-Tabelle abzurufen. Erstellen Sie sie, falls sie nicht vorhanden ist.
  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 mithilfe der Funktion sample_BankAccount, ob die -Tabelle für eine Referenzierung in einer 1:n-Beziehung geeignet ist.
  2. Überprüfen Sie, ob die contact-Tabelle geeignet ist, in einer 1:n-Beziehung als Referenz für andere Tabellen zu dienen, mithilfe der Funktion CanBeReferencing.
  3. Feststellen Sie, auf welche anderen Tabellen in einer 1:N-Beziehung von der sample_BankAccount-Tabelle aus verwiesen werden kann, indem Sie die Funktion GetValidReferencingEntities 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 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 die Datensätze in umgekehrter Reihenfolge gelöscht, in der sie erstellt wurden.

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
Verwenden der Web-API mit Tabellendefinitionen
Web-API-Beispiele
Beispiel grundlegender Web-API-Operationen (PowerShell)
Web-API-Nachschlagebeispiel für mehrere Tabellen (PowerShell)