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
Hinweis
Dieses Beispiel sollte mit Windows, Linux und macOS funktionieren, wurde aber nur unter 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:
- Schnellstart-Web-API mit PowerShell und Visual Studio Code
- PowerShell und Visual Studio Code in der Dataverse-Web-API verwenden
Für diese Artikel gelten die gleichen Voraussetzungen.
Installieren Sie Folgendes oder überprüfen Sie, ob es vorhanden ist
Installieren Sie Visual Studio Code. Siehe Visual Studio Code herunterladen
Installieren Sie die PowerShell-Erweiterung für Visual Studio Code. Siehe PowerShell für Visual Studio Code
Installieren Sie PowerShell 7.4 oder höher. Siehe PowerShell unter Windows, Linux und macOS installieren
Installieren Sie die Az-PowerShell-Modulversion 11.1.0 oder höher. Siehe Azure PowerShell richtig installieren
Verwenden Sie
Update-Module -Name Az -Force
, um eine bestehende Installation auf die neueste Version zu aktualisieren
Überprüfen der Installation
Öffnen Sie Visual Studio Code.
Wählen Sie im Terminal-Menü Neues Terminal aus.
Wählen Sie im Visual Studio Code-Navigationsbereich das -Symbol für die PowerShell-Erweiterung aus.
Kopieren und fügen Sie das folgende Skript im Terminalfenster von Visual Studio Code aus:
Write-Host 'PowerShell Version:'$PSVersionTable.PSVersion.ToString() Write-Host 'PowerShell Az version:'(Get-InstalledModule Az).Version
Drücken Sie die Eingabetaste. Die Ausgabe sollte wie folgt aussehen:
PowerShell Version: 7.4.0 PowerShell Az version: 11.1.0
Wenn Sie keine derartigen Ergebnisse sehen, installieren oder aktualisieren Sie die Voraussetzungen.
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/
, wobeiyourorg.crm
anders ist. - Grundlegende Kenntnisse über die PowerShell-Skriptsprache
Wie man dieses Beispiel ausführt
Klonen Sie das PowerApps-Beispiele-Repository oder laden Sie es herunter.
Die
/dataverse/webapi/PS/MetadataOperations/MetadataOperationsSample.ps1
-Datei mit Visual Studio Code öffnenBearbeiten 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
(Optional) Legen Sie die
$deleteCreatedRecords
-Variable auf$false
fest, wenn Sie die in diesem Beispiel erstellten Datensätze nicht löschen möchten.Drücken Sie F5, um das Beispiel auszuführen.
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 Benutzender 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. Herausgeber und Lösung erstellen
Vorgänge: Erstellen Sie einen Lösungsdatensatz und einen zugehörigen Herausgeber-Datensatz.
Hinweis
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.
Allen Namen von Lösungskomponenten werden mit dem Anpassungspräfix des Herausgebers vorangestellt.
Abschnitt 1: Tabelle erstellen, abrufen und aktualisieren
Vorgänge:
- Erstellen Sie eine neue benutzereigene
sample_BankAccount
-Tabelle durch Senden einerPOST
-Anfrage an/EntityDefinitions
. - Rufen Sie die erstellte Tabelle ab, indem Sie eine
GET
-Anfrage an/EntityDefinitions(LogicalName='sample_bankaccount')
senden. - Aktualisieren Sie die Tabelle, indem Sie eine
PUT
-Anfrage an/EntityDefinitions(LogicalName='sample_bankaccount')
senden.
Abschnitt 2: Spalten erstellen, abrufen und aktualisieren
Vorgänge:
- Versuchen Sie, eine boolesche
sample_boolean
-Spalte abzurufen, indem Sie eineGET
-Anforderung an/EntityDefinitions(LogicalName='sample_bankaccount')/Attributes(LogicalName='sample_boolean')
senden. - Wenn die Spalte noch nicht vorhanden ist, erstellen Sie eine neue boolesche
sample_boolean
-Spalte für diesample_BankAccount
Tabelle, indem Sie einePOST
-Anforderung an/EntityDefinitions(LogicalName='sample_bankaccount')/Attributes
senden. - Aktualisieren Sie die boolesche
sample_boolean
-Spalte, indem Sie einePUT
-Anfrage an/EntityDefinitions(LogicalName='sample_bankaccount')/Attributes(LogicalName='sample_boolean')
senden. - Aktualisieren Sie die Optionsbeschriftungen für die boolesche
sample_boolean
-Spalte mithilfe der Aktion UpdateOptionValue. - Versuchen Sie, eine
sample_datetime
Datetime-Spalte für diesample_BankAccount
-Tabelle abzurufen. Erstellen Sie sie, falls sie nicht vorhanden ist. - Versuchen Sie, eine
sample_decimal
-Dezimal-Spalte für diesample_BankAccount
-Tabelle abzurufen. Erstellen Sie sie, falls sie nicht vorhanden ist. - Versuchen Sie, eine
sample_integer
-Integer-Spalte für diesample_BankAccount
-Tabelle abzurufen. Erstellen Sie sie, falls sie nicht vorhanden ist. - Versuchen Sie, eine
sample_memo
-Memo-Spalte für diesample_BankAccount
-Tabelle abzurufen. Erstellen Sie sie, falls sie nicht vorhanden ist. - Versuchen Sie, eine
sample_money
-Geld-Spalte für diesample_BankAccount
-Tabelle abzurufen. Erstellen Sie sie, falls sie nicht vorhanden ist. - Versuchen Sie, eine
sample_choice
-Auswahl-Spalte für diesample_BankAccount
-Tabelle abzurufen. Erstellen Sie sie, falls sie nicht vorhanden ist. - Fügen Sie der
sample_choice
-Spalte mit der Aktion InsertOptionValue eine neue Option hinzu. - Ändern Sie die Reihenfolge der Optionen der
sample_choice
-Spalte mit der Aktion OrderOption. - Löschen Sie eine der Optionen der
sample_choice
-Spalte mit der Aktion DeleteOptionValue. - Versuchen Sie, eine
sample_multiselectchoice
-Mehrfachauswahl-Spalte für diesample_BankAccount
-Tabelle abzurufen. Erstellen Sie sie, falls sie nicht vorhanden ist. - Erstellen Sie eine neue Statusoption für die
sample_BankAccount
-Tabelle mithilfe der Aktion InsertStatusValue.
Abschnitt 3: Erstellen und Verwenden von globaler OptionSet
Vorgänge:
- Erstellen Sie eine neue globale Auswahl mit dem Namen
sample_colors
durch Senden einerPOST
-Anfrage an/GlobalOptionSetDefinitions
. - Rufen Sie die globale
sample_colors
-Auswahlspalte ab, indem Sie eineGET
-Anfrage an/GlobalOptionSetDefinitions(<id value>)
senden. - Erstellen Sie eine neue
sample_colors
-Auswahlspalte für diesample_BankAccount
-Tabelle mit globalensample_colors
-Option, indem Sie einePOST
-Anfrage an/EntityDefinitions(LogicalName='sample_bankaccount')/Attributes
senden und der globalen Option zuordnen.
Abschnitt 4: Aufbau einer Kundenbeziehung
Vorgänge:
- Erstellen Sie eine neue
sample_customerid
-Kundenspalte für diesample_BankAccount
-Tabelle mithilfe der Aktion CreateCustomerRelationships. - Rufen Sie die boolesche
sample_customerid
-Kundenspalte ab, indem Sie eineGET
-Anfrage an/EntityDefinitions(LogicalName='sample_bankaccount')/Attributes(LogicalName='sample_customerid')
senden. - Rufen Sie die für die Kundenspalte erstellte Beziehungen durch Senden von
GET
-Anfragen an/RelationshipDefinitions(<id>)/Microsoft.Dynamics.CRM.OneToManyRelationshipMetadata
ab.
Abschnitt 5: Erstellen und Abrufen einer 1:n-Beziehung
Vorgänge:
- Überprüfen Sie, ob auf die
sample_BankAccount
-Tabelle dazu berechtigt ist, dass in einer 1:n-Beziehung auf sie verwiesen wird, mithilfe der Funktion CanBeReferenced. - Überprüfen Sie, ob auf die
contact
-Tabelle dazu berechtigt ist, in einer 1:n-Beziehung auf andere Tabellen zu verwiesen, mithilfe der Funktion CanBeReferencing. - Stellen Sie mithilfe der Funktion GetValidReferencingEntities fest, ob andere Tabellen dazu berechtigt sind, in einer 1:n-Beziehung auf die
sample_BankAccount
-Tabelle zu verweisen. - Erstellen Sie eine 1:N-Beziehung zwischen
sample_BankAccount
undcontact
-Tabellen durch Senden einerPOST
-Anfrage an/RelationshipDefinitions
. - Rufen Sie die 1:N-Beziehung durch Senden einer
GET
-Anfrage an/RelationshipDefinitions(<id>)/Microsoft.Dynamics.CRM.OneToManyRelationshipMetadata
ab.
Abschnitt 6: Erstellen und Abrufen einer n:1-Beziehung
Vorgänge:
- Erstellen Sie eine N:1-Beziehung zwischen
sample_BankAccount
undaccount
-Tabellen durch Senden einerPOST
-Anfrage an/RelationshipDefinitions
. - Rufen Sie die N:1-Beziehung durch Senden einer
GET
-Anfrage an/RelationshipDefinitions(<id>)/Microsoft.Dynamics.CRM.OneToManyRelationshipMetadata
ab.
Abschnitt 7: Erstellen und Abrufen einer n:n-Beziehung
Vorgänge:
- Überprüfen Sie mithilfe der Funktion CanManyToMany, ob die Tabellen
sample_BankAccount
undcontact
zur Teilnahme an einer N:N-Beziehung berechtigt sind. - Überprüfen Sie mithilfe der Funktion GetValidManyToMany, ob die Tabellen
sample_BankAccount
undcontact
zur Teilnahme an einer N:N-Beziehung berechtigt sind. - Erstellen Sie eine N:N-Beziehung zwischen
sample_BankAccount
undcontact
-Tabellen durch Senden einerPOST
-Anfrage an/RelationshipDefinitions
. - Rufen Sie die N:N-Beziehung durch Senden einer
GET
-Anfrage an/RelationshipDefinitions(<id>)/Microsoft.Dynamics.CRM.ManyToManyRelationshipMetadata
ab.
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:
- Importieren Sie die in Abschnitt 8 exportierte Lösung mit der Aktion ImportSolution.
- Fragen Sie die Lösungstabelle ab, um das
solutionid
-Element der importierten Lösung zu erhalten. - 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
Dataverse-Web-API verwenden
Verwenden Sie die Web-API mit Tabellendefinitionen
Web API Beispiele
Beispiel grundlegender Web-API-Operationen (PowerShell)
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).