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 :
- Démarrage rapide : API web avec PowerShell et Visual Studio Code
- Utiliser PowerShell et Visual Studio Code avec l’API web Dataverse
Ces articles ont les mêmes prérequis.
Installer ou vérifier que les éléments suivants sont installés
Installez Visual Studio Code. Voir Télécharger Visual Studio Code
Installez l’extension PowerShell pour Visual Studio Code. Voir PowerShell pour Visual Studio Code
Installez PowerShell 7.4 ou version ultérieure. Voir Installer PowerShell sur Windows, Linux et macOS
Installez le module Az PowerShell version 11.1.0 ou supérieure. Voir Procédure d’installation d’Azure PowerShell
Pour mettre à jour une installation existante vers la plus récente, utilisez
Update-Module -Name Az -Force
Vérifier l’installation
Ouvrez Visual Studio Code.
Dans le menu Terminal, sélectionnez Nouveau terminal.
Dans le volet de navigation Visual Studio Code, sélectionnez l’icône pour l’extension PowerShell.
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
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
Clonez ou téléchargez le référentiel Exemples PowerApps.
Ouvrez le fichier
/dataverse/webapi/PS/MetadataOperations/MetadataOperationsSample.ps1
en utilisant Visual Studio CodeModifiez cette ligne pour utiliser l’URL de l’environnement auquel vous souhaitez vous connecter :
Connect 'https://yourorg.crm.dynamics.com/' # change this
(Facultatif) Définissez la variable
$deleteCreatedRecords
sur$false
si vous ne souhaitez pas supprimer les enregistrements créés par cet exemple.Appuyez sur F5 pour exécuter l’exemple.
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 :
- 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 :
- Tentez de récupérer une colonne booléenne
sample_boolean
en envoyant une requêteGET
à/EntityDefinitions(LogicalName='sample_bankaccount')/Attributes(LogicalName='sample_boolean')
. - Si la colonne n’existe pas déjà, créez une nouvelle colonne booléenne
sample_boolean
pour la tablesample_BankAccount
en envoyant une requêtePOST
à/EntityDefinitions(LogicalName='sample_bankaccount')/Attributes
. - 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. - Tentez de récupérer une colonne de date et d’heure
sample_datetime
pour la tablesample_BankAccount
et créez-la si elle n’existe pas. - Tentez de récupérer une colonne décimale
sample_decimal
pour la tablesample_BankAccount
et créez-la si elle n’existe pas. - Tentez de récupérer une colonne d’entier
sample_integer
pour la tablesample_BankAccount
et créez-la si elle n’existe pas. - Tentez de récupérer une colonne de mémo
sample_memo
pour la tablesample_BankAccount
et créez-la si elle n’existe pas. - Tentez de récupérer une colonne de devise
sample_money
pour la tablesample_BankAccount
et créez-la si elle n’existe pas. - Tentez de récupérer une colonne de choix
sample_choice
pour la tablesample_BankAccount
et créez-la si elle n’existe pas. - Ajoutez une nouvelle option à la colonne
sample_choice
à l’aide de l’action InsertOptionValue. - Modifiez l’ordre des options de la colonne
sample_choice
à l’aide de l’action OrderOption. - Supprimez l’une des options de la colonne
sample_choice
à l’aide de l’action DeleteOptionValue. - Tentez de récupérer une colonne de choix multiple
sample_multiselectchoice
pour la tablesample_BankAccount
et créez-la si elle n’existe pas. - 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 :
- 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 nouvelle colonne de client
sample_customerid
pour la tablesample_BankAccount
à l’aide de l’action CreateCustomerRelationships. - 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
est éligible pour être référencée dans une relation 1:N à l’aide de la fonction CanBeReferenced. - 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. - Identifiez quelles autres tables peuvent référencer la table
sample_BankAccount
dans une relation 1:N à l’aide de la fonction GetValidReferencingEntities. - 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 à l’aide de la fonction CanManyToMany. - Vérifiez que les tables
sample_BankAccount
etcontact
sont éligibles pour participer à une relation N:N à l’aide de la fonction GetValidManyToMany. - 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 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 :
- Importez la solution exportée dans la Section 8 à l’aide de l’action ImportSolution.
- 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
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é).