Partager via


Exemple d’opérations sur le schéma de la table de l’API web (PowerShell)

Cet exemple PowerShell 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 implémente les opérations Dataverse et les résultats de la console détaillés dans Exemple d’opérations sur le schéma de la table de l’API web et utilise les fonctions d’aide PowerShell de l’API web Dataverse pour gérer l’authentification et fournir des fonctions réutilisables pour effectuer des opérations courantes. Ces scripts sont référencés à l’aide du dot sourcing avec les lignes suivantes :

. $PSScriptRoot\..\Core.ps1
. $PSScriptRoot\..\TableOperations.ps1
. $PSScriptRoot\..\CommonFunctions.ps1
. $PSScriptRoot\..\MetadataOperations.ps1

Notes

Cet exemple devrait fonctionner avec Windows, Linux et macOS, mais n’a été testé que sous Windows.

Conditions préalables

Avant d’exécuter cet exemple, vous devez lire ces articles qui expliquent les concepts et les modèles utilisés par ces exemples :

Ces articles ont les mêmes prérequis.

Installer ou vérifier que les éléments suivants sont installés

Vérifier l’installation

  1. Ouvrez Visual Studio Code.

  2. Dans le menu Terminal, sélectionnez Nouveau terminal.

  3. Dans le volet de navigation Visual Studio Code, sélectionnez l’icône pour l’extension PowerShell.

  4. Copiez et collez le script suivant dans la fenêtre du terminal Visual Studio Code :

    Write-Host 'PowerShell Version:'$PSVersionTable.PSVersion.ToString()
    Write-Host 'PowerShell Az version:'(Get-InstalledModule Az).Version
    
  5. Appuyez sur Entrée. La sortie ressemblerait à l’exemple suivant :

    PowerShell Version: 7.4.0
    PowerShell Az version: 11.1.0
    

Si vous ne voyez pas de résultats comme celui-ci, installez ou mettez à jour les prérequis.

Ce dont vous avez besoin

  • Compte d’utilisateur valide pour un environnement Dataverse
  • URL vers l’environnement Dataverse auquel vous souhaitez vous connecter. Voir Afficher les ressources des développeurs pour savoir comment les trouver. Cela ressemble à ceci : https://yourorg.crm.dynamics.com/, où yourorg.crm est différent.
  • Présentation de base du langage de script PowerShell

Comment exécuter cet exemple

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

  2. Ouvrez le fichier /dataverse/webapi/PS/MetadataOperations/MetadataOperationsSample.ps1 en utilisant Visual Studio Code

  3. Modifiez cette ligne pour utiliser l’URL de l’environnement auquel vous souhaitez vous connecter :

    Connect 'https://yourorg.crm.dynamics.com/' # change this

  4. (Facultatif) Définissez la variable $deleteCreatedRecords sur $false si vous ne souhaitez pas supprimer les enregistrements créés par cet exemple.

  5. Appuyez sur F5 pour exécuter l’exemple.

  6. La première fois que vous exécutez l’exemple, une fenêtre de navigateur s’ouvre. Dans la fenêtre du navigateur, saisissez ou sélectionnez les informations d’identification que vous souhaitez utiliser pour vous authentifier.

Pour vous connecter en tant qu’utilisateur différent, exécutez la commande Disconnect-AzAccount et essayez à nouveau.

Code

Le code pour cet exemple se trouve dans : PowerApps-Samples/dataverse/webapi/PS/MetadataOperations/MetadataOperationsSample.ps1

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. Tentez de récupérer une colonne booléenne sample_boolean en envoyant une requête GET à /EntityDefinitions(LogicalName='sample_bankaccount')/Attributes(LogicalName='sample_boolean').
  2. Si la colonne n’existe pas déjà, créez une nouvelle colonne booléenne sample_boolean pour la table sample_BankAccount en envoyant une requête POST à /EntityDefinitions(LogicalName='sample_bankaccount')/Attributes.
  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.
  5. Tentez de récupérer une colonne de date et d’heure sample_datetime pour la table sample_BankAccount et créez-la si elle n’existe pas.
  6. Tentez de récupérer une colonne décimale sample_decimal pour la table sample_BankAccount et créez-la si elle n’existe pas.
  7. Tentez de récupérer une colonne d’entier sample_integer pour la table sample_BankAccount et créez-la si elle n’existe pas.
  8. Tentez de récupérer une colonne de mémo sample_memo pour la table sample_BankAccount et créez-la si elle n’existe pas.
  9. Tentez de récupérer une colonne de devise sample_money pour la table sample_BankAccount et créez-la si elle n’existe pas.
  10. Tentez de récupérer une colonne de choix sample_choice pour la table sample_BankAccount et créez-la si elle n’existe pas.
  11. Ajoutez une nouvelle option à la colonne sample_choice à l’aide de l’action InsertOptionValue.
  12. Modifiez l’ordre des options de la colonne sample_choice à l’aide de l’action OrderOption.
  13. Supprimez l’une des options de la colonne sample_choice à l’aide de l’action DeleteOptionValue.
  14. Tentez de récupérer une colonne de choix multiple sample_multiselectchoice pour la table sample_BankAccount et créez-la si elle n’existe pas.
  15. Créez une nouvelle option de statut pour la table sample_BankAccount à l’aide de l’action InsertStatusValue.

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 nouvelle colonne de client sample_customerid pour la table sample_BankAccount à l’aide de l’action CreateCustomerRelationships.
  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 est éligible pour être référencée dans une relation 1:N à l’aide de la fonction CanBeReferenced.
  2. Vérifiez que la table contact est éligible pour référencer d’autres tables dans une relation 1:N à l’aide de la fonction CanBeReferencing.
  3. Identifiez quelles autres tables peuvent référencer la table sample_BankAccount dans une relation 1:N à l’aide de la fonction GetValidReferencingEntities.
  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 à l’aide de la fonction CanManyToMany.
  2. Vérifiez que les tables sample_BankAccount et contact sont éligibles pour participer à une relation N:N à l’aide de la fonction GetValidManyToMany.
  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 la Section 0 : Créer un éditeur et une solution contenant les éléments créés dans cet exemple à l’aide de l’action ExportSolution.

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 dans l’ordre inverse de celui dans lequel ils ont été créés.

Section 10 : Importer et supprimer la solution gérée

Opérations :

  1. Importez la solution exportée dans la Section 8 à l’aide de l’action ImportSolution.
  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
Utiliser l’API web avec les définitions de table
Exemples d’API Web
Exemple d’opérations de base de l’API Web (PowerShell)

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é).