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.
Hinweis
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/.
Die 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.
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:
- 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 Optionsbezeichnungen für die boolesche
sample_boolean
-Spalte mit UpdateOptionValue Action. - 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 InsertOptionValue Action eine neue Option hinzu. - Ändern Sie die Reihenfolge der Optionen der
sample_choice
-Spalte mit OrderOption Action. - Löschen Sie eine der Optionen der
sample_choice
-Spalte mit DeleteOptionValue Action. - 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 mit InsertStatusValue Action.
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
sample_customerid
-Kundnespalte für diesample_BankAccount
-Tabelle mit CreateCustomerRelationships Action. - 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 in einer 1:N-Beziehung unter Verwendung von CanBeReferenced Function referenziert werden darf. - Überprüfen Sie, ob die
contact
-Tabelle andere Tabellen in einer 1:N-Beziehung unter Verwendung von CanBeReferencing Function referenzieren darf. - Identifizieren Sie, welche anderen Tabellen die
sample_BankAccount
-Tabelle in einer 1:N-Beziehung unter Verwendung von GetValidReferencingEntities Function referenzieren kann. - 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, ob die
sample_BankAccount
undcontact
-Tabellen berechtigt sind, an einer N:N-Beziehung mit CanManyToMany Function teilzunehmen. - Überprüfen Sie, ob die
sample_BankAccount
undcontact
-Tabellen berechtigt sind, an einer N:N-Beziehung mit GetValidManyToMany Function teilzunehmen. - 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 in Abschnitt 0: Herausgeber und Lösung erstellen erstellte Lösung, in der die Elemente enthalten sind, die in diesem Beispiel mithilfe von ExportSolution Action erstellt wurden.
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 ImportSolution Action.
- 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
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#)
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).