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

  1. Clonez ou téléchargez le référentiel Exemples PowerApps.

  2. Localisez le dossier /dataverse/webapi/C#-NETx/MetadataOperations/.

  3. Ouvrir le fichier MetadataOperations.sln en utilisant Visual Studio 2022

  4. Modifiez 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.
  5. Enregistrer le fichier appsettings.json

  6. 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 :

  1. Créez une table sample_BankAccount appartenant à l’utilisateur en envoyant une requête POST à /EntityDefinitions.
  2. Récupérez la table créée en envoyant une requête GET à /EntityDefinitions(LogicalName='sample_bankaccount').
  3. 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 :

  1. Créez une colonne sample_boolean booléenne pour la table sample_BankAccount en envoyant une requête POST à /EntityDefinitions(LogicalName='sample_bankaccount')/Attributes.
  2. Récupérez la colonne booléenne sample_boolean en envoyant une requête GET à /EntityDefinitions(LogicalName='sample_bankaccount')/Attributes(LogicalName='sample_boolean').
  3. Mettez à jour la colonne booléenne sample_boolean en envoyant une requête PUT à /EntityDefinitions(LogicalName='sample_bankaccount')/Attributes(LogicalName='sample_boolean').
  4. Mettez à jour les étiquettes d’option pour la colonne booléenne sample_boolean à l’aide de l’action UpdateOptionValue Action.
  5. Créez et récupérez une colonne DateHeure sample_datetime pour la table sample_BankAccount.
  6. Créez et récupérez une colonne Décimal sample_decimal pour la table sample_BankAccount.
  7. Créez et récupérez une colonne Entier sample_integer pour la table sample_BankAccount.
  8. Créez et récupérez une colonne Mémo sample_memo pour la table sample_BankAccount.
  9. Créez et récupérez une colonne Devise sample_money pour la table sample_BankAccount.
  10. Créez et récupérez une colonne Choix sample_choice pour la table sample_BankAccount.
  11. Ajoutez une nouvelle option à la colonne sample_choice à l’aide de InsertOptionValue Action.
  12. Changez l’ordre des options de la colonne sample_choice à l’aide de l’action OrderOption Action.
  13. Supprimez une des options de la colonne sample_choice à l’aide de l’action DeleteOptionValue Action.
  14. Créez et récupérez une colonne Choix multiple sample_multiselectchoice pour la table sample_BankAccoun.
  15. 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 :

  1. Créez un choix global nommé sample_colors en envoyant une requête POST à /GlobalOptionSetDefinitions.
  2. Récupérez le choix global sample_colors en envoyant une requête GET à /GlobalOptionSetDefinitions(<id value>).
  3. Créez une colonne Choix sample_colors pour la table sample_BankAccount à l’aide du choix global sample_colors en envoyant une requête POST à /EntityDefinitions(LogicalName='sample_bankaccount')/Attributes et en l’associant au choix global.

Section 4 : Créer une relation client

Opérations :

  1. Créez une colonne Client sample_customerid pour la table sample_BankAccount à l′aide de l’action CreateCustomerRelationships Action.
  2. Récupérez la colonne Client sample_customerid en envoyant une requête GET à /EntityDefinitions(LogicalName='sample_bankaccount')/Attributes(LogicalName='sample_customerid').
  3. 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 :

  1. 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.
  2. 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.
  3. 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.
  4. Créez une relation 1à N entre les tables sample_BankAccount et contact en envoyant une requête POST à /RelationshipDefinitions.
  5. 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 :

  1. Créez une relation 1 à N entre les tables sample_BankAccount et account en envoyant une requête POST à /RelationshipDefinitions.
  2. 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 :

  1. Vérifiez que les tables sample_BankAccount et contact sont éligibles pour participer à une relation N à N en utilisant la fonction CanManyToMany Function.
  2. Vérifiez que les tables sample_BankAccount et contact sont éligibles pour participer à une relation N à N en utilisant la fonction GetValidManyToMany Function.
  3. Créez une relation N à N entre les tables sample_BankAccount et contact en envoyant une requête POST à /RelationshipDefinitions.
  4. 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 :

  1. Importez la solution exportée en Section 8 en utilisant le ImportSolution Action.
  2. Interrogez la table des solutions pour obtenir l’solutionid de la solution importée.
  3. 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é).