Exemple d’opérations de schéma de table de l’API web (C#)
Cet exemple .NET 6.0 démontre comment effectuer des opérations qui créent et modifient des définitions de table, de colonne et de relation à l’aide de l’API web Dataverse.
Cet exemple utilise le code d’assistance commun dans la Bibliothèque de classes WebAPIService (C#).
Notes
Cet exemple implémente les opérations Dataverse et de sortie de la console détaillées dans Exemple d’opérations de schéma de table de l’API Web et utilise les constructions C# courantes décrites dans Exemples de l’API Web (C#).
Conditions préalables
Les éléments suivants sont requis pour générer et exécuter cet exemple :
- Microsoft Visual Studio 2022.
- Accès à Dataverse avec les privilèges d′exécution des opérations de données.
Comment exécuter cet exemple
Clonez ou téléchargez le référentiel Exemples PowerApps.
Localisez le dossier /dataverse/webapi/C#-NETx/MetadataOperations/.
Ouvrir le fichier
MetadataOperations.sln
en utilisant Visual Studio 2022Modifiez le fichier
appsettings.json
pour définir les valeurs de propriété suivantes :Property Instructions Url
URL pour votre environnement. Remplacez la valeur https://yourorg.api.crm.dynamics.com
de l’espace réservé avec la valeur de votre environnement. Voir Afficher les ressources pour les développeurs pour trouver ça.UserPrincipalName
Remplacez la valeur you@yourorg.onmicrosoft.com
de l’espace réservé avec la valeur UPN pour accéder à l’environnement.Password
Remplacez la valeur yourPassword
de l’espace réservé avec le mot de passe que vous utilisez.Enregistrer le fichier
appsettings.json
Appuyez sur F5 pour exécuter l’exemple.
Code
Le code de cet exemple est ici : PowerApps-Samples/dataverse/webapi/C#-NETx/MetadataOperations/Program.cs
Montre ce qui suit
Cet exemple comporte 11 régions :
Section 0 : Créer un éditeur et une solution
Opérations : créez un enregistrement de solution et un enregistrement d’éditeur associé.
Notes
Tous les composants de solution créés dans cet exemple seront associés à la solution afin de pouvoir être exportés. Pour les opérations sans message nommé, cette association est créée à l’aide de l’en-tête de requête MSCRM.SolutionUniqueName
définissant le nom unique de la solution défini comme valeur.
Tous les noms des composants de la solution sont précédés du préfixe de personnalisation de l’éditeur.
Section 1 : Créer, récupérer et mettre à jour la table
Opérations :
- Créez une table
sample_BankAccount
appartenant à l’utilisateur en envoyant une requêtePOST
à/EntityDefinitions
. - Récupérez la table créée en envoyant une requête
GET
à/EntityDefinitions(LogicalName='sample_bankaccount')
. - Mettez à jour la table en envoyant une requête
PUT
à/EntityDefinitions(LogicalName='sample_bankaccount')
.
Section 2 : Créer, récupérer et mettre à jour des colonnes
Opérations :
- Créez une colonne
sample_boolean
booléenne pour la tablesample_BankAccount
en envoyant une requêtePOST
à/EntityDefinitions(LogicalName='sample_bankaccount')/Attributes
. - Récupérez la colonne booléenne
sample_boolean
en envoyant une requêteGET
à/EntityDefinitions(LogicalName='sample_bankaccount')/Attributes(LogicalName='sample_boolean')
. - Mettez à jour la colonne booléenne
sample_boolean
en envoyant une requêtePUT
à/EntityDefinitions(LogicalName='sample_bankaccount')/Attributes(LogicalName='sample_boolean')
. - Mettez à jour les étiquettes d’option pour la colonne booléenne
sample_boolean
à l’aide de l’action UpdateOptionValue Action. - Créez et récupérez une colonne DateHeure
sample_datetime
pour la tablesample_BankAccount
. - Créez et récupérez une colonne Décimal
sample_decimal
pour la tablesample_BankAccount
. - Créez et récupérez une colonne Entier
sample_integer
pour la tablesample_BankAccount
. - Créez et récupérez une colonne Mémo
sample_memo
pour la tablesample_BankAccount
. - Créez et récupérez une colonne Devise
sample_money
pour la tablesample_BankAccount
. - Créez et récupérez une colonne Choix
sample_choice
pour la tablesample_BankAccount
. - Ajoutez une nouvelle option à la colonne
sample_choice
à l’aide de InsertOptionValue Action. - Changez l’ordre des options de la colonne
sample_choice
à l’aide de l’action OrderOption Action. - Supprimez une des options de la colonne
sample_choice
à l’aide de l’action DeleteOptionValue Action. - Créez et récupérez une colonne Choix multiple
sample_multiselectchoice
pour la tablesample_BankAccoun
. - Créez une option de statut pour la table
sample_BankAccount
à l’aide de l’action InsertStatusValue Action.
Section 3 : Créer et utiliser un groupe d’options global
Opérations :
- Créez un choix global nommé
sample_colors
en envoyant une requêtePOST
à/GlobalOptionSetDefinitions
. - Récupérez le choix global
sample_colors
en envoyant une requêteGET
à/GlobalOptionSetDefinitions(<id value>)
. - Créez une colonne Choix
sample_colors
pour la tablesample_BankAccount
à l’aide du choix globalsample_colors
en envoyant une requêtePOST
à/EntityDefinitions(LogicalName='sample_bankaccount')/Attributes
et en l’associant au choix global.
Section 4 : Créer une relation client
Opérations :
- Créez une colonne Client
sample_customerid
pour la tablesample_BankAccount
à l′aide de l’action CreateCustomerRelationships Action. - Récupérez la colonne Client
sample_customerid
en envoyant une requêteGET
à/EntityDefinitions(LogicalName='sample_bankaccount')/Attributes(LogicalName='sample_customerid')
. - Récupérez les relations créées pour la colonne Client en envoyant la requête
GET
à/RelationshipDefinitions(<id>)/Microsoft.Dynamics.CRM.OneToManyRelationshipMetadata
.`.
Section 5 : Créer et récupérer une relation un-à-plusieurs
Opérations :
- Vérifiez que la table
sample_BankAccount
peut être référencée dans une relation 1 à N à l’aide de la fonction CanBeReferenced Function. - Vérifiez que la table
contact
peut être référencée dans d’autres tables dans une relation 1 à N à l’aide de la fonction CanBeReferencing Function. - Identifiez les autres tables qui peuvent référencer la table
sample_BankAccount
dans une relation 1 à N à l’aide de la fonction GetValidReferencingEntities Function. - Créez une relation 1à N entre les tables
sample_BankAccount
etcontact
en envoyant une requêtePOST
à/RelationshipDefinitions
. - Récupérez la relation 1 à N en envoyant la requête
GET
à/RelationshipDefinitions(<id>)/Microsoft.Dynamics.CRM.OneToManyRelationshipMetadata
.
Section 6 : Créer et récupérer une relation plusieurs à un
Opérations :
- Créez une relation 1 à N entre les tables
sample_BankAccount
etaccount
en envoyant une requêtePOST
à/RelationshipDefinitions
. - Récupérez la relation N à 1 en envoyant la requête
GET
à/RelationshipDefinitions(<id>)/Microsoft.Dynamics.CRM.OneToManyRelationshipMetadata
.
Section 7 : Créer et récupérer une relation plusieurs à plusieurs
Opérations :
- Vérifiez que les tables
sample_BankAccount
etcontact
sont éligibles pour participer à une relation N à N en utilisant la fonction CanManyToMany Function. - Vérifiez que les tables
sample_BankAccount
etcontact
sont éligibles pour participer à une relation N à N en utilisant la fonction GetValidManyToMany Function. - Créez une relation N à N entre les tables
sample_BankAccount
etcontact
en envoyant une requêtePOST
à/RelationshipDefinitions
. - Récupérez la relation N à N en envoyant la requête
GET
à/RelationshipDefinitions(<id>)/Microsoft.Dynamics.CRM.ManyToManyRelationshipMetadata
.
Section 8 : Exporter la solution comme gérée
Opérations : Exportez la solution créée dans Section 0 : Créer un éditeur et une solution contenant les éléments créés dans cet exemple à l’aide de l’action ExportSolution Action.
Section 9 : Supprimer des exemples d’enregistrements
Opérations : une référence à chaque enregistrement créé dans cet exemple a été ajoutée à une liste lors de sa création. Dans cet exemple, les enregistrements sont supprimés à l’aide d’une opération $batch
.
Section 10 : Importer et supprimer la solution gérée
Opérations :
- Importez la solution exportée en Section 8 en utilisant le ImportSolution Action.
- Interrogez la table des solutions pour obtenir l’
solutionid
de la solution importée. - Supprimez la solution importée à l’aide de l’
solutionid
.
Nettoyer
Par défaut, cet exemple supprimera tous les enregistrements créés dans celui-ci. Si vous souhaitez afficher les enregistrements créés une fois l’exemple terminé, modifiez la variable deleteCreatedRecords
sur false
et vous serez invité à décider si vous souhaitez supprimer les enregistrements.
Voir aussi
Utilisation de l’API web Dataverse
Bibliothèque de classes WebAPIService (C#)
Utiliser l’API web avec les définitions de table
Exemples d’API Web
Exemple d’opérations de base de l’API Web (C#)
Exemples de données de requête d’API web (C#)
Exemple d’opérations conditionnelles de l’API web (C#)
Exemple de fonctions et d’actions de l’API web (C#)
Exemple d′opérations parallèles de l′API web WebApiService (C#)
Exemple d’opérations parallèles d’API Web avec des composants de flux de données TPL (C#)
Notes
Pouvez-vous nous indiquer vos préférences de langue pour la documentation ? Répondez à un court questionnaire. (veuillez noter que ce questionnaire est en anglais)
Le questionnaire vous prendra environ sept minutes. Aucune donnée personnelle n’est collectée (déclaration de confidentialité).