Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem PowerShell-Beispiel wird veranschaulicht, wie Sie mithilfe der Dataverse-Web-API Mehrtabellen-Nachschlagespalten erstellen und verwenden, die manchmal als polymorphe Nachschlagespalten bezeichnet werden.
In diesem Beispiel werden die Vorgänge veranschaulicht, die unter Verwendung von Nachschlagespalten mit mehreren Tabellen beschrieben werden, und die PowerShell-Hilfsfunktionen der Dataverse-Web-API werden verwendet, um die Authentifizierung zu verwalten und bereitgestellte Funktionen wiederverwendbar zur Durchführung allgemeiner Vorgänge zu verwenden. Im Beispiel werden diese Skripts mithilfe von Dot Sourcing referenziert.
. $PSScriptRoot\..\Core.ps1
. $PSScriptRoot\..\TableOperations.ps1
. $PSScriptRoot\..\CommonFunctions.ps1
. $PSScriptRoot\..\MetadataOperations.ps1
Hinweis
Dieses Beispiel sollte mit Windows, Linux und macOS funktionieren, aber der Autor hat es nur auf Windows getestet.
Voraussetzungen
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
- Verwenden Sie PowerShell und Visual Studio Code mit der Dataverse-Web-API
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 Download Visual Studio Code
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 Install PowerShell auf Windows, Linux und macOS
Installieren Sie die Az-PowerShell-Modulversion 11.1.0 oder höher. Siehe Wie installieren Sie Azure PowerShell
Überprüfen der Installation
Öffnen Sie Visual Studio Code.
Wählen Sie im Menü Terminal die Option New Terminal (Neues Terminal) aus.
Wählen Sie im navigationsbereich Visual Studio Code das Symbol
für die PowerShell-Erweiterung aus.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).VersionDrü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.crmanders ist. - Grundlegende Kenntnisse über die PowerShell-Skriptsprache
Wie man dieses Beispiel ausführt
Klonen Sie das Repository Power Apps-Samples, oder laden Sie es herunter.
Öffnen Sie die Datei
/dataverse/webapi/PS/PolymorphicLookup/PolymorphicLookupSample.ps1mithilfe von Visual Studio Code.Bearbeiten Sie die folgende Zeile, um die URL der Umgebung zu verwenden, mit der Sie eine Verbindung herstellen möchten:
Connect 'https://yourorg.crm.dynamics.com/' # change this(Optional) Legen Sie die
$deleteCreatedRecords-Variable auf$falsefest, wenn Sie die in diesem Beispiel erstellten Datensätze nicht löschen möchten.Drücken Sie F5, um das Beispiel auszuführen.
Beim ersten Ausführen des Beispiels 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 ist unter: PowerApps-Samples/dataverse/webapi/PS/PolymorphicLookup/PolymorphicLookupSample.ps1
Zeigt
Dieses Beispiel enthält neun Abschnitte:
Abschnitt 0: Herausgeber und Lösung erstellen
Vorgänge:
- Suchen Sie nach einem vorhandenen Herausgeber mit dem
examplepublishereinzigartigen Namen, indem Sie eineGETAnfrage an/publisherssenden. - Erstellen Sie den Herausgeber, wenn er noch nicht vorhanden ist, indem Sie eine
POST-Anforderung an/publisherssenden. - Abfragen einer vorhandenen Lösung mit dem Namen
polymorphiclookupexamplesolutiondurch Senden einerGETAnforderung an/solutions. - Erstellen Sie die Lösung, wenn sie noch nicht vorhanden ist, indem Sie eine
POSTAnfrage an/solutionssenden.
Hinweis
Sie können alle in diesem Beispiel erstellten Lösungskomponenten exportieren, indem Sie sie der Lösung zuordnen. Legen Sie für Vorgänge ohne benannte Nachricht den Anforderungsheader MSCRM.SolutionUniqueName auf den eindeutigen Namen der Lösung fest, um diese Zuordnung zu erstellen.
Präfixieren Sie alle Namen von Lösungskomponenten, indem Sie das Anpassungspräfix des Herausgebers verwenden.
Abschnitt 1: Erstellen referenzierter Tabellen
Vorgänge:
- Erstellen Sie eine
sample_BookTabelle, indem Sie einePOSTAnfrage an/EntityDefinitionssenden, wenn sie noch nicht vorhanden ist. Diese Tabelle enthält ein primäressample_nameAttribut und einesample_CallNumberZeichenfolgenspalte. - Erstellen Sie eine
sample_AudioTabelle, indem Sie einePOSTAnfrage an/EntityDefinitionssenden, wenn sie noch nicht vorhanden ist. Diese Tabelle enthält ein primäressample_nameAttribut und einesample_AudioFormatZeichenfolgenspalte. - Erstellen Sie eine
sample_VideoTabelle, indem Sie einePOSTAnfrage an/EntityDefinitionssenden, wenn sie noch nicht vorhanden ist. Diese Tabelle enthält ein primäressample_nameAttribut und einesample_VideoFormatZeichenfolgenspalte.
Diese drei Tabellen dienen als referenzierte Tabellen , auf die die polymorphe Nachschlagespalte verweisen kann.
Abschnitt 2: Erstellen einer Referenztabelle
Vorgänge: Erstellen Sie eine sample_Media-Tabelle, indem Sie eine POST-Anforderung an /EntityDefinitions senden, falls diese noch nicht existiert. Diese Tabelle enthält ein primäres sample_name-Attribut und hostet die polymorphe Nachschlagespalte.
Die sample_Media Tabelle dient als referenzierende Tabelle – die Tabelle, die die Nachschlagespalte mit mehreren Tabellen enthält.
Abschnitt 3: Erstellen eines polymorphen Nachschlageattributes
Vorgänge:
- Erstellen Sie eine
sample_MediaPolymorphicLookup-Nachschlagespalte in dersample_Media-Tabelle zusammen mit eins-zu-viele-Beziehungen zu den drei Tabellen (sample_Book,sample_Audio, undsample_Video) unter Verwendung der CreatePolymorphicLookupAttribute-Aktion. Diese einzelne Aktion erstellt das Attribut und alle drei Beziehungen auf einmal. - Rufen Sie die
ReferencingEntityNavigationPropertyNamefür jede der drei Beziehungen (sample_media_sample_book,sample_media_sample_audio,sample_media_sample_video) ab, indem SieGET-Anfragen an/RelationshipDefinitionssenden. Sie benötigen diese Navigationseigenschaften-Namen, um Datensätze mithilfe der Syntax@odata.bindzuzuordnen.
Abschnitt 4: Erstellen von Beispieldatensätzen
Vorgänge:
- Rufen Sie die
EntitySetNamefür jede der vier Tabellen ab, indem SieGETAnfragen an/EntityDefinitionssenden. - Erstellen Sie zwei
sample_BookDatensätze, indem SiePOSTAnforderungen ansample_bookssenden. - Erstellen Sie zwei
sample_AudioDatensätze, indem SiePOSTAnforderungen ansample_audiossenden. - Erstellen Sie zwei
sample_VideoDatensätze, indem SiePOSTAnforderungen ansample_videossenden. - Erstellen Sie vier
sample_MediaDatensätze, indem SiePOSTAnfragen ansample_mediassenden. Jeder Mediendatensatz verwendet den in Abschnitt 3 abgerufenen Navigationseigenschaftsnamen und@odata.binddie Syntax, um den polymorphen Nachschlagevorgang so festzulegen, dass er auf einen Datensatz aus einer der drei referenzierten Tabellen zeigt.
Abschnitt 5: Abrufen von Beispieldaten
Vorgänge:
- Abfragen aller
sample_MediaDatensätze, Auswählen dersample_nameUnd_sample_mediapolymorphiclookup_valueSpalten durch Senden einerGETAnforderung an/sample_medias. Die Abfrage verwendet dieMicrosoft.Dynamics.CRM.lookuplogicalnameundOData.Community.Display.V1.FormattedValueOData-Anmerkungen, um den Entitätstyp und den formatierten Namen der einzelnen Nachschlagewerte anzuzeigen. - Filtern Sie
sample_MediaDatensätze, bei denen die polymorphe Suche auf einen bestimmtensample_BookDatensatz verweist, indem Sie eineGET-Anforderung mit einem passenden/sample_mediasan$filtersenden. - Filtern Sie
sample_MediaDatensätze, bei denen die polymorphe Suche auf einen bestimmtensample_AudioDatensatz verweist, indem Sie eineGET-Anforderung mit einem passenden/sample_mediasan$filtersenden.
Abschnitt 6: Exportieren verwalteter Lösungen
Vorgänge: Exportieren Sie die lösung, die Sie in Abschnitt 0 erstellt haben: Erstellen Sie Publisher und Lösung als verwaltetes Lösungspaket mithilfe der ExportSolution-Aktion. Speichern Sie die exportierte .zip Datei lokal für die Verwendung in Abschnitt 8.
Abschnitt 7: Löschen von Beispieltabellen und -lösungen
Vorgänge:
- Löschen Sie die
sample_Media-Tabelle, indem Sie eineDELETE-Anforderung an/EntityDefinitionssenden. Sie müssen die referenzierende Tabelle vor den referenzierten Tabellen löschen. - Löschen Sie die Tabellen
sample_Book,sample_Audioundsample_Video, indem SieDELETE-Anfragen an/EntityDefinitionssenden. - Fragen Sie die nicht verwaltete Lösung ab, indem Sie eine
GETAnforderung senden, die nach eindeutigem Namen mit/solutionsgefiltert wird. - Löschen Sie die nicht verwaltete Lösung, indem Sie eine
DELETEAnforderung an/solutions(<solutionid>).
Abschnitt 8: Importieren und Löschen verwalteter Lösung
Vorgänge:
- Importieren Sie die verwaltete Lösung, die in Abschnitt 6 exportiert wurde: Exportieren der verwalteten Lösung mithilfe der ImportSolution-Aktion.
- Fragen Sie die importierte Lösung ab, indem Sie eine
GET-Anforderung an/solutionssenden, gefiltert nach einem eindeutigen Namen. - Löschen Sie die importierte verwaltete Lösung, indem Sie eine
DELETEAnfrage an/solutions(<solutionid>)senden.
Aufräumen
In diesem Beispiel werden standardmäßig alle von ihr erstellten Datensätze gelöscht. Wenn Sie die erstellten Datensätze nach Abschluss des Beispiels anzeigen möchten, ändern Sie die $deleteCreatedRecords Variable in $false. Anschließend werden Sie aufgefordert, zu entscheiden, ob Sie die Datensätze löschen möchten.
Siehe auch
Verwenden von Nachschlagespalten mit mehreren Tabellen
Verwenden der Dataverse-Web-API
Verwenden der Web-API mit Tabellendefinitionen
Web-API-Beispiele
Beispiel für Web-API-Tabellenschemavorgänge (PowerShell)