Beispiel für Web-API-Tabellenschemavorgänge (C#)
Dieses .NET 6.0-Beispiel zeigt, wie Operationen ausgeführt werden, die Tabellen-, Spalten- und Beziehungsdefinitionen mithilfe der Dataverse Web-API erstellen und ändern.
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
Klonen Sie das PowerApps-Beispiele-Repository oder laden Sie es herunter.
Suchen Sie den Ordner /dataverse/webapi/C#-NETx/MetadataOperations/.
De Datei
MetadataOperations.sln
mit Visual Studio 2022 öffnenBearbeiten 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.Die Datei
appsettings.json
speichernDrü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. Herausgeber 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.
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:
- Erstellen Sie eine neue boolesche
sample_boolean
-Spalte für diesample_BankAccount
-Tabelle, indem Sie einePOST
-Anfrage an/EntityDefinitions(LogicalName='sample_bankaccount')/Attributes
senden. - Rufen Sie die boolesche
sample_boolean
-Spalte ab, indem Sie eineGET
-Anfrage an/EntityDefinitions(LogicalName='sample_bankaccount')/Attributes(LogicalName='sample_boolean')
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. - Erstellen Sie eine neue
sample_datetime
-DateTime-Spalte für diesample_BankAccount
-Tabelle und rufen Sie die Spalte ab. - Erstellen Sie eine neue
sample_decimal
-Dezimalspalte für diesample_BankAccount
-Tabelle und rufen Sie die Spalte ab. - Erstellen Sie eine neue
sample_integer
-Integer-Spalte für diesample_BankAccount
-Tabelle und rufen Sie die Spalte ab. - Erstellen Sie eine neue
sample_memo
-Memo-Spalte für diesample_BankAccount
-Tabelle und rufen Sie die Spalte ab. - Erstellen Sie eine neue
sample_money
-Geld-Spalte für diesample_BankAccount
-Tabelle und rufen Sie die Spalte ab. - Erstellen Sie eine neue
sample_choice
-Auswahlspalte für diesample_BankAccount
-Tabelle und rufen Sie die Spalte ab. - 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. - Erstellen Sie eine neue
sample_multiselectchoice
-Mehrfachauswahl-Auswahlspalte für diesample_BankAccoun
-Tabelle und rufen Sie die Spalte ab. - 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
-Auswahl 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 die
sample_BankAccount
-Tabelle dazu berechtigt ist, dass in einer 1:N-Beziehung auf sie verwiesen wird. Verwenden Sie dazu die Funktion CanBeReferenced. - Überprüfen Sie, ob 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 alle Datensätze mit einem $batch
-Vorgang gelöscht.
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
Verwenden der Dataverse-Web-API
WebAPIService-Klassenbibliothek (C#)
Verwenden Sie die Web-API mit Tabellendefinitionen
Web API Beispiele
Beispiel grundlegender Web-API-Operationen (C#)
Web API-Abfragedatenbeispiel (C#)
Beispiel bedingter Web-API-Operationen (C#)
Web-API-Funktionen- und Aktionen-Beispiel (C#)
Web-API WebApiService-Beispiel für parallele Operationen (C#)
Beispiel für parallele Web-API-Vorgänge mit TPL Dataflow-Komponenten (C#)