Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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
Nonte
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).VersionAppuyez 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.crmest 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.ps1en 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
$deleteCreatedRecordssur$falsesi 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é.
Nonte
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_BankAccountappartenant à 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_booleanen 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_booleanpour la tablesample_BankAccounten envoyant une requêtePOSTà/EntityDefinitions(LogicalName='sample_bankaccount')/Attributes. - Mettez à jour la colonne booléenne
sample_booleanen 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_datetimepour la tablesample_BankAccountet créez-la si elle n’existe pas. - Tentez de récupérer une colonne décimale
sample_decimalpour la tablesample_BankAccountet créez-la si elle n’existe pas. - Tentez de récupérer une colonne d’entier
sample_integerpour la tablesample_BankAccountet créez-la si elle n’existe pas. - Tentez de récupérer une colonne de mémo
sample_memopour la tablesample_BankAccountet créez-la si elle n’existe pas. - Tentez de récupérer une colonne de devise
sample_moneypour la tablesample_BankAccountet créez-la si elle n’existe pas. - Tentez de récupérer une colonne de choix
sample_choicepour la tablesample_BankAccountet 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 à choix multiple
sample_multiselectchoicepour la tablesample_BankAccountet 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_colorsen envoyant une requêtePOSTà/GlobalOptionSetDefinitions. - Récupérez le choix global
sample_colorsen envoyant une requêteGETà/GlobalOptionSetDefinitions(<id value>). - Créez une colonne Choix
sample_colorspour la tablesample_BankAccountà l’aide du choix globalsample_colorsen envoyant une requêtePOSTà/EntityDefinitions(LogicalName='sample_bankaccount')/Attributeset en l’associant au choix global.
Section 4 : Créer une relation client
Opérations :
- Créez une nouvelle colonne de client
sample_customeridpour la tablesample_BankAccountà l’aide de l’action CreateCustomerRelationships. - Récupérez la colonne Client
sample_customeriden 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_BankAccountest éligible pour être référencée dans une relation 1:N à l’aide de la fonction CanBeReferenced. - Vérifiez que la table
contactest é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_BankAccountdans une relation 1:N à l’aide de la fonction GetValidReferencingEntities. - Créez une relation 1à N entre les tables
sample_BankAccountetcontacten 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_BankAccountetaccounten 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_BankAccountetcontactsont éligibles pour participer à une relation N:N à l’aide de la fonction CanManyToMany. - Vérifiez que les tables
sample_BankAccountetcontactsont éligibles pour participer à une relation N:N à l’aide de la fonction GetValidManyToMany. - Créez une relation N à N entre les tables
sample_BankAccountetcontacten 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’
solutionidde 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
Utiliser 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)