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 de dot sourcing avec les lignes suivantes :
. $PSScriptRoot\..\Core.ps1
. $PSScriptRoot\..\TableOperations.ps1
. $PSScriptRoot\..\CommonFunctions.ps1
. $PSScriptRoot\..\MetadataOperations.ps1
Note
Cet exemple doit fonctionner avec Windows, Linux et macOS, mais n’a été testé que sur 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 :
- Quick Start Web API avec PowerShell et Visual Studio Code
- Utilisez 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. Consultez Download Visual Studio Code
Installez l’extension PowerShell pour Visual Studio Code. Consultez PowerShell pour Visual Studio Code
Installez PowerShell 7.4 ou version ultérieure. Consultez Installer PowerShell sur Windows, Linux et macOS
Installez le module Az PowerShell version 11.1.0 ou supérieure. Consultez How to install Azure PowerShell
Pour mettre à jour une installation existante vers la dernière version, utilisez
Update-Module -Name Az -Force
Vérifier l’installation
Ouvrez Visual Studio Code.
Dans le menu Terminal, sélectionnez Nouveau terminal.
Dans Visual Studio Code volet de navigation, sélectionnez l’icône
pour l’extension PowerShell.Copiez et collez le script suivant dans la fenêtre de 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.
Vous aurez également besoin de
- Compte d’utilisateur valide pour un environnement Dataverse
- URL vers l’environnement Dataverse auquel vous souhaitez vous connecter. Consultez Afficher les ressources du développeur pour découvrir comment le trouver. Il semble quelque chose comme 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 PowerApps-Samples .
Ouvrez le fichier
/dataverse/webapi/PS/MetadataOperations/MetadataOperationsSample.ps1à l’aide de 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
$deleteCreatedRecordsvariable$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 commandeDisconnect-AzAccount et réessayez.
Code informatique
Le code pour cet exemple se trouve dans : PowerApps-Samples/dataverse/webapi/PS/MetadataOperations/MetadataOperationsSample.ps1
Démontre
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é.
Note
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
GETdemandes à/RelationshipDefinitions(<id>)/Microsoft.Dynamics.CRM.OneToManyRelationshipMetadata.'.
Section 5 : Créer et récupérer une relation de type 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
GETdemande à/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 une 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
GETdemande à/RelationshipDefinitions(<id>)/Microsoft.Dynamics.CRM.ManyToManyRelationshipMetadata.
Section 8 : Exporter la solution 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.
- Consultez la table des solutions pour récupérer 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)
Exemple de recherche multi table d’API web (PowerShell)